Category: Broadcast Radio

Video Demonstrating the iBiquity HD Radio Decoder

Over on YouTube user Rob Fissel has uploaded a nice video that demonstrates the iBiquity HD Radio decoder working with an RTL-SDR. HD Radio is a terrestrial digital broadcast signal that is only used in North America. It is easily recognized by the two rectangular blocks on either side of a broadcast FM station signal on a spectrum analyzer/waterfall display.

For a long time it was thought impossible to decode due to the closed and proprietary nature of the signal format. But thanks to Theori who was able to reverse engineer and create an HD Radio decoder it has now become possible to decode this into actual audio that you can listen to. In some areas it is even possible to extract the weather and traffic data encoded into some broadcasts from iHeartRadio.

Rob's YouTube video demonstrates him downloading and setting up the HD Radio decoder, then receiving, decoding and listening to some HD Radio stations in his area.

iBiquity HD Radio - RTL-SDR

Part III of Calibrating your RTL-SDR with QIRX SDR Now Uploaded

Earlier in the month we posted about Clem's three part series on how his QIRX SDR software can be used to accurately calibrate an RTL-SDR using DAB signals. Back then only parts I and II had been released. Now part III has been released, and in the article he explains why it is beneficial to calibrate the frequency error, and also the sampling rate when attempting to decode DAB signals..

Clem begins by explaining how DAB signals work and why it is important to have accurate frequency calibration when receiving DAB. Later he goes on to explain the effect of sampling rate errors due to frequency inaccuracy on received DAB signals. He shows the effect of gradually increasing the sample rate error on the ability of the algorithms to decode DAB signals.

Comparing constellations with sampling rate error correction turned on and off.
Comparing constellations with sampling rate error correction turned on and off.

The Lego Pi RTL-SDR FM Radio

Thank you to reader 'JJ' for writing in with a submission for his Lego Pi Radio. JJ's Lego Pi Radio consists of a Raspberry Pi and RTL-SDR and is designed to be an FM Radio, MP3 and internet radio player all in one, with a cute enclosure made out of Lego bricks. The radio is controlled by an external numpad which allows for a number of presets to be chosen from.

The internet radio and MP3 players are handled in software by VLC player and a script written by JJ is used to map the numpad to RTL-SDR FM presets, or MP3 and internet radio functions. The whole unit is run headless and if anything needs to be updated such as internet radio links, JJ simply accesses the unit via an SSH shell. JJ also writes how he had to try 3 different brands of speakers before he found one that could be driven directly from the Pi with adequate sound quality. In the future he hopes to add a bluetooth remote.

One problem that JJ found was that the standard rtl_fm did not produce high quality audio. Fortunately he found the NGSoftFM software which is capable of outputting high quality FM stereo sound and is compatible with RTL-SDR dongles.

In the past we've seen a similar project that was implemented on a BeagleBone Black. The idea in that project was to switch between FM and internet radio depending on the reception quality.

Lego Pi Radio 2

Using QIRX SDR and DAB Signals to Calibrate RTL-SDR Dongles

Over on his site, Clem the author of the QIRX SDR software package has written up a three part series where he explains an ultra-fast and very accurate method for calibrating the frequency offset of RTL-SDR receivers by using DAB signals. If you are unfamiliar with DAB, it stands for 'Digital Audio Broadcast' and is a type of digital radio station available in multiple countries in the world, especially in Europe. However it is not used in the USA. Clem writes:

I wrote a three-part tutorial about an ultra-fast, generally available (where you have DAB reception) and very accurate method to calibrate RTL-SDR receivers. It is called "Tutorial: Calibrate your RTL-SDR in 15 Seconds", It is using the frequency of a DAB transmitter as the reference signal, and is coming in three parts:

· Part I: Method and Measurement, describes the method (example) and compares it to two other, well-known methods.

· Part II: Checks, Frequencies, Sampling Rates: Tells how to make plausibility checks on the obtained calibration result, goes into the foundation of different measuring methods, and explains why calibrating a receiver is generally beneficial, not only for DAB purposes (where at least the frequency correction is mandatory).

· Part III: Improving DAB, Tells why it is advantageous for DAB reception not only correcting the frequency, but also the sampling rate (which is often omitted).

Part I and Part II of these are already on our website, Part III will come soon.

QIRX Being used to Calibrate an RTL-SDR dongle on DAB signals
QIRX Being used to Calibrate an RTL-SDR dongle on DAB signals DAB Decoder updated to Version 1.0 is a Windows/Linux/MacOS/Android/Raspberry Pi compatible DAB and DAB+ broadcast radio decoder which supports RTL-SDR dongles, as well as the Airspy and any dongle supported by SoapySDR. It is a touch screen friendly piece of software which is excellent for use on tablets, phones and perhaps on vehicle radio touch screens.

