Continue to Site

# EbNo BER problem in noise channel model

Status
Not open for further replies.

#### ReComm

##### Member level 2
I use the following formula to generate noise in AWGN BPSK and QPSK , but it failed in QAM16,QAM256
Any suggestion , why it failed?

Es = Rc * log2M*Eb
σ2 = No/2

Rc : Coding rate =1
M : constellation points
Es: energy per symbol
Eb: energy per bit
σ : Standard deviation
No : noise spectral;

Eb/No (BPSK) = 1/2σ2
Eb/No (QPSK) = 1/4σ2

Eb/No (QAM128) = 1/14σ2

using the following code to generate noise channel

EbNo = 10.^(x/10); %Converting Eb/N0 dB value to linear scale
noiseSigma = sqrt(1./(2*EbNo)); %Standard deviation for AWGN Noise
noise_tx_signal1 = noiseSigma*((randn(1,length(rx_signal1l)))+1j*(randn(1,length(rx_signal1l))));
rx_signal = rx_signal1l + noise_tx_signal1;

it works correctly in BER vs. EbNo curves for BPSK, QPSK but not for higher modulation schemes?
Is there any error in formula or matlab code?

Eb/No (QAM128) = 1/14σ2 ,,is not correct because in the case of qam you have to consider the constellation of qam before calculating the average power of signal.
It comes out to be correct in case of qpsk because there magnitude is constant, only symbol duration is double of bit duration.

how can i use new correct formula for QAM128?

just make the constellation and calculate average power by E(sum(abs(x*x)))..
eg. bpsk Pav= 0.5*1+0.5*abs(-1)=1...........Eb/No (BPSK) = 1/2σ2
qpsk..in your constellation the symbols are at [1,1],[1,-1],[-1,-1],[-1,1]..
Es=2...Eb=1... but here noise have in phase and quadrature components so noice variace = 2σ2....No=4σ2........Eb/No (QPSK) = 1/4σ2

Status
Not open for further replies.