回复 #1 yhc310 的帖子eight大哥的文章我看过了,不过那个计算公式好像是原始信号和染噪信号的公式。
我现在分析的都是实际的故障信号和降噪后信号的。
eight以前也提过这个问题,这种情况可能只能做一个估计。
上面那个函数是我看段晨东文章里面得到的。
他的公式如下:function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号N=length(x1);y1=sum(x1.^2);y2=sum(x1-x2);y=10*log((y1/y2).^2);但是由这个公式算出来的信噪比都是150多,我觉得有问题。
故改为如下公式function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号N=length(x1);y1=sum(x1.^2);y2=sum((x1-x2).^2);y=10*log((y1/y2));是目前CAD/CAE/CAM/PLM类专业网站中,用户最多,技术含量最高的网站之一,涵盖目前所有常用的C3P类软件技术讨论。
注册登录•分栏模式•搜索•导航•论坛•C3P门户•个人空间•论坛问卷•帮助•戏绺? size=•uchome•jeans•诗意田园•春意盎然C3P论坛-CadCaeCamPlm社区,是来了不想走的地方» CAD回收站专区» [047]信号处理方法» 求信噪比计算公式回复管理员UID21帖子42453精华14积分47337威望45 点C3P币47337 元贡献值2045 点推广邀请能量4571 焦耳阅读权限200在线时间868 小时注册时间2000-7-9 最后登录主题帖发表于2009-2-12 15:37 | 只看该作者论坛斑竹招募进行中快快加入C3P惊喜的朋友圈广告帖子、乱码帖子、内部错误链接有奖举报点附件无法下载有奖举报点申请C3P基金币发贴公告论坛的起源和新手成长必读各位高手大家好!求各位给个信噪比的计算公式。
数据都是现场故障数据,所以公式必须是原始信号和降噪后信号的关系。
一下是我计算信噪比的公式,但是可能有错误!function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号N=length(x1);y1=sum(x1.^2);y2=sum((x1-x2).^2);y=10*log((y1/y2));==============================参考/forum/vi ... p%3Bfilter%3Ddigest==============================eight大哥的文章我看过了,不过那个计算公式好像是原始信号和染噪信号的公式。
我现在分析的都是实际的故障信号和降噪后信号的。
eight以前也提过这个问题,这种情况可能只能做一个估计。
上面那个函数是我看段晨东文章里面得到的。
他的公式如下:function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号2010-6-9 N=length(x1);y1=sum(x1.^2);y2=sum(x1-x2);y=10*log((y1/y2).^2);但是由这个公式算出来的信噪比都是150多,我觉得有问题。
故改为如下公式function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号N=length(x1);y1=sum(x1.^2);y2=sum((x1-x2).^2);y=10*log((y1/y2));==============================我觉得你的程序是正确的。
==============================就从你这段程序来看,你得到的是原始信号相对于被降噪噪声的能量比。
信噪比在不同情况下定义也是不同的。
一般说来,在论文中都会给出SNR的定义式。
==============================引用:function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号N=length(x1);y1=sum(x1.^2);y2=sum((x1-x2).^2);y=10*log((y1/y2));==============================function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号y1=sum(x2.^2); %不是x1y2=sum((x1-x2).^2);y=10*log10((y1/y2)); %不是log()==============================function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号y1=sum(x2.^2); %不是x1y2=sum((x1-x2).^2);%y2=sum((abs(x1)-abs(x2)).^2)y=10*log10((y1/y2)); %不是log()==============================这应该和eight的精华贴相得益彰啊/forum/vi ... p%3Bfilter%3Ddigest上面是仿真信号的信噪比总结而本贴则是针对实际数据处理降噪后,来计算信噪比的程序。
使得精华贴更完善了function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号y1=sum(x2.^2); %不是x1y2=sum((x1-x2).^2);%y2=sum((abs(x1)-abs(x2)).^2)y=10*log10((y1/y2)); %不是log()==============================为什么我按这种方法计算出来的信噪比为负值呢?==============================那是你的系统降噪能力差吧==============================信噪比有什么用?==============================维纳滤波应该比谱减法的降噪效果好可用这里的SNR公式求得的都是相反的结果怎么办啊?==============================hao实在是太好了==============================大家好!==============================大家好!我有个FFT程序,程序编译通过了但还没有验证过正确否,有什么方法验证这个程序的正确性啊!!==============================好帖,受益匪浅觉得这个论坛是我见过的最好的了,大家都很积极==============================你好,我做过FFT,应该是看频谱的分辨率吧,我就知道这些,还有知道的,也来讨论下吧==============================我用8楼计算信噪比的公式算得的信噪比有时达到两三百,为什么呢?请高手指教!!!==============================为什么我用这个程序的时候,会出现一下这种错误呢?Error using ==> wavreadIndex exceeds matrix dimensions.Error in ==> snr at 3x2=wavread('quzaohou.wav',[2000 4000]);==============================为什么C程序是double mse = 0.0;signed short temp;for( y = 0; y < c; y++ )for( x = 0; x < r; x++ ){temp = (signed short)map1[y][x]-(signed short)map2[y][x];mse += (double)temp*temp;}if( mse < 0.1e-6){printf("\nThe two file are the same!\n");}mse = mse / (1.0*r*c);double psnr = 10 * log10(255.0*255.0/mse);这里对于信噪比钟的信号计算怎么这么多个版本呢??==============================if (size(I)~=size(J))error('Size mismatch!')endif (~isrgb(I) &amt; ~isrgb(J))[m n] = size(I);A=double(I);B=double(J);sumaDif=0;maxI=m*n*max(max(A.^2));sumaDif=sum(sum((A-B).^2));if (sumaDif==0)sumaDif=1;endS=maxI/sumaDif;S=10*log10(S);elseerror('Las imagenes no pueden ser en color')end这个不对吗?==============================真的不错!谢谢各位的畅言,对各位来此都多少有帮助本人谢谢大家!!==============================信噪比为负可能原信号相对于噪声的能量小;==============================function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号N=length(x1);y1=sum(x1.^2);y2=sum((x1-x2).^2);y=10*log10(y1/y2);我觉得这种是正确的。
==============================信噪比的单位是分贝,为负很正常。
信噪比为0,即表示信号和噪声的能量各占一半,为负则意味着信号能量< 噪声能量。
==============================我按照上面的公式算出也是负值==============================原始信号是实测信号,非纯净信号,降噪后得到估计信号,用估计信号除实测信号减估计信号计算信噪比,这个是什么意思啊?不能知道纯净信号就没办法计算信噪比吧?==============================既然是求信噪比,为什么不能用处理后的信号和干净的信号进行对比求的信噪比呢?==============================用的是实测数据,无法求的干净信号==============================回复引用TOPCadCaeCamPlm专业门户网站 ( 蜀ICP备05008798号)|联系我们|WAP GMT+8, 2010-6-9 13:46, Processed in 8.641394 second(s), 6 queries. Powered by Discuz! 7.1© 2001-2009 Comsenz Inc.。