DAB stands for Digital Audio Broadcast and is a digital signal that is available in many countries outside of the USA. The signal contains digital broadcast radio stations, and is an alternative/replacement for standard broadcast FM.

Early last year we posted about a couple of times, but now the software has reached maturity as version 1.0 has just been released. Author Albrech writes to us:

We fixed a lot of bugs again and added the translation to Hungarian, Norwegian, Italian and French.

Binary packages are available for Windows, Linux and Android (APK and Play store). The macOS support is possible via Homebrew and we now that runs also on a Rapsberry Pi 2 and newer.

For questions and support please feel free to use the new forum (


Video Comparison of the Airspy HF+ and SDRplay RSP1A on the FM Broadcast Band

Frequent reviewer of SDR products Mile Kokotov has just uploaded on his YouTube channel a new video where he compares the Airspy HF+ against the SDRplay RSP1A on FM broadcast reception.

At first Mile compares the two against strong broadcast stations, and then later compares them on weak DX stations surrounded in amongst other strong stations. With the strong stations a difference between the two radios is impossible to detect. But with the weaker stations that are surrounded by strong signals the Airspy HF+ has the edge with it's higher dynamic range and sensitivity.

Mile writes:

In this video I am comparing two popular SDR-Receivers (Airspy HF+ and SDRplay RSP1A) on FM Broadcast Band.

I have made few recordings with every receiver with the same antenna trying to set the best SNR = signal-to-noise ratio.

My intention was to ensure the same conditions for both SDR`s in order to make as fair as possible comparison.

No DSP enhancing on the SDR`s was used.

Antenna was Vertical Dipole.

When receiving signals are strong enough, You should not expect the difference between most receivers to be very obvious!

If you compare one average transceiver (which cost about $ 1000 USD) and top class transceiver which cost ten times more, the difference in receiving average signals will be very small too. Almost negligible! But when you have difficult conditions, the very weak signal between many strong signals, than the better receiver will receive the weak signal readable enough, but cheaper receiver will not. Today it is not a problem to design and produce the sensitive receiver, but it is far more difficult to design and produce high dynamic receiver for reasonable price! The Airspy HF+ and RSP1A are very very good SDR-receivers. They have different customers target and have strong and weak sides. For examle Airspy HF+ has better dynamics in frequency range where it is designed for, but RSP1A, on the other hand, has broadband coverage...

Airspy HF+ vs SDRplay RSP1A Comparison on FM Broadcast Band

Displaying Live Weather and Traffic Data from HD Radio (NRSC-5) Signals

Thanks to KYDronePilot for submitting news of his new Python based script called HDFM which displays live weather and traffic data from data that is embedded into iHeartRadio HD Radio (NRSC-5) radio stations

If you are in the USA, you might recognize HD Radio (aka NRSC-5) signals as the rectangular looking bars on the frequency spectrum that surround common broadcast FM radio signals. These signals only exist in the USA and they carry digital audio data which can be received by special HD Radio receivers. Earlier in the year in June a breakthrough in HD Radio decoding for SDRs like the RTL-SDR was achieved by Theori when he was able to piece together a full HD Radio software audio decoder that works in real time.

It turns out that some of these HD Radio signals run by iHeartRadio also contain other data streams such as live weather and traffic data that is consumed by HD Radio based car GPS receivers or audio head units in US vehicles. also write that they can embed other data such as sports scores and emergency messages into the data stream as well.

KYDronePilot's Python script utilizes Theori's decoder to save all received weather and traffic data maps for a folder. Below is an example of traffic and weather data that he received.

HD Radio Received Traffic Data
HD Radio Received Traffic Data
HD Radio Received Weather Data
HD Radio Received Weather Data

FM2TXT: Automatically Perform Speech to Text on FM Signals

SourceForge user randaller has recently released a potentially useful Python program called FM2TXT. The FM2TXT program uses the Google speech recognition libraries and an RTL-SDR to listen to any broadcast FM station and automatically transcribe the speech into text. The code seems to be basically an interface for the Google speech recognition API, so is nothing fancy, but still may be of interest to some. Also at the moment it seems like it only works with broadcast FM (WFM), but as the code is open source and consists of a simple single Python file it shouldn't be too hard to adapt it for other NFM signals too. 

No word yet on the accuracy of the speech recognition or how well it works with poor reception. If you are interested there is also a Reddit thread discussing the software here

The Google Speech Recognition API
The Google Speech Recognition API