我正在读取一个波形文件,并希望对其应用快速傅立叶变换。 但是我有一个立体声信号,我想知道如何处理左右声道。 FFT 是否需要分别应用于两个 channel ?
最佳答案
是和不是。
当然,每个 channel 的 FFT 是独立的,因此您需要为每个 channel 使用单独的 FFT。
但是,可以使用对复杂数据 FFT 例程的一次调用和一些附加算术来计算两个真实数据的 FFT。这在 数字配方 和 here 中有描述。 .一个实信号用作复信号的实部,第二个实信号用作虚部。它们的变换可以通过额外的算术在结果中分开。
之所以可行,是因为 FFT 是线性运算,因此变换的实部和虚部在某种意义上是可分离的,而实数到复数 FFT 中的对称性使得这种分离相对简单。
已发布库中的 FFT 例程通常经过高度优化。除非附加算术的代码也得到了很好的优化,否则对实数到复数 FFT 例程进行两次调用可能比对辅以您自己的实现的复数到复数 FFT 例程进行一次调用更快。额外的算术。
FFT 的常见用途是对信号进行变换,乘以实脉冲响应滤波器的变换,然后执行逆变换。在这种情况下,没有必要将两个信号分开;可以对合并后的数据进行乘法运算,通过逆变换分离出新的信号。
关于audio - 分别对立体声信号的两个 channel 应用 FFT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477454/