我有24个来自实值信号的样本。我对样本执行fft()
函数并获得复杂的输出。我想获得每个非冗余谐波的幅度和相位角。我知道我的计算必须考虑别名,因为我有实值数据。我如何:
(1)从双面转换为单侧傅里叶变换,
我在这里听过几件事。例如,我将前12个谐波(即fft()
输出的第2到第13个元素)乘以2并丢弃其余的谐波(即保持fft()
输出的第1到第13个元素) ?
(2)计算单侧傅立叶变换的幅度,
我知道我可以使用Mod()
功能,但我什么时候这样做?在我从双面转换为单面之前或之后?
(3)计算单侧傅立叶变换的相位角。
我知道我可以使用atan()
函数来计算fft()
输出的虚部与实部之比,但是,我什么时候这样做?在双面转换之前或之后?另外,如果atan
未定义怎么办?
感谢。
答案 0 :(得分:3)
由于您的输入是实数,FFT的输出将关于N / 2对称,因此您可以查看前N / 2个二进制位并将幅度按比例缩放2.对于该阶段,您理想情况下需要atan2将实部和虚部组件作为单独的参数并返回4象限结果的函数。