在每秒44个样本的LPCM阵列的情况下取消噪声

时间:2012-04-21 16:34:41

标签: algorithm audio core-audio pcm noise-reduction

我有一个每秒44100个样本的LPCM数据。实际上我有两个渠道的数据。

每隔11.61毫秒我会得到512个样本。

现在我想按照How to cancel noise from audio

上的说明进行操作

但是,该解释假定输入是正弦波。

我应该将LPCM转换为正弦波来消除噪音吗?也就是说,我是否需要在LPCM上运行FFT才能应用这种技术?

如果是这样,我如何将生成的波形转换回LPCM以便它们可以播放?

2 个答案:

答案 0 :(得分:0)

如果需要从频域转换回时域,可以使用逆傅里叶变换。否则,我认为还有更多的降噪算法。

答案 1 :(得分:0)

你想取消哪里的噪音?为了消除探测器(你有麦克风的地方)的噪音,你只需要反转信号(交换+和 - 电缆),匹配振幅,并调整频率以校正你的设备。要消除连接源和麦克风的线路上某些其他点的噪声,您还需要添加延迟(如果更远地取消)或以某种方式“推进”声音(如果在源和麦克风之间取消)。如果取消离轴,则事情变得更复杂(并且您需要两个信号)。

在复杂的情况下(离轴或麦克风前)你需要做一些更先进的信号处理。一种方法是使用ffts,但找到使用数字滤波器的近似值可能更有效

我猜想bose耳机等使用信号反转,放大和一些相当简单的频率整形,加上可能还有某种反馈检测(如果一切都出错就避免震耳欲聋)。

更新here is a really good paper了解耳机的工作原理。他们有各种方法,包括训练过滤白噪声。它比我上面猜到的要复杂得多。