SNR - Eb/No for FEC and OFDM
21 views (last 30 days)
Show older comments
Hello,
I would like to perform a BER simulation hence I require the SNR for the awgn channel. I am using FEC (RS+CC) and OFDM. In addition QAM modulation is applied to the signal.
I am using following equation: It consists of the actual Eb/N0 + Bits/Symbol * Coding Rate - samples per symbol + message length/code length + (data carriers size / fft size + fft size/(fft size + cyclic prefix size))
I want to calculate the corresponding SNR of an actual data bit. Is this the correct formula?
Thanks a lot
snr_tot_dB = EbNo_tot + 10*log10(k*codeRate) - 10*log10(sps) + 10*log10(K/N) + (10*log10(DC/NFFT) + 10*log10(NFFT/(NFFT+NCP));
snr_tot = 10.^(snr_tot_dB./10);
awgnChanOut = awgn(OFDM_TX_serial,snr_tot,'measured','linear');
0 Comments
Answers (1)
Rich Simeon
on 8 Dec 2023
Based on your question, you are looking to calculate the overall SNR to apply the correct amount of AWGN to the signal to produce a bit error rate curve. Also I will assume that the EbNo is the EbNo per OFDM subcarrier.
The coding rate is defined as the message length divided by the code length, so it appears you have that accounted for twice in your equation. I believe the "10*log10(K/N)" is redundant, since it is covered by "Coding Rate" and should be removed.
Also, cyclic prefix should not be included in the calculation. This is because the receiver will immediately remove samples related to the cyclic prefix when demodulating the signal. Because the receiver never sees the energy of those samples in the cyclic prefix, it should not count towards the SNR. So the last term in your equation should be removed as well.
You can refer to the documentation on the Communictions Toolbox function convertSNR (convertSNR) to see more of an explanation on how EbNo is calculated. Also, there is an explanation for how SNR is calculated in multicarrier (OFDM) systems. You have correctly included the "+10*log10(DC/NFFT)" factor in your calculation (this assumes that all subcarriers are transmitting at the same power) to account for the possibility that not all subcarriers will be filled with energy.
Finally, it is not necessary to compute the linear SNR value for the awgn function. By default, the awgn function accepts SNR in dB, so you may use this instead:
awgnChanOut = awgn(OFDM_TX_serial,snr_tot_dB,'measured');
See Also
Categories
Find more on Propagation and Channel Models in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!