前言介紹:
隨著信息科技的發(fā)展,信號處理得到了大幅推動,已被廣泛應(yīng)用于雷達(dá)、通信、自動化、航空航天等領(lǐng)域。在信號處理系統(tǒng)中,輸入信號通常含有各種噪聲和干擾。為對信號進(jìn)行準(zhǔn)確的測量和控制,必須削弱或?yàn)V除被測信號中的噪聲和干擾。一般在系統(tǒng)中可選用硬件濾波和 軟件濾波 。
硬件濾波介紹:
硬件濾波又分為無源濾波和有源濾波,無源濾波是通過 RC 濾波器或 LC 濾波器等模擬濾波器進(jìn)行濾波。硬件濾波的優(yōu)勢是不需要進(jìn)行復(fù)雜的程序處理,反應(yīng)靈敏。
軟件濾波介紹:
軟件濾波有時候也稱數(shù)字濾波是通過一定的算法削弱噪聲的影響軟件濾波的優(yōu)勢是不需要硬件的投入,僅僅靠代碼就可以完成,而且可靠穩(wěn)定。
10種經(jīng)典的軟件濾波方法包括:
- 限幅濾波法
- 中位值濾波法
- 算術(shù)平均濾波法
- 遞推平均濾波法
- 中位值平均濾波法
- 限幅平均濾波法
- 一階滯后濾波法
- 加權(quán)遞推平均濾波法
- 消抖濾波法
- 限幅消抖濾波法
限幅濾波介紹:
限幅濾波基本思路是根據(jù)被測對象確定相鄰兩次采樣所允許的最大差值△Y, 然后在每次采樣后和上次有效采樣值進(jìn)行比較, 如果變化幅度不超過△Y,則本次采樣有效;否則,則這次采樣值被視為干擾而放棄,而以上次采樣值為準(zhǔn)。
其原理可用如下公式表示:
|yn-yn-1|≤△Y :yn 有效 如果本次值與上次值之差<=DEVIATION_MAX,則本次值有效;
|yn-yn-1|>△Y :yn-1 有效 如果本次值與上次值之差>DEVIATION_MAX,則本次值無效,放棄本次值,用上次值代替本次值。
yn 為第 n 次采樣值, yn-1 為第(n-1)次采樣值
△Y一般根據(jù)經(jīng)驗(yàn)來設(shè)定,確定兩次采樣允許的最大偏差值(設(shè)為DEVIATION_MAX);
C語言示例代碼:
/* DEVIATION_MAX,根據(jù)實(shí)際情況調(diào)整。value為有效值,new_value為當(dāng)前采樣值;
濾波程序返回有效的實(shí)際值 */
注:本文假定從16位AD中讀取數(shù)據(jù)(若采用更高位的AD可定義數(shù)據(jù)類型為int);子程序?yàn)?span id="zhztntr" class="hljs-built_in">get_ad(),用于獲取AD采樣數(shù)值;
#define DEVIATION_MAX 10
int16_t value;
int16_t filter(void)
{
int16_t new_value;
new_value = get_ad();
if ((new_value - value > DEVIATION_MAX) || (value - new_value > DEVIATION_MAX))
{
return value;
}
else
{
return new_value;
}
}
限幅濾波優(yōu)/缺點(diǎn):
優(yōu)點(diǎn):能有效克服因偶然因素引起的脈沖干擾;缺點(diǎn):無法抑制那種周期性的干擾、平滑度差;
-
濾波器
+關(guān)注
關(guān)注
161文章
7826瀏覽量
178203 -
軟件濾波
+關(guān)注
關(guān)注
0文章
8瀏覽量
8175 -
C語言
+關(guān)注
關(guān)注
180文章
7605瀏覽量
136934 -
無源濾波
+關(guān)注
關(guān)注
1文章
20瀏覽量
12748 -
硬件濾波
+關(guān)注
關(guān)注
0文章
2瀏覽量
1582
發(fā)布評論請先 登錄
相關(guān)推薦
評論