【发布时间】:2011-11-25 22:46:54
【问题描述】:
我有 24 个来自实值信号的样本。我对样本执行fft() 函数并获得复杂的输出。我想获得每个非冗余谐波的幅度和相位角。我知道我的计算必须考虑混叠,因为我有实值数据。我该怎么做:
(1) 将双边傅里叶变换转换为单边傅里叶变换,
我在这里听到了几件事。例如,我是否将前 12 个谐波(即 fft() 输出的第 2 到第 13 个元素)乘以 2 并丢弃其余谐波(即,保留 fft() 输出的第 1 到第 13 个元素)?
(2)计算单边傅里叶变换的幅值,
我知道我可以使用Mod() 函数,但我应该什么时候使用?在我从双面转换为单面之前还是之后?
(3)计算单边傅里叶变换的相位角。
我知道我可以使用atan() 函数来计算fft() 输出的虚部与实部的比率,但同样,我什么时候这样做?在双面转换之前还是之后?另外,如果atan 未定义怎么办?
谢谢。
【问题讨论】:
-
目前在我看来,这更像是一道数学题而不是编程题,因此有可能被视为题外话。
-
@joran:它可能更适合dsp.stackexchange.com,但我们仍然会收到很多关于 SO 的 FFT 相关问题,只要至少有一个令牌实用编程,它们似乎是可以容忍的问题的方面