# RTL-SDR for AM on GNU Radio

## 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.

contact: