24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
行业资讯>
数字和模拟滤波器的低...

行业资讯

数字和模拟滤波器的低成本验证


数字和模拟滤波器的低成本验证

在自动化硬件在环测试的低成本解决方案中,我们回顾了使用低成本测试设备来验证我们的硬件设计的想法。在本文中,我想重点介绍一个在验证方面具有很高进入门槛的特定应用程序:数字信号处理 (DSP),特别是信号过滤。与其详述 DSP 主题,不如将其简单地定义为将进入电路板的信号数字化,然后对其进行处理。要更深入地了解什么是 DSP 以及它是如何工作的,您可以查阅维基百科或各种教程,例如dspGuruDSP Guide. 本文的重点是找到一种简单但经济高效的方法来验证您的数字(或模拟)滤波器。为简单起见,我使用 Arduino 实现了我的数字滤波器。代码存储库可以在这里找到。

基线

很常见的是,越接近电子,测试就越原始。这不是针对模拟设计社区的攻击。对于非基于生产的硬件,期望很少或没有测试自动化是合理的。如嵌入式系统的测试驱动开发中所述在 OnTrack 上,电气工程师在开发阶段自动化全套测试以验证其设计的驱动因素并不多。它所需的成本和时间并不能证明工程师需要转动几个旋钮并称其为良好的几次是合理的。输入模拟和数字滤波。设计工程师可以验证设计完美的基本滤波器一两次,并移交给设计流程的下一个阶段。当多个变量进入方程式时,例如调谐、范围验证和 EMI 测试,自动化将大有帮助。大多数高端示波器都带有某种频谱分析仪,可以执行快速傅立叶变换 (FFT) 来确定您的滤波器是否正常工作,但很少有完全自动化的。为了那个原因,

让我们看一个简单的例子:一个低通滤波器试图用特定的噪声抑制水平滤除 100 Hz 以上的所有频率。如果我想手动测试这个,我将在改变我从函数发生器中驱动的输入频率和幅度的同时,将我的输入与输出进行比较。示例测试设置通常如下所示:

1:测试硬件配置

即使我们坚持使用整数测试每个频率也需要很长时间。使用低端泰克示波器,我只测试了 4 个不同的频率,但我仍然需要一些时间来配置我的示波器、手动驱动输入以及捕获每个波形的图像。正如您所看到的,图像捕获的分辨率也不是很高。

21 Hz 时的波形捕获

310 Hz 时的波形捕获

4100 Hz 时的波形捕获

51 kHz 时的波形捕获

范围捕获并明确表明过滤器似乎正在工作。您可以看到滤波后的信号(通道 2)在我们接近 100 Hz 时缓慢衰减,达到我们在达到目标时过滤掉的要求。示波器附带的内置 FFT 数学函数也是如此。这没什么好写的,但它确实为我花费了大约 1,000 美元的示波器完成了工作。

6:使用示波器的数学函数进行 FFT 捕获

当我们经历这个过程时,特别是在第十轮返工之后,我们不得不问自己,我们愿意像这样手动验证我们的设计多少次?

验证交易空间

当涉及到验证和自动化测试时,尤其是对于包括数字信号处理在内的更复杂的设计,我们需要了解在自动化方面投入时间和金钱的地方。让我们看一下用于测试滤波器设计的三种不同的可行选项。

7:测试设置的交易空间

正如我们之前看到的,第一个选项使用示波器和函数发生器。这些是每个工程师在学校学习如何使用的标准工具。这是手动的,乏味的,而且不是很彻底。第二个选项,捕获数据并处理它,很好,但前提是您擅长 MATLAB SciPy。最后一个选项也不错,但还需要了解您正在使用的设备(或与该设备相关的驱动程序)。

对于这个项目,我采取了混合的方法。我首先使用我的Analog Discovery 2 对所有内容进行了视觉验证,然后转向使用 Python Pytest框架进行自动验证。

8:使用 Analog Discovery 2 的示波器 + 频谱分析仪

一旦我为自己设定了基线,我就转向了自动验证。我的 CI/CD 设置包括两个阶段:编译/加载固件和硬件在循环测试。

在这两个脚本之间,总共执行了三个测试并报告回 Gitlab。这些测试是使用我在计算机(或 Raspberry Pi)上配置的 Gitlab Runner 在硬件目标上运行的。

10Gitlab 中的测试报告

我的测试目标是确保我的输入信号在大于 100 Hz 的频率下被正确衰减,而我的自动测试正是这样做的。

11:信号幅度衰减

我通过切割波形的边缘并获取正弦波的前几个最大值和最小值来实现幅度检查器的穷人版。请注意,在实际 DSP 中,需要应用窗口函数,然后对滤波后的信号运行 FFT。对于这个测试,我只关心 1V 的输入幅度对于 100Hz 以上的频率衰减到 0.2V 或更低。正如您在作业日志中看到的那样,该测试正是这样做的。我们现在可以使用这个测试套件并在任何地方运行它,而不必每次都手动设置我们的设备。

请输入搜索关键字

确定