|||
加hann窗全相位比值校正法和加hann窗fft比值校正法校正方法类同,只须将二个振幅比改为振幅开方比即可。这里加hann窗是关键,过去测试时,直接调用Matlab中的hann(N)窗,频率和振幅校正效果差,见表5加hann窗全相位比值校正法测试结果。表4为加n-hann窗全相位比值校正法,其频率校正精度,相位校正精度和振幅校正精度都很高,甚至可以和表1加n-hann卷积窗apfft/apfft校正法相比,相位和振幅校正精度都很高。但apfft/apfft校正法须3N-1个取样,而全相位比值校正法只须2N-1个取样,克服了apfft/apfft法的一个缺点。现在看来全相位比值校正法也是一种不错的选择,过去窗没有正确使用。对密集频谱,apfft比值法不如apfft/apffy时移法,因时移法只涉及峰线,比值法还涉及次峰线,所以apfft/apfft只须隔2条谱线,比值法须隔5条谱线。
表6加n-hann窗fft比值校正法和表7加hann窗fft比值校正法比,表6的频率校正精度,相位校正精度和振幅校正精度都明显好於表7,说明fft比值校正法加n-hann窗有效。看来zhaoyixu在”学写程序-比值校正法”帖子中己注意到不能调用Matlab中的hann(N)窗,而用公式产生 振-hann窗。
比较表4加n-hann窗全相位比值校正法和表6加n-hann窗fft比值校正法,因apfft的泄漏小,表4频率校正精度,相位校正精度和振幅校正精度都明显好於表6。虽apfft比值校正法须2N-1个取样,而fft比值校正法只须N个取样,但从表4和表6见,无噪时N阶apfft比值法的精度好於N+1阶fft比值法的精度。
表4 加n-hann窗全相位比值校正法
2048 39.2999999999999 0.999999999999727 59.999999999984
1024 39.2999999999993 0.999999999998464 59.999999999984
512 39.2999999999897 0.999999999978253 59.9999999999839
256 39.2999999998362 0.999999999654862 59.9999999999817
128 39.2999999973784 0.999999994475913 59.9999999996312
64 19.2999999579652 0.999999911374186 59.9999999792749
32 9.29999932175938 0.999998568710431 59.9999989246668
表5 加hann窗全相位比值校正法
2048 39.2997989691631 1.0007044986664 59.9999999999814
1024 39.2995978306405 1.001408982995 59.9999999999792
512 39.2991952305092 1.00281790824099 59.9999999999765
256 39.2983887377612 1.00563558247314 59.9999999999818
128 39.2967705820544 1.01127020743653 59.9999999999848
64 19.2935136004499 1.02253645403005 59.9999999991149
32 9.28691721629751 1.04505664338407 59.9999999614661
表4 加n-hann窗fft比值校正法
2048 39.2999993667011 1.00000013265508 60.0000897758125
1024 39.2999993668401 1.0000001326292 60.0000897559346
512 39.299999369199 1.0000001321903 60.0000894184815
256 39.2999994175024 1.00000012324823 60.0000825036076
128 39.3000020151823 0.999999668955788 59.9997086611727
64 19.3000145685806 0.999998113251098 59.9978626792359
32 9.30009447285494 0.999995405304193 59.9856736074141
表7 加hann窗fft比值校正法
2048 39.3002002767745 0.999647817013724 59.9375635653786
1024 39.3004011133139 0.999295363095037 59.8750505713501
512 39.3008025605412 0.998590041246001 59.7500640917667
256 39.3016043984791 0.997177769998095 59.5002706862587
128 39.3032003918317 0.994347334695689 59.00214393244
64 19.306364923688 0.988661620229383 58.0111564495078
32 9.31256111932966 0.97718611895961 56.0545743160083
表8为N=1024时不同频偏下加n-hann窗全相位比值校正法的测试结果,频率从39.0到39.9,频率校正精度,相位校正精度和振幅校正精度都好於10(-10)。不出现apfft/apfft校正法当频偏量绝对值为0.5时频率估计是会出现相差一个频率分辨率的问题
表8 不同频偏下加n-hann窗全相位比值校正法 (N=1024)
39 1 60.0000000000001
39.0999999999995 0.999999999999739 59.9999999999979
39.1999999999993 0.999999999999136 59.9999999999921
39.2999999999993 0.999999999998464 59.999999999984
39.3999999999996 0.999999999997957 59.9999999999759
39.5 0.999999999997772 59.9999999999723
39.6000000000004 0.999999999997963 59.999999999978
39.7000000000007 0.999999999998472 59.9999999999856
39.8000000000008 0.999999999999142 59.999999999993
39.9000000000005 0.999999999999741 59.9999999999982
apfft比值法程序
function XfCorrect=SpectrumCorrect(N,xf,CorrectNum,WindowType)
close all;clear all;clc
fs=1024;
N=1024;
t=(-N+1:N-1)/fs;
x=3*cos(2*pi*80*t+30*pi/180)+4*cos(2*pi*150.232*t+80*pi/180)+2*cos(2*pi*253.5453*t+240*pi/180);
w2=sin(pi*(1/2:N-1/2)/N).^2;
w22=conv(w2,w2);
xx2=x.*w22;
x2=xx2(N:end)+[0 xx2(1:N-1)];
xfw=fft(x2);
xfw=xfw(1:N/2);
XfCorrectW_apfft_1024=SpectrumCorrect(N,xfw,3,2);
XfCorrectW_apfft_1024(:,1)=XfCorrectW_apfft_1024(:,1)*fs/N;
XfCorrectW_apfft_1024
function XfCorrect=SpectrumCorrect(N,xf,CorrectNum,WindowType)
XfCorrect=zeros(CorrectNum,3);
for i=1:CorrectNum
A=abs(xf);
[Amax,index]=max(A);
phmax=angle(xf(index));
if (WindowType==2)
indsecL=sqrt(A(index-1))>sqrt(A(index+1));
df=indsecL.*(2*sqrt(A(index-1))-sqrt(Amax))./(sqrt(Amax)+sqrt(A(index-1)))-(1-indsecL).*(2*sqrt(A(index+1))-sqrt(Amax))./(sqrt(Amax)+sqrt(A(index+1)));
XfCorrect(i,1)=index-1-df;
XfCorrect(i,2)=(1-df.^2).^2/(sinc(df).^2)/N/N*Amax*8;
XfCorrect(i,3)=phmax*180/pi;
xf(index-4:index+4)=zeros(1,9);
end
XfCorrect(i,3)=mod(XfCorrect(i,3),360);
XfCorrect(i,3)=XfCorrect(i,3)-(XfCorrect(i,3)>180)*360;
end
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 06:31
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社