IIR數(shù)字濾波器在定點(diǎn)DSP中可實(shí)現(xiàn)性的分析_第1頁
IIR數(shù)字濾波器在定點(diǎn)DSP中可實(shí)現(xiàn)性的分析_第2頁
IIR數(shù)字濾波器在定點(diǎn)DSP中可實(shí)現(xiàn)性的分析_第3頁
IIR數(shù)字濾波器在定點(diǎn)DSP中可實(shí)現(xiàn)性的分析_第4頁
IIR數(shù)字濾波器在定點(diǎn)DSP中可實(shí)現(xiàn)性的分析_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2008屆電子信息工程畢業(yè)設(shè)計(jì)4IIR數(shù)字濾波器的DSP實(shí)現(xiàn)及誤差分析4.1IIR濾波器的實(shí)現(xiàn)方法IIR濾波器差分方程:(3-1)圖4-1循環(huán)緩沖區(qū)的結(jié)構(gòu)在編程時(shí),將變量和系數(shù)都存放在DARAM中,采用循環(huán)緩沖區(qū)方式尋址,共需開辟的四個(gè)循環(huán)緩沖區(qū),用來存放變量和系數(shù)。這四個(gè)循環(huán)緩沖區(qū)的結(jié)構(gòu)如下所示:圖4-1循環(huán)緩沖區(qū)的結(jié)構(gòu)AR2指向x(n),x(n-1)…,AR4指向y(n-1),y(n-2)..,B的系數(shù)存儲到AR5數(shù)據(jù)存儲器中,A的系數(shù)存儲到AR3的數(shù)據(jù)存儲器中。循環(huán)緩沖區(qū)IIR濾波器的主程序見附錄,流程圖如圖4-2所示[11]。圖4-2流程圖4.2建立DSP匯編程序的IIR數(shù)字濾波器系數(shù)文件當(dāng)取樣頻率fs=7500Hz即N=3時(shí),經(jīng)Q13轉(zhuǎn)換后的濾波器系數(shù)如下:b965,2897,2897,965a-3230,3067,-304當(dāng)取樣頻率fs=12000Hz即N=4時(shí),由于系數(shù)有大于1的,在Q13轉(zhuǎn)換時(shí)把它當(dāng)1處理,所以轉(zhuǎn)換后的數(shù)據(jù)如下:b95,379,568,379,95a-8192,8192,-5505,933分別將Matlab生成的數(shù)字濾波器的系數(shù)轉(zhuǎn)換成定點(diǎn)Q0格式,然后再調(diào)入數(shù)字濾波的運(yùn)算程序中。4.3CCS5000編譯、調(diào)試及仿真結(jié)果在對CCS5000進(jìn)行編譯前,需對“CCSsetup”進(jìn)行系統(tǒng)配置,雙擊桌面上的“CCSsetup”圖標(biāo),選中C54xx家族中的C5409DeviceSimulator仿真器,將其導(dǎo)入系統(tǒng),然后點(diǎn)擊“saveandquit”保存退出設(shè)置界面,啟動CCS5000即可進(jìn)入編進(jìn)界面(圖4-3)。圖4-3CCS的配置界面匯編程序調(diào)試可先在CCS中建立新的工程diir.pjt,再將匯編語言源文件(.asm)及中斷向量文件(.asm)、鏈接命令文件(.cmd)添加到工程。編譯過程出現(xiàn)的錯(cuò)誤如圖4-4所示:圖4-3CCS的配置界面圖4-4編譯過程圖4-4編譯過程中出現(xiàn)的錯(cuò)誤4.3.1diir_in.dat出錯(cuò)這是第一次編譯的錯(cuò)誤,問題絕大部分都出現(xiàn)在diir_in.dat上,后來才用新的matlab程序重新生成了一個(gè)diir_in.dat將問題解決。4.3.2連接文件有錯(cuò)誤圖4-圖4-5連接文件錯(cuò)誤圖3-5修改完成后編譯成功即可生成可執(zhí)行文件(.out)(圖4-5),加載該可執(zhí)行文件后,系統(tǒng)會彈出源程序的反匯編窗口,如圖4-6所示。那么圖3-5圖4-7圖4-7反匯編窗口圖4-6反匯編窗口圖單擊Run按鈕,進(jìn)行ccs軟件仿真。然后再從View菜單,選擇Graph→Time/Frequency命令,在系統(tǒng)彈出的“圖形屬性”對話框參數(shù),按照圖4-8設(shè)置參數(shù)設(shè)置后單擊OK按鈕,保存輸入的參數(shù),即可觀察到輸入輸出頻域波形。如圖4-9、圖4-10、圖4-11、圖4-12所示。圖4-圖4-8(a)參數(shù)設(shè)置圖圖4-8(b)參數(shù)設(shè)置圖圖4-9fs=7500HzN=3輸入頻譜圖4-10fs=7500HzN=3輸出頻譜由上兩圖可見,當(dāng)取樣頻率fs=7500Hz時(shí),在CCS上的仿真結(jié)果輸出波形高頻分量被濾除了,符合設(shè)計(jì)要求。圖4-11fs=12000HzN=4時(shí)輸入頻譜圖4-12fs=12000HzN=4時(shí)輸出頻譜由上兩圖可見,當(dāng)取樣頻率提高到fs=12000Hz時(shí),輸出波形并未濾除在阻帶頻率分量,設(shè)計(jì)的濾波器由合格變?yōu)椴缓细馵12]。4.4誤差原因分析濾波器系數(shù)中出現(xiàn)大于1的系數(shù),在定點(diǎn)DSP上是比較難實(shí)現(xiàn)。根據(jù)Matlab運(yùn)算的數(shù)據(jù)結(jié)果可知,數(shù)據(jù)處理采用的是單精度或雙精度的浮點(diǎn)數(shù),而TMS320C54x[13]是一個(gè)16b的定點(diǎn)運(yùn)算芯片。在實(shí)現(xiàn)數(shù)字濾波器的過程中,對原來的一組輸入信號或?yàn)V波器系數(shù)的浮點(diǎn)數(shù),必須先轉(zhuǎn)換為定點(diǎn)數(shù)。一般都是先進(jìn)行歸一化,然后再轉(zhuǎn)換成一定格式(如Qo格式)的定點(diǎn)數(shù)。由于Fs=12000Hz時(shí)原數(shù)據(jù)組中有兩個(gè)絕對值大于1的數(shù)據(jù)。由于a0必須為1,絕對值大于1的數(shù)在處理時(shí)將被歸一,所以在這些絕對值大于1數(shù)上產(chǎn)生了較大的誤差,這使得設(shè)計(jì)的結(jié)果由合格變?yōu)椴缓细?。改變?shù)字濾波器的結(jié)構(gòu),是減小誤差的根本途徑。本文設(shè)計(jì)的低通濾波器采用了IIR數(shù)字濾波器直接Ⅱ型進(jìn)行仿真的,所以效果較差。若是采用級聯(lián)型,情況可能會有所改善。4.5DSP硬件調(diào)試在連接硬件設(shè)備過程中,必須先切斷電源,在硬件設(shè)備連接好后再打開電源,這樣做目的是為了避免將DSP芯片燒壞。進(jìn)行硬件仿真前,同樣的也必須對CCS進(jìn)行重新配置,移除系統(tǒng)原有的配置,選擇C5409XDS510Emulator[14],并選擇正確驅(qū)動路徑,如圖3-13所示,然后點(diǎn)擊Save&Quit,保存并啟動CCS。在進(jìn)行DSP硬件仿真時(shí),在開啟CCSIDE之前,先將聞亭公司的TMS320VC評估板和驅(qū)動器TDS510USB相連,TDS510USB再通過USB線與計(jì)算機(jī)主機(jī)相連的。連接好后,插上電源,此時(shí),會點(diǎn)亮TDS510USB驅(qū)動器上的紅色指示燈和綠色指示燈,那么證明連接成功。先在CodeComposerStudioSetup中選擇硬件仿真C5409XDS510Emulator之后,對ConnectionProperties進(jìn)行配置,配置過程如圖4-13所示。圖4-13ConnectionProperties配置圖硬件調(diào)試時(shí),這時(shí)不需要再重新建立工程,只需要打開工程diir.pjt,操作步驟與軟件仿真相同,就可得到結(jié)果,如圖4-14、圖4-15所示[13]。圖4-14fs=7500HzN=3時(shí)輸入頻譜圖4-15fs=7500HzN=3時(shí)輸出頻譜圖4-14、圖4-15是fs=7500Hz時(shí)的輸入和輸出頻譜圖,結(jié)果與CCS軟件仿真相吻合,滿足設(shè)計(jì)要求。結(jié)論通過尋找多組數(shù)據(jù)反復(fù)仿真分析,基本可以得出這樣的結(jié)論:(1)在16位的定點(diǎn)DSP中實(shí)現(xiàn)IIR數(shù)字濾波器,除a0外,一般不應(yīng)出現(xiàn)其他系數(shù)絕對值大于1(特別是大于1.1)的情況,否則該濾波器將可能不能實(shí)現(xiàn)。絕對值超過1的程度越大,引起的誤差也越大,不能實(shí)現(xiàn)的可能性越大。(2)在滿足采樣定理的條件下,設(shè)計(jì)指標(biāo)相同,采樣頻率選得越大,越有可能出現(xiàn)系數(shù)絕對值大于1的情況,IIR數(shù)字濾波器也越難以實(shí)現(xiàn)。(3)當(dāng)直接型不能實(shí)現(xiàn)IIR數(shù)字濾波器時(shí),可以試用并聯(lián)型或級聯(lián)型來實(shí)現(xiàn)。用并聯(lián)型或級聯(lián)型實(shí)現(xiàn)IIR數(shù)字濾波器時(shí),第(1)條同樣須滿足。2008屆電子信息工程畢業(yè)設(shè)計(jì)致謝語不知不覺半年多過去了,大學(xué)生活也即將結(jié)束,在這里我要感謝母校為我提供學(xué)習(xí)的環(huán)境還有多種多樣的教學(xué)平臺,以及授以我知識的各位老師,還有在我困然時(shí)幫助我的同學(xué),是你們讓我的大學(xué)生活多姿多彩,你們是我大學(xué)生活中不可缺少的部分,在這里我像你們說聲謝謝。在大學(xué)結(jié)束之前也迎來了新的挑戰(zhàn),那就是畢業(yè)設(shè)計(jì)。經(jīng)過開學(xué)初的準(zhǔn)備工作到最終定稿,從蔡少川老師當(dāng)我指導(dǎo)老師開始,您在選材、資料收集到論文修改都給予我很大的幫助,從這半年的相處中,我看到您治學(xué)嚴(yán)謹(jǐn)、工作熱情負(fù)責(zé)、待人真誠、關(guān)心學(xué)生。對學(xué)生嚴(yán)格要求又耐心指導(dǎo)、循循善誘,在繁忙的工作之余還經(jīng)常關(guān)心我的論文進(jìn)行情況,不厭其煩的指導(dǎo)并我給予我許多寶貴的意見。而通過這次畢業(yè)設(shè)計(jì),也讓我學(xué)到的如何正確處理問題,分析問題和解決問題,這將對我以后在工作崗位上處理各種問題的能力更加有信心。在此我再次感謝蔡少川老師這半年來的悉心教導(dǎo)以及幫助我解決畢業(yè)設(shè)計(jì)中出現(xiàn)問題的老師和同學(xué)們,若是沒有你們慷慨幫助,我一人是很難完成此次畢業(yè)設(shè)計(jì)的,謝謝你們。2012屆電子信息工程專業(yè)畢業(yè)論文參考文獻(xiàn)[1]樓順天,李博菡.基于Matlab的系統(tǒng)分析與設(shè)計(jì)———信號處理[M].西安.電子科技大學(xué)出版社,2000[2]韓得竹,王華.MATLAB電子仿真與應(yīng)用[M].國防工業(yè)出版社,2001[3]鄒鯤,袁俊泉,龔享銥.MATLAB6.x信號處理[M].清華大學(xué)出版社,2002[4]鄭佳春.?dāng)?shù)字濾波器的MATLAB設(shè)計(jì)與DSP上的實(shí)現(xiàn)[J].單片機(jī)及嵌入式系統(tǒng)應(yīng)用,2003[5]陳懷琛.數(shù)字信號處理教程———Matlab釋義與實(shí)現(xiàn)[M].北京.電子工業(yè)出版社,2005[6]陳明軍,王金.采樣信號的數(shù)字濾波設(shè)計(jì)和DSP實(shí)現(xiàn).哈爾濱:信息技術(shù),2006.1[7]陳亞勇.MATLAB信號處理詳解[M].北京.人民郵電出版社,2001[8]趙紅怡、張常年.數(shù)字信號處理及其MATLAB實(shí)現(xiàn).化學(xué)工業(yè)出版社.2001[9]數(shù)字濾波器在DSP上的實(shí)現(xiàn).孫克梅,劉洋.沈陽:沈陽航空工業(yè)學(xué)院學(xué)報(bào),2005(6)[10]陳愛萍,胡曉東.基于MATLAB的IIR數(shù)字濾波器的設(shè)計(jì)[J].湖南工程學(xué)院學(xué)報(bào),2004;14(3):8~10[11]朱銘鋯.DSP應(yīng)用系統(tǒng)設(shè)計(jì)[M].電子工業(yè)出版社,2002[12]張雄偉,陳亮,徐光輝.DSP集成開發(fā)與應(yīng)用實(shí)例[M].北京.電子工業(yè)出版社,2002[13]邢培育,催克清.一種基于TMS320C5402的數(shù)字IIR濾波器設(shè)計(jì)[J].數(shù)據(jù)采集與處理,2002[14]鄒彥.DSP原理及應(yīng)用.電子工業(yè)大學(xué)出版社,2002[15]蘇濤,藺麗華.DSP實(shí)用技術(shù)[M].西安:電子科技大學(xué)出版社,20022012屆電子信息工程專業(yè)畢業(yè)設(shè)計(jì)TheDesignandImplementationofIIRDigitalFilterBasedonDSPLINShi-chaoSanminguniversity08EectronicInformationEngineeringSanmingFujian365004Abstract:DigitalfiltercanbeachievedbyDSPprocessor.UsingDSPchipcanachievedigitalfiltering,inadditiontherearesomeadvantages.Suchasgoodstability,highaccuracy,notoutsidetheenvironmentalimpact,etc.What’smore,DSPchiphaveprogrammablefeature.It’sconvenienttochangethefilterparameters,therebychangethefilterperformance.ButforthegivenfilterdesignspecificationsInthecourseofusingIIRdigitalfilterbasedonDSP,whenthesamplingfrequencyisenhanced,aideddesigninMatlabcanbeachievedintheIIRfilterbutnotbeachievedintheTMS320C54x.Thispaperconductedasimulationanalysisofthis,identifiedtheconstraintsoffiltercoefficientsvaluesinthefixed-pointDSPontherealizationofIIRdigitalfilterandputforwardthebasicmethodstosolvetheproblem.Keywords:IIR;Digitalfilter;Matlab;Butterworth;DSP附錄MATLAB程序當(dāng)N=3時(shí)clc;clearall;%數(shù)字濾波器的頻率特征wp=1500;ws=2500;rp=3;rs=20;Fs=7500;%選擇濾波器的最小階數(shù)。[N,Wn]=buttord(wp/(Fs/2),ws/(Fs/2),rp,rs,'z');%運(yùn)用完全設(shè)計(jì)法來設(shè)計(jì)一個(gè)低通的Butterworth數(shù)字濾波器[num,den]=butter(N,Wn);%繪出頻率響應(yīng)曲線[H,W]=freqz(num,den);H1=abs(H).^2;H2=10*log10(H1);holdon;figure(1)plot(W*Fs/(2*pi),H2);gridon;xlabel('頻率');ylabel('dB');figure(2)holdon;[z,p,k]=butter(N,0.2);zplane(z,p);xlabel('實(shí)部');ylabel('虛部');gridon;hmax=max(H2);h=H2/hmax;h1=h*16383;h2=ceil(h1);fo=fopen('diir_table.dat','w');fprintf(fo,'\t\t.word%d\r\n',h2);fclose(fo);%輸入信號A1=1;A2=1;A3=1;A4=1;t=0:1:511;in=A1*sin(0.267*pi*t)+A2*sin(0.693*pi*t);y=in(1:256);z=fft(y,512);f=(Fs*(1:257)/512)/0.5;figure(3)holdon;plot(f/Fs,abs(z(1:257)));title('輸入信號幅頻特性曲線');xlabel('歸一化頻率/\pi');ylabel('幅度');xmax=max(in);x=in/xmax;x=x*32767;x=ceil(x);fid0=fopen('diir_in.dat','w');fprintf(fid0,'\t\t.word%d\r\n',x);fclose(fid0);fid1=fopen('diir_in.dat');y=fscanf(fid1,'%4x',256);subplot(2,1,1);plot(in);axis([0,256,-4,4])xlabel('t');ylabel('幅度');title('輸入信號的時(shí)域波形')z=fft(y,512);f=2*(Fs/100)*(1:257)/512;subplot(2,1,2);y=in(1:256);z=fft(y,512);f=(Fs*(1:257)/512)/0.5;figure(3)holdon;plot(f/Fs,abs(z(1:257)));title('輸入信號幅頻特性曲線');xlabel('歸一化頻率/\pi');ylabel('幅度');%以下為在malab上的仿真out=filter(num,den,in);f=(Fs*(1:257)/512)/0.5;d=fft(out,512);figure(4)holdon;plot(f/Fs,abs(d(1:257)));title('仿真結(jié)果');xlabel('歸一化頻率/\pi');ylabel('幅度');當(dāng)N=4時(shí)clc;clearall;%數(shù)字濾波器的頻率特征wp=1500;ws=2500;rp=3;rs=20;Fs=12000;%選擇濾波器的最小階數(shù)。[N,Wn]=buttord(wp/(Fs/2),ws/(Fs/2),rp,rs,'z');%運(yùn)用完全設(shè)計(jì)法來設(shè)計(jì)一個(gè)低通的Butterworth數(shù)字濾波器[num,den]=butter(N,Wn);%繪出頻率響應(yīng)曲線[H,W]=freqz(num,den);H1=abs(H).^2;H2=10*log10(H1);holdon;figure(1)plot(W*Fs/(2*pi),H2);gridon;xlabel('頻率');ylabel('dB');figure(2)holdon;[z,p,k]=butter(N,0.2);zplane(z,p);xlabel('實(shí)部');ylabel('虛部');gridon;hmax=max(H2);h=H2/hmax;h1=h*16383;h2=ceil(h1);fo=fopen('diir_table.dat','w');fprintf(fo,'\t\t.word%d\r\n',h2);fclose(fo);%輸入信號A1=1;A2=1;A3=1;A4=1;t=0:1:511;in=A1*sin(0.167*pi*t)+A2*sin(0.433*pi*t);y=in(1:256);z=fft(y,512);f=(Fs*(1:257)/512)/0.5;figure(3)holdon;plot(f/Fs,abs(z(1:257)));title('輸入信號幅頻特性曲線');xlabel('歸一化頻率/\pi');ylabel('幅度');xmax=max(in);x=in/xmax;x=x*32767;x=ceil(x);fid0=fopen('diir_in.dat','w');fprintf(fid0,'\t\t.word%d\r\n',x);fclose(fid0);fid1=fopen('diir_in.dat');y=fscanf(fid1,'%4x',256);subplot(2,1,1);plot(in);axis([0,256,-4,4])xlabel('t');ylabel('幅度');title('輸入信號的時(shí)域波形')z=fft(y,512);f=2*(Fs/100)*(1:257)/512;subplot(2,1,2);y=in(1:256);z=fft(y,512);f=(Fs*(1:257)/512)/0.5;figure(3)holdon;plot(f/Fs,abs(z(1:257)));title('輸入信號幅頻特性曲線');xlabel('歸一化頻率/\pi');ylabel('幅度');%以下為在malab上的仿真out=filter(num,den,in);f=(Fs*(1:257)/512)/0.5;d=fft(out,512);figure(4)holdon;plot(f/Fs,abs(d(1:257)));title('仿真結(jié)果');xlabel('歸一化頻率/\pi');ylabel('幅度');(2)CCS程序當(dāng)N=3時(shí).title"iir.asm".mmregs.globalstart.defstart,_c_int00N.set3INPUT.copy"diir_in.dat";(輸入信號的數(shù)據(jù))table.word965,2897,2897,965;(b數(shù)據(jù)).word-3230,3067,-304;(a數(shù)據(jù)).dataBN.usect"BN",N+1AN.usect"AN",N+1INBUF.usect"INBUF",256OUTPUT.usect"OUTPUT",256.text.asgAR0,INDEX_P.asgAR2,XN_P.asgAR3,ACOFF_P.asgAR4,YN_P.asgAR5,BCOFF_P_c_int00bstartnopnopstart:SSBXFRCTSSBXOVMSSBXSXMSTM#BN+N,AR1RPT#NMVPD#table,*AR1-STM#AN+N-1,AR1RPT#N-1MVPD#table+N+1,*AR1-STM#OUTPUT,AR1RPTZA,#255STLA,*AR1+STM#INBUF,AR1RPT#255MVPD#INPUT,*AR1+STM#OUTPUT,YN_PSTM#INBUF,XN_PSTM#N-1,INDEX_PSTM#255,BRCRPTBLOOP-1IIR:SUBA,ASTM#BN,BCOFF_PSTM#AN,ACOFF_PRPT#N-1MAC*XN_P+,*BCOFF_P+,AMAC*XN_P,*BCOFF_P,AMAR*XN_P-0RPT#N-1MAC*YN_P+,*ACOFF_P+,ASTHA,*YN_P-0LOOP:EENDBEEND.end當(dāng)N=4時(shí).title"iir.asm".mmregs.globalstart.defstart,_c_int00N.set4INPUT.copy"diir_in.dat";(輸入信號的數(shù)據(jù))table.word95,379,568,379,95;(b數(shù)據(jù)).word-8192,8192,-5505,933;(a數(shù)據(jù)).dataBN.usect"BN",N+1AN.usect"AN",N+1INBUF.usect"INBUF",256OUTPUT.usect"OUTPUT",256.text.asgAR0,INDEX_P.asgAR2,XN_P.asgAR3,ACOFF_P.asgAR4,YN_P.asgAR5,BCOFF_P_c_int00bstartnopnopstart:SSBXFRCTSSBXOVMSSBXSXMSTM#BN+N,AR1RPT#NMVPD#table,*AR1-STM#AN+N-1,AR1RPT#N-1MVPD#table+N+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論