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

Hann window starts and ends with values that don't seem to make sense

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

    [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 window 开头和结尾的值似乎完全没有意义,尤其是考虑到任何超过 1 的值都没有意义...

用更少的样本(我试过 20 个)生成 window 效果很好。

由于我觉得我对 FFT 或库本身了解不够,所以在征求您的意见之前我不愿意发布错误报告。

这些数字对我来说是正确的。注意2.3553948388377322 E-06只是科学写法0.0000023553948388377322.

请注意,将其用于 FFT 时,您可能希望使用 Window.HannPeriodic 而不是 Window.Hann,后者自 v3.14.0-beta01 起可用。