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?
wait your reply
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?
wait your reply