基于DSP的FIR數(shù)字低通濾波器設(shè)計_第1頁
基于DSP的FIR數(shù)字低通濾波器設(shè)計_第2頁
基于DSP的FIR數(shù)字低通濾波器設(shè)計_第3頁
基于DSP的FIR數(shù)字低通濾波器設(shè)計_第4頁
基于DSP的FIR數(shù)字低通濾波器設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電氣控制技術(shù)應(yīng)用設(shè)計題目 基于DSP的FIR數(shù) 字低通濾波器設(shè)計二級學(xué)院 電子信息與自動化學(xué)院 專 業(yè) 電氣工程及其自動化 班 級 113070404 學(xué)生姓名 黃鴻資 學(xué)號 學(xué)生姓名 姜天宇 學(xué)號 指導(dǎo)教師 蔣東榮 時間:2016年8月29日至2016年9月9日考核項目平時成績20分設(shè)計35分報告15分答辯30分得分總分考核等級教師簽名一 緒論3(一) 課題設(shè)計的目的3(二)課題內(nèi)容3(三) 設(shè)計方法3(四)課程設(shè)計的意義4二 FIR濾波器基本理論4(一)FIR濾波器的特點4(二)FIR濾波器的基本結(jié)構(gòu)4(三)Chebyshev逼近法5三 用MATLAB輔助DSP設(shè)計FIR濾波器5(一)利用

2、fir函數(shù)設(shè)計FIR濾波器并在在MATLAB環(huán)境仿真5(二) Matlab中自帶工具箱FDATool快速的實現(xiàn)濾波器的設(shè)計101.確定一個低通濾波器指標(biāo)102.打開MATLAB的FDATool103.選擇Design Filter104.濾波器分析115.導(dǎo)出濾波器系數(shù)12(三)濾波器設(shè)計總結(jié)12(四)DSP所需文件配置13四 基于DSP的FIR濾波器實現(xiàn)13(一)DSP中濾波器的算法實現(xiàn) 131.線性緩沖區(qū)法132.循環(huán)緩沖區(qū)法14(二)C語言實現(xiàn)FIR14(三)CSS仿真調(diào)試15(四) 濾波器的仿真測試16五 DSP數(shù)字濾波器與硬件低通濾波器對比19(一)二階有源低通濾波電路的構(gòu)

3、建19(二)二階低通濾波器 參數(shù)計算20(三)在protues環(huán)境下的仿真測試20(四) 實物硬件連接以及測試結(jié)果20(五)利用FilterPro的低通濾波器設(shè)計221 選擇filter類型222 濾波器參數(shù)設(shè)定223 濾波器的算法選擇234 濾波器的拓?fù)浣Y(jié)構(gòu)選擇23(六) DSP數(shù)字濾波器與硬件電路濾波器對比總結(jié)24六 課程設(shè)計總結(jié)24參考文獻(xiàn)26摘 要DSP芯片是一種特別適合數(shù)字信號處理運算的微處理器,主要用來實時、快速實現(xiàn)各種數(shù)字信號處理算法。FIR數(shù)字濾波器具有嚴(yán)格的線性相位、總是穩(wěn)定等特點而廣泛應(yīng)用于數(shù)字信號處理的各個領(lǐng)域,是一個重要的研究課題。本文主要研究了低通數(shù)字濾波器

4、的基本理論,在MATLAB壞境下設(shè)計FIR低通數(shù)字濾波器,主要用窗函數(shù)法及利用MATLAB的濾波器設(shè)計工具的設(shè)計方法,編寫相應(yīng)的MATLAB語言,進(jìn)行具體的仿真分析。用TMS320C5402的DSP芯片軟件,編寫了DSP的FIR低通數(shù)字濾波算法,用MATLAB中生成的濾波器系數(shù)導(dǎo)入DSP中設(shè)計的濾波器函數(shù)中。在ccs環(huán)境中,首先根據(jù)算法編寫C語言文件,在編寫完成后再編寫cmd文件和在庫中添加lib文件保證C語言程序文件可以正確編譯鏈接。DSP的輸入信號可以又MATLAB軟件進(jìn)行編寫,在程序測試的時候可以導(dǎo)入進(jìn)行觀察。在這次課程設(shè)計末尾,為了驗證DSP設(shè)計的低通濾波器相對于運算放大器所設(shè)計的硬件

