Tagged: broadcast FM

Using an RTL-SDR to Decode Broadcast FM RDS Data on Android

Over on YouTube Double A Labs has posted a new video demonstrating how to use an RTL-SDR and Android device to receive broadcast FM stations, and to decode any associated RDS data. 

In the video Double A uses the SDR Touch Android app and the Advanced RDS function to show the RDS information. He goes on to explain the various pieces of information RDS data provides including clock time, active RDS groups and alternative frequencies.

Tune broadcast FM radio and decode Radio Data System (RDS) information using your Android phone and an RTL-SDR USB (see parts list below). RDS can include station identification, song name, the current time for a receiver to sync its clock, alternative frequencies the same program is on, and more!

Tuning FM Radio & Decoding RDS Data on ANDROID using RTL-SDR USB

Receiving the ‘Hidden’ Broadcast FM SCA Audio Subcarrier with an RTL-SDR and SDR#

Broadcast FM channels can often contain additional subcarriers hidden within the bandwidth. A common subcarrier is Radio Data System (RDS), and this is what provides song and radio station text information to your radio.

Another less commonly seen subcarrier is the Subsidiary communications authority (SCA), which is a separate audio channel hidden within the broadcast FM signal. SCA is typically used for niche radio programs, elevator music, music for doctors offices, and niche services such as reading for the visually impaired. In the past you needed a special hardware SCA radio to receive these channels, however receiving these channels with an SDR is relatively simple. Not all broadcast FM stations will have an SCA service, but the video shown below explains how to find one.

Over on YouTube channel Double A has uploaded a video showing how to decode these SCA subcarriers using an RTL-SDR, two SDR# instances and the MPX Output plugin. The idea to to use a virtual audio cable to pipe the FM Multiplex (MPX) audio output from one instance of SDR# to another. In the second SDR# instance you can then directly tune into the SCA channel. In his video he also explores the FM MPX spectrum, showing the different components, and also how to install and use RDS Spy for decoding RDS.

Tuning an FM Audio Subcarrier (SCA) & Decoding RDS Data with RTL-SDR USB

Simple FM Radio and Airband RTL-SDR Android Applications

On the Google Play store developer Knowle Consultants have recently released a new free application called "FM Radio (RTL-SDR)". This is a simple app that allows you to use a connected or remotely networked RTL-SDR to tune into preset broadcast FM stations. People wishing to use an Android enabled head unit in their car may be interested in the app as it makes tuning into broadcast FM stations easy just like it is on a standard radio.

They also have a similar app called "Airband Radio (RTL-SDR)" which provides a similar simple interface for tuning into airband presets.

Knowles Consultants simple Android RTL-SDR FM and Airband Receiver Apps

Measuring Broadcast FM Multipath Distortion with an RTL-SDR

Over on GitHub user jj1bdx has just released a new tool called rtl_power-fm-multipath which can be used for estimating broadcast FM multipath distortion with an RTL-SDR. Broadcast FM multipath is caused when a signal is received from multiple directions due to it reflecting off and refracting through physical objects like buildings and terrain. As the reflected/refracted signals will be delayed it can cause echo like distortions in the RF signal which can cause issues like poor digital decoding, poor FM audio reception and ghosting in analogue video.

The multipath distortion estimation method works by measuring the ratio of the strength of direct/reflected radio waves which results in the desired/undesired (D/U) ratio. This measurement method was proposed by Komiya87 and JushinFM who both wrote papers in Japanese describing the method. In summary the methodology is:

  • Measure the maximum peak strength for +-50kHz spectrum of the target FM station
  • Obtain the maximum value (Lmax) and minimum value (Lmin) within the spectrum
  • Obtain the ratio of the maximum and minimum values L = Lmax / Lmin (note: Lmax and Lmin are real values (not in dB), and L must be > 1)
  • The estimated D/U ratio R = (L+1) / (L-1) (in the real value, not in dB)

The rtl_power-fm-multipath program is based on rtl_power and works by using rtl_power to record power measurements for 5 minutes, then sending the data to a peakhold function which computes the maximum power value for each frequency, and then calculations the distortion ratio.

An example of Multipath Distortion on a DAB+ Signal. From Gough Lui's post https://goughlui.com/2015/03/28/trip-to-hk-cn-2014-part-5-rtl-sdr-more-radio-ais-night-photos/
An example of Multipath Distortion on a DAB+ Signal. From Gough Lui's post at https://goughlui.com/2015/03/28/trip-to-hk-cn-2014-part-5-rtl-sdr-more-radio-ais-night-photos

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

A Tutorial on Using RTL-SDR with LabView: Creating a Simple FM Demodulator

LabView is a popular visual programming environment often used in industry and by engineers for test, automation and control applications. It is somewhat similar to GNU Radio in that programming is done by connecting a series of various blocks together, each of which performs some function. The RTL-SDR is compatible with LabView via a simple RTL-SDR interface.

Recently Albert Lederer wrote in to us and wanted to share his beginners guide to creating an broadcast FM demodulator with an RTL-SDR in LabView. The tutorial focuses only on demodulating the mono part of the broadcast FM signal structure and provides a fully functional LabeView project file. Albert describes the signal chain implemented below:

1. The signal is received from the rtl-sdr device as IQ data. This is converted to a complex signal and the phase is extraced.

2. The phase correction removes phase discontinuities.

