假设我有三个复杂的波形(由许多正弦波组成):A、B 和 C。每个波形都有以下频率:分别为 550、600、700 Hz。
现在我将三个信号相加,即叠加得到信号 D。
我的目标是分别取回三个原始信号 A、B 和 C。
我已经绘制了傅里叶光谱,其中我得到了 550、660 和 700 Hz 的主峰。还有其他较小的峰。我如何知道哪些峰值与哪些波形相关联,以便我可以重新创建原始波形 A、B 和 C?谢谢你。
如果 A、B 和 C 不是纯正弦波,那么如果没有其他信息,您想要做的事情是不可能的。假设 A 是频率为 100 和 200 Hz、B 为 300 和 400 Hz 以及 C 为 500 和 600 Hz 的正弦波的总和。现在考虑频率为 100 和 300 Hz 的信号 D,频率为 200 和 500 Hz 的信号 E,以及频率为 400 和 600 Hz 的信号 F,每个分量与 A、B 和 C 的分量具有相同的相位和幅度。(A+B +C) 将具有与 (D+E+F) 相同的 FFT,因此您无法区分它们。
重要的是要意识到您需要在 FFT 之前应用窗口函数,否则您将在应用到时域数据的隐式矩形窗口的影响下获得频域中的伪影。一个很好的通用窗口函数是Hann(又名 Hanning)窗口。
如果不知道您正在使用哪种技术(DSP 芯片、fftw 等),就不可能为您提供实现细节。但是,是的,应用快速傅立叶变换,然后假设您要在 550、600 和 700 处重建三个纯正弦波,FFT 将为您提供每个的幅度和相位。然后该形式的简单正弦表达式y=a*sin(wt+p)
将重建信号。“a”和“p”是来自 FFT 的幅度和相位,w=2*pi*f,其中 f 是 550Hz、600Hz 或 700Hz。
您是否需要添加任何形式的复杂信号?他们有模式吗?如果你想检索任何形式的信号,那将是不可能的。但在某些情况下,如果你有限制材料,你可以处理它。例如,在 melodyne 中,他们可以分离一些音高定义乐器的材料:http ://www.youtube.com/watch?v=jFCjv4_jqAY