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
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.
The performance of WiFi networks can depend heavily on how crowded the WiFi channels are in your area. For example when your neighbours start streaming a movie over their own separate WiFi network, it can cause your own WiFi connection to slow down. This happens because generally separate WiFi networks do not collaborate with one another, and when two packets are sent on the same channel at the same time, they collide causing no packets to get through.
There are several methods that attempt to stop collisions, but none are very efficient because WiFi nodes are not synchronized to one another. If each WiFi node could be synchronized to a common reference time, then avoiding collisions is made easier.
Marcel Flores, Uri Klarman, and Aleksandar Kuzmanovic from Northwestern University have been working on this idea and have come up with a system they have termed Wi-FM which is based on FM RDS signals. Many FM radio stations transmit a digital Radio Data System (RDS) subcarrier on their broadcast frequency. This RDS signal is often used to simply display information on the radio such as the station name and current song playing.
Since each nearby WiFi node should be able to receive the same RDS signal at the exact same time, it can be used as a common synchronization signal. Then once synchronized each WiFi node can listen to the other nodes and work out what their transmit scheduling is like and then optimize their own transmit schedule.
In their prototyping they used an RTL-SDR dongle connected to a PC running GNU Radio. The GNU Radio program decodes the RDS signal and the resulting information is sent to the Linux kernel which handles the WiFi transmit schedule processing.
Over on YouTube user pe1etr has uploaded a tutorial video showing how to set up RDS Spy and SDR# for monitoring RDS. RDS stands for Radio Data System and is a sub carrier added to some FM broadcast signals which carries information such as the station name, the song/programme playing and other data. Although SDR# decodes RDS stations already, a more powerful RDS decoder and monitoring tool is RDS Spy. To get RDS Spy to work with SDR# you need to use a special plugin called MPX Output, which allows SDR# to output audio that includes the RDS subcarrier, which can then be piped via a virtual audio cable to RDS Spy.
Pe1etr’s video shows how to install the MPX Output plugin, how to set it up with virtual audio cable and how to use it with RDS Spy.
Tutorial: Using RDS Spy with the SDR# mpx output plug-in
Hak5 has recently posted another video continuing their easy to follow series on GNU Radio and the RTL-SDR. In this video they talk about Radio Data System (RDS) and explain how it is a digital signal that is embedded in broadcast FM signals. They then download GR-RDS, a GNU Radio based RDS decoder program and use it to decode a local RDS signal.
Decoding Digital Subcarriers with a $20 SDR, Hak5 1602
GR-RDS is a GNU Radio program which can be used for the decoding of FM RDS data with the RTL-SDR. It has recently been updated to support GNU Radio 3.7.
RDS is an acronym for Radio Data System, which is used in FM radio transmissions to embed information such as radio station and programme/song information. Some conventional FM radios display this information on an LCD screen.
One the authors of GR-RDS has also recently posted a video on YouTube showing it in action with an RTL-SDR source block.
We gave Wavesink Plus a test today on a HTC One X Android phone and were pleased to discover that it works perfectly. The user interface has been tidied up from previous versions, and DAB+ has been added. There is now also auto tuning functionality, which will automatically find a station.
In further testing we found that the latest version of Wavesink was fast and snappy and was able to load DAB+ stations quickly, and decode them with clear audio. FM radio also sounded clear and RDS information loaded quickly as well.