Search code examples
matlabsignal-processingnoise

Calculate SNR of Binary symmetric channel


I have generated a matrix of binary words and transmitted them over a binary symmetric channel with cross over probability P using Matlab's function bsc. At the receiver side, some of the code words will be received with errors.

Next I want to calculate the signal to noise ratio. In the research that I've done, the signal and noise are measured in terms of power using watts, however this cannot be done in my example. I ve also read that Signal-to-noise ratio is sometimes used informally to refer to the ratio of useful information to false or irrelevant data in a conversation. Does this mean that the signal to noise ratio can be regarded as the number of bits received correctly vs the number of bits received incorrectly?


Solution

  • You can't quite calculate a signal to noise ratio (SNR) since you don't know the noise power with a Binary Symmetric Channel (BSC). All you know with this channel model is that whatever the noise power is, it's causing errors with probability P.

    At best you could compare it to the SNR of an equivalent system producing the same error probability. For example, you could consider a system where a BPSK signal is transmitted over an Additive White Gaussian Noise (AWGN) channel and received by a hard decision decoder. In this case the relation between the SNR and the error probability is well know to be:

    P = \frac{1}{2} \mbox{erfc}\left(\sqrt{\frac{\mathcal E_ b}{N_0}}\right)

    or equivalently:

    \mbox{SNR} = \frac{\mathcal E_ b}{N_0} = \left(\mbox{erfc}^{-1}\left(2P\right)\right)^2

    But I should stress again that this only serves as a comparison and only makes sense when referencing the system you are comparing your BSC with (i.e. choosing a different system would yield a different P vs. SNR relationship).