本帖最后由 ufo158 于 2012-6-12 20:31 编辑
回复 37 # chenyuluoyan 的帖子
个人理解为: 有用信号(或相对较为纯净的信号) 与 噪声的比值关系.
- function mysnr = myFunc_SP_CalSNR(I,In)
- %%
- %函数功能: 计算信号信噪比.
- % 理解为: 有用信号(或相对较为纯净的信号) 与 噪声的比值关系.
- %输入参数:
- % I: N*1,原始信号(仿真信号,不含噪声的信号) 或 滤波降噪***"后"***的信号.
- % 可理解为:相对纯净的信号,噪声水平相对较低.
- % In: N*1,含有噪声的信号(仿真信号+噪声) 或 滤波降噪***"前"***的信号.
- % 可理解为:噪声水平相对较高的信号.
- % noise: (不输入)N*1,噪声信号, noise = In-I;
- %输出参数:
- % mysnr: 1*1,信号信噪比值(dB).
- % 对于既是仿真信号,又对仿真信号进行降噪的时候,我做如下理解:
- % 仿真信号加入噪声后的信噪比: I:原始纯净信号, In:纯净信号中加入噪声的信号之和.
- % 仿真信号滤波降噪后的信噪比: I:滤波后的信号, In:滤波前的信号(滤波后的信号+滤除的噪声).
- %
- noise = In-I;%噪声
- Ps=sum(sum(I.^2));%signal power,相对纯净信号的功率.
- Pn=sum(sum((In-I).^2));%noise power,噪声信号功率.
- mysnr=10*log10(Ps/Pn);%注意log10对数.
复制代码
按照37L的做法, 计算降噪后的SNR, 但是I使用 纯净信号, 相当于计算纯净信号的信噪比,
不够恰当.
|