數字濾波器

2021-10-03 13:29:27 字數 2597 閱讀 1748

通常的濾波器分為有源濾波器和無源濾波器

有源濾波器:各種不同型號的運算放大器為核心構建的有源濾波器

無源濾波器:各種電阻電感搭建成的無源濾波器

這就是硬體濾波器

現在我們簡紹數字濾波器;由於現在微型處理器有很強大的運算能力,所以我們用cpu的運算能力製造數字濾波器。

數字濾波器對硬體濾波器的獨特優勢是,不需要硬體電路支援,為系統設計節省空間。

限幅濾波又稱為程式判斷濾波,根據多次採集到的資料,如果當前採集值與前一次採集的數值相差一般維持在一 定的偏差?d內,則將每次採集到的資料和前一次的資料進行比較,如果他們的差的絕對值小於?d則本次採集到的資料有效,否則無效捨棄。以前次資料作為本次取樣值。

限幅濾波程式設計簡單、運算速度快、占用ram少,是一種最簡單的基本濾波方法。能夠克服偶然因素引入的脈衝干擾,也可以消除波形上的尖峰毛刺,但是不能抑制週期性的干擾,而且其完全削除大幅度的階躍訊號,容易造成控制失調,一般不適用於開關電源這類變化劇烈需要迅速反饋的場景,適用於水溫控制等變化緩慢,安全性的應用。

其基本濾波思路是將原來的取樣間隔?t進行細分,也就是在原來的取樣間隔?t內取樣n次,然後把n次取樣值按照大小排序,取中間值為本次取樣值。

這種濾波方法能夠有效的克服偶然因素引起的波動干擾,特別是對於像溫度、液位等變化緩慢的被測引數有良好的濾波效果,但是對於流量、速度或者其他快速變化的訊號引數則不適合使用這種方法。中值濾波法的程式設計要稍複雜一些,排序可以使用冒泡法或者選擇排序法等,由於引入了排序演算法,所以該方法不能處理速度要求很高的訊號。其運算處理速度和占用的ram直接受所選擇的數值n決定。

該方法也是先將原來設計要求的取樣間隔?t進行細分,在?t內取樣n次,但是對於採集進來的資料不是進行排序,而是進行算術平均,算術平均的結果作為本次取樣值。n值的選取比較關鍵,n值較大者處理訊號的平滑度會較高,但是靈敏度降低;相反,n值較小者處理訊號的靈敏度提高,但是平滑度降低。

這種濾波方法是適用於對具有隨機干擾的訊號進行處理,並且被處理的訊號必須具有乙個平均值,訊號在這個平均值上下波動。該方法對於高速訊號並不適用。對於毛刺訊號,可以看到均值濾波將其分擔到了周圈的取樣點上,不如中值濾波那樣能夠完全去除。但是對於隨機雜訊訊號,由於其理論均值為0 ,均值濾波對第一段雜訊有良好的濾除效果。

該濾波方法運算處理速度和ram的佔用率也受所選擇的數值n決定,可以使用時間複雜度較低的排序方法降低運算開銷。

遞推平均濾波又稱為滑動平均濾波,是將連續n個取樣值設為乙個先入先出的佇列,佇列的長度為n ,每次取樣得到的新資料加入隊尾,並扔掉原佇列的隊首,然後對佇列中的n個資料進行算術平均,獲得的結果作為此次取樣值。

可以看到,長度為20的波形更好但延遲也更大。可見該方法對於週期性干擾有良好的抑制作用,平滑度也很高。但是靈敏度較低,對於偶然出現的脈衝干擾的抑制作用較差,不適用於脈衝干擾比較嚴重的場合,其運算處理速度和ram的佔用率也直接受n值影響。

另外,這種方法還有乙個特殊用法:製作成軟體陷波器,濾除某個單-頻率訊號的干擾(如工頻干擾)。具體實現方法介紹如下;由於正弦波乙個週期內任取n個等分點的幅值和為零,其它週期波形的n等分點的幅值和為常數c ,設每次取樣值為xq ,取樣的平均值為

若取n=s/f (其中s為每秒的取樣次數即取樣率; f是要消除的波形的頻率,s和n都取整數) ,這樣最終的結果就是y -c,對於50hz

的工頻干擾,c為零,只要選擇合適的n和s就可以直接將其消除,構成乙個陷波器。

對於本測試樣例,我們針對最後一段的紋波設計濾波器,由於這裡是測試的一組陣列,沒有取樣率概念,但是根據前面的關係換算,設定濾波點數為100點,對最後一段紋波進行了較好的濾除。

由於這一-段資料較少,加之前面資料的相移影響,學生可自己構造一段足夠長的紋波訊號驗證,效果將更加明顯。

中值平均濾波也稱為防脈衝干擾平均濾波,相當於中值濾波和算術平均濾波思想的結合。連續取樣n個資料,去掉其中的最大值和最小值,求剩下的n- 2個資料的算術平均作為一次取樣值。

此法綜合了兩種濾波法的優點,可以有效抑制、消除脈衝干擾,同時相對於純中值濾波更加平滑,但由於計算開銷加上均值的延遲作用,它也只能用在速度比較慢的場合,不適合高速環境,運算處理速度和ram占有率由n決定。

遞推中值平均濾波也稱為滑動中值平均濾波,與上一種不同的是採用滑動方法對序列取樣,不降低系統取樣率與取樣速度。

設定- 個長度為n的先進先出佇列,同時為了方便排序同時構造乙個同樣長度為n的已排序陣列,每個週期取樣乙個新的數值 ,插入取樣佇列隊尾並移除隊首的舊值。對這個佇列進行插入排序(其他快速排序方法均可),然後去掉使用者指定個數的較大值與較小值,取中間剩下值的平均數作為最終結果。

上圖採用了32點濾波長度,首尾去除8個點,波形平滑,沒有突變的雜訊與毛刺現象,對各種雜訊適應性比較均衡,是我們電子競賽實際中應用的最多的一種濾波方法。

但是,細心的讀者可以發現,波形向後的延遲很高,差不多與濾波長度相當,這也是此方法的弊端。所以我們經常使用32點或者64點甚至更長的滑動中值平均濾波進行資料校準階段的訊號濾波,在恆壓恆流等達到準確的穩態值後換用前面的中值濾波等高靈敏度方法進行pid的整定與調節,獲得系統速的動態響應。

數字濾波器

數字濾波器,可以分為兩大類 一類為經典濾波器,輸入訊號中的有用成分和希望濾除的成分頻率不同.一類為現代濾波器,其輸入訊號中有用訊號和希望濾除的訊號頻帶交疊.經典濾波器,從頻域上可以分為低通 高通 帶通 帶阻濾波器 從時域特性上來看,數字濾波器可以分為fir 有限衝激響應數字濾波器 和iir 無限衝激...

數字濾波器介紹

數字濾波器的使用有兩個目的 1 將混合後的訊號進行分離 2 恢復被損害的訊號。模擬濾波器也可以處理這些任務,然而,數字濾波器可以獲得更好的結果。本節主要描述數字濾波器的引數。濾波器基礎 數字濾波器是dsp中的乙個重要部分。在dsp中很自然認為輸入輸出訊號是在時域的。這是由於訊號通常通過等間隔取樣獲得...

matlab數字濾波器

matlab提供了專門用於求離散系統頻響特性的函式freqz 呼叫freqz 的格式有以下兩種 1 h,w freqz b,a,n 2 h,w freqz b,a,n,whole 1 中b和a分別為離散系統的系統函式分子 分母多項式的係數向量,返回量h則包含了離散系統頻響在 0 pi範圍內n個頻率等...