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

博文

Hanning窗生成公式sin(pi*(1/2:N-1/2)/N).^2

已有 15687 次阅读 2012-5-4 21:42 |个人分类:apfft|系统分类:科研笔记| exactly

  在许多文献和Matlab中的hann(N)窗的生成公式为

hann(N)=sin(pi*(0:N-1)/(N-1)).^2                (1)

这样的生成公式产生的窗是对称窗。它的生成公式中分毋为N-1,对N阶fft不是最好,虽在泄漏等性质上区别不大,但在用於校正时误差大。

  在许多文献和Matlab中的hanning(N)窗的生成公式为

hanning(N)=sin(pi*(1:N)/(N+1)).^2               (2)

这样的生成公式产生的窗是对称窗。它的生成公式中分毋为N+1,对N阶fft不是最好,虽在泄漏等性质上区别不大,但在校正时误差大。

  若改为另一种Hann窗生成公式(本文写为n-hann)

n-hann(N)=sin(pi(1/2:N-1/2)/N).^2           (3)

这样的生成公式产生的窗是对称窗, 它的生成公式中分毋为N,对N阶fft合适,虽在泄漏等性质上区别不大,但在用於校正时改善明显。

   也不是hann窗的生成公式都除以N-1,也有除N的. 在振动论坛上zhaoyixu的”学写程序-比值校正法”帖子中(本文写为振-hann)http://www.chinavib.com/thread-65243-1-1.html

振-hann=0.5-0.5*cos(pi*(0:N-1)/N)              

       =sin(pi*(0:N-1)/N).^2                    (4)

这样的生成公式生成的是不对称窗, 它的生成公式中分毋为N,,对N阶fft合适,在校正时改善明显。由於是不对称窗,当振-hann和振-hann卷积窗用於apfft时,apfft的水平相位特性消失,相位特性是一条斜线.但振-hann和反振-hann窗(sin(pi*(N-1:-1:0)/N).^2)的卷积窗用於apfft时,apfft的水平相位特性保持。

     最近汪意到在matlab中, 还有                

hann(N,'periodic '),它的生成公式中分毋为N,它和上面的振-hann相同,它用於DFT/FFT。

