输出信噪比计算.docx

上传人:b****2 文档编号:3184234 上传时间:2023-05-05 格式:DOCX 页数:2 大小:14.36KB
下载 相关 举报
输出信噪比计算.docx_第1页
第1页 / 共2页
输出信噪比计算.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

输出信噪比计算.docx

《输出信噪比计算.docx》由会员分享,可在线阅读,更多相关《输出信噪比计算.docx(2页珍藏版)》请在冰点文库上搜索。

输出信噪比计算.docx

输出信噪比计算

functionsnr_vec=fftdisto(x,C,varargin)

%FFTDISTOcomputedistortionofsinusoidalsignal

%SNR_VEC=FFTDISTO(X,C,N)

%input:

%xsignalvector

%CnumberoffullsinusoidsinX

%Nlengthofsignaltoconsider(mustbeapowerof2)

%onlyNlastsamplesinxareusedinfft

%outputvector:

%1pwrsignalpower[dB](amplitude1-->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,

%restaretreatedasnoise

ifnargin>3

fprintf('nargin=%d\n',nargin)

error('Toomanyarguments.');

end

N=length(x);

ifnargin==3

ifvarargin{1}>N

error('Nexceedslength(x)');

end

lenx=N;

N=varargin{1};

iflenx>N

x(1:

(lenx-N))=[];

end

end

N2=0.5*N;

iflog2(N2)~=round(log2(N2))

error('Nmustbepowerof2');

end

ifC>N2

error('C>N/2(signalfrequency>samplingfrequency');

end

ifN<6*C

%warning('computinglessthan3harmonics!

');

end

a=abs(fft(x))/N2;%amplitudevector

p=a.*a;%powervector

dc=1;%indexofDCcomponent

sig=C+1;%indexofsignal

harm=(2*C+1):

C:

N2;%indicesofharmonics

noise=1:

N2;noise([dcsigharm])=[];

%indicesofnoise

sp=p(sig)+1e-100;%signalpower

dp=sum(p(harm))+1e-100;%distortionpower

np=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);

snr_vec(5)=100*sqrt(dp/sp);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2