Hann窗口以似乎没有意义的值开始和结束

时间:2016-11-30 03:54:32

标签: fft mathdotnet windowing

我正在玩mathdotnet并正在试验用于FFT的不同窗口。我对Hann窗口特别好奇(虽然我确信这也适用于其他人)。当我生成一个Hann窗口,例如2048个样本宽度时,我希望得到一组变量逐渐增加到一个峰值,然后以相同的速率逐渐减少。我得到的是:

    [0] 0                       double
    [1] 2.3553948388377322E-06  double
    [2] 9.421557163713512E-06   double
    [3] 2.11984204002702E-05    double
    [4] 3.768587359187503E-05   double
    [5] 5.8883761400674306E-05  double
    [6] 8.4791884109036708E-05  double
    [7] 0.0001154099976216072   double
    [8] 0.00015073781346730541  double
    [9] 0.0001907749988023788   double
    [10]0.00023552117641323367  double
    ....
    [2039]  0.00015073781346730541  double
    [2040]  0.00011540999762155169  double
    [2041]  8.4791884109036708E-05  double
    [2042]  5.8883761400674306E-05  double
    [2043]  3.768587359187503E-05   double
    [2044]  2.11984204002702E-05    double
    [2045]  9.421557163713512E-06   double
    [2046]  2.3553948388377322E-06  double
    [2047]  0                       double

正如你所看到的,hann窗口开头和结尾的值似乎完全没有意义,特别是考虑到超过1的任何东西都没有意义......

生成一个样本少得多的窗口(我试过20)效果很好。

由于我觉得自己对FFT或图书馆本身并不了解,所以在收到你的意见之前我并不觉得可以发布错误报告。提前谢谢!

1 个答案:

答案 0 :(得分:2)

这些数字对我来说是正确的。请注意,2.3553948388377322 E-06只是撰写0.0000023553948388377322的科学概念。

请注意,将此用于FFT时,您可能需要使用Window.HannPeriodic代替Window.Hann,这是自v3.14.0-beta01以来可用。