FreeDV SNR Performance

Matt Roberts - matt-at-kk5jy-dot-net

Published: 2018-05-29

Updated: 2018-05-30


FreeDV 1.2.2 The FreeDV software, by David Rowe and his team, is one of the first completely open-source and open-standard digital voice (DV) products available for general amateur radio use.  It is build around an open codec and modem, and allows for a high-quality voice transmission to be done in around 1.1kHz of spectrum.  Compared to other DV modes, it is incredibly spectrally efficient.  David didn't stop there, however, and he has been working on a whole family of DV modes that use even lower bit rates, making them more robust on our noisy HF bands.

What follows here is a brief study of the performance of FreeDV's modem and codec, when used on a channel containing AWGN, to evaluate the effects of steady-state noise floor.  This paper isn't intended as a complete study of the effects of other noise types, including pulse or impulse noise.  The study also doesn't attempt to simulate the various kinds of path distoration that can occur, such as Doppler, multipath, or fading.  However, for those wanting to compare the performance of David's DV mode to that of analog modes, the tests below should give a good feel for how each degrades with decreasing SNR, and by showing how each modem compares to analog voice in identical noise conditions.


The Tests

For each test, a voice test file is first encoded into a noiseless data stream.  The data stream then has a specific noise level mixed with it, before the noisy data stream is decoded back to voice audio.  The noise is generated by a PRNG with a roughly Gaussian distribution.  The level of noise and signal are adjusted before being mixed, so as to avoid clipping the result of the mix.

Separately for each test, the original voice test file has the same amount of noise applied to it as the digital stream, to generate a second test output for each SNR level, to allow for direct comparison between the DV and analog outputs.  This allows for the listener to hear what an analog (e.g., SSB) channel would sound like at that SNR, and compare it to what the DV modem would be able to recover on that same noisy channel.  The sampling frequency used for all of the test files is 8kHz, so the passband is only slightly larger than what would be encountered on a full-width SSB channel.

The only analog steps involved in the testing process were the original microphone recording of the voice sample, and the playback of the resulting audio files in the results table, below.  For best results during playback, it would be advantageous to listen to the result files using headphones, rather than speakers.  The intermediate test steps involved no analog processing, as the noise generaiton and mixing process was done digitally and automatically under control of a script.  The modem encoding and decoding were done using the command line tools provided as part of the codec2 package, and the intermediate results captured as raw digital audio files.


The Results

The original test file can be found here, as a WAV file download.  The recording uses 8000Hz sample rate, which yields a noise bandwidth of just under 4kHz.

The first modem tested was the 1600 version, which is the default for the FreeDV application.  The results at selected SNR values are collected in Table 1.  The table lists several columns:
SNR
This is the S/N ratio, measured in dB, of the environment in which the codec and modem were tested.
DV Output
This is decoded audio, recovered by the DV modem from the noisy channel at the specified SNR.
DV Plot
This is a plot of the DV Output audio.
Analog Output
This is original voice recording, with the same level of noise added to it as was used in the DV modem test for that row.
Analog Plot
This is a plot of the Analog Output audio.
Each of the DV and Analog audio results can be downloaded as a WAV file.  Each of the plots can be enlarged by clicking on the thumbnail.

SNR (dB)DV OutputDV PlotAnalog OutputAnalog Plot
+30 DV Analog
+25 DV Analog
+21 DV Analog
+18 DV Analog
+15 DV Analog
+12 DV Analog
+10 DV Analog
+9 DV Analog
+8 DV Analog
+7 DV Analog
+6 DV Analog
+5 DV Analog
+4 DV Analog
+3 DV Analog
+2 DV Analog
+1 DV Analog
+0 DV Analog
-1 DV Analog
-2 DV Analog
-3 DV Analog
-4 DV Analog
-5 DV Analog
Table 1: Test Results
FreeDV 1600 vs. Analog


As you can see in the plots, the DV demodulator tries to recover something from the data stream well into negative SNR values.  The intelligible, usable limit is somewhere around +2dB.  Under non-gaussian noise conditions, the lowest intelligible SNR will probably be a bit higher for both DV and analog modes.

Nonetheless, the 1600 DV modem has a nice edge over its analog counterpart, so it should be able to provide an improvement in received quality and intelligibility over analog modes for most uses.

The 1600 mode isn't the only one supported by FreeDV, however.  The results for the original 700 mode can be seen in Table 2, below.

