Introduction
In the previous post we looked at using the RTL-SDR on Raspberry Pi4 with GNU Radio and Gqrx. We examined three applications: displaying the FM band spectrum, wide-band FM reception and narrow-band Marine weather reception. In this post we look at the RTL-SDR for AM reception on GNU Radio. The latest version of GNU Radio >=3.8xx is used (Ref.1).
RTL-SDR for MW/SW
In order to receive MW/SW (0-30MHz) on the RTL-SDR, I use a 125MHz up-converter. I described this procedure in an earlier post (Ref.2). When receiving signals using SDR# for example, you tune to the receive frequency + 125MHz or set the shift frequency to -125MHz. In a similar fashion, using GNURadio, you must tune the RTL to the shifted frequency.
Zero IF Reception of AM
Figure 2 shows the block diagram of a Zero IF receiver. Essentially, a carrier signal is direct converted to base-band by multiplication with a local oscillator on the same frequency. The local oscillator matches the carrier frequency closely, but differs in phase. In I & Q reception, there are two receive branches, one with an LO = cos(wct+phi) and another with an LO = sin(wct+phi). This IQ construction can be used to receive AM or SSB(USB/LSB).
Consider the modulation process:
Info Signal = A(t) = [1 + m*cos(wmt)], m=mod index, wm=mod freq
Carrier Signal = A(t)*cos(wct), wc=carrier frequency
Consider the receiver I branch direct conversion:
Irx = A(t)*cos(wct)*cos(wct+phi), phi=phase difference carrier & LO
cosA*cosB = [cos(A+B)+cos(A-B)]/2, remove sum component with LPF
Irx = A(t)*cos(phi)
Consider the receiver Q branch direct conversion:
Qrx = A(t)*cos(wct)*sin(wct+phi)
cosA*sinA = [sin(A+B)+sin(A-B)]/2, remove sum component with LPF
Qrx = A(t)*sin(phi)
So to recover A(t), the receiver is basically a complex to magnitude block:
sqrt[Irx^2 + Qrx^2] = sqrt[A(t)^2*[cos^2(phi)+sin^2(phi)]] = A(t)
RTL-SDR for AM on GNU Radio
Figure 3 shows the AM receiver schematic on GNU Radio Companion. IQ information from the RTL-SDR Source block is first Low Pass Filtered to remove all components outside of the information base-band. The AM demodulator is simply a complex to magnitude block as discussed in the previous section. Figure 4 shows the frequency response of the RTL-SDR block output and the LPF output.
GNURadio Companion Basics Course:
https://clarktelecommunications.thinkific.com/courses/gnuradio_basics
Please send your comments, questions and suggestions to:
contact:
References
#1. – “GNU Radio Installation”
https://wiki.gnuradio.org/index.php/InstallingGR
#2. – “RTL-SDR for HF 0-30MHz”
https://jeremyclark.ca/wp/telecom/rtl-sdr-for-hf-0-30mhz/
#3. – “HF Radio Telecommunications Learn by Simulation”
https://www.clarktelecommunications.com/simulation.htm