SNR and Eb/No Worked Example

German Hams Helmut and Alfred have been doing some fine work with FreeDV 700B at power levels as low as 50mW and SNRs down to 0dB over a 300km path. I thought it might be useful to show how SNR relates to Eb/No and Bit Error Rate (BER). Also I keep having to work this out myself on scraps of paper so nice to get it written down somewhere I can Google.

This plot shows the Eb/No versus BER for of a bunch of modems and channels. The curves show how much (Eb/No) we need for a certain Bit Error Rate (BER). Click for a larger version.

The lower three curves show the performance of modems in an AWGN channel – a channel that just has additive noise (like a very slow fading HF channel or VHF). The Blue curve just above the Red (ideal QPSK) is the cohpsk modem in an AWGN channel. Time for some math:

The energy/bit Eb = power/bit rate = S/Rb. The total noise the demod sees is No (noise power in 1Hz) multiplied by the bandwidth B, so N=NoB. Re-arranging a bit we get:

    SNR = S/N = EbRb/NoB

or in dB:

    SNR(dB) = Eb/No(dB) + 10log10(Rb/B)

So for FreeDV 700B, the bit rate Rb = 700, B = 3000 Hz (for SNR in a 3000Hz bandwidth) so we get:

    SNR = Eb/No – 6.3

Now, say we need a BER of 2% or 0.02 for speech, the lower Blue curve says we need an Eb/No = 4dB, so we get:

    SNR = 4 – 6.3 = -2.3dB

So if the modem is working down to “just” 0dB we are about 2dB worse than theoretical. This is due to the extra bandwidth taken by the pilot symbols (which translates to 1.5dB), some implementation “loss” in the sync algorithms, and non linearities in the system.

I thought it worth explaining this a little more. These skills will be just as important to people experimenting with the radios of the 21st century as Ohms law was in the 20th.

2 thoughts on “SNR and Eb/No Worked Example”

  1. Hmm, the 700 bits/s is confusing though, as the modem receives (14 carriers at 2-bits each) 28-bits at 75 baud, or 2100 bit/s.

    Wouldn’t that be 10 * log10(2100/3000) or -1.55, and 4 – 1.55 = 2.45 dB SNR

  2. Couple of factors Steve:

    1/ The actual bit rate over the channel includes pilot symbols that don’t carry any information. This spreadsheet has some more info:

    http://svn.code.sf.net/p/freetel/code/codec2-dev/octave/cohpsk_frame_design.ods

    2/ The last 7 of the 14 carriers are copies of the first 7. At the demodulator they are added back together. So the 14 carrier OTA waveform is the same at 7 carriers at 3dB more power/carrier.

    So we could say SNR = 4.0 + 10*log10(2100/3000) + 3dB = -0.56dB,

    or: 4.0 + 10*log10(1050/3000) = -0.56 dB

    That’s 7 carriers at 1050 bit/s total (including pilots), or 700 bit/s of payload data plus 350 bit/s of pilot symbols. The difference between 10*log10(1050/3000) and 10*log10(700/3000) is the overhead we pay for the pilot symbols.

Comments are closed.