极低频滤波器

电器工程 数字滤波器
2022-01-14 14:26:35

我有一个数据采集板(A/D+数字信号处理器),我想检查一个截止频率极低(0.05Hz)的数字高通滤波器(在 DSP 中实现)是否真的在工作。

如果这是我可以用信号发生器生成的频率,那将很容易检查,但 0.05Hz 太低了,我无法生成它。工程师如何检查这种过滤器?

4个回答

我想这取决于几个因素,其中包括过滤器的顺序,但你有几种可能性:

  1. 找到一个可以到达那里的信号发生器。这些现在相当便宜。
  2. 相信数学。这是一个数字滤波器,因此它随采样率缩放。如果您可以将采样率提高两个数量级,您将拥有一个具有 5Hz 截止频率的滤波器,更容易测量。同样,如果限制因素成为 ADC,您可以将其与滤波器隔离并输入一些人工数字数据。
  3. 使用阶跃响应(许多宽带信号都可以)。计算所需滤波器的阶跃响应并与结果进行比较。或者,或者,通过阶跃响应的 FFT 计算频率响应。

我们在一些测试设置中使用了备选方案 3 的变体,不是因为我们无法生成所需的慢速波形,而是因为如果我们尝试粗略的频率扫描,我们的模拟滤波器的 <0.01Hz 截止频率将花费太长时间来表征. 这将测试时间从一个多小时缩短到几分钟。

我会使用我的安捷伦函数发生器,它可以降至 1 \$\mu\$ Hz,这是一个相当不起眼(且已过时)的 33522A 型号。我认为,我的 Rigol DG4102 同样具有 1 \$\mu\$ Hz 分辨率且成本更低。

不幸的是,使用廉价的 DDS(例如 AD9850)模块无法获得这么低的值,因为调谐字只有 32 位,时钟通常为 125MHz,因此分辨率为 0.03Hz。我想它会给你一些数据点(0.0291/0.0582/0.0873 Hz)

您还可以向它提供一个步骤并查看时域响应。

选项 1:在 PC 上测试。

如果您的 DSP 代码是用 C 编写的,那么您可以在 GCC 或 Visual Studio 中设置测试工具。您知道 DSP 代码的采样率,因此请使用 Excel 生成测试输入 CSV 文件,并让您的测试工具转储您可以检查的 CSV 文件输出。

选项 2:在带有 PC 接口的 DSP 上进行测试。

如果您的 DSP 代码必须在 DSP 上运行,您仍然可以使用 PC 对其进行测试。在 DSP 上设置一个测试工具,它接收来自 PC 的值,运行 DSP 过滤器的一个步骤,然后将该步骤的过滤器输出报告回 PC(使用 USB、RS-232 或 TCP/IP,具体取决于您如何连接到 DSP)。您还需要一个 PC 端测试工具来发送和接收这些值。同样,您可以在 PC 上设置测试输入 CSV 文件,将连续样本传递给过滤器代码,并转储您可以检查的 CSV 文件输出。

对彼此而言...

如果您以 0.05Hz 进行过滤,那么您的采样率也可能会相当慢。使用测试工具可以让您比实时更快地运行这些测试,这将使您的测试过程更加高效。

如果您的 DSP 系统中也有 D/A 转换器,您可以在软件中生成这个极低频信号并将其反馈到您的 A/D 输入。或者,您可以使用 D/A 卡或 USB 适配器来生成信号。此类设备的一个示例是LabJack,但还有更多具有不同价格/功能的设备。另一种可能性是使用便宜的微控制器 + DAC,如 Raspberry Pi 或 Arduino