|
For the BPSK modulation , a series of binary input message bits are generated of which ’1′s are represented by 1v and ’0′s are translated as ‘-1′ v (equivalent to NRZ coding as discussed in the previous post).
For BPSK modulation the channel can be modeled as
where y is the received signal at the input of the BPSK receiver, x is the modulated signal transmitted through the channel , a is a channel amplitude scaling factor for the transmitted signal usually 1. ‘n’ is the Additive Gaussian White Noise random random variable with zero mean and variance σ2.
For AWGN the noise variance in terms of noise power spectral density (N0) is given by,
For M-ARY modulation schemes like M-PSK including BPSK, the symbol energy is given by,
where Es =Symbol energy per modulated bit (x), Rm = log2(M) , (for BPSK M=2, QPSK M=4, 16 QAM M=16 etc..,). Rc is the code rate of the system if a coding scheme is used. In our case since no coding scheme is used Rc = 1. Eb is the Energy per information bit.
Assuming Es=1 for BPSK (Symbol energy normalized to 1) Eb/N0 can be represented as (using above equations),
From the above equation the noise variance for the given Eb/N0 can be calculated as
For the channel model randn function in Matlab is used to generate the noise term. This function generates noise with unit variance and zero mean. In order to generate a noise with sigma σ for the given Eb/N0 ratio , use the above equation , find σ, multiply the ‘randn’ generated noise with this sigma , add this final noise term with the transmitted signal to get the received signal.
BPSK receiver can be a simple threshold detector which categorizes the received signal as ’0′ or ’1′ depending on the threshold that is being set. Calculation of Theoretical BER for BPSK over AWGN is discussed here.
http://www.edaboard.com/thread173802.html
y = s + 10^(-Eb_N0_dB(ii)/20)*n;
The term 10^(-Eb_N0_dB(ii)/20)*n is derived as follows:
For AWGN channel with noise power spectral density N0 the standard deviation of noise is given by
σ = √(N0/2) --------> (1)
For BPSK the symbol energies are assumed to be normalized to 1 (since 0 represented by -1 and 1 represented by +1 )
Given Eb_N0_dB has to be converted to linear scale first
Eb/N0 = 10 ^(Eb_N0_dB/10); --->(2)
Now we need to find the sigma of noise according to the desired Eb/No ratio
if Eb=1 in (2)
then
1/N0 = 10 ^(Eb_N0_dB/10)
=> N0 = 1/(10 ^(Eb_N0_dB/10) ) ---> (3)
(3) in (1)
σ = √(1/(10 ^(Eb_N0_dB/10) )/2)
or
σ =1/√2 * 1/(10 ^(Eb_N0_dB/20)
when u use randn function in matlab to generate noise (n) , it generates AWGN noise with unit variance and zero mean.
For various Eb/No ratio, Eb is fixed (because we use the same signal to transmit and want to see the effect of Eb/N0 on its BER) so only choice is to change the noise term. Since the sigma of generated noise is 1 (unit variance) you can change it by multiplying it with 10^(-Eb_N0_dB(ii)/20)*n which is the sigma of noise for the given Eb/N0