使测量系统与系统响应解卷积


14

我正在执行系统识别测量,并希望将测量系统的响应与测量的响应反卷积。

系统的设置如下:信号在PC上生成,然后将信号发送到声卡,声卡再将信号转发到功率放大器,从而驱动扬声器。扬声器传播由麦克风捕获的声能,然后传播回声卡。记录的信号然后由计算机处理。

声卡的信号也直接反馈给自身,这使我能够测量pc-> DAC-> ADC-> pc响应的响应。

我想把这个“测量链”从整个“系统链”中解卷出来。我可以使用什么方法执行此任务?

Answers:


12

很抱歉,答案很长,但是很难进行良好的声学测量。这里涉及一些步骤(在某些时候,我们实际上将直接回答您的问题)。

首先,您必须确保要测量的系统是实际的线性且时间不变的(否则您无法解卷积)。如果使用常规的声卡驱动程序,在PC上这可能会很棘手。这些将通过Windows Kernel Mixer路由任何信号,该信号经常应用采样率转换并以不确定的方式及时获取缓冲区。我强烈建议绕过Kernel混合器。

其次,您需要确定系统脉冲的长度。一个很好的估计是您正在测量的房间的混响时间。选择2的幂是最方便的。对于大多数房间,这将在44.1kHz或48 kHz采样率下为16384或32768。

第三,创建该长度的周期性激励。这可以是对数扫描或(更好)伪随机噪声。应该选择噪声频谱,以便在感兴趣的频率范围内获得大致恒定的信噪比。这取决于传递函数和背景噪声频谱。如果您还不了解它们,粉红色是一个不错的开始。我们称该信号x [n]的一个周期。

第四,连接系统,使D / A的左声道进入扬声器,而A / D的左声道进入。将麦克风连接到A / D的右声道。

第五,开始激励(将其循环或创建具有重复多次噪声信号的波形文件)。仔细监视所有电平:确保A / D位于削波以下约10 dB。确保麦克风前置放大器位于削波以下约10 dB。确保功率放大器没有削波,并且扬声器没有过载。

第六,确保房间尽可能安静。关闭门窗。用风扇关闭所有东西,包括任何HVAC系统。将所有其他人赶出房屋。如果有任何接地回路,请根据需要使用隔离变压器和接地升降机。检查噪声的一种好方法是将耳机放大器连接到麦克风输出,并通过耳机收听。您可以听到的任何噪音,嗡嗡声或其他伪影也会显示在测量结果中。

第七,做实际的收购。在激励信号运行的情况下收集12个周期。目视检查结果是否存在异常(间隙,零件缺失,脱落等),将前两个时间段扔掉。计算其他10个信号的平均值。我们称左声道y [n](声卡)和右声道m [n](麦克风)。

第八,计算y [n]的傅立叶变换。它应该相当平坦,没有零或能量非常低的区域。可能并非如此,因为大多数声卡具有AC耦合输入,即存在一些高通滤波器,并且DC处的值可能非常低。同样,可能还会有一个抗混叠滤波器,因此,您可能能量较低,或者在非常高的频率处只有噪声。如果可以手动解决此问题(通过添加少量宽带能量),则可以。如果频谱在感兴趣的频率区域非常平坦,则可以简单地将其替换为适当延迟的单位脉冲。如果这些都不起作用,事情就会变得更加复杂。

Hω={Ť}{ÿŤ}
{}

Hω={Ť}{XŤ}

第十:验证您的测量结果是否良好。应该执行各种测试:

  1. 测量几次,并确保结果相同。
  2. 在扬声器静音的情况下进行测量。这样可以很好地估计背景噪声频谱。根据经验,在所有感兴趣的频率上至少需要10 dB的信噪比。
  3. 线性测试:用一半的激励增益进行测量,并确认所得的传递函数相同。
  4. 有用的在线噪声测试如下:将10个周期取平均值,每个周期取2个周期平均5次,然后对2 * N个样本进行傅立叶变换。如果您的信号无噪声,则所有奇数档应为零。您可以直接估算任意频率下的信噪比,即X {2 * N + 1} / X {2 * N}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.