我想实时编程用于降噪的软件,就像在具有主动降噪功能的耳机中一样。是否有任何开放的算法,或者至少有关于它的科学论文? Google搜索仅发现有关非实时降噪的信息。
答案 0 :(得分:34)
除了所有正常的耳机电路外,还有一个有源降噪耳机,还有一个麦克风和额外的特殊电路。在基本级别,耳机上的麦克风会拾取您周围的环境噪音,并将其传送到特殊电路。特殊电路解释声音并以反向(相反)方式模仿它。它产生的反向声音通过耳机扬声器发出,并消除周围的环境噪音。
所有这些都是基于声波干扰。当相反相位的2波干扰时,结果是没有声音。 (它也适用于光。)
您应该查看waves interference上的维基百科页面,找到您需要制作以消除外部噪音的正确阶段
对于正弦系统:
让我们走2波:
和
我们希望将结果波表达为:
鉴于A1,您希望找到A2,使 A0 = 0
这意味着给定Phi1你需要找到Phi2,使得A0 = 0
你可以证明:
在解决A0 = 0时,您将获得需要创建的波的频率以消除噪声。 它被称为破坏性干扰。
声波不是一维的...所以你只会在一个方向上受到破坏性的干扰:
现在你只需要找一些声音信号......
我会尽力回答你的评论。
<强>首先强>
2D问题并不比1D困难得多。
外部噪声可以近似为位于无穷远处的源。 您将在耳机中创建具有声源的破坏性噪声,并且可以假设在源的相等距离处振幅相同。
你需要在x,y轴上写下它(最好使用极坐标)
您可以使用简单的trigonometry formula来获取计划中每个点的幅度:
:\ sin(A + B)= \ sin A \ cdot \ cos B + \ cos A \ cdot \ sin B
:\ cos(A + B)= \ cos A \ cdot \ cos B - \ sin A \ cdot \ sin B
:\ sin(A - B)= \ sin A \ cdot \ cos B - \ cos A \ cdot \ sin B
:\ cos(A - B)= \ cos A \ cdot \ cos B + \ sin A \ cdot \ sin B
<强>第二强>
所有延迟都是在破坏性来源的“Phi”中建模的。可以只调整计算的Phi,以便考虑延迟。
您可能需要更多关于声音的特定信息,因为我的信息对任何类型的波都非常理论。