具有非数学背景我试图理解如何在频域中实现数据滤波作为FFT的一部分。这里可以找到离散FFT的javascript实现: https://rosettacode.org/wiki/Fast_Fourier_transform#JavaScript
我无法理解如何实现Ram-Lak过滤器,例如本文中图3中的过滤器: http://www3.cs.stonybrook.edu/~mueller/teaching/cse377/lab3.pdf
到目前为止,我已经完成了一个100个实数阵列的FFT,并获得了两个结果数组,其中包含实数和虚数分量,分别是从0频率(DC)到99的100个结果频率分量。
获得此结果后,我这样做(伪代码):
center = frequencies.length / 2
对于n =频率1到99的FFT结果{
If(n< center){将每个实部和虚部乘以(n /(center))}
If(n> = center){将每个实部和虚部乘以(frequency.length-n / center)}
} //结束
执行逆FFT
在逆FFT之后,100个实际初始数应该通过Ram-lak滤波器运行 - 我是否正确?