關(guān)于“如何實(shí)現(xiàn)數(shù)字濾波技術(shù)”的問(wèn)題,小編就整理了【2】個(gè)相關(guān)介紹“如何實(shí)現(xiàn)數(shù)字濾波技術(shù)”的解答:
數(shù)字濾波器設(shè)計(jì)方法?數(shù)字濾波器的三種設(shè)計(jì)方法:
窗函數(shù)法、頻率抽樣法、切比雪夫逼近法。
一般用兩種方法來(lái)實(shí)現(xiàn)數(shù)字濾波器:一是采用通用計(jì)算機(jī),把濾波器所要完成的運(yùn)算編成程序通過(guò)計(jì)算機(jī)來(lái)執(zhí)行,也就是采用計(jì)算機(jī)軟件來(lái)實(shí)現(xiàn);二是采用實(shí)際專用的數(shù)字處理硬件。
數(shù)字濾波器的三種設(shè)計(jì)方法
1.窗函數(shù)設(shè)計(jì)法 從時(shí)域動(dòng)身,把理想的無(wú)限長(zhǎng)的hd(n)用一定外形的窗函數(shù)截取成有限長(zhǎng)的h(n),以此h(n來(lái)迫近hd(n),從而使所得到的頻率響應(yīng)H(ejω)與所請(qǐng)求的理想頻率響應(yīng)Hd(ejω)相結(jié)合。
2.頻率抽樣設(shè)計(jì)法 從頻域動(dòng)身,把給定的理想頻率響應(yīng)Hd(ejω)加以等距離抽樣,所得到的H(k)作逆離散傅氏變換,從而求得h(n)的方法。
3.切比雪夫逼近法,等波紋迫近計(jì)算機(jī)輔助設(shè)計(jì)法 。前面兩種辦法固然在頻率取樣點(diǎn)上的誤差十分小,但在非取樣點(diǎn)處的誤差不是平均分布的。
濾波在數(shù)學(xué)上是如何實(shí)現(xiàn)的?在單片機(jī)進(jìn)行數(shù)據(jù)采集時(shí),會(huì)遇到數(shù)據(jù)的隨機(jī)誤差,隨機(jī)誤差是由隨機(jī)干擾引起的,其特點(diǎn)是在相同條件下測(cè)量同一量時(shí),其大小和符號(hào)會(huì)現(xiàn)無(wú)規(guī)則的變化而無(wú)法預(yù)測(cè),但多次測(cè)量的結(jié)果符合統(tǒng)計(jì)規(guī)律。為克服隨機(jī)干擾引起的誤差,硬件上可采用濾波技術(shù),軟件上可采用軟件算法實(shí)現(xiàn)數(shù)字濾波。濾波算法往往是系統(tǒng)測(cè)控算法的一個(gè)重要組成部分,實(shí)時(shí)性很強(qiáng)。采用數(shù)字濾波算法克服隨機(jī)干擾的誤差具有以下優(yōu)點(diǎn):
1、數(shù)字濾波無(wú)需其他的硬件成本,只用一個(gè)計(jì)算過(guò)程,可靠性高,不存在阻抗匹配問(wèn)題。尤其是數(shù)字濾波可以對(duì)頻率很低的信號(hào)進(jìn)行濾波,這是模擬濾波器做不到的。
2、數(shù)字濾波使用軟件算法實(shí)現(xiàn),多輸入通道可共用一個(gè)濾波程序,降低系統(tǒng)開(kāi)支。
3、只要適當(dāng)改變?yōu)V波器的濾波程序或運(yùn)算,就能方便地改變其濾波特性,這對(duì)于濾除低頻干擾和隨機(jī)信號(hào)會(huì)有較大的效果。
4、在單片機(jī)系統(tǒng)中常用的濾波算法有限幅濾波法、中值濾波法、算術(shù)平均濾波法、加權(quán)平均濾波法、滑動(dòng)平均濾波等。(1)限幅濾波算法該運(yùn)算的過(guò)程中將兩次相鄰的采樣相減,求出其增量,然后將增量的絕對(duì)值,與兩次采樣允許的最大差值A(chǔ)進(jìn)行比較。A的大小由被測(cè)對(duì)象的具體情況而定,如果小于或等于允許的最大差值,則本次采樣有效;否則取上次采樣值作為本次數(shù)據(jù)的樣本。算法的程序代碼如下:#defineA //允許的最大差值chardata; //上一次的數(shù)據(jù)char filter(){chardatanew; //新數(shù)據(jù)變量datanew=get_data(); //獲得新數(shù)據(jù)變量if((datanew-data)>A||(data-datanew>A))return data;elsereturndatanew;}說(shuō)明:限幅濾波法主要用于處理變化較為緩慢的數(shù)據(jù),如溫度、物體的位置等。使用時(shí),關(guān)鍵要選取合適的門限制A。通常這可由經(jīng)驗(yàn)數(shù)據(jù)獲得,必要時(shí)可通過(guò)實(shí)驗(yàn)得到。(2)中值濾波算法該運(yùn)算的過(guò)程是對(duì)某一參數(shù)連續(xù)采樣N次(N一般為奇數(shù)),然后把N次采樣的值按從小到大排列,再取中間值作為本次采樣值,整個(gè)過(guò)程實(shí)際上是一個(gè)序列排序的過(guò)程。算法的程序代碼如下:#define N11 //定義獲得的數(shù)據(jù)個(gè)數(shù)char filter(){charvalue_buff[N]; //定義存儲(chǔ)數(shù)據(jù)的數(shù)組char count,i,j,temp;for(count=0;count{value_buf[count]=get_data();delay(); //如果采集數(shù)據(jù)比較慢,那么就需要延時(shí)或中斷}for(j=0;j{for(value_buff[i]>value_buff[i+1]{temp=value_buff[i];value_buff[i]=value_buff[i+1];value_buff[i+1]=temp;}}returnvalue_buff[(N-1)/2];}說(shuō)明:中值濾波比較適用于去掉由偶然因素引起的波動(dòng)和采樣器不穩(wěn)定而引起的脈動(dòng)干擾。若被測(cè)量值變化比較慢,采用中值濾波法效果會(huì)比較好,但如果數(shù)據(jù)變化比較快,則不宜采用此方法。(3)算術(shù)平均濾波算法該算法的基本原理很簡(jiǎn)單,就是連續(xù)取N次采樣值后進(jìn)行算術(shù)平均。算法的程序代碼如下:char filter(){int sum=0;for(count=0;count{sum+=get_data();delay():}return (char)(sum/N);}說(shuō)明:算術(shù)平均濾波算法適用于對(duì)具有隨機(jī)干擾的信號(hào)進(jìn)行濾波。這種信號(hào)的特點(diǎn)是有一個(gè)平均值,信號(hào)在某一數(shù)值附近上下波動(dòng)。信號(hào)的平均平滑程度完全到?jīng)Q于N值。當(dāng)N較大時(shí),平滑度高,靈敏度低;當(dāng)N較小時(shí),平滑度低,但靈敏度高。為了方便求平均值,N一般取4、8、16、32之類的2的整數(shù)冪,以便在程序中用移位操作來(lái)代替除法。(4)加權(quán)平均濾波算法由于前面所說(shuō)的“算術(shù)平均濾波算法”存在平滑度和靈敏度之間的矛盾。為了協(xié)調(diào)平滑度和靈敏度之間的關(guān)系,可采用加權(quán)平均濾波。它的原理是對(duì)連續(xù)N次采樣值分別乘上不同的加權(quán)系數(shù)之后再求累加,加權(quán)系數(shù)一般先小后大,以突出后面若干采樣的效果,加強(qiáng)系統(tǒng)對(duì)參數(shù)變化趨勢(shì)的認(rèn)識(shí)。各個(gè)
到此,以上就是小編對(duì)于“如何實(shí)現(xiàn)數(shù)字濾波技術(shù)”的問(wèn)題就介紹到這了,希望介紹關(guān)于“如何實(shí)現(xiàn)數(shù)字濾波技術(shù)”的【2】點(diǎn)解答對(duì)大家有用。