测量数字滤波器传递函数的最有效方法

Most efficient method for measuring the transfer function of a digital filter

我必须确定(实际验证)数字音频 EQ 滤波器组的传递函数。 (有人告诉我阶段并不重要,目前我正在这个假设下工作。)

我将使用 APx515 音频分析仪,但似乎我既无法在输入端注入模拟信号,也无法通过 SPDIF/TOSlink 或任何其他串行 link。输入信号必须存储在音响主机中或通过 USB 记忆棒传输。从那时起,它将被读入音频处理阶段,即 EQ 滤波器。然后信号将被发送到包括放大器在内的 DAC 级。模拟输出级已根据增益进行表征。

几年前,我曾研究过逆向识别的系统识别问题。我们有一个计算量相当大的系统,它利用 LMS 过滤器,还有一个最小化需要矩阵求逆的误差的系统。

由于 AP 设备会给出输出信号的 FFT,我认为线性调频信号将是最好的数字刺激。 我知道这是相当开放的问题但是:

线性调频信号是否足以确定 EQ 滤波器传递函数的大小?

应该使用的chirp信号有什么特点?

秒级的信号持续时间是可以接受的。我想必须检查线性调频信号的 fft 以确保它在感兴趣的频率(频带)内是平坦的。

如果您能提供任何见解,我们将不胜感激。 谢谢 吉姆

听起来很有趣。在为房间中的混响捕捉脉冲响应时,我只使用过线性调频信号。在那种情况下,我记得使用的线性调频信号不是线性的,所以我猜信号的特性取决于系统的用途。

这很难说,但如果可以的话,一定要带上几个信号。比方说,一个线性线性调频信号,一个对数信号,然后可能只是一个规则的脉冲响应,后面跟着一个零尾。然后,您应该能够使用输入和输出信号的 z 变换计算出传递函数。虽然链末端的放大器可能会使这变得有点困难,因为您必须考虑它对信号的影响。

您可能已经看过,但 Julius O. Smith 有一本关于数字滤波器分析的好书。这可能是我见过的关于数字音频滤波器分析的最好的书。它应该回答你的任何问题。

https://ccrma.stanford.edu/~jos/filters/

事实证明,解决方案很简单。使用清洁刺激这一事实有所帮助。

我使用了线性调频信号作为刺激。对数线性调频信号提供更好的低频特性(例如,与已知 DUT 在 0.001 dB 范围内一致),而线性线性调频信号在高频端(相同范围的一致)提供更好的一致性。 DUT 可以按照低中频和高频设备(总范围为 20 Hz 至 20 kHz)分类。鸣叫声的长度可调节为 2 秒或 4 秒。

计算了交叉谱密度(Sxy 使用 Welch's 和 Hann window)和谱密度 Sxx。 这给出了:H=Sxy/Sxx H 的前半部分幅度值用于报告结果。正如我之前提到的,不需要进行相位测量。

如果有人要我这样做,我可以 post 使用 Butterworth 和椭圆滤波器模拟的 DUT 对这些步骤进行 Scilab 模拟。 谢谢。