如何将波形数据转换为复数

Ted*_*sen 6 math audio signal-processing fft

我正在从麦克风中读取原始数据并进入FFT.我正在尝试的两个FFT库(AForgeExocortex.DSP)将复数作为输入,并将复数作为输出.

我试图了解复数是多少.

更具体地说 - 如何将从麦克风获得的原始音频数据转换为复数以便在FFT中进行处理?
如何将输出绘制成一个漂亮的频谱图(即从输出中读取频率和幅度)?

额外的奖励:除了上面提到的两个之外,.Net还有哪些FFT库?

Pau*_*l R 5

在对实际数据执行FFT时,您只需将输入的虚部设置为零.(注意,尽管FFT的输出仍然很复杂.)

绘制频谱图更为复杂 - 之前有关于此的帖子,但基本上您需要计算连续重叠时间窗口的功率谱(典型重叠= 50%),然后使用这些功率谱绘制对数(dB)幅度颜色或灰度强度的大小(通常在X轴上的时间和在Y轴上的频率).要计算功率谱:

  • 应用窗口函数输入数据(例如汉宁窗口)
  • FFT
  • N/2FFT输出的第一个值的平方(re*re + im*im)
  • 将幅度转换为dB值(10 * log10 (magnitude squared))