3. The key demodulation component in the chain is the phase derivative. The phase derivative takes the phase of the signal and creates a second signal that is composed only of the changes in frequency. This is then the demodulated signal.

4. The low pass filter is used to filter out frequencies above 15kHz, which do not contain the desired information.

5. The rational resample takes the signal, which is still at the sampled rate (in the examples case 286650Hz) and resamples it to something the sound card can handle. In this case, we are using a decimation factor of 13, which results in a 22050Hz audio stream. Actually, I worked this out the other way around. I wanted a 22050Hz audio stream and checked which sample rate would give me an integer decimation while keeping the RF sampling rate as low as possible.

The LabView Broadcast FM Demodulator
The LabView Broadcast FM Demodulator

Experimenting with Broadcast FM RDS (TMC, RT+) and SCA Audio

A typical broadcast FM station can sometimes contain “hidden” subcarriers embedded within the main signal. The subcarriers contain data or audio services.

An example of a data subcarrier hidden within broadcast FM is the “Traffic Message Channel” (TMC). The TMC contains traffic data, and is used on GPS devices that advertise as having live traffic capabilities. TMC data is encrypted so that it can be sold, but is very easily broken. Another data service is RDS-RT+ data which transmits song information, for radios that can display it.

An example of a voice subcarrier (SCA/ACS) might be niche radio stations, such as ethnic stations, elevator music, music for doctors offices etc. Usually a specialized radio is required to receive a SCA channel. In a previous post we showed how a user was able to receive SCA on Windows.

Over on his blog Gough Lui has been investigating the broadcast FM subcarriers in his home town of Sydney, Australia. In his post he looks at TMC, RDS-RT+ and SCA subcarriers and explains a bit about what they are and how they work. He also goes on to receive and decode the subcarriers with an RTL-SDR, gr-rds and GNU Radio. While Gough doesn’t bother to decrypt the TMC service, he can still see when an event occurs and what the even was. Without decryption he just doesn’t know where the location on the event is. For SCA he wrote a GNU Radio program to extract the audio subcarrier and was able to decode audio from a local Indian station for migrants.

SCA GNU Radio Decoder
SCA GNU Radio Decoder

Airspy vs SDRPlay: Two New Comparison Videos

Over on YouTube two new videos comparing the reception on the SDRplay and Airspy have been uploaded. The first is by Mile Kokotov and he compares the reception on a very weak broadcast FM station, with several strong signals surrounding it. He writes:

In this video I am presenting Airspy+SDR# vs SDRplay+SDRuno in the real world, receiving very weak FM broadcast station in the terrible conditions, with very strong signals around.
The Weak signal was in the lower edge of the FM broadcast spectrum, with very strong local signals close to the weak one, in the upper frequencies of the FM broadcast spectrum.
The antenna for the both SDR receivers was the same – Vertical Dipole for FM BC band.

Both SDR receivers were tuned to maximum possible signal to noise ratio (SNR) of the weak FM broadcast signal.

In SDRuno RSP control panel (for SDRplay receiver) ZERO IF and 0.3/0.6 bandwidth were chosen, and the weak signal of interest was placed on the right edge of IF filter, so that the strong signals from other FM broadcast radio stations were placed right from the weak one in order to minimized the negative influence to the our weak signal.
LNA was switched off. When the LNA was on, there where high distortion level because LNA was overloaded from the strong signals, and SNR was deteriorated regardless of gain reduction.
The best results were achieved with gain reduction set to “0”, without LNA.

In SDR# software (for Airspy SDR receiver) 10 MSPS and Decimation was used.
From the version 1480, in SDR#, when decimation is choosed, there is tracking filter which allow better selectivity, so you can use more gain, increasing the SNR to maximum possible level depending of concrete situation.

The overall receiving conditions was extremely bad. The signals from local FM radio stations were too strong so the weak signal from this video can not be received at all, with many expensive FM tuners which I tried: Pioneer VSX 527, Denon AVR-1802, Marantz SR6300. I was tried RTL-SDR just for fun, but it can not receive weak signal too :-), not because SDR-RTL is not sensitive enough, but because its dynamic range is not so high and it is overloaded by too strong local signals.

The very sensitive receiver is not problem to design and produce. Much more difficult is to design a high dynamic range receiver. which will be able to receive very weak and very strong signals at the same time without overloading.

Overloaded receiver front end means that it is not linear any more, and produces many signals by itself, increasing its noise level.
Very strong signals at the receiver front end makes Desensitization of the receiver, so it could not receive weak signals any more.
We should not forget that the receiver front end “looks” all signals from the wide frequency range even if we want to receive only one signal at the time. The more wideband the receiver is, the higher dynamic range it has to be, for not been overloaded…

SDRplay and Airspy receiving Very WEAK FM broadcast signal

In the second video Leif sm5bsz compares the Airspy+SpyVerter with the SDRplay RSP on HF reception. He concludes that the difference between the two radios on HF is small. However, Youssef from Airspy has contested the result, noticing that Leif ran the Airspy at 2.5 MSPS, resulting is significantly less decimation being used. In response Leif updated his video adding an A/B comparison on HF with the Airspy correctly running at 10 MSPS in the last 8 minutes of the video. The results seem to show that the SDRPlay and Airspy+Spyverter have similar HF performance, but when comparing maximum decimation on the Airspy and the smallest bandwidth the SDRplay to obtain similar bandwidth’s, the results seem to show that the Airspy+SpyVerter is about 5 dB more sensitive at receiving weak signals.