我正在玩 mathdotnet 并尝试在 FFT 中使用不同的窗口。我对 Hann 窗口特别好奇(尽管我确信这也适用于其他窗口)。当我生成一个宽为 2048 个样本的 Hann 窗口时,我希望得到一组变量逐渐增加到峰值,然后以相同的速率逐渐减小。我得到的是:
[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 或库本身的了解不够多,因此在征求您的意见之前发布错误报告感到不舒服。