大鹏之举 发表于 2009-5-25 22:10

来看看我的图,那个信噪比好呢?

我的信噪比的计算函数如下:
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 编辑 ]

大鹏之举 发表于 2009-5-26 08:43

回复 楼主 大鹏之举 的帖子

得到高人指点,是信噪比的公式错了。

sarazhao_2007 发表于 2009-7-30 16:26

我看到有个帖子讨论,讨论结果就是这个公式呀。。。如果错的话应该是什么呢?我也用这个了,和你的情况差不多

songzy41 发表于 2009-7-30 20:03

我认为在z2和z4的计算中应该为:
z2=snr1(x,y2);
z4=snr1(x,y4);
用xn,xn本身就是带噪信号,而不是纯净信号。

chdd19 发表于 2009-7-30 21:51

原帖由 大鹏之举 于 2009-5-26 08:43 发表 http://www.chinavib.com/forum/images/common/back.gif
得到高人指点,是信噪比的公式错了。
问题解决了也不分享下啊??

大鹏之举 发表于 2009-9-3 09:39

回复 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));

魔女 发表于 2013-12-9 17:10

学习中。。。

zjwiceberg 发表于 2014-7-9 15:57

你公式中的原始信号时纯净信号还是加噪之后的信号?
页: [1]
查看完整版本: 来看看我的图,那个信噪比好呢?