濾波算法通常在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濾波器上可以方便的切換,具體操作大家可以實際操作一下,畢竟只有實際操作才能發現問題,有不懂的可以直接留言,我儘可能的回覆大家。
謝謝~~