5、電路的優(yōu)勢,利用protues軟件和FilterPro軟件進(jìn)行硬件電路的設(shè)計仿真。采用信號發(fā)生器產(chǎn)生所需信號,利用示波器顯示。將DSP設(shè)計的濾波器與硬件設(shè)計的濾波器進(jìn)行比較分析其優(yōu)劣。最后根據(jù)得到的結(jié)果對濾波后的結(jié)果進(jìn)行分析,找出設(shè)計過程中存在的問題,并想辦法從電路元件或者軟件算法方面對其進(jìn)行一定改良。通過這次課程設(shè)計可以掌握CCS,MATLAB,protues等軟件的基本使用和焊接簡單電路的動手能力。關(guān)鍵詞:數(shù)字低通濾波器 FIR MATLAB TMS320C54XX DSP 引 言現(xiàn)代生活中,越來越多的電子產(chǎn)品把數(shù)字信號處理(DSP)作為技術(shù)核心,DSP已經(jīng)作為推動數(shù)字化進(jìn)程的動力。作為數(shù)

6、字化最重要的技術(shù)之一,DSP無論是在其應(yīng)用領(lǐng)域的深度還是廣度,正在以前所未有的速度發(fā)展。數(shù)字信號處理器,也稱DSP芯片,是針對數(shù)字信號處理需要而設(shè)計的一種具有特殊結(jié)構(gòu)的微處理器。隨著數(shù)字化技術(shù)的飛速發(fā)展,DSP在電子信息、通信、無線電、自動控制、儀表技術(shù)等方面應(yīng)用廣泛。在數(shù)字信號處理中,數(shù)字濾波器占有極其重要的位置。是象處理、指紋識別、模式識別、譜分析等應(yīng)用中一個基本的處理算法。在許多信號處理應(yīng)用中運用數(shù)字信號濾波器代替模擬信號濾波器有很大的優(yōu)勢,數(shù)字信號濾波器容易實現(xiàn)不同幅度和相位頻率特性指標(biāo),克服了與模擬信號處理器性能相關(guān)的電壓漂移、溫度漂移和噪聲問題。用DSP實現(xiàn)數(shù)字濾波具有穩(wěn)定性好、精

7、確度高和不受環(huán)境影響。數(shù)字濾波器又分為無限沖激響應(yīng)濾波器(IIR)和有限沖激響應(yīng)濾波器(FIR)。FIR濾波器具有不含反饋環(huán)路、結(jié)構(gòu)簡單以及可以實現(xiàn)的嚴(yán)格線性相位等優(yōu)點,因而在對相位要求比較嚴(yán)格的條件下,采用F1R數(shù)字濾波器。同時,由于在許多場合下,需要對信號進(jìn)行實時處理,因而對于單片機的性能要求也越來越高。采用 DSP控制器就可以提高數(shù)字信號處理運算的能力,可以對數(shù)字信號做到實時處理。而普通的單片機例如MCS-51難以滿足這一要求。用可編程DSP芯片實現(xiàn)數(shù)字濾波的又一優(yōu)勢是:通過修改濾波器的參數(shù)十分方便的改變?yōu)V波器的特性。有限長單位沖激響應(yīng)(FIR)數(shù)字濾波器,與傳統(tǒng)的通過硬件電路實現(xiàn)的模擬

8、濾波器相比有以下優(yōu)點:(1)簡化了硬件電路的設(shè)計,提高了硬件電路的集成度和可靠性。(2)對干擾信號的抑制能力有了明顯提高,這對系統(tǒng)的控制精度和穩(wěn)定性的提高起到了促進(jìn)作用。(3)數(shù)字濾波器的參數(shù)調(diào)節(jié)比起模擬濾波器來更加方便、靈活。(4)數(shù)字濾波器可以實現(xiàn)數(shù)據(jù)的并行處理,提高了系統(tǒng)運行速度。一 緒論(1) 課題設(shè)計的目的設(shè)計的目的首先是為了熟練使用DSP,利用所學(xué)的數(shù)字信號處理知識設(shè)計一FIR濾波器,并在基于DSP平臺的仿真軟件CCS下通過軟件模擬仿真實現(xiàn)基本的濾波功能,其中輸入信號和濾波器的各個參數(shù)根據(jù)設(shè)計要求自行確定。首先可以借助Matlab來產(chǎn)生輸入數(shù)據(jù),并根據(jù)輸入信號確定濾波器參數(shù),然后根

