In GNU Radio, BER vs SNR can be measured by fixing the signal energy and varying the amplitude of the noise source block. For example, in BPSK, we have transmitted signal $s\left(t\right)$ with a given bit energy $E_{s}$ and symbol period $T_{s}$

$s\left(t\right) = \sqrt{\frac{2E_{s}}{T_{s}}} \cos\left(2\pi f_{c}t + \phi _{n}\right) $

I calculated the average energy of this signal as

$E_{avg} = \frac{\left(\sqrt{\frac{2E_{s}}{T_{s}}}\right)^{2} + \left(\sqrt{\frac{2E_{s}}{T_{s}}}\right)^{2}}{2} = \frac{2E_{s}}{T_{s}} = \frac{2E_{s}}{SamplesPerSymbol} = \frac{2\times 1}{SamplesPerSymbol} $

Given noise spectral density $N_{o}$, The SNR can be calculated as

$SNR = 10\log\left(\frac{\frac{2E_{s}}{T_{s}}}{N_{o}}\right)$

The noise voltage amplitude is then calculated as

$V_{n} = \sqrt{\frac{N_{o}}{2}} = \sqrt{\frac{1}{SamplesPerSymbol\times 10^{SNR/10} }} $

The analysis above works perfectly for BPSK.

Below is a flowgraph I use for running BER vs SNR tests for GFSK/GMSK. The sample rate is fixed at 2M. A GFSK transmitted signal $s\left(t\right)$ with a given bit energy $E_{s}$ and symbol period $T_{s}$ is given by (in IQ format)

$s\left(t\right) = \sqrt{\frac{2E_{s}}{T_{s}}}[ \cos \phi\left(\alpha , t \right)\cos\left(2\pi f_{c}t\right) - \sin \phi\left(\alpha , t \right)\sin\left(2\pi f_{c}t\right)]$

By looking at the output of the GFSK modulator, the signal level amplitude is in the $\pm 1$ range no matter how many samples I used. I, therefore, decided that the average energy is

$E_{avg} = \frac{1^{2} + 1^{2}}{2} = 1$

Using the average energy above, noise voltage amplitude is now

$V_{n} = \sqrt{\frac{N_{o}}{2}} = \sqrt{\frac{1}{2\times 10^{SNR/10}}}$

As you might have guessed, it doesn't work as I hoped. The BER gets better when I increase the number of samples per symbol. In one case, I used 100 samples per symbol at 0dB SNR and the BER was 0.

My question is how to calculate $E_{avg}$ for GFSK/GMSK?

Regards, M.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.