RTL-SDR Tutorial: Decoding Digital Voice (P25, DMR, NXDN, D-STAR) with DSD

The RTL-SDR software defined radio combined with SDRSharp and a program called “digital speech decoder” (DSD) can be used as a radio scanner to easily and cheaply listen to unencrypted digital radio voice conversations.

Digital radio voice communications are becoming more commonly used in the radio spectrum. This is due to the various improvements offered over traditional analogue voice radio systems. Unfortunately for radio scanner hobbyists, digital radio is difficult to receive, as special radio scanners which can be expensive are required to decode the digital signal. Additionally, digital radio systems can be encrypted making it impossible for communications to be decoded by a hobbyist. However, most users of digital radio do not bother to encrypt their systems as it can introduce lag, monetary expense and extra battery drain in portable radios.

The most common digital speech codec is APCO P25, which DSD is able to decode. DSD is also capable of decoding other common digital codecs such as DMR/MOTOTRBO, NXDN, D-STAR and ProVoice.

Super cheap software defined radios such as the RTL-SDR can be used to decode these digital voice communication signals instead of expensive radio scanners. While this tutorial is aimed at the RTL-SDR, other software radios such as the Funcube dongle, Airspy, HackRF and BladeRF will also work. Hardware radios with discriminator taps connected to a PC may also work.

Examples of DSD Decoding Digital Voice with RTL-SDR as a Radio Scanner

YouTube user Geoff Wolf shows a video where he uses RTL-SDR as a police scanner to listen to public safety P25 digital radio using DSD, SDRSharp and virtual audio cable.


YouTube user Superphish uses RTL-SDR as a radio scanner to decode MOTOTRBO digital voice of a taxi company, using DSD, SDRSharp and virtual audio cable.


Here YouTube use Superphish uses the RTL-SDR to decode D-STAR conversations using DSD 1.7, HDSDR and virtual audio cable.


Tutorial – Decoding Digital Voice using SDRSharp, DSD and RTL-SDR (For Windows)

It is assumed you have an RTL-SDR dongle set up and working with SDRSharp. If not, see the Buy RTL-SDR, and Quickstart pages first before attempting this tutorial.

There are two different version of DSD that need to be mentioned. There is DSD 1.7 which is open source software that is under active development and there is DSD+ which is closed source software. DSD+ has vastly superior decoding especially for weak signals but it cannot yet decode D-STAR. DSD 1.7 has poorer decoding, but it is capable of decoding D-STAR. To download each version of DSD see the links below. Once downloaded extract the contents zip file to a folder on your PC.

  • Compilation instructions and a binary download of DSD 1.7 can be found on this post. Note that the binary download is at the end of the post.
  • Downloads of the latest DSD+ version can be obtained from dsdplus.com. To install it download both the latest DSDPlus and DSDPlus DLL zip files. Extract both zip files into the same folder.

Next you will need an audio piping utility such as the paid version of Virtual Audio Cable or the free VB-Cable.  Also ensure virtual audio cable or VB-cable is set as the default recording audio device in windows sound properties as DSD will use the default sound device.

If you are unfamiliar with what a digital voice signal may look like, two waterfall examples are shown below, with audio examples recorded in NFM mode.

P25P25 Waterfall Example





Now to decode the digital voice signals follow these instructions.

  1. Open SDRSharp and set the audio output to Virtual Audio Cable or VB-cable.
  1. Set the receive mode to NFM, with a bandwidth of about 12.5 kHz.
  1. Tune to a digital voice signal frequency. You will need to Google for these frequencies by your location. The radioreference databases may be a good place to start looking for these frequencies. Most digital voice frequencies for many countries will be around 460 MHz or 850 – 900 MHz. D-STAR frequencies are usually at around 145.670 MHz.
  1. To use DSD 1.7 for D-STAR: Open a command prompt from Start->All Programs->Accessories->Command Prompt, and navigate to the folder where DSD 1.7 is located. For those who are not familiar with the command prompt, use the “cd” command to change directories within command prompt. For example, if your DSD 1.7 folder is located in c:\Radio\dsd-1.7, you would type in command prompt “cd c:\Radio\dsd-1.7”.
  1. Now type into the command prompt the command “dsd -i /dev/dsp -o /dev/dsp -fd” to begin decoding. This will use the default sound device set in Windows sound recording properties
  1. To use DSD+: Simply double click on the DSDPlus.exe executable and the GUI will open up.