9、據(jù)產(chǎn)生濾波器參數(shù)在CCS下編寫程序?qū)崿F(xiàn)濾波器功能,最后進(jìn)行濾波器性能的測試,完成本次課程設(shè)計。為了對于設(shè)計有幫助首先了解什么是濾波器以及功能和濾波器的基本結(jié)構(gòu)以及工作方式,可以研究濾波器的硬件原理圖和數(shù)字濾波器的各種算法來加深理解。(二)課題內(nèi)容我們小組將課題研究分為兩個部分:一部分為簡單的濾波器硬件電路的設(shè)計仿真與實物焊接測試。另一部分著重研究DSP中的濾波器程序的編寫與使用matlab軟件輔助編寫輸入文件與濾波器系數(shù)。在完成數(shù)據(jù)的編寫之后,首先在ccs環(huán)境中根據(jù)選擇的濾波器的濾波算法用c語言編寫相應(yīng)程序,隨后編寫asm,smd文件和添加ti庫中的lib文件使得編寫的c語言程序可以編譯鏈接并

10、且下載到DSP開發(fā)板中進(jìn)行驗證。(三) 設(shè)計方法數(shù)字濾波器的實現(xiàn)方法一般有幾種:(1)在通用計算機上軟件編程實現(xiàn)。(2)用加法器、乘法器、延時器設(shè)計實現(xiàn)專用的濾波電路。(3)用單片機實現(xiàn)。(4)用通用的可編程DSP芯片實現(xiàn)。(5)用專用的DSP芯片實現(xiàn)。在這幾種方法中,第一種方法的速度比較慢,主要用來進(jìn)行算法的模擬仿真,只能用于非實時系統(tǒng);第二種和第五種方法是專用的,應(yīng)用范圍不廣;第三種方法比較容易實現(xiàn)人機接口,但系統(tǒng)比較復(fù)雜,對乘法運算的速度很慢;第四種方法因DSP芯片的哈佛結(jié)構(gòu)、并行結(jié)構(gòu)、指令系統(tǒng)等結(jié)構(gòu)特點,使得數(shù)字濾波器比較好的容易實現(xiàn)。在這里我們小組采用方法4編寫數(shù)字濾波器程序框架,使

11、用matlab軟件設(shè)計濾波器導(dǎo)出系數(shù),最后完成一個完整低通濾波器的設(shè)計。(四)課程設(shè)計的意義21世紀(jì)是數(shù)字化的時代,隨著越來越多的電子產(chǎn)品將數(shù)字信號處理(PSP)作為技術(shù)核心,DSP已經(jīng)成為推動數(shù)字化進(jìn)程的動力。DSP的數(shù)字處理能力可以解決許多問題,例如電機控制,圖像處理等等。我們的課程設(shè)計是研究濾波器,一方面要了解濾波器的原理和不同的實現(xiàn)方式,另一方面學(xué)習(xí)濾波器如何通過編寫程序?qū)崿F(xiàn)。最終目的是可以在實際環(huán)境之中運用濾波器對于采集的信號進(jìn)行處理完成濾波要求。二 FIR濾波器基本理論 (一)FIR濾波器的特點 第一了解數(shù)字濾波器的功能,就是把輸入序列通過一定的運算變換成輸出序列。它的實現(xiàn)方法有很

12、多,其中比較常用到的是無限長脈沖響應(yīng)濾波器 IIR和有限長脈沖響應(yīng)濾波器FIR兩種。 在計算量相等的情況下,IIR數(shù)字濾波器比FIR濾波器的幅頻特性優(yōu)越,頻率選擇性也好。但是,它有著致命的缺點,其相位特性不好控制。它的相 位特性)是使頻率產(chǎn)生嚴(yán)重的非線性的原因。但是在圖像處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中都越來越多的要求信道具有線性的相位特性。在這方面 FIR濾波器具有它獨特的優(yōu)點,設(shè)FIR濾波器單位脈沖響應(yīng)h(n)長度為N,其系統(tǒng)函數(shù)H(z)是H(N-1)次多項式,它在z平面上有(N-1)個零點,原點z=0是(N-1)階重極點。因此,H(z)永遠(yuǎn)穩(wěn)定,它可以在幅度特性隨意設(shè)計的同時,保證精確、嚴(yán)

13、格的線性相位。 (二)FIR濾波器的基本結(jié)構(gòu) 數(shù)字濾波就是將輸入的信號序列,按規(guī)定的算法進(jìn)行處理,從而得到所期望的輸出序列,H(z)是1-z的N-1次多項式,它在z平面內(nèi)有N-1個零點,同時在原點處有N-1個重極點。N階濾波器通常采用N個延遲單元、N個加法器與N+1個乘法器。另外,若對 h(n)提出一些約束條件,那么可以很容易地使 H(z)具有線性相位,這在信號處理的很多領(lǐng)域是非常重要的。FIR濾波器的設(shè)計任務(wù),是要決定一個轉(zhuǎn)移函數(shù)H(z),使它的頻率響應(yīng)滿足給定的要求。這里所說的要求,除了通帶頻率pw、阻帶頻率及兩個帶上的最大和最小衰減p¶和s外,很重要的一條是保證H(z)具有線性

