如何计算信号的信噪比
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何计算信号的信噪比
你的应用要求,可以分两种情况:
1)在仿真实验中要产生具有某个信噪比的混合信号样本zt。这时,先求出不含噪声的有用信号的幅度(最大值)am;再根据给定的信噪比snr(db)反推噪声电平theta。以高斯噪声为例,Matlab程序如下:
am=max(abs(s)); %s为不含噪声的有用信号
以上说的是一般情况下有用信号为非随机信号的情形,如果有用信号也是随机信号,则信噪比的计算公式中,分子也要用平均功率来代替,估计有用信号的平均功率也要用子样均值来进行。
theta=am/(10^(snr/20));
zt=s+theta*randn(size(s)); %加入零均值,方差为(theta^2)的高斯噪声
2)对实测信号(含噪声)估计信噪比。首先要估计噪声的方差,方法是用噪声有限个样本的子样方差(若干不含有用信号的样本的平方和再除以样本数目)代替实际噪声的方差。根据大数定理,这种估计所用的样本数目越多,估计越准确。有用信号能量的估计理论上应用将含有噪声的有用信号样本去掉噪声后进行,但实际情况往往做不到。因此,只好用含有噪声的有用信号样本峰值点代替真实信号的幅度。然后用与上面相同的公式就可以计算出信噪比的估计值。
你的应用要求,可以分两种情况:
1)在仿真实验中要产生具有某个信噪比的混合信号样本zt。这时,先求出不含噪声的有用信号的幅度(最大值)am;再根据给定的信噪比snr(db)反推噪声电平theta。以高斯噪声为例,Matlab程序如下:
am=max(abs(s)); %s为不含噪声的有用信号
以上说的是一般情况下有用信号为非随机信号的情形,如果有用信号也是随机信号,则信噪比的计算公式中,分子也要用平均功率来代替,估计有用信号的平均功率也要用子样均值来进行。
theta=am/(10^(snr/20));
zt=s+theta*randn(size(s)); %加入零均值,方差为(theta^2)的高斯噪声
2)对实测信号(含噪声)估计信噪比。首先要估计噪声的方差,方法是用噪声有限个样本的子样方差(若干不含有用信号的样本的平方和再除以样本数目)代替实际噪声的方差。根据大数定理,这种估计所用的样本数目越多,估计越准确。有用信号能量的估计理论上应用将含有噪声的有用信号样本去掉噪声后进行,但实际情况往往做不到。因此,只好用含有噪声的有用信号样本峰值点代替真实信号的幅度。然后用与上面相同的公式就可以计算出信噪比的估计值。