1有限沖激響應(yīng)濾波器FIR算法硬件實(shí)現(xiàn).doc_第1頁
1有限沖激響應(yīng)濾波器FIR算法硬件實(shí)現(xiàn).doc_第2頁
1有限沖激響應(yīng)濾波器FIR算法硬件實(shí)現(xiàn).doc_第3頁
1有限沖激響應(yīng)濾波器FIR算法硬件實(shí)現(xiàn).doc_第4頁
1有限沖激響應(yīng)濾波器FIR算法硬件實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

有限沖激響應(yīng)濾波器FIR算法硬件實(shí)現(xiàn)一,摘要:通過掌握A/D轉(zhuǎn)換的基本過程和程序處理過程,有限沖激響應(yīng)數(shù)字濾波器的基礎(chǔ)理論,模擬濾波器原理(巴特沃斯濾波器、切比雪夫?yàn)V波器、橢圓濾波器、貝塞爾濾波器),數(shù)字濾波器系數(shù)的確定方法,設(shè)計(jì)低通FIR濾波器熟悉FIR濾波器及其參數(shù)的調(diào)整,通過對采樣值進(jìn)行計(jì)算產(chǎn)生混頻波形,濾波器參數(shù)確定之后便可編寫程序,利用CCS軟件進(jìn)行仿真。 二,引言:有限沖擊響應(yīng)濾波器FIR算法窗函數(shù)法設(shè)計(jì)FIR數(shù)字濾波器的原理及方法, 設(shè)計(jì)低通FIR濾波器 。通過掌握A/D轉(zhuǎn)換程序處理,對采樣值進(jìn)行計(jì)算產(chǎn)生混頻波形,對FIR濾波器參數(shù)調(diào)整。用Code Composer Studio 2.21進(jìn)行仿真。三,原理:1對單位沖激的輸入信號(hào)的響應(yīng)為有限長序列的數(shù)字濾波器。它的主要特點(diǎn)是具有精確線性相位特性。有限沖激響應(yīng)數(shù)字濾波器一般實(shí)現(xiàn)為非遞歸型結(jié)構(gòu),因此,又稱為非遞歸型數(shù)字濾波器。非遞歸型濾波器具有絕對穩(wěn)定的特性,而且,運(yùn)算有限字長所產(chǎn)生的輸出噪聲也較小。按所處理信號(hào)的類型可分為一維有限沖激響應(yīng)數(shù)字濾波器和二維或多維有限沖激響應(yīng)數(shù)字濾波器。一維有限沖激響應(yīng)數(shù)字濾波器又稱一維非遞歸型數(shù)字濾波器,處理單變量信號(hào)序列。)。設(shè)計(jì)一維有限沖激響應(yīng)數(shù)字濾波器常用的方法有:窗函數(shù)法、頻率采樣法和等波紋機(jī)助優(yōu)化設(shè)計(jì)法。設(shè)計(jì)有限沖激響應(yīng)數(shù)字濾波器最直接的方法就是把無限沖激響應(yīng)序列截短,得到有限長度的沖激響應(yīng)。設(shè)所要求的理想頻率響應(yīng)為Hd(),其單位沖激響應(yīng)Hd(n)為Hd()的傅里葉反變換。Hd(n)是非因果無限長序列。為使得所設(shè)計(jì)的數(shù)字濾波器的有限沖激響應(yīng)h(n)逼近hd(n),采用對hd(n)加窗的方法,即令 h(n)hd(n)w(n)式中w(n)為有限長度窗序列。由褶積定理可求得所設(shè)計(jì)的濾波器的頻率響應(yīng)。根據(jù)要求設(shè)計(jì)低通FIR濾波器要求:通帶邊緣頻率10kHz,阻帶邊緣頻率22kHz,阻帶衰減75dB,采樣頻率50kHz。設(shè)計(jì):-過渡帶寬度=阻帶邊緣頻率-通帶邊緣頻率=22-10=12kHz-采樣頻率:f1=通帶邊緣頻率+(過渡帶寬度)/2=10000+12000/2=16kHz1=2f1/fs=0.64-理想低通濾波器脈沖響應(yīng):h1n=sin(n1)/n/=sin(0.64n)/n/-根據(jù)要求,選擇布萊克曼窗,窗函數(shù)長度為:N=5.98fs/過渡帶寬度=5.98*50/12=24.9-選擇N=25,窗函數(shù)為:wn=0.42+0.5cos(2n/24)+0.8cos(4n/24)-濾波器脈沖響應(yīng)為:hn=h1nwn |n|12hn=0 |n|12-根據(jù)上面計(jì)算,各式計(jì)算出hn,然后將脈沖響應(yīng)值移位為因果序列。-完成的濾波器的差分方程為:yn=-0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5 -0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19-0.002xn-20-0.002xn-21+0.001xn-22程序流程圖2模數(shù)轉(zhuǎn)換工作過程-模數(shù)轉(zhuǎn)換模塊接到啟動(dòng)轉(zhuǎn)換信號(hào)后,按照設(shè)置進(jìn)行相應(yīng)通道的數(shù)據(jù)采樣轉(zhuǎn)換。 -經(jīng)過一個(gè)采樣時(shí)間的延遲后,將采樣結(jié)果放入AD數(shù)據(jù)寄存器中保存。-等待下一個(gè)啟動(dòng)信號(hào)。3模數(shù)轉(zhuǎn)換的程序控制模數(shù)轉(zhuǎn)換相對于計(jì)算機(jī)來說是一個(gè)較為緩慢的過程。一般采用中斷方式啟動(dòng)轉(zhuǎn)換或保存結(jié)果,這樣在CPU忙于其他工作時(shí)可以少占用處理時(shí)間。設(shè)計(jì)轉(zhuǎn)換程序應(yīng)首先考慮處理過程如何與模數(shù)轉(zhuǎn)換的時(shí)間相匹配,根據(jù)實(shí)際需要選擇適當(dāng)?shù)挠|發(fā)轉(zhuǎn)換的手段,也要能及時(shí)地保存結(jié)果。4混頻波形產(chǎn)生將接收到的兩路AD采集信號(hào)進(jìn)行相加,并對結(jié)果的幅度進(jìn)行限制,從而產(chǎn)生混合后的輸出波形。實(shí)驗(yàn)中采用了同相位混頻方法,也可修改程序完成異相混頻法。5. FIR濾波器工作原理在進(jìn)入FIR濾波器前,首先要將信號(hào)通過AD器件進(jìn)行模數(shù)轉(zhuǎn)換,使之成為8bit的數(shù)字信號(hào),一般可用速度較高的逐次逼進(jìn)式AD轉(zhuǎn)換器,不論采用乘累加方法還是分布式算法設(shè)計(jì)FIR濾波器,濾波器輸出的數(shù)據(jù)都是一串序列,要使它能直觀地反應(yīng)出來,還需經(jīng)過數(shù)模轉(zhuǎn)換,因此由FPGA構(gòu)成的FIR濾波器的輸出須外接DA模塊。FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號(hào)處理任務(wù),相對于串行運(yùn)算為主導(dǎo)的通用DSP芯片來說,其并行性和可擴(kuò)展性更好,利用FPGA乘累加的快速算法,可以設(shè)計(jì)出高速的FIR數(shù)字濾波器。1. 程序設(shè)計(jì)Fir濾波器工作原理及參數(shù)計(jì)算: 通帶邊緣頻率10kHz,阻帶邊緣頻率22kHz,阻帶衰減75kHz,采樣頻率50kHz。設(shè)計(jì):-過渡帶寬度=阻帶邊緣頻率-通帶邊緣頻率=22-10=12 kHz -采樣頻率:F1=通帶邊緣頻率+(過渡帶寬度)/2=10000+12000/2=16 kHz 1=2f1/fs=0.64-理想低通濾波器脈沖響應(yīng):h1n=sin(n1)/n/=sin(0.64n)/n/-根據(jù)要求,選擇布萊克曼窗,窗函數(shù)長度為:N=5.98fs/過渡帶寬度=5.98*50/12=24.9 -選擇N=25,窗函數(shù)為:Wn=0.42+0.5cos(2n/24)+0.8cos(4n/24) -濾波器脈沖響應(yīng)為:hn=h1nWn |n|12 hn=0 |n|12-根據(jù)上面計(jì)算,各式計(jì)算出hn,然后將脈沖響應(yīng)值移位為因果序列。-完成濾波器的差分方程為:Yn=0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5- 0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+ 0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19- 0.002xn-20-0.002xn-21+0.001xn-226源程序及注釋本實(shí)驗(yàn)程序在AD中斷中對AD進(jìn)行連續(xù)采樣。由于需要進(jìn)行實(shí)時(shí)混頻,所以交替轉(zhuǎn)換通道0和通道1(ICETEK-F2812-EDU實(shí)驗(yàn)箱上ADCIN0和ADCIN1)。匯編語言實(shí)現(xiàn)fir濾波器程序清單:.title “FIR1.ASM”.mmregs.def startx .usect “x”,8PA0 .set 0PA1 .set 1.dataCOEF: .word 1*32768/10.word 2*32768/10.word -4*32768/10.word 3*32768/10.word -4*32768/10.word 2*32768/10.word 1*32768/10.textstart: SSBX FRCT STM #x+7,AR2STM #6,AR0LD #x+1,DPPORTR PA1,x+1FIR1: RPTZ A,#6MACD *AR2-,COEF,ASTH A,*AR2PORTW *AR2+,PA0BD FIR1PORTR PA1,*AR2+0.end 用循環(huán)緩沖區(qū)實(shí)現(xiàn)FIR濾波器 程序清單:.title “FIR2.ASM”.mmregs .def start.bss y,1xn .usect “xn”,7b0 .usect “b0”,7PA0 .set 0PA1 .set 1.datatable: .word 1*32768/10.word 2*32768/10.word 3*32768/10.word 4*32768/10.word 5*32768/10.word 6*32768/10.word 7*32768/10.text start: SSBX FRCT STM #b0,AR1RPT #6MVPD table,*AR1+STM #xn+6,AR2STM #b0+6,AR3STM #7,BKSTM #-1,AR0LD #xn,DPPORTR PA1,xnFIR2: RPTZ A,#6MAC *AR2+0%,*AR3+0%,ASTH A,yPORTW y,PA0BD FIR2PORTR PA1,*AR2+0%.end鏈接命令文件FIR2.objvectors.obj-o FIR2.out-m FIR2.map-e startMEMORY PAGE0: EPROM:org=0E000h, len=1000h VECS: org=0FF80h, len=0080h PAGE1: SPRAM:org=0060h, len=0020h DARAM:org=0080h, len=1380h SECTIONS .text:EPROM PAGE 0 .data:EPROM PAGE 0 .bss :SPRAM PAGE 1 xn:align(8)DARAM PAGE 1 b0:align(8)DARAM PAGE 1 .vections:VECS PAGE 0五,硬件框圖:六,程序流程圖:七,調(diào)試過程及步驟1, 實(shí)驗(yàn)準(zhǔn)備(1)連接實(shí)驗(yàn)設(shè)備。(2)準(zhǔn)備信號(hào)源進(jìn)行AD輸入。取出試驗(yàn)箱附帶的信號(hào)線用一根信號(hào)線連接試驗(yàn)箱左側(cè)信號(hào)源的波形輸出A端口和“A/D輸入”模塊的“ADCIN0”插座注意插頭要插牢,到底。這樣,信號(hào)源波形輸出A的輸出波形即可送到ICETEK-F2812A板的輸入通道。用一根信號(hào)線連接試驗(yàn)箱左側(cè)信號(hào)源的波形輸出端口和“輸入”模塊的“”插座注意插頭要插牢,到底。這樣,信號(hào)源波形輸出的輸出波形即可送到ICETEK-F2812板的輸入通道。設(shè)置波形輸出:向內(nèi)側(cè)按波形頻率選擇按鈕,直到標(biāo)有正弦波的指示燈 點(diǎn)亮。上下調(diào)節(jié)波形頻率選擇旋鈕,直到標(biāo)有H的指示燈亮。調(diào)節(jié)幅值調(diào)整旋鈕,將波形輸出的幅值調(diào)到適當(dāng)位 置。設(shè)置波形輸出: 向內(nèi)側(cè)按波形頻率選擇按鈕,直到標(biāo)有正弦波的指示燈點(diǎn)亮。上下調(diào)節(jié)波形頻率選擇旋鈕,直到標(biāo)有的指示燈亮。 調(diào)節(jié)幅值調(diào)整旋鈕,將波形輸出幅值調(diào)到適當(dāng)位置。2,設(shè)置Code Computer Studio 2.21在硬件(Emulator)方式下行。3,啟動(dòng)Code Computer Studio 2.21選擇菜單DebugReset CPU 4,打開工程文件:工程目錄:Ddspt8mixerfirmixerfir.pjt 5,編譯、下載程序,選擇菜單Debug-Go Main 。使程序運(yùn)行到main函數(shù)入口位置。6,觀察窗口打開程序adc.c,查看源代碼。7,運(yùn)行程序觀察結(jié)果按CTR控制板的K6鍵,實(shí)現(xiàn)濾波顯示,K7鍵實(shí)現(xiàn)混頻顯示,按K8鍵實(shí)現(xiàn)A,B兩信號(hào)源分屏顯示。8,觀察動(dòng)態(tài)效果,調(diào)節(jié)信號(hào)源輸出,觀察濾波器輸出。改變信號(hào)源輸入的波形,頻率參數(shù),觀察動(dòng)態(tài)結(jié)果。9,退出CCS八,實(shí)驗(yàn)結(jié)果 (a)有錯(cuò)誤 (b)K6鍵 (c)K7鍵實(shí)現(xiàn)混頻 (d)K8實(shí)現(xiàn)A,B的分頻顯示九,結(jié)果分析 實(shí)驗(yàn)過程中遇到的問題及解決方法1, 硬件(cc2000)初始化時(shí)提示錯(cuò)誤,未初始換成功。原因有硬件的選著,以及DSP實(shí)驗(yàn)箱硬件連接是否完整,還有下載線及usb插孔。變換電腦主機(jī)上的usb插孔后硬件配置成功2, 工程建立過程:編譯之前要將所需不同類型的工程文件全部加載,否則及時(shí)程序沒有錯(cuò)誤編譯也會(huì)失敗.原因是這些文件有些包含頭文件,有些則負(fù)責(zé)為程序分配存儲(chǔ)。3, 程序下載到f2812,首次運(yùn)行時(shí)顯示評(píng)上顯示的是一組上下兩行寬模糊頻譜噪聲并且已經(jīng)吧原來的信號(hào)淹沒如圖(a),原因分析,(1)先是排除顯示屏問題(先前實(shí)驗(yàn)?zāi)軌蛘o@示);(2)認(rèn)為信號(hào)源沒有實(shí)現(xiàn)AD轉(zhuǎn)換或者轉(zhuǎn)換時(shí)效果不好(排除);(3) 認(rèn)為程序段中輸出顯示有問題,加斷點(diǎn)循環(huán)時(shí)發(fā)現(xiàn)程序運(yùn)行到顯示輸出時(shí)進(jìn)入死循環(huán),原因:flage=1; /修改地方, for(;) if(flage=1) flage=0; LCDSetScreenBuffer(nScreenBuffer); LCDCLS();/ 清除顯示內(nèi)存*/ if(keyflage=0) 循環(huán)時(shí)flage應(yīng)該為1,是if語句正常運(yùn)行4, 程序修改后能夠正常顯示波形圖像,從實(shí)驗(yàn)結(jié)果圖示可知,對于混頻以及A B 各自的波形能夠正確的顯示 ,但是濾波后波形會(huì)在衰減邊緣處有沖激大幅度波形出現(xiàn),分析原因,應(yīng)該是元器件系統(tǒng)不可避免的引入的噪聲引起5,對程序?yàn)V波的精確度的測試,或者說濾波能力:程序中給出的是對B 2k以上的波形能夠很好地濾除,但是相對于只有1001k的波形A這種濾波器效果體現(xiàn)不出其精度,當(dāng)把

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論