14、相位。(三)Chebyshev逼近法 窗函數(shù)法和頻率采樣法設(shè)計出的濾波器的頻率特性都是在不同意義上對所給理想頻率特性的逼近。由數(shù)值逼近理論可知,對某個函數(shù)f(x)的逼近一般有以下三種方法:插值法(Interpolating Way) 最小平方逼近法(Least Square Approaching Way) 一致逼近法(Consistent Approaching Way) 切比雪夫最佳一致逼近的基本思想是,對于給定區(qū)間a,b上的連續(xù)函數(shù)xf,在所有n次多項式的集合n中,尋找一個多項式 p(x),使它在a,b上對xf的偏差和其它一切屬于n的多項式 p(x)對f(x)的偏差相比是最小的,即切比雪

15、夫逼近理論,這樣的多項式是存在的,且是唯一的,并指出了構(gòu)造這種最佳一致逼近多項式的方法,就是有名的“交錯點組定理”。 三 用MATLAB輔助DSP設(shè)計FIR濾波器在進(jìn)行設(shè)計過程中首先利用matlab進(jìn)行濾波器的設(shè)計,在這里運用了兩種方法進(jìn)行濾波器的設(shè)計,一種為利用matlab自帶的fir函數(shù)進(jìn)行設(shè)計,并利用matlab自帶的命令進(jìn)行輸入信號的編寫并且輸出輸出信號的幅頻曲線與相頻曲線圖。第二種使用matlab的FDATool工具進(jìn)行濾波器的設(shè)計得到的濾波器參數(shù),同時使用matlab軟件編寫“input.dat”文件,具體內(nèi)容為三個正弦函數(shù)疊加生成的含有高次諧波的正弦信號??偭鞒虉D(一)利用fir

16、函數(shù)設(shè)計FIR濾波器并在在MATLAB環(huán)境仿真MATLAB輔助DSP 實現(xiàn)FIR ,其總體過程為在DSP中編寫處理程序,在MATLAB中利用濾波器設(shè)計、分析工具( FDATOOL) ,根據(jù)指定的濾波器性能快速設(shè)計一個FIR ,再把濾波器系數(shù)以頭文件形式導(dǎo)入CCS 中,頭文件中MATLAB 輔助DSP 實現(xiàn)FIR 數(shù)字濾波器含濾波器階數(shù)和系數(shù)數(shù)組,在MATLAB中調(diào)試、運行DSP 程序并顯示、分析處理后的數(shù)據(jù)。使用該方法,便于采用匯編語言來實現(xiàn)程序。頭文件名不變,當(dāng)MATLAB中設(shè)計的濾波器系數(shù)改變時,相應(yīng)頭文件中系數(shù)也改變,方便程序調(diào)試、仿真。 在matlab環(huán)境下進(jìn)行設(shè)計與仿真 f1=10;