hann(N,’symmetric'),它的生成公式中分毋为N-1,它和上面的hann相同,它用於filter design。

   过去apfft使用matlab中的hann窗时没有注意到还有指令hann(N,'periodic '),但它的不对称性,用於apfft的卷积窗时还不如n-hann对称窗。

     文献介绍说hann窗的频谱只有3根,主线为1,左右为1/2。

式(1)的8个取样值为(Matlab中的 hann(8)' )

hann(8)= [0 0.1883 0.6113 0.9505 0.9505 0.6113 0.1883 0]

其DFT的谱为

Ha=[3.5000 2.0800 0.2135 0.0541 0 0.0541 0.2135 2.0800];

式(2)的8个取样值为(Matlab中的 hanning(8)' )

hanning(8) =[0.1170 0.4132 0.7500 0.9698 0.9698 0.7500 0.4132 0.1170];

其DFT的谱为

Hb=[4.5000 1.8337 0.1080 0.0304 0 0.0304 0.1080 1.8337

式(3)的8个取样值为

n-hann(8) =[0.0381  0.3087  0.6913  0.9619  0.9619  0.6913 0.3087 0.0381];

其DFT的谱为

Hc=[4.00000  2.0000  0.0000  0.0000  0  0.0000   0.0000  2.0000]

Hc只有3根谱线,2:1的比值也对,而Ha和Hb不符合,所以从频谱看,hann窗的生成公式应为式(3)。

式(4)的8个取样值为

振-hann=[0  0.1464  0.5000  0.8536  1.0000  0.8536  0.5000  0.1464];

振-hann是不对称窗,其DFT的谱为

Hd =[4.0000  2.0000  0  0.0000  0  0.0000  0  2.0000];

由於是N等分点取样,Hd频谱和Hc一样.

      任意N阶Hc和Hd都只有3条谱线,这是n-hann和振-hann校正性能好的原因。

   在apfft/apfft校正法中,无噪时采用hanning和hanning卷积窗相位和频率精度都很高,可达10(=10),但振幅校正精度只有10(-3),采用hann和hanning卷积窗可达校正精度10(-6),还比相位和频率精度低,现采n-hann(N)=sin(pi*(1/2:N-1/2)/N).^2的卷积窗振幅校正精度也可达10(-9)(N=1024)



   如<数字信号全相位谱分析与滤波技术>一书附录三的apfft/a[pfft校正法程序中原调用matlab中的hanning窗(第5句), 改为win=sin(pi*(1/2:N-1/2)/N).^2的卷积,且第2句N=256改N=1024

close all;clc;clear all;

N=1024;

t=-N+1:N*2-1; f1=39.3;A1=1;ph1=60;

s=1*cos(1*(2*pi*t*f1/N+ph1*pi/180));

win=sin(pi*(1/2:N-1/2)/N).^2;

win2=conv(win,win);

win2=win2/sum(win2);

w=pi*2;

s1=s(1:2*N-1);

y1=s1.*win2;

y1a=y1(N:end)+[0 y1(1:N-1)];

Out1=fft(y1a,N);

a1=abs(Out1);

p1=mod(phase(Out1),2*pi);

s2=s(1+N:3*N-1);

y2=s2.*win2;

y2a=y2(N:end)+[0 y2(1:N-1)];

Out2=fft(y2a,N);

a2=abs(Out2);

p2=mod(phase(Out2),2*pi);

g=mod((p2-p1)/pi/2,1);

h=2*(1-g.*g)./sinc(g); aaa=abs((h.^2).*a1)/2;

rr=round(f1);

fff=floor(f1)+g(rr+1)

aaa=aaa(floor(f1)+1)

ppp=p1(rr+1)*180/pi

运行结果:


fff=39.30000000000006
aaa =0.9999999999990419
ppp =59.99999999998399

振幅校正精度10(-12),


可见用n-hann(N)的卷积窗振幅校正精度明显改善。

  在apfft/apfft校正法振幅校正中,先用hanninghanning卷积窗,校正精度仅10(-3),后来偶然发现用hanninghann卷积窗,校正精度可达10(-6),提高了3-4个数量级当时不知原因. 现在从hanninghann窗的生成公式知,一个分毋为N-1,, 一个分毋为N+1,合用后二者平均在N等分上取点,在代入hanning插值公式时更合适。

    不同N时测试结果如下:


                 1    n-hann和n-hann卷积窗apfft/apfft校正法 

2048         39.3000000000001         1.0000000000003            59.999999999984

1024         39.3000000000001         0.999999999999505          59.999999999984

512          39.3000000000001         0.999999999986809          59.9999999999839

256          39.3000000000001         0.99999999978369           59.9999999999817

128          39.3000000000015         0.999999996540251          59.9999999996312

64          19.3000000000846         0.999999944943427          59.9999999792749

32           9.30000000438993        0.999999133831681          59.9999989246667

             2    加hann和hanning卷积窗apfft/apfft 校正法

2048         39.3000000000001         0.999999971337887          59.9999999999844

1024         39.3000000000001         0.999999885351212          59.9999999999854

512          39.3                     0.999999541415475          59.9999999999893

256          39.3                     0.999998165847839          60.0000000000004

128          39.2999999999998         0.999992666381374          60.0000000000485

64          19.2999999999898         0.999970713387453          60.0000000024893

32           9.29999999963711        0.999883621953122          60.0000000888927

             3   振-hann和反振-hann卷积窗apfft/apfft 校正法

2048          39.3000000000001          1.00000000000041          59.999999999984

1024          39.3000000000001          1.00000000000132          59.999999999984

512           39.3000000000001          1.00000000001583          59.9999999999841

256           39.3                      1.00000000024797          59.9999999999864

128           39.3000000000006          1.00000000396609          59.9999999998605

64           19.3000000000263          1.00000006356964          59.9999999935615

32            9.30000000080167         1.00000102050807          59.999999803628

   表1加n-hann和n-hann卷积窗apfft/apff校正法 和 表2加hann和hanning卷积窗apfft/apff校正法比,频率校正精度相同,相位校正精度基本相同,振幅校正精度表1明显改善。说明在apfft/apfft中加n-hann卷积窗改善振幅校正精度有效。

   表3加振-hann和反振-hann卷积窗apfft/apfft校正法 和 表1加n-hann和n-hann卷积窗apfft/apfft校正法比,频率校正精度,相位校正精度和振幅校正精度都相同。说明不对称的振-hann窗也可用於apfft。

             

 




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

上一篇:全相位比值校正法
下一篇:全相位学位论文索引
收藏 IP: 173.54.224.*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

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

GMT+8, 2024-4-17 05:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部