我正在从麦克风读取原始数据并输入 FFT。我正在尝试的两个 FFT 库(AForge http://code.google.com/p/aforge/ and 外皮质 http://www.exocortex.org/dsp/) 将复数作为输入并给出复数作为输出。
我试图理解什么是复数。
更具体地说,如何将从麦克风获得的原始音频数据转换为复数以便在 FFT 中进行处理?
如何将输出绘制成漂亮的频谱图(即从输出中读取频率和幅度)?
额外的好处:除了提到的两个之外,.Net 还有哪些 FFT 库?
当对实际数据执行 FFT 时,您只需将输入的虚部设置为零。 (请注意,FFT 的输出仍然很复杂。)
绘制频谱图更为复杂 - 之前有关于此的帖子,但本质上您需要计算功率谱对于连续的重叠时间窗口(典型重叠 = 50%),然后使用颜色或灰度强度作为幅度(通常在 X 轴上显示时间,在 Y 轴上显示频率)绘制这些功率谱的对数 (dB) 幅度。计算功率谱:
- apply 窗函数 http://en.wikipedia.org/wiki/Window_function输入数据(例如汉宁窗)
- FFT
- 取第一幅值的平方
N/2
FFT 输出值(re*re + im*im
)
- 将幅度转换为 dB 值(
10 * log10 (magnitude squared)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)