极低频滤波器


13

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

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


3
这个问题让我震惊,它的答案!我从没考虑过过滤这样低的频率:)
bitsmack

6
@bitsmack我在电子胃电图(EGG)仪器中看到了50毫赫兹的高通。
尼克Alexeev

一些信号发生器同时具有MHz按钮和mHz按钮。
AndrejaKo

可以将数字形式的测试信号输入DSP吗?以数字形式生成任何频率很容易。---缺点是您将不会测试板的模拟和A / D部分。
pabouk '19

1
@bitsmack这意味着您必须等待很长时间才能解决问题,并且“扫描”必须非常慢(数小时),但是最好至少测试一次实际的实时性能,然后再相信它会起作用放慢速度(测试后加快)。诸如锯齿之类的事情可能会抬起头来。
Spehro Pefhany,

Answers:


18

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

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

我们在某些测试设置中使用了替代3的变体,这不是因为我们无法生成所需的慢波形,而是因为即使尝试进行粗略的频率扫描,模拟滤波器的<0.01Hz截止也会花费太长的时间来表征。这将测试时间从一个多小时减少到仅几分钟。


10

μμ

不幸的是,使用便宜的DDS(例如AD9850)模块无法达到如此低的水平,因为调谐字仅为32位,时钟通常为125MHz,因此分辨率为0.03Hz。我想它会给你几个数据点(0.0291 / 0.0582 / 0.0873 Hz)

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


2
如果您的DDS模块可以接收外部时钟信号,只需将其降低频率!从
本质上来说,

1
@ThreePhaseEel可以这样做,但是除非重新设计输出低通滤波器(通常类似于5极LC椭圆滤波器),否则它通常不是一个很好的输出。对于OP,由于最大频率非常低,因此他或她可能只需要向输出添加一个1Hz低通RC滤波器即可获得一个不错的信号。
Spehro Pefhany

同意您需要一个后置滤波器– AD9850的最小时钟为1MHz btw,这是有一点限制的,但仍然足够获得OP想要的结果
ThreePhaseEel

@ThreePhaseEel当然,即使8或10 MHz也会产生0.002或0.0024Hz的分辨率。
Spehro Pefhany,

6

选项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的频率进行滤波,则采样率也可能会相当慢。使用测试工具可使您比实时运行这些测试更快,这将使您的测试过程更高效。


5

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


2

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

有三种检查滤波器响应的好方法,一种是狄拉克增量函数(脉冲函数或短脉冲),另一种是阶跃输入,最后一种是扫频。

使用我使用的仪器,实验可以持续数周到数月,我们的某些物理系统会在几天之内响应。检查这些系统\过滤器的最佳方法是使用步进输入,然后测量时间常数。如果您还记得电压输入的时间常数,则为:

V(t)=V0(1et/τ)

τ=RC

在此处输入图片说明
资料来源:http//mit6002.blogspot.com/2011/05/1011-parallel-rc-circuit-step-input.html

(图片中的电流源带有并联电阻,等效于电压源带有串联电阻)


0

您可以使用电位计和手表手动产生可容忍的50 mHz信号。

或者,计算滤波器的预期阶跃响应。拨动开关,为您的硬件提供步进输入。将输出绘制一分钟左右的时间(如果您的示波器时基不会太慢,请用录像带记录万用表并每秒记录一次读数)。将测得的阶跃响应与您的预测进行比较。如果它们匹配(足够接近,考虑到ADC / DAC /时序不正确),则表明滤波器工作正常。

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.