Math 有源噪声抵消的原理是什么?

Math 有源噪声抵消的原理是什么?,math,audio,fft,frequency,noise-reduction,Math,Audio,Fft,Frequency,Noise Reduction,在前面的一个问题中,我问过 其中一张海报说,虽然简单地产生反极性(否定)信号在理论上可行,但在实践中是不可能的 所以我想问的是,有源噪声消除的基本方法是什么(以一种半技术的方式) 其次,为什么大多数关于这个话题的文献都是频域的?很简单 当你发送反向信号时,噪音已经被听到了。 您需要查看正在生成的频率,然后生成相应的反转信号来抵消它们。这相当简单 当你发送反向信号时,噪音已经被听到了。 您需要查看正在生成的频率,然后生成相应的反转信号来抵消它们。噪声抵消是预测。您的算法必须预测未来某个时间噪声的声

在前面的一个问题中,我问过

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

所以我想问的是,有源噪声消除的基本方法是什么(以一种半技术的方式)

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

很简单

当你发送反向信号时,噪音已经被听到了。 您需要查看正在生成的频率,然后生成相应的反转信号来抵消它们。

这相当简单

当你发送反向信号时,噪音已经被听到了。
您需要查看正在生成的频率,然后生成相应的反转信号来抵消它们。

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

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

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


如果您不知道系统的频率响应和延迟,那么您将不知道要创建用于抵消的信号的频率、振幅或相位。你很可能会放大噪声而不是消除噪声。

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

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

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

如果您不知道系统的频率响应和延迟,那么您将不知道要创建用于抵消的信号的频率、振幅或相位。你可能会放大噪音而不是消除噪音。

编辑:打字错误

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

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

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

如果我们拿N=8为例,这意味着我们正试图消除8个最强大的波形分量。我们为每种产品存储:

  • 波幅
  • 波的偏移量,以计算机的时钟为基准
然后我们连续播放8个正弦波,每个正弦波的功率和延迟都正确。最困难的是接下来会发生什么。我们需要不断地倾听以适应,但现在我们正在倾听环境声音+我们自己的声音。这个算法很难实现,但在概念上更容易实现,而且人们可以很容易地自己想出如何实现它

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

编辑:输入错误

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

播放相反的声音意味着以精确的功率和延迟再次播放,可能会反转波形。延迟本身因每个频率而异。例如,对于20Hz的声音,我们必须