1

在上一个问题中,我曾问为什么我不能简单地否定源时域幅度值来产生破坏性噪声信号?

其中一位海报说,虽然简单地产生一个反极性(否定)信号在理论上是可行的,但在实践中是不可能的

所以我问,主动降噪的基本方法(以某种半技术方式)是什么?

其次,为什么大多数关于这个主题的文献都在频域中?

4

4 回答 4

9

这很简单。

当您发送反相信号时,噪音已经被听到了。

您需要查看正在生成的频率,然后产生适当的反相信号以消除它们。

于 2012-04-24T04:24:35.730 回答
6

噪音消除是预测。您的算法必须预测未来某个时间噪声的声音(该时间由系统和音频时间延迟给出),然后预测未来同一时间什么信号会产生相反的声音(您的系统会失真和延迟,因此您必须考虑相反的失真和延迟)。

您可能能够使用几个连续的 FFT 来确定噪声中哪些频率没有变化,并假设或计算它们将在未来短时间内继续存在的概率。

如果您知道扬声器的频率响应曲线,您可能能够计算出匹配某些预测噪声频谱所需的信号的频率幅度。正弦曲线的相位角将随时间变化。如果您知道输出信号的时间延迟,您或许可以在未来某个时间点计算出正弦曲线的相位。如果您在某个时间和位置有一个特定频率噪声的预测相位,您可以将 π 添加到该相位角以估计降噪信号。

如果您不知道系统的频率响应和延迟,那么您将不知道要创建什么频率、幅度或相位来消除信号。你很可能最终会放大噪音而不是消除它。

于 2012-04-24T06:03:03.963 回答
1

似乎缺少的是拦截和否定信号所需的传播延迟。KISS 规则最终将证明这一点。FFT 是一个复杂的计算,每次 N 次迭代都会由于处理信号所需的时间而引入产生的误差。要消除声波,需要提前截获、处理和反转。那么换能器的时间常数必须。E 考虑。我的经验是,靠近“噪音”源的麦克风通过电线和放大设备和换能器连接在要取消的位置附近。

于 2019-01-20T03:47:06.263 回答
0

编辑:错字

ANC 的基本思想是找到重复的声音并播放相反的声音。如果重复的声音继续播放,我们将能够取消它。这与其他答案直接矛盾,但我会澄清一下。

播放相反的声音意味着以精确的功率和延迟再次播放它,可能会反转波形。延迟本身因每个频率而异。例如,对于 20Hz 的声音,我们必须以 1/20 = 0.05s 的精确倍数重放反转的声音。例如,对于 23Hz,延迟必须是 1/23 ~= 0.04347s 的倍数。

由于任何波形都可以通过正弦曲线的总和产生,因此一种方法是只担心N个最大的正弦曲线,以功率(幅度的平方)测量。为了找到正弦波的频率和功率,我们使用傅里叶变换,通常使用FFT算法。

如果我们取,例如 N=8,这意味着我们正在尝试消除 8 个最强大的波分量。对于它们中的每一个,我们存储:

  • 波幅
  • 波的偏移量,以计算机的时钟为基准。

比我们不断地播放 8 个正弦曲线,每个都在正确的功率和正确的延迟上。困难的部分是接下来会发生什么。我们需要不断地倾听以适应,但现在我们正在倾听环境声音+我们自己的声音。这种算法更难实现,但从概念上讲更容易,并且可以很容易地自己弄清楚如何去做。

因此,与其他答案所说的相反,管理时间延迟至关重要。不这样做是不可能创建 ANC 系统的。如果您只关心频域,那么您唯一可以做的就是过滤这些频率。在 ANC 系统上,这是没有意义的。

于 2016-07-08T19:06:48.013 回答