分别对立体声信号的两个通道应用 FFT?

Posted

技术标签:

【中文标题】分别对立体声信号的两个通道应用 FFT?【英文标题】:Apply FFT to a both channels of a stereo signal separately? 【发布时间】:2013-01-23 10:28:48 【问题描述】:

我正在读取一个波形文件,并希望对其应用快速傅立叶变换。 但是我有一个立体声信号,我想知道如何处理左右声道。 FFT 是否需要分别应用于两个通道?

【问题讨论】:

【参考方案1】:

是和不是。

当然,每个通道的 FFT 是独立的,因此您需要为每个通道单独的 FFT。

但是,可以通过一次调用复杂数据 FFT 的例程和一些额外的算术来计算两个真实数据的 FFT。这在 Numerical Recipes 和 here 中有描述。一个实信号用作复信号的实部,第二个实信号用作虚部。它们的变换可以通过额外的算术在结果中分开。

之所以可行,是因为 FFT 是线性运算,因此变换的实部和虚部在某种意义上是可分离的,而实数到复数 FFT 中的对称性使得这种分离相对简单。

已发布库中的 FFT 例程通常经过高度优化。除非附加算术的代码也得到了很好的优化,否则两次调用实数到复数 FFT 例程可能比调用一次复数到复数 FFT 例程并辅以您自己的额外的算术。

FFT 的常见用途是对信号进行变换,乘以实数脉冲响应滤波器的变换,然后执行逆变换。在这种情况下,没有必要将两个信号分开;可以对合并后的数据进行乘法运算,通过逆变换分离出新的信号。

【讨论】:

【参考方案2】:

由于立体声通道是独立的,您需要对每个通道应用 FFT。如果您只想处理单个通道,则需要将两个立体声通道转换为单声道。

【讨论】:

以上是关于分别对立体声信号的两个通道应用 FFT?的主要内容,如果未能解决你的问题,请参考以下文章

如何混合两个音频通道?

将两个立体声通道组合成单声道?

AVAudioEngine 独立通道

如何使用 AudioKit 将一个立体声通道复制到另一个立体声通道

AudioKit - 立体声通道从输入翻转到输出?

我是不是需要将立体声音频转换为单声道以进行 FFT?