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.
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.
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.
On YouTube user pe1etr shows us a video where he uses his RTL-SDR combined with HDSDR, Virtual Audio Cable and RDS Spy to decode a distant RDS signal. RDS Spy is a free advanced software program capable of decoding weak RDS signals contained in many broadcast FM radio stations.
RDS stands for Radio Data System and is a digital signal embedded into broadcast FM signals. It is used by radio stations to display the name of the radio station and current song playing on an LCD screen.