MATLAB:在信噪比 (SNR) 或 EbNo 方面添加噪声?

信息处理 matlab 数字通信 信噪比 bpsk 基带
2022-02-02 12:02:29

信号x从字母集中获取值。
我的目标是hest使用自适应方法估计信道参数,然后绘制估计系数与所考虑的 SNR 值的实际与范围之间的均方误差 (MSE) 图。这些是以下问题:

  • BER 与信噪比图——当我想绘制 BER 并且信号采用 BPSK 以外的值时,比如 QAM,那么我还将通过使用相同的代码相加来估计每个 snr 的信道snr系数awgn()那么 X 轴是否应该标记为EsNoEbNo在此处提出的类似问题中,将具有正确噪声功率的 AWGN 噪声添加到信号中

答案是使用EbNo. 在 Matlab 实现https://www.mathworks.com/matlabcentral/fileexchange/39011-ber-comparison-of-m-ary-qam?focused=5251697&tab=function中,使用EbNo范围生成特定 snr 的噪声信号. 但是,所示的 BER 图EbNo在 X 轴上。这很令人困惑,因为该awgn()函数是 usingsnr而不是EbNo

  • 误差与 snr 的关系图——对于添加的每个噪声,我将计算估计值与实际系数之间的误差。X 轴将是 snr 和 Y 轴误差值的范围。X 轴是snrEbNoEsNo符号集无关吗?

    在我的情况下,数据采用符号而不是位的值。我应该使用什么?请帮助清除这些概念。谢谢你。

1个回答

这些东西是可转换的。Es/N0,Eb/N0 and SNR

Es/N0=Eb/N0+10log10(k)Es/N0=10log10(Tsym/Tsamp)+SNR

其中是每个符号的信息位数,是信号的符号周期,是信号的采样周期。更多详细信息可以在AWGN 频道 MATLAB中找到。kTsymTsamp

并通过功能描述awgn()

y = awgn(x,snr)将高斯白噪声添加到矢量信号x中。标量snr指定每个样本的信噪比,以 dB 为单位。如果x 是复数,则awgn添加复数噪声。

在您的情况下,没有过采样因此awgn()使用其snr参数来生成Es/N0= snr

您可以自由地在上绘制 BER 曲线,因为它们是等效的。来回转换它们Es/N0Eb/N0k

但是通常首选 ,因为( EbN0 维基百科Eb/N0

Eb/N0直接表示系统的功率效率,不考虑调制类型、纠错编码或信号带宽(包括任何扩频的使用)。这也避免了关于“带宽”的几个定义中的哪一个适用于信号的任何混淆。