我正在玩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或图书馆本身并不了解,所以在收到你的意见之前我并不觉得可以发布错误报告。提前谢谢!
答案 0 :(得分:2)
这些数字对我来说是正确的。请注意,2.3553948388377322 E-06
只是撰写0.0000023553948388377322
的科学概念。
请注意,将此用于FFT时,您可能需要使用Window.HannPeriodic
代替Window.Hann
,这是自v3.14.0-beta01以来可用。