17、%第一個點頻信號分量頻率 f2=30;%第二個點頻信號分量頻率 fs=100;%采樣率 T=2;%時寬 B=20;%帶寬 n=round(T*fs);%采樣點個數(shù) t=linspace(0,T,n); y=cos(2*pi*f1*t)+cos(2*pi*f2*t);figure; plot(t,y); title('原始信號時域'); xlabel('t/s'); ylabel('幅度'); figure; fft_y=fftshift(fft(y); f=linspace(-fs/2,fs/2,n); plot(f,abs(fft_y); ti

18、tle('原始信號頻譜'); xlabel('f/Hz'); ylabel('幅度'); axis( 0 50 0 100);b=fir1(40, B/(fs/2); %濾波產(chǎn)生指定帶寬的噪聲信號 figure; freqz(b);%畫濾波器頻響y_after_fir=filter(b,1,y);figure; plot(t,y_after_fir); title('濾波后信號時域'); xlabel('t/s'); ylabel('幅度'); fft_y1=fftshift(fft(y_after

19、_fir); f=linspace(-fs/2,fs/2,n); figure; plot(f,abs(fft_y1); title('濾波后信號頻譜'); xlabel('f/Hz'); ylabel('幅度'); axis( 0 50 0 100);所設(shè)計的低通濾波器的幅頻特性曲線與相頻特性曲線 輸入信號的幅頻曲線 輸入信號的相頻曲線 經(jīng)過濾波后的信號幅頻曲線 經(jīng)過濾波后的信號幅頻曲線 (二) Matlab中自帶工具箱FDATool快速的實現(xiàn)濾波器的設(shè)計1.確定一個低通濾波器指標(biāo)若需要設(shè)計一個16階的FIR濾波器(h(0)=0),給定的參數(shù)如

20、下:(1) 低通濾波器(2) 采樣頻率Fs為48kHz,濾波器Fc為10.8kHz(3) 輸入序列位寬為9位(最高位為符號位)在此利用MATLAB來完成FIR濾波器系數(shù)的確定。2.打開MATLAB的FDAToolMATLAB集成了一套功能強大的濾波器設(shè)計工具FDATool(Filter Design & Analysis Tool),可以完成多種濾波器的設(shè)計、分析和性能評估。單擊MATLAB主窗口下方的“Start”按鈕,選擇菜單“ToolBox” “Filter Design” “Filter Design & Analysis Tool(FDA

21、Tool)”命令3.選擇Design FilterFDATool界面左下側(cè)排列了一組工具按鈕,其功能分別如下所述: 創(chuàng)建多速率濾波器(Create a Multirate Filter) 濾波器轉(zhuǎn)換(TransForm Filter) 設(shè)置量化參數(shù)(Set Quantization Parameters) 實現(xiàn)模型(Realize Model) 零極點編輯器(Pole-zero Editor) 導(dǎo)入濾波器(Import Filter)&

22、#160;設(shè)計濾波器(Design Filter)選擇其中的按鈕,進(jìn)入設(shè)計濾波器界面濾波器類型(Filer Type)為低通(Low Pass) 設(shè)計方法(Design Method)為FIR,采用窗函數(shù)法(Window) 濾波器階數(shù)(Filter order)定制為15 窗口類型為Kaiser,Beta為0.5 Fs為48kHz,F(xiàn)c為10.8kHz最后單擊Design Filter圖標(biāo),讓MATLAB計算FIR濾波器系數(shù)并作相關(guān)分析。因為FIR濾波器的輸出結(jié)果經(jīng)過了一個單位延時單元,所以在F

23、DATool中,把它看成15階FIR濾波器來計算參數(shù)。因此,設(shè)置濾波器階數(shù)時,要比要求的小1。4.濾波器分析計算完FIR濾波器系數(shù)以后,往往需要對設(shè)計好的FIR濾波器進(jìn)行相關(guān)的性能分析,以便了解該濾波器是否滿足設(shè)計要求。分析操作步驟如下:選擇FDATool的菜單“Analysis”“Magnitude Response”,啟動幅頻響應(yīng)分析如圖B.4所示,x軸為頻率,y軸為幅度值(單位為dB)選擇菜單“Analysis”“Phase Response”,啟動相頻響應(yīng)分析。由該圖可以看到設(shè)計的FIR濾波器在通帶內(nèi)其相位響應(yīng)為線性的,即該濾波器是一個線性相位的濾波器。求出的FIR濾波器的系數(shù)可以通過

24、選擇菜單“Analysis”“Filter Coefficients”來觀察。圖中列出了FDATool計算的15階直接I型FIR濾波器的部分系數(shù)。5.導(dǎo)出濾波器系數(shù)為導(dǎo)出設(shè)計好的濾波器系數(shù),選擇FDATool菜單的“File”“Export”命令,打開Export(導(dǎo)出)對話框(三)濾波器設(shè)計總結(jié)FIR濾波器實現(xiàn)一般采用窗函數(shù)法和等紋波設(shè)計法。窗函數(shù)法還包含兩個分支,一種是用公式先手動算出N值和其他對應(yīng)得窗函數(shù)參數(shù)值,再代入窗函數(shù)和fir1實現(xiàn),一種是用函數(shù)*rord估算出N和相應(yīng)參數(shù)再用fir1實現(xiàn)。不過要注意*rord會低估或高估階次n,可能會使濾波器達(dá)不到指定的性能,這時應(yīng)稍微

25、增加或降低階次。如果截止頻率在0或Nyquist頻率附近,或者設(shè)定的dev值較大,則得不到正確結(jié)果。濾波器實現(xiàn)形式及特點:由于一般的濾波器在利用窗函數(shù)是其通帶波紋和阻帶波紋不同(一般為第一個阻帶波紋最大)因此,在滿足第一個阻帶衰減旁瓣時,比其頻率高的旁瓣,它們的衰減都大大超出要求。而根據(jù)阻帶衰減與項數(shù)的近似關(guān)系N = P(2)*fs/TW,可得當(dāng)阻帶衰減越大,所需項數(shù)越多。(四)DSP所需文件配置Fdacoefs.h中存放著所設(shè)計的濾波器的系數(shù)。Input.dat中為設(shè)計好的一個帶有雜波的正弦波,用于dsp仿真時的數(shù)據(jù)輸入。所生成的兩個文件,系數(shù)文件內(nèi)的數(shù)據(jù)到時候直接添加到c語言編寫的dsp程

26、序中,input文件用于dsp仿真進(jìn)行時作為輸入信號輸入。四 基于DSP的FIR濾波器實現(xiàn) 在完成matlab的FIR濾波器的參數(shù)提取與輸入文件“input.dat”的編寫以后就可以開始dsp的濾波器的實現(xiàn)。具體思路為:首先尋找一種濾波器的算法,在這種算法的基礎(chǔ)上運用C語言進(jìn)行程序編寫,再編寫link.cmd文件將程序進(jìn)行編譯,之后導(dǎo)入輸入信號,利用ccs自帶的工具對于前后的波形進(jìn)行分析。Dsp中程序運行流程圖(一)DSP中濾波器的算法實現(xiàn) FIR濾波器的輸出表達(dá)式中x(n)表示濾波器在n時刻的輸入;y(n)為n時刻的輸出。 它的基本算法是一種乘法-累加運算,即不斷地輸入樣本x(n),經(jīng)過延時

27、后,再進(jìn)行乘法-累加,最后輸出濾波結(jié)果y(n)。 1.線性緩沖區(qū)法線性緩沖區(qū)法又稱延遲線法,其特點: (a)對于N級的FIR濾波器,在數(shù)據(jù)存儲器中開辟一個N單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本; b)從最老樣本開始取數(shù),每取一個樣本后,將此樣本向下移位; (c)讀完最后一個樣本后,輸入最新樣本存入緩沖區(qū)的頂部。 2.循環(huán)緩沖區(qū)法循環(huán)緩沖區(qū)法的特點如下: (a)對于N級FIR濾波器,在數(shù)據(jù)存儲器中開辟一個N單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本; (b)從最新樣本開始取數(shù); (c)讀完最后一個樣本(最老樣本)后,輸入最新樣本來代替最老樣本,而其他數(shù)據(jù)位置不變; (d)用片內(nèi)

28、BK(循環(huán)緩沖區(qū)長度)寄存器對緩沖區(qū)進(jìn)行間接尋址,使循環(huán)緩沖區(qū)地址首尾相鄰。本次設(shè)計的FIR濾波器所采用的就是循環(huán)緩沖區(qū)法。 (二)C語言實現(xiàn)FIR 采用C語言算法在DSP平臺上實現(xiàn)了FIR低通數(shù)字濾波器,C語言算法相比于匯編算法可移植性很強。這里是在TMS320VC5510DSP為平臺編寫的C語言算法, 此算法可以稍加改動用在其他DSP芯片上, 而匯編算法則不然。這種方法具有以下優(yōu)點: (a) 程序的入口和出口由C語言自動管理,不必手工編寫匯編程序?qū)崿F(xiàn)。 (b) 程序結(jié)構(gòu)清晰,可讀性強。 (c) 程序調(diào)試方便。由于C程序中的變量全部由C語言來定義,因此采用C源碼調(diào)試器可以方便地觀察C語言變量

29、。 (d) 可移植性較強,通用性較好。 具體代碼如下:#include "stdio.h" #include "D:externincludetmwtypes.h" /fdacoefs.h為Matlab生成的系數(shù)表頭文件 /如運行不通過,請修改fdacoefs.h中的代碼,將”#include”這行修改為如下: /#include "d:MATLAB7externincludetmwtypes.h" /也就是自己機器上的Matlab安裝的絕對路徑#define N 33 /FIR濾波器的級數(shù)+1,本例中濾波器級數(shù)為32 #define

30、 LEN 200 /待濾波的數(shù)據(jù)長度 long yn; int inputLEN; /輸入緩沖,在仿真時將從內(nèi)存載入 int outputLEN; /輸出緩沖,直接存放在內(nèi)存中 void main() int i,j; int *x;const int16_T B33 = 82, 22, -127, -268, -240, 42, 463, 702, 434, -382, -1321, -1620, -595, 1865, 5078, 7808, 8879, 7808, 5078, 1865, -595, -1620, -1321, -382, 434, 702, 463, 42, -240,

31、 -268, -127, 22, 82; for(j=0;j<LEN-1;j+) x=&inputj; yn = 0; for(i=0; i<N-1; i+) yn += Bi*(*x+); outputj=yn>>15; while(1); (三)CSS仿真調(diào)試 CCS 是TI 推出的用于開發(fā)其DSP 芯片的繼承開發(fā)調(diào)試工具, 集編輯、編譯、鏈接、軟件仿真、硬件調(diào)試及實時跟蹤等功能于一體, 極大地方便了DSP 程序的設(shè)計與開發(fā), 此外還提供圖形顯示功能, 方便用戶觀察特定地址的波形。此外, 還需向工程中添加Link. cmd文件MEMORY PAGE 0: E

32、PROG: origin = 0x1400, len = 0x7c00 VECT: origin = 0xff80, len = 0x80 PAGE 1: USERREGS: origin = 0x60, len = 0x1c BIOSREGS: origin = 0x7c, len = 0x4 IDATA: origin = 0x80, len = 0x1380 EDATA: origin = 0x1400, len = 0x8000 EDATA1: origin = 0x9400, len = 0x4c00 SECTIONS .vectors: > VECT PAGE 0 .sysr

33、egs: > BIOSREGS PAGE 1 .trcinit: > EPROG PAGE 0 .gblinit: > EPROG PAGE 0 frt: > EPROG PAGE 0 .text: > EPROG PAGE 0 .cinit: > EPROG PAGE 0 .pinit: > EPROG PAGE 0 .sysinit: > EPROG PAGE 0 .bss: > IDATA PAGE 1 .far: > IDATA PAGE 1 .const: > IDATA PAGE 1 .switch: > ID

34、ATA PAGE 1 .sysmem: > IDATA PAGE 1 .cio: > IDATA PAGE 1 .MEM$obj: > IDATA PAGE 1 .sysheap: > IDATA PAGE 1 .stack: > IDATA PAGE 1 另外還要導(dǎo)入rts.lib文件,在D:DSPcgtoolslib文件夾下。在CCSV5中建立工程,把c源代碼和.cmd文件導(dǎo)入后,外加rts. lib文件,它是TI提供的運行時支持庫。如果是C代碼寫的源程序, 必須要包含該庫該庫。(四) 濾波器的仿真測試編譯成功后會在”<工程所以目錄>/debug”

35、文件夾下產(chǎn)生*.out文件,在CCS軟件的File->Load Program里打開這個.out文件。選擇File->Data->Load打開之前Matlab生成的input.dat文件。將Address設(shè)置為input,Length設(shè)置為200,Page設(shè)置為Data。運行程序,點擊按鈕,程序即開始運行。打開View->Graph->Time/Frequency在上一步出現(xiàn)的對話框中,按如下圖設(shè)置如果出現(xiàn)的波形圖太大,在圖形上點右鍵,將”Allow Docking”、”Float in main window”之前的勾去掉,即會變成如下圖的波形:重復(fù)前三個步驟,

36、只改變圖形選項中的Display Type、Graph Title、Start Address,使之最后出現(xiàn)如下的圖形:左上角:輸入數(shù)據(jù)時域圖(Start Address : input) 右上角:輸入數(shù)據(jù)頻譜(Display Type : FFT Magnitude) 左下角:輸出數(shù)據(jù)時域圖(Start Address : output) 右下角:輸出數(shù)據(jù)頻譜(Display Type : FFT Magnitude)五 DSP數(shù)字濾波器與硬件低通濾波器對比(一)二階有源低通濾波電路的構(gòu)建低通濾波器是用低頻信號衰減或抑制高頻信號。 如圖為典型的二階低通濾波器。它由兩級RC濾波環(huán)節(jié)與

37、同相比例運算電路組成,其中第一級電容C接至輸出端,引入適量的正反饋,以改善幅頻特性。 (二)二階低通濾波器 參數(shù)計算 二階低通濾波器性能參數(shù)表達(dá)式為  C2/(CC1RR1) Q=0.707C/Q=1/R1C+1/R2C+(1+AV)/R2C1     AV=1+R4/R3   參數(shù)計算 設(shè)定低通濾波器的截止頻率為2KHz、品質(zhì)因數(shù)Q=0.707,設(shè)定R1=R2=R,C1=C2=C;又根據(jù)截至頻率,初步確定電容值C1=C2=C=0.1U,由

38、60;   R1=R2=0.796K,R3=R4=4*R=3,184K(三)在protues環(huán)境下的仿真測試打開protues軟件,在元件庫尋找到電阻,電容,運算放大器元件。根據(jù)電路圖連接線路,再根據(jù)計算結(jié)果設(shè)定元件的參數(shù)。 二階有源低通濾波器電路圖與在protues中仿真的結(jié)果(4) 實物硬件連接以及測試結(jié)果 首先在面包板上完成電路的連接與測試。 完成測試后在電路板上完成焊接工作。由測試的波形的對比,有信號可以通過隨著輸入頻率增加,電容電抗減小,由于電阻不變,而電容電抗減小 ,根據(jù)分壓定理,電容兩端的電壓(輸出電壓)將隨之減小。當(dāng)輸入頻率增加到某一值時

39、,電抗遠(yuǎn)小于電阻,輸出電壓與輸入電壓 相比可忽略不計。這時,電路基本上完全阻止了輸入信號的輸出。同理對比一個噪聲信號的波形的前后對比可以得出相同的結(jié)論。(五)利用FilterPro的低通濾波器設(shè)計本設(shè)計是由TI公司的FilterPro濾波器設(shè)計軟件直接設(shè)計生成的濾波器電路,F(xiàn)ilterPro是一款強大的濾波器設(shè)計軟件,研發(fā)時間斷、成本比較低、產(chǎn)品開發(fā)投放市場快。與其它的類型的濾波器不同的是,它支持三種最常見的全極點濾波器類型:巴特沃茲(最大幅度平坦度)、切比雪夫(等紋波幅度)及貝塞爾(最大延遲時間平坦度)。此軟件是經(jīng)過了一系列精確細(xì)致的運算,得到更為理想的低通濾波器,誤差范圍更小,產(chǎn)

40、生效果更明顯,更易于大家認(rèn)可和接受。利用施密特觸發(fā)器狀態(tài)轉(zhuǎn)換過程中的正反饋作用,可以將邊沿變化緩慢的周期性信號變換為邊沿很陡的矩形脈沖信號。具有科學(xué)性和正確性。1 選擇filter類型2 濾波器參數(shù)設(shè)定根據(jù)需求依據(jù)要求改寫相應(yīng)參數(shù)3 濾波器的算法選擇這里因為butterworth算法所產(chǎn)生的曲線最為平滑所以選擇此算法。4 濾波器的拓?fù)浣Y(jié)構(gòu)選擇Sallen-Key濾波器是1955年R.P.Sallen與E.L.Key提出的一種由單個運算放大器和電阻、電容組成的低通濾波器。另外兩個上方的為單反饋的下方的為雙反饋的。二階低通濾波器電路圖與幅頻曲線圖(6) DSP數(shù)字濾波器與硬件電路濾波器對比總結(jié)首先

41、簡單的濾波器的硬件電路設(shè)計比較簡單,利用設(shè)計工具可以輕易獲得電路原理圖。硬件設(shè)計的濾波器的濾波方式主要是利用了運算放大器在輸入端的兩個電容。當(dāng)有信號通過的時候,高頻信號經(jīng)過電容,電容的電抗減小,根據(jù)分壓原理輸入端的兩端電壓減小。當(dāng)信號頻率高于設(shè)定時,這時高頻信號加在輸入端的電壓信號很小其輸出信號可以忽略掉。而使用DSP設(shè)計的數(shù)字濾波器直觀上的優(yōu)勢就是操作簡單快捷,得到的波形圖清晰準(zhǔn)確。其次數(shù)字濾波器的精度高,仿真度好,而且可靠性好相對于硬件電路受到外界環(huán)境例如溫度濕度的影響比較小。硬件電路如果提高其精確度所需元件會增加許多導(dǎo)致體積增大成本增加不利于產(chǎn)品的生產(chǎn)使用。六 課程設(shè)計總結(jié)課程設(shè)計的開始

42、,我們組的課題是基于dsp的門禁系統(tǒng)設(shè)計,但是因為指紋的輸入器已經(jīng)是完成品并且只能與相應(yīng)軟件進(jìn)行配合使用,并不適合用于開發(fā)板。所以將小組的課題更改為基于DSP的FIR低通濾波器的設(shè)計。在開始的兩天我們小組兩人進(jìn)行分工合作,一人進(jìn)行資料文獻(xiàn)的收集,另一人進(jìn)行相應(yīng)軟件的安裝。材料與軟件準(zhǔn)備完成后,我們兩人開始第一步在matlab的環(huán)境下進(jìn)行濾波器的仿真與設(shè)計。通過對材料的閱讀分析,matlab的設(shè)計可以分為兩種,自帶的fir函數(shù)與FDATool工具進(jìn)行濾波器的設(shè)計。通過指令編寫將三個信號疊加起來,形成一個輸入信號。調(diào)用函數(shù)信號將輸入信號進(jìn)行處理,分別將濾波器的幅頻特性與相頻特性曲線和輸入輸出信號的幅頻曲線與相頻曲線輸出。在完成matlab的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論