本文共 6399 字,大约阅读时间需要 21 分钟。
以高斯噪声为例:若有用信号s(n)的最大幅度am,要求得到的信噪比为p,则p=10log10[(am^2)/b^2],用这个公式反推出高斯噪声的方差b^2,若s(n)单通道实信号,则Matlab程序就是x=s+b*randn(size(s));若s(n)是正交双通道信号,则Matlab程序就是x=s+b/sqrt(2)*randn(size(s))。
Matlab中计算信噪比方式: %===========================Happy===================================% function snr=SNR(I,In) % 计算信号噪声比函数 % by Qulei % I :original signal % In:noisy signal(ie. Original signal + noise signal) % snr=10*log10(sigma2(I2)/sigma2(I2-I1)) [row,col,nchannel]=size(I); snr=0; if nchannel==1%gray image Ps=sum(sum((I-mean(mean(I))).^2));%signal power Pn=sum(sum((I-In).^2));%noise power snr=10*log10(Ps/Pn); elseif nchannel==3%color image for i=1:3 Ps=sum(sum((I(:,:,i)-mean(mean(I(:,:,i)))).^2));%signal power Pn=sum(sum((I(:,:,i)-In(:,:,i)).^2));%noise power snr=snr+10*log10(Ps/Pn); end snr=snr/3; end %===================================================================%
转: