BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #7735同步于 2010/11/21
Matlab机器人发帖

调用一个带mean函数求信噪比的函数老是出错

manzai
2010/11/21镜像同步0 回复
编一个折半搜索法搜索噪声门限的函数可是老是出错,自己想了半天不明白,把代码贴在下面。 function noiseth= halfserch(s,snrtarget) %折半搜索法搜索噪声门限 %s是带噪信号,snrtarget是目标信噪比, %调用的SNR_singlech函数是求信噪比函数 s1=s; x1=max(s); x2=0; noiseth=(x1+x2)/2; f1= find(s1<noiseth); s1(f1)=0; snr=SNR_singlech(s1,s); while (abs(snr-snrtarget)>0.2) s1=s; if (snr>snrtarget) x2=noiseth; noiseth=(x1+x2)/2; f1= find(s1<noiseth); s1(f1)=0; snr=SNR_singlech(s1,s); else x1=noiseth; noiseth=(x1+x2)/2; f1=find(s1<noiseth); s1(f1)=0; snr=SNR_singlech(s1,s); end end noiseth=(x1+x2)/2; end function snr=SNR_singlech(I,In) % 计算信噪比函数 % I :original signal % In:noisy signal(ie. original signal + noise signal) snr=0; Ps=sum(sum((I-mean(mean(I))).^2));%signal power Pn=sum(sum((I-In).^2)); %noise power snr=10*log10(Ps/Pn); end 运行时老是出不来结果,matlab在调用SNR_singlech函数的Ps=sum(sum((I-mean(mean(I))).^2));%signal power这一行报错,貌似问题出在mean函数上, 求高人指点。
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。