At this point, text should be scrolling through the command prompt window when a digital signal is broadcasting. Whenever someone speaks into the radio you should see the words “voice” in the window and hear voice.

DSD Command Prompt
DSD Command Prompt
DSD+ GUI Windows

DSD+ can also be used to decode LRRP signals from Motorola (MOTOTRBO/DMR) radio signals. Some Motorola radio broadcast GPS coordinates every few minutes or on request. This is useful for tracking a fleet of vehicles for instance. To show decoded LRRP coordinates on a map when using DSD+, simply open LRRP.exe. Note that many LRRP radio users use a third party GPS software system which cannot be decoded by DSD+. If you do not see any coordinates in the DSD+ event log when an LRRP event occurs this may be the case.

To get good decodes (for most sound cards), the volume settings in SDRSharp and Windows should be played with until decoding begins to improve.

To stop DSD, simply press “ctrl + c” at the command prompt while it is running.

Some Tips

  • If you don’t know what P25, MOTOTRBO, ProVoice or any digital voice signals sound like, this page has some more example audio files.
  • You can simply manually scan through various signals, and see if DSD starts scrolling text to see if a signal is supported. DSD will start attempting to decode immediately. Note however that DSD will also scroll text on trunking channels, but will not be able to decode them. See the next section for information on decoding trunking channels.
  • A strong signal is required for DSD to decode audio well. Ensure you are using a good antenna and have set the RTL-SDR gain correctly.
  • DSD will listen to the default windows sound recording device. Make sure virtual audio cable or VB-cable is set as the default device. No text will be scrolling within DSD if the wrong audio device is used.
  • Stereo mix can be used, but you will be hearing both the digital signal as well as the decoded voice at the same time. Also, the decoded voice audio will be pumped back into DSD causing a detrimental feedback loop.
  • DSD is software in development and may not perform as well as a commercial digital radio.

More Advanced Digital Radio Scanning

We can set up a digital trunking radio scanner using these tools, two RTL-SDR dongles and another piece of software called Unitrunker. See our Unitrunker Trunking tutorial for information on setting this up.

If you enjoyed this tutorial you may like our ebook available on Amazon.

The Hobbyist’s Guide to the RTL-SDR: Really Cheap Software Defined radio.


  1. AmatorRadioResearch

    Hi everyone I am focusing on the demodulation of c4fm modulation which is actually a Continuous Phase 4 Frequency Shift Keying (CP4FSK). The demodulation method of mine works perfectly if time synchronization is done beforehand. By the way I have no Idea how the synchronization is carried out in DMR signals. There is a sync pattern in the document which has 48 bits (or equivalently 24 symbols) by which we can correlate to find the sync signal. But no correlation is found in my synchronization , and no peak is detected.
    Would you mind helping with me if you have any experience in the synchronization of DMR ? With regards, Amator Radio Research

  2. lisa

    CLASSICAL ATM HACKERS, is the only genuine ATM cloned card vendor which i have tested and confirmed. So i met this hacker online and we emailed back & forth about an ATM card and how they create them and sells them thus was curious how this could be true. I was in trouble financially two weeks ago so i told him i need one asap. I western union some money to him and to my greatest shock, the card was shipped to me in 44 hrs. When i got it i went to a near by ATM which was across the street from my house and i asked for $9000 and it actually dispensed the fucking cash{ WHAT A MIRACLE} so since then I’ve been able to get money freely with no pin. Contact their email if you truly need this card. ([email protected] , [email protected])….

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>