Category: Applications

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

Setting up Air Traffic Control Audio Sharing with Broadcastify, RTL-Airband, RTL-SDR and a Raspberry Pi

Over on YouTube Fuzz The Pi Guy has uploaded a video tutorial showing how to set up a Broadcastify air traffic control audio feed with RTL-Airband and an RTL-SDR running on a Raspberry Pi. This allows you to publicly share your received air traffic control audio online via sites like Broadcastify.

The video is based on a comprehensive Radioreference text tutorial which takes you through the process from scratch. Setting it up involves installing the Raspbian OS, installing RTL-SDR, installing and setting up RTL-Airband, configuring ezstream and then ensuring that everything runs automatically on boot. It's a fairly involved setup process, but the video helps make things easier.

How To Setup Broadcastify On A Raspberry Pi Using RTL_AM For Aviation

Video Tutorial: Installing GNU-Radio on Windows 10

Over on YouTube user Petr Horký has uploaded a helpful tutorial video showing how to install GNU Radio on Windows 10. Petr goes through the steps from installing Python, pip and other dependencies like numpy and pyqt, to installing GNU Radio itself and then ensuring that the system PATH is set correctly.

GNU Radio is a block based programming language for building digital signal processing applications (e.g. demodulators/decoders). It is very useful for experimenting with more advanced SDR concepts, and there are also many RTL-SDR compatible applications built with GNU Radio as well. GNU Radio is typically run on Linux, but can also run on Windows now too, although perhaps not every program will be compatible.

How to install GNU Radio Companion on Windows 10 (pip, environment variables)

USA-Satcom XRIT Decoder Updated

USA-Satcom is the programmer of XRIT Decoder (not to be confused with XRITDecoder by CM2ESP), which is a popular (paid) Windows decoding application for GOES weather satellites. Recently, over on the SDRplay forums RSP2user made a note about the latest update:

USA-Satcom has just released v2.1.0.0 of the XRIT Decoder. Along with enhancements for the XRIT Decoder, a new RSP Streamer X has been released and is operable with the RSP1A, RSP2, and RSPduo - new features include operation with two streams simultaneously (provided that the PC being used has sufficient processing power and an RSPduo or more than one compatible RSP are being used). Also new is the XRIT File manager which allows for improved operation with both LRIT and HRIT files, improved LUT for excellent false color images, user-selectable automated black filling of the white background on full disk visual and false color HRIT images, and country as well as state map overlays.

The new color enhancements are excellent:

GOES 16 Full Disk Weather Satellite Image. Received by RSP2user with V2.1.0.0 of XRIT Decoder.
GOES 16 Full Disk Weather Satellite Image. Received by RSP2user with V2.1.0.0 of XRIT Decoder.

If you are interested in receiving and decoding GOES images, we now have several previous blog posts on this topic which may be helpful.

A Tutorial on Receiving HF SSTV with a Raspberry Pi and RTL-SDR V3

Thank you to Giuseppe (IT9YBG) who has written in to share his tutorial about setting up a direct sampling RTL-SDR V3 based SSTV receiver on a Raspberry Pi. He writes that he uses the receiver to continuously receive images at 14.230 MHz, but with a frequency tweak in the command line code the system could also be used to receive the VHF SSTV images sent by the ISS.

In the tutorial he uses the free QSSTV software for decoding. An RTL-SDR together with the CSDR DSP software is used to set up a command line based receiver, which pipes the SSTV audio into a virtual audio sink, and then into QSSTV. The receiver setup procedure is similar to the method used in our RTL-SDR V3 QRP monitoring station tutorial, and is a very nice way of setting up an efficient command line based RTL-SDR audio output.

QSSTV Running on a Raspberry Pi with RTL-SDR V3 Radio
QSSTV Running on a Raspberry Pi with RTL-SDR V3 Radio

A Multi-Feature Raspberry Pi Radio with RTL-SDR, Internet Radio, Google Assistant and Alexa

