Radio Astronomy – FFT Averaging on GNURadio


In the previous post (Ref.1), I was able to receive the hydrogen Line at 1420MHz. This was probably the most difficult thing I have done in the past two years, it took 2 months of planning and trial and error measurements at all times of the day and various azimuths & elevations. I tried various software configurations and finally used SDR# with the IF averaging plug-in with my Windows laptop.

In telecommunications, the carrier(s) is generally modulated and changes with the information signal. The hydrogen line is essentially a sine component at 1420MHz that does not change over a short period of time. The background noise signal is random and does change. This means that we can average the FFT of the signal + noise to get a clearer picture, because the noise averaging will often cancel whereas the signal always enforces. This can be demonstrated in GNU Radio (Ref.2).

FFT Averaging Signal + Noise

Fig.1 Sine Signal 1420Hz + Random Noise – FFT Averaging
Fig.2 Sine Signal at 1420Hz + Random Noise – FFTAvg=0
Fig.3 Sine Signal at 1420Hz + Random Noise – FFTAvg=10
Fig.4 Sine Signal at 1420Hz + Random Noise – FFTAvg=100

Figure 1 shows the GNU Radio model used to demonstrate fft averaging. A sine wave source at 1420MHz (Hz for MHz) represents the hydrogen line. A Gaussian noise source is added to this signal and feeds a GUI sink module (scope/fft). Figure 2 shows the spectrum with no averaging. Figure 3 shows the spectrum with averaging of 10 and Figure 4 with averaging of 100. Note the progressively cleaner display!

Background Generation & Subtraction

Fig.5 SDR# IF Avg PlugIn Calculation of Background
Fig.6 SDR# IF Avg PlugIn Receive after Subtraction of Background
Fig.7 Calculation of Background Noise + Sine Spurious @ 2000Hz
Fig.8 Subtraction of Background from Sine Signal 1420KHz + Noise
Fig.9 Clean Sine Signal at 1420KHz – Background Subtracted
Fig.10 Sine Signal + Sine Spurious + Random Noise – Background Not Subtracted

Another technique that really helped reception of the hydrogen line was the subtraction of the background. Various authors (Ref.1/#6) were successful in terminating the LNA/BPF to calculate the background. This compensated for the particular bandpass of the LNA/BPF + RTL. I found aiming the dish away from any possible signal and calculating the background with the Dish + LNA/BPF + RTL worked better in my location. Figure 5 shows the calculation of the background and Figure 6 shows the flat resultant before pointing towards the hydrogen line signal.

Figure 7 shows the GNU Radio model used to calculate the background. The hydrogen line sine at 1420Hz (Hz for MHz) is set to amplitude=0 (pointing away from signal) and a spurious tone at 2000Hz (Hz for MHz) is added (in my case a bandit at 1420.8MHz was really disruptive). This is added to the noise and saved in a file sink. Figure 8 shows the model for subtraction of the background. The file is read out in a file source and is now subtracted from the hydrogen line sine and spurious sine. Figure 9 shows the clean hydrogen signal. Figure 10 shows the result with no background subtraction.

Fig.11 YouTube Video Radio Astronomy – FFT Averaging on GNU Radio

GNURadio Companion Basics Course:

Please send your comments, questions and suggestions to:

YouTube Channel
YouTube Channel


#1. – “RTL-SDR for Radio Astronomy – Signal Capture2”

#2. – “GNU Radio”

By Jeremy Clark

Jeremy Clark is a Senior Telecommunications Engineer and Advanced Amateur Radio Operator VE3PKC. He is the author of E-Books on Telecommunications, Navigation & Electronics.