Skip to main content

FM Receiver

Jia-YinLess than 1 minutecomm

We will use the content learned in the previous section to build an FM receiver. Since we want to observe which possible FM channels are available within a certain frequency range, we use frequency shift and low-pass filtering for processing.

Construct an FM receiver as shown in the following figure:

The parameters of each module are as follows:

  • Soapy HackRF: Center Freq=100e6
  • Range f=96e6~104e6
  • Signal Source: Freq=100e6-f
  • Low Pass Filter: Decimation=20, Cutoff Freq=80e3, Transition_width=20e3
  • WBFM Receive: Quadrature Rate=500e3, Audio Decimation=10
  • Rational Resampler: Decimation=25, Interpolation=24
  • Range gain=0~3
  • Audio Sink: 48e3

Here, when we perform low-pass filtering, we set Decimation=20, which means resampling a 10 MHz signal to 500 KHz. Then, decode through WBFM Receive and set Audio Decimation=10, which means the decoded Audio signal is 50 KHz. We then resample the 50 KHz signal to 48 KHz (50/25*24=48). Finally, we send the 48 KHz sound to the Audio Sink for playback (the frequency of the Audio Sink is also set to 48 KHz).

The simulation results are as follows (with f value of 100.7 MHz):

Exercise 4

  1. Try to complete the above simulation and adjust the frequency to see if you can hear the broadcast of an FM radio station.
  2. Try to redo the above simulation using a Frequency Xlating FIR Filter.
  3. Can you receive two FM radio stations simultaneously?