我正在开发一个控制系统来测量振动机器人手臂的运动。因为有一些死区时间,我需要看看有点嘈杂的信号的未来。我的想法是使用采样信号中的频率并产生可用于外推的傅立叶函数。
我的问题:我已经有了信号矢量的 FFT(例如包含 60-100 个值),并且可以看到幅度谱中的主要频率。现在我想要一个适合信号的函数 f(t),去除一些噪声,并且可以用来预测信号的近期未来。如何从复杂的 FFT 数据中计算正弦/余弦函数的系数?
我正在开发一个控制系统来测量振动机器人手臂的运动。因为有一些死区时间,我需要看看有点嘈杂的信号的未来。我的想法是使用采样信号中的频率并产生可用于外推的傅立叶函数。
我的问题:我已经有了信号矢量的 FFT(例如包含 60-100 个值),并且可以看到幅度谱中的主要频率。现在我想要一个适合信号的函数 f(t),去除一些噪声,并且可以用来预测信号的近期未来。如何从复杂的 FFT 数据中计算正弦/余弦函数的系数?
对于任何研究过信号处理的人来说,这都是一件容易的事(我想知道为什么它已经被回答了这么久)
傅里叶变换本身就是一个函数,它告诉您需要将什么正弦曲线加在一起来创建这个连续信号。(对于更复杂的信号,它类似于傅里叶级数)
FFT 算法为您提供 COMPLEX 系数 (a+bj)(其中 j 是虚数...看起来像和 i 但倒数...)
计算每个系数的大小 A(n) = sqrt(a(n)^2 + b(n)^2) 计算每个系数的相位 phi(n) = inverse_tan(b(n)/a(n)) ; (记得使用 atan2 以便它产生正确的象限)
现在请记住,根据您的采样率,每个 coeff 代表频率的“bin”,但是您应该将它们视为均匀分布的频率:
因此,如果您有 N 个 bin,它们代表的每个 frequency_bin 为 f = Fs/(2*N)
然后你的信号变成
还有:预测功能:不可能。那将要求一个非因果系统。