zhwang554的个人博客分享 http://blog.sciencenet.cn/u/zhwang554

博文

全相位比值校正法

已有 7697 次阅读 2012-5-4 20:23 |个人分类:apfft|系统分类:科研笔记| color, white

       加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



https://blog.sciencenet.cn/blog-212920-567066.html

上一篇:4cfft插值公式证明1
下一篇:Hanning窗生成公式sin(pi*(1/2:N-1/2)/N).^2
收藏 IP: 173.54.191.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 20:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部