消抖濾波法

2021-10-08 21:00:30 字數 617 閱讀 2222

首先先說一下感測器取樣的時候在臨界線的時候可能前一幀採集到資料,然後下一幀採集不到資料了,後面一直採集到資料。然後資料簡單的模擬就是1-0-1-1-1-1,多了個1-0-1的變化,這個是我們不需要的,這就可以採取濾波演算法進行處理了。

濾波演算法都十幾種,比如中位值濾波法、算術平均濾波法、加權遞推平均濾波法等等,下面介紹的是消抖濾波法。

消抖濾波法

#define n 6

intfilter

(bool state)

count =0;

laststate = state;

}

下面說一下微控制器的按鍵去抖。原理也是一樣,都一點小小的改變就是沒用計數器的方式,而是採用delay延遲的方式:

#include

sbit k1 = p1^0;

void

delay

(unsigned

int x)

//延時 x ms

void

main()

//在這兒新增按鍵按下後要執行的功能。

function()

;}}}

微控制器ADC取樣演算法 消抖濾波法

消抖濾波法的實現步驟為 設定乙個濾波計數器,將每次取樣值與當前有效值比較,如果取樣值等於當前有效值,則計數器清零。如果取樣值不等於當前有效值,則計數器 1,並判斷計數器是否 上限n 溢位 如果計數器溢位,則將本次值替換當前有效值,並清計數器。也就是只有取樣值連續變化n次之後,才將取樣值做為有效值。下...

FPGA Verilog按鍵消抖

硬體 鋯石a4開發板,altera ep4ce10f17c8 語言 verilog hdl 原理 機械式按鍵大概有20ms的抖動,所以檢測到按鍵變化後等20ms再判斷一次,如果鍵值相同才視為有效 頂級模組按鍵切換led顯示 module key led,key,clock,reset input c...

FPGA 按鍵消抖

今天簡單的說說按鍵消抖,原理特別好理解,其實就是延時,做一定時間的延時後取值一次,就能夠得到特定的消抖後的狀態了。為什麼要消抖?見圖 我們可以看到,但按鍵按下的那一刻,存在一段時間的抖動,同時在釋放按鍵的一段時間裡也是存在抖動的,這就可能導致狀態在識別的時候可能檢測為多次的按鍵,因為執行過程中普通的...