欢迎来到天天文库
浏览记录
ID:49545473
大小:45.50 KB
页数:14页
时间:2020-03-02
《输出信噪比计算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、functionsnr_vec=fftdisto(x,C,varargin)%FFTDISTOcomputedistortionofsinusoidalsignal%SNR_VEC=FFTDISTO(X,C,N)%input:%xsignalvector%CnumberoffullsinusoidsinX%Nlengthofsignaltoconsider(mustbeapowerof2)%onlyNlastsamplesinxareusedinfft%outputvector:%1pwrsignalpower[dB](ampli
2、tude1-->0dB)%2sndrsignal-to-noise+distortionratio(DComitted)[dB]%3snronlyuncorrelatednoise(harmonics+DComitted)[dB]%4sdrsignal-to-distortion(onlyharmonics,noise+DComitted)[dB]%5tdhtotalharmonicdistortion[%]%NOTE:makeN>6*C-->%considersonlyapprox.firstN/2Charmonics,%res
3、taretreatedasnoiseifnargin>3fprintf('nargin=%d',nargin)error('Toomanyarguments.');endN=length(x);ifnargin==3ifvarargin{1}>Nerror('Nexceedslength(x)');endlenx=N;N=varargin{1};iflenx>Nx(1:(lenx-N))=[];endendN2=0.5*N;iflog2(N2)~=round(log2(N2))error('Nmustbepowerof2');
4、endifC>N2error('C>N/2(signalfrequency>samplingfrequency');endifN<6*C%warning('computinglessthan3harmonics!');enda=abs(fft(x))/N2;%amplitudevectorp=a.*a;%powervectordc=1;%indexofDCcomponentsig=C+1;%indexofsignalharm=(2*C+1):C:N2;%indicesofharmonicsnoise=1:N2;noise([dcs
5、igharm])=[];%indicesofnoisesp=p(sig)+1e-100;%signalpowerdp=sum(p(harm))+1e-100;%distortionpowernp=sum(p(noise))+1e-100;%noisepower(notincludingdistortion)snr_vec=zeros(1,5);snr_vec(1)=dB10(sp);snr_vec(2)=dB10(sp/(np+dp));snr_vec(3)=dB10(sp/np);snr_vec(4)=dB10(sp/dp);s
6、nr_vec(5)=100*sqrt(dp/sp);matlab中的信噪比(2011-03-2219:52:49)标签:信噪比杂谈分类:学习以高斯噪声为例:若有用信号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))。如果s(n)是一个N行、2列的复信号,前后两
7、列各表示实部和虚部,则b/sqrt(2)*randn(size(s))产生的也是N×2的高斯分布噪声,实部和虚部的方差均为b/sqrt(2)。实部和虚部分别产生也可以,但不能用b*randn(size(s))。第一,如果这样产生噪声,那么最终信号的信噪比应该用p=10log10[(am^2)/(2*b^2)];第二,不能用size(s),应该用size(c),c为s(n)的实(虚)部列矢量的长度。Matlab中计算信噪比方式:%===========================Happy====================
8、===============%functionsnr=SNR(I,In)%计算信号噪声比函数%byQulei%I:originalsignal%In:noisysignal(ie.Originalsignal+noisesignal)%snr=1
此文档下载收益归作者所有