用于清除數(shù)據(jù)噪聲的簡(jiǎn)單數(shù)字濾波器
圖1顯示的是一個(gè)模擬RC低通濾波器以及它的設(shè)計(jì)公式。去除ADC線性范圍內(nèi)的噪聲信號(hào)還有另一種方法,即使用模擬RC低通濾波器的數(shù)字等式。該濾波器的軟件只有兩行C代碼:
LPOUT=LPACC/K,式中濾波器的輸出值為L(zhǎng)PACC除以一個(gè)常數(shù)。 LPACC=LPACC+LPIN-LPOUT,式中增加了輸入與輸出之間的差值以更新LPACC。所有變量均規(guī)定為整數(shù)。
模/數(shù)轉(zhuǎn)換每獲得一個(gè)新的輸入采樣LPIN時(shí),軟件都產(chǎn)生一個(gè)輸出值LPOUT,它由一個(gè)經(jīng)低通過濾的輸入采樣組成。常數(shù)K值的計(jì)算要根據(jù)系統(tǒng)的采樣速率以及濾波器所需時(shí)間常數(shù):K=T×SPS,其中K>1,而SPS是系統(tǒng)的采樣速率。例如,對(duì)于一個(gè)采樣速率為200次采樣/秒的系統(tǒng),所需時(shí)間常數(shù)為30秒時(shí),常數(shù)K等于6000次采樣。程序輸入加上一個(gè)步長(zhǎng)變化需要6000次采樣,才能在輸出端達(dá)到最終值的63%左右。
低通累加器LPACC對(duì)大的時(shí)間常數(shù)和大輸入值而言可以增長(zhǎng)到很大。它會(huì)增長(zhǎng)到K與LPIN最大可能值的乘積。在這些情況下,需要保證LPACC不會(huì)溢出,并可能需要設(shè)定一個(gè)較大的數(shù)據(jù)類型來放置LPACC。為避免起動(dòng)時(shí)長(zhǎng)久的穩(wěn)定時(shí)間,在開始采樣循環(huán)以前,可以將LPACC初始化到K乘以電流輸入值。
還可以擴(kuò)充這個(gè)基本的濾波器概念,采用順序執(zhí)行多個(gè)濾波器代碼段,使之適合于更高階的濾波器,從而有更好的高頻抑制性能。另外,還可以對(duì)LPACC使用數(shù)組變量,并用一組對(duì)應(yīng)濾波器信號(hào)的常數(shù)K值乘以各通道采集的數(shù)據(jù)。