Tagged: broadcast FM

The Taylorator: Flooding the Broadcast FM Band with Taylor Swift Songs using a LimeSDR

Over on Hackaday and creator Stephen's blog, we've seen an article about the 'Taylorator,' open source software for the LimeSDR that floods the broadcast FM band with Taylor Swift music. In his blog post, Stephen explains how he wrote this software, explaining the concepts behind audio preparation, FM modulation, and what computing hardware was required to implement it.

The advertised use case of the Taylorator is obviously a bit of a joke; however, as the video on Stephen's blog shows, his software can play a different song on every broadcast FM channel. So, there could be some use cases where you might want people to be able to tune an FM radio to custom music on each channel. Of course, you could also just use it to play a practical joke on someone.

In terms of legality, in his blog post, Stephen notes that blasting the broadcast FM band on every channel is probably not legal and may go against the spirit of low-power FM transmitter laws in most countries. However, he notes that spreading a few mW over 20 MHz of bandwidth results in a weak signal that is unlikely to travel very far. Regardless, we would advise potential users of the software to check their local laws before going ahead and playing around with something like this.

The software is open source and available on Stephen's GitLab.

The Taylorator: Broadcasting Taylor Swift songs on every broadcast FM channel
The Taylorator: Broadcasting Taylor Swift songs on every broadcast FM channel

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