分享免费的编程资源和教程

网站首页 > 技术教程 正文

在Labview中快速实现滤波——低通,高通,带通滤波实例

goqiw 2024-11-06 18:22:18 技术教程 239 ℃ 0 评论

滤波算法通常在Matlab中实现,需要变成使用。但是,Labview同样可以实现滤波算法,而且比Matlab更为简单易用。

Labview图形化编程语言对入门用户非常友好,今天来给大家介绍一下如何在Labview中快速部署滤波器。

首先我们自定义一个正弦信号,设置频率为20Hz跟5Hz叠加,幅值分别为1和3。我们用逐点生成的方式来生成这个正弦信号。逐点信号生成在面板上的位置如图所示。

我们采用定时循环来保证程序的稳定运行,时间间隔设置为1ms,这也间接设置了我们对信号的采样频率为1000Hz。

正弦波(逐点)这个控件需要我们输入时间,我们可以在循环次数上乘以0.001作为时间输入,然后依次设置频率、幅值。最后将两个信号叠加。

滤波器选择上,我们依然在逐点面板下。选择滤波器(逐点),然后选择Butterworth滤波器,这是最常用的滤波器,能够实现带通,低通,高通等功能,很实用也很方便。

整体的程序框图如下图所示。

Butterworth滤波器控件我们要设置滤波器类型,输入信号、采样频率(本例程是1000Hz)。最重要的是截止频率和阶数的设置。

阶数的设置默认是2,但是对于滤波效果并不是很好。调高阶数可以让滤波看起来梗平滑,但是过高的阶数会让信号失真,所以阶数的选择很大取决于经验跟实际,可以多调节几次。本例程中采用阶数4.

我们这次的信号有5Hz跟20Hz两个频率,如果我们不想要20Hz的,我们需要用低通滤波器,也就是Lowpass filter,然后低截至频率选择为10Hz,这样10Hz以上的被滤除,只剩下5Hz的了。

图中可以看出,20Hz的正弦信号被很好的滤除了,只剩下了5Hz信号。

对于高通滤波,带通滤波,在Butterworth滤波器上可以方便的切换,具体操作大家可以实际操作一下,毕竟只有实际操作才能发现问题,有不懂的可以直接留言,我尽可能的回复大家。

谢谢~~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表