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