freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)數(shù)字濾波器設(shè)計(jì)(編輯修改稿)

2025-07-24 19:09 本頁面
 

【文章內(nèi)容簡介】 )此算法的樣例子程序如下:define A 10 //A值可根據(jù)實(shí)際情況調(diào)整char data。 //上一次的數(shù)據(jù)char filter_1(){char datanew。 //新數(shù)據(jù)變量datanew=get_data()。 //獲得新數(shù)據(jù)//濾波算法if ((datanewdataA)||(datadatanewA)return data。return datanew。} 該算法主要用于處理變化比較緩慢的數(shù)據(jù),如溫度、物體的位置等。使用時(shí)關(guān)鍵在于最大偏差值的Δy的選擇,通??筛鶕?jù)經(jīng)驗(yàn)獲得,也可按照輸出參數(shù)可能的最大變化速度Vmax及采樣周期T來決定ΔY的值,即ΔY=VmaxT?!?】3 濾波器硬件設(shè)計(jì)通過對系統(tǒng)工作原理的了解,可以大致了解數(shù)字濾波器設(shè)計(jì)的整體框圖:圖3—1 總體設(shè)計(jì)框圖 單片機(jī)AT89C51 這里我們使用了51系列單片機(jī)——AT89C51,如下圖利用這個(gè)單片機(jī)進(jìn)行編程,實(shí)現(xiàn)對輸入信號的濾波。我使用了P0口作為接受AD轉(zhuǎn)換的結(jié)果的端口,而P1口則輸出數(shù)據(jù)到DA轉(zhuǎn)換器。另外還利用了P2作為控制端口,,用來實(shí)現(xiàn)濾波方式的選擇?!?】圖32 AT89C51引腳圖 數(shù)據(jù)采集 另外我還使用了ADC0808進(jìn)行數(shù)據(jù)采集。這里ADC0808是并聯(lián)AD轉(zhuǎn)換器,ADC0808的引腳圖如下圖:圖33 ADC0808的引腳圖 IN0IN8是八個(gè)模擬量輸入端口,ADC0808可以一次對八個(gè)模擬量進(jìn)行模數(shù)轉(zhuǎn)換,但是在這里我們只使用了其中的一個(gè)輸入端IN0,所以ADDDA、ADDB、ADDC都應(yīng)為0,所以我讓它們都接地。它的八個(gè)輸出端接在單片機(jī)上,CLOCK接數(shù)據(jù)采樣時(shí)鐘,它可以接在單片機(jī)上由單片機(jī)控制,也可接在另外的數(shù)字時(shí)鐘上,這里我選用外接別的時(shí)鐘。START為轉(zhuǎn)換啟動信號,在其上跳變時(shí),所有內(nèi)部寄存器清零,在其下調(diào)變時(shí),開始進(jìn)行AD轉(zhuǎn)換。ALE是地址鎖存信號。這里我讓START和ALE均接在單片機(jī)的同一個(gè)端口上,讓單片機(jī)實(shí)現(xiàn)程序控制AD的轉(zhuǎn)換。OE是輸出允許信號,OE=1時(shí),才能允許輸出,也是為了讓單片機(jī)實(shí)現(xiàn)程序控制ADC0808的輸出。EOC是轉(zhuǎn)換結(jié)束信號,EOC=1時(shí),表示轉(zhuǎn)換結(jié)束。這個(gè)信號可以用來提醒單片機(jī)AD已經(jīng)轉(zhuǎn)換完畢,程序中即可以用查詢方式,也可以用中斷方式,這里我使用查詢方式。VREF(+)和VREF()都是參考電壓信號端口,這里我讓VREF()的參考電壓為零,VREF(+)的參考電壓為+3V。 數(shù)模轉(zhuǎn)換輸出 這里我用了DAC0832來進(jìn)行數(shù)模轉(zhuǎn)換。DAC0832的引腳圖如下圖所示:圖34 DAC0832的引腳圖DAC0832有三種數(shù)模轉(zhuǎn)換方法,直通方式、單緩沖方式、雙緩沖方式,因?yàn)閱纹瑱C(jī)輸出后可以直接進(jìn)行數(shù)模轉(zhuǎn)換,所以這里我采用了不需要單片機(jī)控制的最為簡單的直通方式,但是DAC0832若用于直通方式,則在接單片機(jī)的輸出端口之間還要接一個(gè)緩沖器件,如74LS373。若用于直通方式下,則 、和GND均接地,而VCC和ILE則接正電源。VREF是參考電源。IOUTIOUT2是兩個(gè)輸出端。DAC0832輸出的是電流,要利用運(yùn)算放大器轉(zhuǎn)換成電壓。數(shù)模轉(zhuǎn)換輸出電路如下圖所示:圖35 數(shù)模轉(zhuǎn)換輸出電路 總體電路圖總體電路圖見附錄A4 程序設(shè)計(jì) 濾波算法設(shè)計(jì) 這個(gè)在前面介紹濾波原理時(shí)已經(jīng)說過了,在此就不再次重復(fù)了。因?yàn)樵O(shè)計(jì)時(shí)采集的時(shí)鐘頻率很大,所以在一定范圍內(nèi)采集的數(shù)據(jù)都差不多,因此對一系列的數(shù)據(jù)進(jìn)行濾波處理時(shí)就好像是在對同一個(gè)數(shù)據(jù)進(jìn)行濾波處理。但是因?yàn)檫@些算法處理的數(shù)據(jù)時(shí)連續(xù)采集了N個(gè)的,所以要設(shè)立一個(gè)變量數(shù)組來存儲這些輸入的數(shù)據(jù),而且要記得及時(shí)更新。我利用了隊(duì)列的思想,如果輸入一個(gè)新的數(shù)據(jù),則丟棄最原始的一個(gè)數(shù)據(jù),把新數(shù)據(jù)插入進(jìn)來,就好像隊(duì)列一樣,對頭刪除數(shù)據(jù),對位插入新的數(shù)據(jù)。這個(gè)程序如下:void change(){int i。for(i=0。iN1。i++)buf[i]=buf[i+1]。buf[N1]=a。}而獲得這一系列中的某一個(gè)數(shù)據(jù)就用了一個(gè)函數(shù)就可以了,直接返回隊(duì)列中的第n項(xiàng)的數(shù)據(jù)。這個(gè)程序如下:uchar get_data(n){change()。return buf[n]。} AD轉(zhuǎn)換器 因?yàn)镾TART為轉(zhuǎn)換啟動信號,在其上跳變時(shí),所有內(nèi)部寄存器清零,在其下調(diào)變時(shí),開始進(jìn)行AD轉(zhuǎn)換。所以設(shè)計(jì)程序時(shí),要先讓START為0,在讓START為1,最后讓START為0。開始采集數(shù)據(jù)后就要讓OE為1,進(jìn)行數(shù)據(jù)輸入。同時(shí)數(shù)據(jù)采集結(jié)束時(shí),利用查詢語句,查看EOC是否為1,如果是1,則處于等待狀態(tài),如果變成1,則可以進(jìn)行數(shù)據(jù)輸入了。AD轉(zhuǎn)換的程序如下:START = 0。START = 1。START = 0。while(EOC==0)。OE = 1。a = P0。這里a是一個(gè)變量,用來存儲AD輸入的數(shù)據(jù)。 濾波算法的選擇 我在電路上采用的是開關(guān)控制選擇,所以這里只需要一系列的if選擇語句就可以完成率把算法的選擇。程序如下:if(con==0){ if((con1==0)amp。amp。(con2==0)amp。amp。(con3==0)) res=filter1()。 if((con1==0)amp。amp。(con2==0)amp。amp。(con3==1)) res=filter2()。 if((con1==1)amp。amp。(con2==0)amp。amp。(con3==0)) res=filter5()。 if((con1==1)amp。amp。(con2==0)amp。amp。(con3==1)) res=filter6()。 if((con1==1)amp。amp。(con2==1)amp。amp。(con3==1)) res=filter8()。} else res=a。conconcon3三位用來控制濾波算法的選擇,而con用來控制是否要進(jìn)行濾波。 總體程序總體程序見附錄B。 程序流程圖圖41 程序流程圖5 仿真結(jié)果和分析輸入波形與未經(jīng)濾波器濾波波形如下:圖51輸入波形與未經(jīng)濾波器濾波波形以下幾幅圖是經(jīng)濾波后的波形:圖52 經(jīng)限幅后的波形圖53 經(jīng)中值濾波后的波形圖54 經(jīng)滑動平均濾波后的波形 圖55 經(jīng)中位值平均濾波后的波形圖56 經(jīng)加權(quán)遞推平均濾波后的波形 限幅濾波的效果是和A值有關(guān)的,一般情況下,A值越小,則代表允許的噪聲要越小,限幅濾波很適用于使幅值突變的噪聲。中值濾波由于要求中值,所用到的排序算法會大大消耗時(shí)間,因此延時(shí)比較嚴(yán)重,但是總的來說選擇排序比冒泡排序的延時(shí)情況要好。中位值平均濾波,由于濾波算法中會求平均值在,所以在原波是方波時(shí)會出現(xiàn)某一次求平均后編程中間值,另外由于和中值濾波一樣要進(jìn)行排序,因此也會產(chǎn)生很大的延時(shí)。加權(quán)遞推平均算法和上面一樣,因?yàn)闀笃骄?,因此也會有時(shí)候產(chǎn)生中間值,但是如果把當(dāng)前值得權(quán)值設(shè)的很大,而越久遠(yuǎn)之前的權(quán)值設(shè)的越
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1