SNR - Eb/No for FEC and OFDM
15 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Rich Simeon
2023-12-8
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');
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 OFDM 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!