Recently JJ wrote in and wanted to share his multi-feature living room radio that he's created with a Raspberry Pi, RTL-SDR, and various software packages installed on the Pi. Previously we posted about his cute LegoPi radio, and this living room radio is an iteration on that.

The radio is able to tune into live broadcast FM via an RTL-SDR and the NGSoftFM software, and also can be remotely access with SpyServer. It can also tune into internet radio, or play MP3 files. He's also installed Google Assistant and Alexa onto the Pi, so it can work as a digital assistant too. The features and software he uses are noted below:

FM / DAB+ / Internet radio with random mode / MP3 player / Google assistant / Amazon Alexa / SPYserver (SDRsharp), all controlled with a USB keypad or a Bluetooth remote control.

OS
I used RASPBIAN STRETCH LITE (https://www.raspberrypi.org/downloads/raspbian/)
Small, efficient and very stable (NO GUI). Radio boots in 15 seconds (Raspberry Pi 3 Model B).

FM
NGSoftFM (https://github.com/f4exb/ngsoftfm)
Works well but needs a clean / strong signal.

DAB+
dab-cmdline (https://github.com/JvanKatwijk/dab-cmdline)
Works well but needs a clean / strong signal. I used example-2.

Internet radio
VLC (https://www.videolan.org/vlc/index.html)
The random internet radio part is a lot of fun to use. You can do random by genre or just random everything. Reminds me when turning the MW dial at night when I was a kid and not knowing what was coming next!
It is just a python script that fetch the icecast directory then populate a small SQL database on the pi. I used this (https://github.com/ksc91u/icecast_play) as a starting point.

MP3 player
VLC. I used a 16GB SD card on the pi (good compromise between speed of boot versus capacity). The whole system takes a little bit less than 5GB, which means I have 10GB+ for MP3 files.

Google assistant
Fun and addictive, I used an old webcam that was gathering dust as a USB microphone. Pick-up range is pretty good, 4-5 meters in a quiet room. I followed these instructions:
https://developers.google.com/assistant/sdk/guides/library/python/

Amazon Alexa
My favorite! Fun and addictive, I followed these instructions:
https://developer.amazon.com/docs/alexa-voice-service/set-up-raspberry-pi.html

SPYserver
More a gadget than a serious tool because I'm using a wire for antenna (on the last radio) but has proven to be usefull to help position the wire for optimum FM / DAB+ reception by looking at the spectrum and play with the dongle gain in SDRsharp (https://airspy.com/spy-servers/).

Bluetooth remote control
I used a PlayStation 3 (PS3) bluetooth remote since the pi 3 has bluetooth built-in.
Easily available in used video game stores and very cheap, the remote works very well but it took me a while to get it going. This page helped:
https://www.mythtv.org/wiki/Sony_PS3_BD_Remote

Last but not least, the radio is a complete Linux environment so I can connect to it from my Win10 box via SSH (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) and play with all the RTL-SDR goodies, even GNU Radio :-) providing you install a desktop environment (for ex. PIXEL) on top of Raspbian Stretch Lite.

JJ has also uploaded a video here.

JJ's Radio is Packaged in a Plastic Toolbox
JJ's Radio is Packaged in a Plastic Toolbox
All the pieces
All the pieces

AERO C-Channel Voice Audio Now Decodable with JAERO

JAERO was recently updated by programmer Jonti, and it now supports the decoding of AERO C-Channels which are voice audio channels that exist on both the L-Band and C-Band frequencies of AERO. AERO is a satellite based communications service used by modern aircraft. The information transferred are normally things like aircraft telemetry, short crew messages, weather reports and flight plans. It is similar information to what is found on VHF/HF ACARS.

Jonti notes that these C-Channel voice signals are very weak as they are spot beams, so a good antenna system is required to receive them. Over on Jonti's JAERO website there is now some information about these C-Channels (scroll all the way down to the C-Channel heading and read to the end of the page), as well as a frequency list. An excerpt of the information is pasted below:

Inmarsat C and in particular AERO C channels provide circuit switched telephony services to aircraft. The channels of interest are those that carry AMBE compressed audio at a channel rate 8400 bps and voice rate of 4800bps. There is also an older speech codec still in use, LPC at a voice rate of 9600 bps and an overall channel rate of 21000bps.

Telephone channels are two-way duplex. In the from-aircraft direction transmissions are roughly in the 1646 to 1652 Mhz range. The satellite up-converts these transmissions to C band, similar to T and R channel burst transmissions. So it is possible to receive the from-aircraft transmissions although it is significantly more difficult than those in the to-aircraft direction on the L band. So for those who want to get started receiving these transmissions the L band is by far the easiest place to start.

Another aspect of the C channels is that they most often use spot beams rather than global beams which makes it more difficult to receive transmissions for aircraft using a spot beam that is aimed at another region. However if you are inside the spot beam the transmissions are relatively easily received on L band. A 60 cm dish with an LHCP helical and L band LNA will provide excellent results but even with a patch antenna it can be done.

Decoding these channels to audio in JAERO takes a little effort to setup. Due to the uncertain legal status of the digital audio AMBE codec, the codec code needs to be compiled manually first, and then placed into the JAERO directory. Jontio has uploaded the AERO AMBE codec source code at https://github.com/jontio/libaeroambe. Since JAERO is a Windows program, compilation of libaeroambe involves using MSYS2.

Once fully set up with the audio codec, the audio will come out of default soundcard set in Windows audio properties, so ensure that any Virtual Audio Cables are not set as the default device.

On the L-band link you can get conversations from the ground to the plane. The C-band link would get you the plane to ground side of the conversation too, but that is a challenging signal that would require a large dish and Jonti doesn't know of anyone who has managed to receive that before. Typically the conversation topics are things like Medlink which is a multilingual medical support line that can provide backup to doctors or aircrew handling medical emergencies in the air. In Europe the USAF also apparently use C-Channel.

AERO C-Channel Being Received with JAERO
AERO C-Channel Being Received with JAERO

UFO Detection with an Image Intensifier and FM Reflections Received with an RTL-SDR

Recently reader Syed Ali wrote in and wanted to share some experiments in UFO detection that he's been performing with an image intensifier and an RTL-SDR. The RTL-SDR is used to detect a distant FM radio station reflecting from objects passing overhead, and the image intensifier is a sensitive camera that helps make events like satellite passes more visible. In his video some visually detected objects like a possible satellite pass or aircraft at 0:09 to 0:18 and 0:55 to 1:00 seem to correlate with a radio reflection. 

Syed Ali writes:

These are three small video clips taken from an hour observation. I had an idea how to use RTL-SDR for meteor detection. So I tuned my rtl-sdr to a distant FM Radio station behind a mountain range from my own location. Any object flying over mountain range can be detected by receiving the transmission of that FM radio station via its signal being reflected from that flying object.

So I set up my image intensifier pointing towards the sky in the same direction above those ranges. I recorded a few unknown objects in the video viz a viz their RF reflections and Dopplers in sdrsharp software.

You will also notice a strange laser beam which seems to be coming from the sky to the ground because it encircles and changes its position around the field of view of my image intensifier. Moreover, in the last few seconds of the clip, you will see a strange object hovering and then taking a U turn near left edge of the video frame. Those were indeed strange findings. Please see for yourself and do leave your comments. Thanks. Observation Time : 1:20 am to 2:30 am, 21 October 2018

We're a little skeptical about the UFO claims though, as the lasers may just be car headlights, and the fast moving object may just be a bug reflecting light, and the lack of radio reflections around those points seem to confirm that nothing large is there.

UFO Detection using Image Intensifier and RTL-SDR