SNR (dB)DV OutputDV PlotAnalog OutputAnalog Plot
+30 DV Analog
+25 DV Analog
+21 DV Analog
+18 DV Analog
+15 DV Analog
+12 DV Analog
+10 DV Analog
+9 DV Analog
+8 DV Analog
+7 DV Analog
+6 DV Analog
+5 DV Analog
+4 DV Analog
+3 DV Analog
+2 DV Analog
+1 DV Analog
+0 DV Analog
-1 DV Analog
-2 DV Analog
-3 DV Analog
-4 DV Analog
-5 DV Analog
Table 2: Test Results
FreeDV 700 vs. Analog


The 700 mode allows intelligible operation down to around 0dB SNR.  That's a nice improvement over the 1600 mode.  The sound is a bit tinny, but it is still quite usable, and the advantage over analog voice is quite clear.

A newer version of the 700 mode, called 700C, was tested next.  The results are collected in Table 3, below.

SNR (dB)DV OutputDV PlotAnalog OutputAnalog Plot
+30 DV Analog
+25 DV Analog
+21 DV Analog
+18 DV Analog
+15 DV Analog
+12 DV Analog
+10 DV Analog
+9 DV Analog
+8 DV Analog
+7 DV Analog
+6 DV Analog
+5 DV Analog
+4 DV Analog
+3 DV Analog
+2 DV Analog
+1 DV Analog
+0 DV Analog
-1 DV Analog
-2 DV Analog
-3 DV Analog
-4 DV Analog
-5 DV Analog
Table 3: Test Results
FreeDV 700C vs. Analog


The SNR performance is similar to the 700 mode, but the 700C mode has better fidelity in the restored waveform.  However, the modem's ability to synchronize to the received signal fell off earlier, with the modem missing synchronization completely below -4dB.

The codec2 library used in FreeDV supports an even newer mode as of version 0.8.  It is a refinement of the 700 mode called 700D.  This mode is supported in the FreeDV software as of version 1.3.  Its performance is shown in Table 4, below.

SNR (dB)DV OutputDV PlotAnalog OutputAnalog Plot
+30 DV Analog
+25 DV Analog
+21 DV Analog
+18 DV Analog
+15 DV Analog
+12 DV Analog
+10 DV Analog
+9 DV Analog
+8 DV Analog
+7 DV Analog
+6 DV Analog
+5 DV Analog
+4 DV Analog
+3 DV Analog
+2 DV Analog
+1 DV Analog
+0 DV Analog
-1 DV Analog
-2 DV Analog
-3 DV Analog
-4 DV Analog
-5 DV Analog
Table 4: Test Results
FreeDV 700D vs. Analog


The 700D mode allows intelligible operation down to somewhere between -2dB and -3dB SNR, depending on one's tolerance for artifacts.  That is an impressive improvement on both the 700 and 1600 modes, and far better than even an experienced analog voice operator could achieve on SSB.  If you listen to the corresponding analog audio, the signal is so completely buried in noise, that many listeners would be hard-pressed to tell you if there was even a voice signal present in the noise, at all.  The fact that the modem can decode a noise-free and completely understandable signal at that level is amazing.


Future Work

As explained above, this is a simple simulation of voice transmissions in AWGN.  HF band noise isn't anything close to Gaussian or white, and there are all kinds of bizarre types of noise and distortion that can interfere with transmission.  Each of these could be modeled and simulated, which would produce new results for each modem type.

Further, the SNR calculated assumes that the signals and noise have predictable and steady RMS power levels, which is certainly not true for the signals — neither the FreeDV digital signals, nor the analog voice signals.  That makes computing SNR an approximation at best.  The tests performed above assume that the signals and noise have RMS values that are a fixed fraction of their peak values, which is a reasonable first-order estimate.  That said, on-air SNR performance comparisons should keep in mind that analog voice transmission is highly dependent upon the real RMS power delivered to the RF signal.

There are probably some other improvements that I haven't considered, even to the simplified tests whose results are reported above.  I welcome input on how to improve the tests and/or its assumptions to improve the correspondence between the tests and real-world operation.

In the mean time, I encourage people to experiment with the new FreeDV modes, as digital voice is the future of HF voice operation.


Copyright (C) 2018 by Matt Roberts, KK5JY.
All Rights Reserved.