Introduction
In previous posts I looked at programming the Si5351A clock generator for IQ quadrature and for simple single frequency output using Arduino (Ref.1/4). When used with amateur radio receivers and transmitters, we have to keep in mind that we are not dealing with a sinusoidal source but a square wave. From Fourier theory, a square wave is equal to an infinite sum of odd harmonics. This means that we may have to have appropriate filtering or we can use the property of harmonics to increase the frequency range of the device by using an nth harmonic (example NanoVNA). Historically amateur radio VFOs consisted of an amplifier with tunable LC feedback to create a sinusoidal output.
Square Wave Spectrum

Let us assume a square wave with A=1, d=0.5
a1=2*1*0.5*sin(pi/2)/(pi/2)=+2/pi=+0.6366198
a2=2*1*0.5*sin(pi)/(pi)=0=a4=a6….
a3=2*1*0.5*sin(3pi/2)/(3pi/2)=-2/3pi=-0.2122066
a5=2*1*0.5*sin(5pi/2)/(5pi/2)=+2/5pi=+0.1273240
20log10(|a3/a1|)=-9.5424251dB
20log10(|a5/a1|)=-13.979400dB
Figure 1 shows the formula for a rectangular pulse train with a DC component of A*d=A*(tau/T). A square wave has a duty cycle d of 50% or 0.5. The third component a3 is 9.5dB below the primary a1 and the fifth a5 is 14dB below a1 (Ref.5).
Si5351A Opt0=10.706KHz


Using the procedure in Ref.4, Figure 2 shows the CLK0 output of the Si5351A dev board at 10.7KHz. Since the output is 50ohm terminated on the scope, the voltage is approx 3.3V/2. Figure 3 shows the spectrum which agrees with the theory.
|a1|=-0.62dBu, |a3|=-10.16dBu, |a5|=-14.59dBu
|a3/a1|=-9.54dB, |a5/a1|=-13.97
Square Wave GNURadio


Figure 4 shows a GNURadio sketch that can be used to study a square wave. For convenience a frequency of 1KHz is used. The amplitude is variable and can be adjusted so that a1=0dB on the spectrum. We can then read of a3/a1 and a5/a1 directly as -9.5dB and -14dB.
GNU Radio Companion Basics Course
Please send your comments, questions and suggestions to:
contact:

References
#1. – “Si5351 Clock Generator IQ Programming”
https://jeremyclark.ca/wp/telecom/si5351-clock-generator-iq-programming/
#2. – “Si5351 Clock Generator I2C”
https://jeremyclark.ca/wp/telecom/si5351-clock-generator-i2c/
#3. – “Si5351 Clock Generator Programming+”
https://jeremyclark.ca/wp/telecom/si5351-clock-generator-programming-2/
#4. – “Si5351 Clock Generator Programming”
https://jeremyclark.ca/wp/telecom/si5351-clock-generator-programming/
#5. – “Dirac Delta Function δt“
https://jeremyclark.ca/wp/telecom/dirac-delta-function-%ce%b4t/