资源简介
计算信噪比,相信很多学信号处理的同学们还不能很准确地计算信噪比,好好探讨和学习一下吧
代码片段和文件信息
%自己写的信噪比计算工具snr2.m
%snr2(s2anafsf0flfhblbh)
%s2ana: 待分析信号
%fs:采样频率
%f0:信号频率
%[flfh]:信号能量分散带
function snr = snr2(s2anafsf0flfhblbh);
[sizeasizeb] = size(s2ana);
if (sizea==1)
s = s2ana‘;
else
s = s2ana;
end
len = length(s);
s_window = s.*hann(len)/max(s2ana);
fft_s = fft(s_windowlen)/len;
psd_s = fft_s .*conj(fft_s);
len1 = fix(len/2);
psd1_s = psd_s(1:len1)*65/2;
figure;
plot((0:len1-1)/len*fs10*log10(psd1_s));grid;
%compute the fft line corresponding to flfhblbh;
fp_fl = fix(fl*len/fs)+1;
if (fp_fl==0)
fp_fl = 1;
end
fp_fh = fix(fh*len/fs)+1;
if (fp_fh>len1)
fp_fh = len1;
end
fp_bl = fix(bl*len/fs)+1;
if (fp_bl==0)
fp_bl = 1;
end
fp_bh = fix(bh*len/fs)+1;
if (fp_bh>len1)
fp_bh=len1;
end
energy_sig = 0;
energy_noise = 0;
energy_sig = sum(psd1_s(fp_fl:fp_fh));
energy_noise = sum(psd1_s(fp_bl:fp_bh)) - energy_sig ...
+ (fp_fh-fp_fl+1)*(psd1_s(fp_fl)+psd1_s(fp_fh))/2;
snr = 10*log10(energy_sig / energy_noise);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1077 2008-07-02 08:15 新建文件夹 (6)\snr2.m
文件 1561 2009-09-20 20:00 新建文件夹 (6)\SNR_Ana.m
目录 0 2010-06-24 08:57 新建文件夹 (6)
----------- --------- ---------- ----- ----
2638 3
- 上一篇:七周成为数据分析师-全套视频+课件
- 下一篇:对PL0语言及其编译器进行扩充和修改
评论
共有 条评论