来看看我的图,那个信噪比好呢?
我的信噪比的计算函数如下:function y=snr1(x1,x2);%x1是原始信号,x2是降噪后信号
y1=sum(x2.^2); %不是x1
y2=sum((x1-x2).^2); %y2=sum((abs(x1)-abs(x2)).^2)
y=10*log10((y1/y2)); %不是log()
我的仿真程序如下:
t=0:0.001:1;
x=sin(4*pi*t);
xn=x+0.5*rand(1,1001);
y2=medfilt1(xn,2);
y4=medfilt1(xn,4);
subplot(2,2,1);plot(t,x);title('Signal')
subplot(2,2,2);plot(t,xn);title('Signal+Noise')
subplot(2,2,3);plot(t,y2);title('2nd order')
subplot(2,2,4);plot(t,y4); title('4th order')
z2=snr(xn,y2);
z4=snr(xn,y4);
我的疑问如下:我的仿真图示结果显示:4阶结果信噪比好一点,但用信噪比公式计算结果却显示:2阶时的信噪比好一点。究竟是哪里出错了?
是我的信噪比计算公式错了?还是我对图的感觉错了?
[ 本帖最后由 大鹏之举 于 2009-5-25 22:12 编辑 ]
回复 楼主 大鹏之举 的帖子
得到高人指点,是信噪比的公式错了。 我看到有个帖子讨论,讨论结果就是这个公式呀。。。如果错的话应该是什么呢?我也用这个了,和你的情况差不多 我认为在z2和z4的计算中应该为:z2=snr1(x,y2);
z4=snr1(x,y4);
用xn,xn本身就是带噪信号,而不是纯净信号。 原帖由 大鹏之举 于 2009-5-26 08:43 发表 http://www.chinavib.com/forum/images/common/back.gif
得到高人指点,是信噪比的公式错了。
问题解决了也不分享下啊??
回复 5楼 chdd19 的帖子
不好意思,好久没有来了,我得楼上老师的指点,给出信噪比的定义如下:function =snr1m(x,x1,x2);
%x是原始不带噪信号,x1是带噪信号,x2是降噪后信号
%z1是带噪信号的信噪比,z2是降噪后信号的信噪比
y=sum(x.^2);
y1=sum((x-x1).^2);
y2=sum((x-x2).^2);
z1=10*log10((y/y1));
z2=10*log10((y/y2)); 学习中。。。
你公式中的原始信号时纯净信号还是加噪之后的信号?
页:
[1]