基于FIR語音信號(hào)的濾波課程設(shè)計(jì)報(bào)告書_第1頁
基于FIR語音信號(hào)的濾波課程設(shè)計(jì)報(bào)告書_第2頁
基于FIR語音信號(hào)的濾波課程設(shè)計(jì)報(bào)告書_第3頁
基于FIR語音信號(hào)的濾波課程設(shè)計(jì)報(bào)告書_第4頁
基于FIR語音信號(hào)的濾波課程設(shè)計(jì)報(bào)告書_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 PAGE23 / NUMPAGES231.課程設(shè)計(jì)目的、容和要求一、課程設(shè)計(jì)目的:通過本次課程設(shè)計(jì),要求學(xué)生對DSP這門課程所學(xué)的基礎(chǔ)知識(shí)、理論加以理解,學(xué)以致用。初步培養(yǎng)學(xué)生對工程設(shè)計(jì)的獨(dú)立工作能力,掌握電子系統(tǒng)設(shè)計(jì)的一般方法。培養(yǎng)學(xué)生的動(dòng)手能力,以與團(tuán)隊(duì)合作能力。二、課程設(shè)計(jì)容:通過DSP處理器通過A/D采集音頻信號(hào),在CCS軟件中分析音頻信號(hào)的頻譜圖,使用Matlab設(shè)計(jì)相應(yīng)的FIR數(shù)字濾波器(低通)并得到濾波器H(z)的系數(shù),然后根據(jù)這些系數(shù),編寫DSP程序(C語言或匯編)對已采集信號(hào)進(jìn)行處理,最后在CCS軟件中得到處理后音頻信號(hào)的頻譜圖,比較濾波前后信號(hào)的頻譜圖。三、課程設(shè)計(jì)要求:

2、1、 使用Matlab對FIR濾波器的設(shè)計(jì);2、 編寫FIR濾波處理的DSP程序,查看并記錄處理后的信號(hào)頻譜;3、 通過D/A實(shí)現(xiàn)數(shù)字量到模擬量的轉(zhuǎn)換,回放處理后的聲音; 4、 正確、完整的闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果; 5、 繪制程序的流程圖,并文字說明。2 設(shè)計(jì)基本原理與軟件簡介2.1 設(shè)計(jì)總體方案本題目通過DSP處理器通過A/D采集音頻信號(hào),在CCS軟件中分析音頻信號(hào)的頻譜圖,使用Matlab設(shè)計(jì)相應(yīng)的FIR數(shù)字濾波器(低通)并得到濾波器H(z)的系數(shù),然后根據(jù)這些系數(shù),編寫DSP程序(C語言或匯編)對已采集信號(hào)進(jìn)行處理,最后在CCS軟件中得到處理后音頻信號(hào)的頻譜圖,比較濾波前后信號(hào)的頻譜圖。其中

3、語音信號(hào)的采集與回放是采用TLV320AIC23芯片,對語音信號(hào)進(jìn)行A/D,D/A轉(zhuǎn)換,從而實(shí)現(xiàn)對語音信號(hào)的數(shù)字處理與回放。DSP芯片主要是將轉(zhuǎn)化成數(shù)字信號(hào)的語音信號(hào)用DSP算法對其進(jìn)行處理,并將處理后的信號(hào)傳送到輸出端。如下圖1所示為本題目的系統(tǒng)總體設(shè)計(jì)框圖。 語音信號(hào)的采集與輸入對采集的語音信號(hào)A/D轉(zhuǎn)換DSP信號(hào)處理器設(shè)計(jì)FIR濾波器編寫DSP程序?qū)V波后的語音信號(hào)D/A轉(zhuǎn)換回放語音信號(hào)圖1 系統(tǒng)總體設(shè)計(jì)框圖2.2 FIR濾波器的原理與特點(diǎn)數(shù)字濾波器有兩類:IIR數(shù)字濾波器和FIR數(shù)字濾波器。FIR濾波器是有限長單位沖激響應(yīng)濾波器,在結(jié)構(gòu)上是非遞歸型的。它可以在幅度特性隨意設(shè)計(jì)的同時(shí),保

4、證精確嚴(yán)格的線性相位。FIR濾波器是有限長單位沖激響應(yīng)濾波器,它具有以下獨(dú)特的優(yōu)點(diǎn):(1)可以在幅度特性隨意設(shè)計(jì)的同時(shí),保證精確、嚴(yán)格的線性相位;避免被處理的信號(hào)產(chǎn)生相位失真,這一特點(diǎn)在寬頻帶信號(hào)處理、陣列信號(hào)處理、數(shù)據(jù)傳輸?shù)认到y(tǒng)中非常重要; (2)由于FIR濾波器的單位脈沖響應(yīng)h(n)是有限長序列,因此FIR濾波器沒有不穩(wěn)定的問題; (3)由于FIR濾波器一般為非遞歸的結(jié)構(gòu),因此在有限精度運(yùn)算下,不會(huì)出現(xiàn)遞歸結(jié)構(gòu)中極性震蕩等不穩(wěn)定現(xiàn)象,誤差較小。FIR濾波器的數(shù)學(xué)表達(dá)式為: (2-1)式中:N為FIR濾波器的抽頭數(shù);x(n)為第n時(shí)刻的輸入樣本;h(i)為FIR濾波器第i抽頭系數(shù)。其相應(yīng)的z

5、變換為如公式2-2所示,其中z-i為N-1階多項(xiàng)式 (2-2)普通的直接型FIR濾波器結(jié)構(gòu)如下圖2所示:圖2 FIR濾波器的直接型結(jié)構(gòu)2.3 窗函數(shù)的設(shè)計(jì)原理FIR濾波器通常采用窗函數(shù)方法來設(shè)計(jì)。窗設(shè)計(jì)的基本思想是,首先選擇一個(gè)適當(dāng)?shù)睦硐脒x頻濾波器(它總是具有一個(gè)非因果,無限持續(xù)時(shí)間脈沖響應(yīng)),然后街區(qū)(加窗)它的脈沖響應(yīng)得到線性相位和因果FIR濾波器。我們用表示理想的選頻濾波器,它在通帶上具有單位增益和線性相位,在阻帶上具有零響應(yīng)。 為了從hd(n)得到一個(gè)FIR濾波器,必須同時(shí)在兩邊截取hd(n)。而要得到一個(gè)因果的線性相位濾波器,它的hd(n)長度為N,必須滿足公式2-3 (2-3)h(

6、n)可以看做是hd(n)與窗函數(shù)w(n)的乘積,如公式2-4所示h(n)= hd(n)w(n) (2-4)這種操作叫做加窗,其中根據(jù)w(n)的不同定義,可以得到不同的窗結(jié)構(gòu)在頻域中,因果FIR濾波器響應(yīng)由和窗響應(yīng)的周期卷積得到,公式如下:= (2-5) 常用的窗函數(shù)有矩形窗、三角形(Bartlett)窗、漢寧(Hanning)窗、哈明(Hamming)窗、布萊克曼(Blackman)窗、凱澤(Kaiser)窗等。2.4 設(shè)計(jì)軟件簡介: 1、MATLAB介紹:MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以與數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,

7、主要包括MATLAB和Simulink兩大部分。MATLAB應(yīng)用非常之廣泛。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成一樣的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C+,JAVA的支持??梢灾苯诱{(diào)用,用戶也可以將自己編寫的實(shí)用程序?qū)氲組ATLAB函數(shù)庫中方便自己以后調(diào)用,此外許多的MATLAB愛好者都編寫了一些經(jīng)典的程序,用戶直接進(jìn)行下載就可以用。2、CCS介紹:CCS是一種針對TMS320

8、系列DSP的集成開發(fā)環(huán)境,在Windows操作系統(tǒng)下,采用圖形接口界面,提供環(huán)境配置、源文件編輯、程序調(diào)試、跟蹤分析等工具。CCS有兩種工作模式:即軟件仿真器模式和硬件在線編程模式,其軟件仿真器模式可以脫離DSP芯片,在PC機(jī)上模擬DSP的指令集和工作機(jī)制用于前期算法的實(shí)現(xiàn)和調(diào)試;其硬件在線編程模式,可以實(shí)時(shí)運(yùn)行在DSP芯片上,與硬件開發(fā)板組合在線編程和調(diào)試應(yīng)用程序。CCS功能十分強(qiáng)大,其主要功能如下:1、具有集成可視化代碼編程界面,用戶可通過其界面編寫C、匯編、CMD文件等;2、含有集成代碼生成工具包括匯編器,和器等將代碼的編輯、編譯、和調(diào)試等諸多功能集成到一個(gè)軟件中;3、高性能編輯器支持匯

9、編文件的動(dòng)態(tài)語法加亮顯示使用戶很容易閱讀代碼,發(fā)現(xiàn)語法錯(cuò)誤;4、提供GEL工具,利用GEL擴(kuò)展語言,用戶可以編寫自己的控制面板/菜單設(shè)置GEL菜單選項(xiàng),方便直觀的修改變量配置參數(shù)等。3 設(shè)計(jì)的步驟和過程3.1 語音信號(hào)的錄放在選擇模轉(zhuǎn)換芯片型號(hào)時(shí),需要考慮A/D的轉(zhuǎn)換精度、采樣速率以與芯片的工作電壓和接口電壓。聲音信號(hào)經(jīng)ADC轉(zhuǎn)換后得到的數(shù)字信號(hào),輸入到數(shù)據(jù)緩沖區(qū)中,TMS320F2812從中提取數(shù)據(jù),在系統(tǒng)部由各種處理算法將錄進(jìn)的音頻信號(hào)進(jìn)行快速運(yùn)算和處理,經(jīng)處理后的數(shù)字信號(hào)再輸入到輸出緩沖區(qū)中,經(jīng)DAC轉(zhuǎn)換器還原成模擬的聲音信號(hào)。根據(jù)這次設(shè)計(jì)要求,選擇的芯片是TI公司的TLV320AIC2

10、3芯片。利用緩沖區(qū)的目的是進(jìn)行語音信號(hào)的實(shí)時(shí)處理,系統(tǒng)中各模塊是并行運(yùn)行的,一部分信號(hào)正在ADC中進(jìn)行轉(zhuǎn)換,而另一部分信號(hào)則在DSP處理器中進(jìn)行算法處理,整個(gè)系統(tǒng)是以流水線的方式進(jìn)行工作的。通過實(shí)驗(yàn)箱和仿真軟件CCS2.0編程來實(shí)現(xiàn)語音的錄放,并采集語音信號(hào)。通過采集得到一組輸入信號(hào)。3.2 FIR濾波器的Matlab設(shè)計(jì)fir1就是采用經(jīng)典窗函數(shù)法設(shè)計(jì)線性相位FIR數(shù)字濾波器的函數(shù),且具有標(biāo)準(zhǔn)低通,帶通,高通,帶阻等類型。函數(shù)調(diào)用格式為:b=fir1(n,wn,ftype,window) (3-1)式中,n為FIR濾波器的階數(shù),對于高通,帶阻濾波器,n需取偶數(shù);wn為濾波器截止頻率,圍為01

11、(歸一化頻率)。常用的窗函數(shù)有矩形窗、三角形(Bartlett)窗、漢寧(Hanning)窗、哈明(Hamming)窗、布萊克曼(Blackman)窗、凱澤(Kaiser)窗等。 本課程設(shè)計(jì)采用的是用矩形窗來設(shè)計(jì)低通濾波器。其具體操作流程為:1、把Hd()展成Fs,得Hd(n);2、對Hd(n)自然截短到所需的長度;3、將截短后Hd(n)的右移M個(gè)采樣間隔,得h(n);4、將h(n)乘以合適的窗口,即得所要濾波器的沖擊響應(yīng),窗函數(shù)以n=M對稱。利用所求得的單位抽樣響應(yīng),即可用硬件構(gòu)成濾波器的轉(zhuǎn)移函數(shù)H(z)。如下公式W()為矩形窗頻譜函數(shù),:w()為矩形窗幅度函數(shù)存在如下關(guān)系;W()=w()e

12、式中:w()=sin()/sin() (3-2)3.3 FIR濾波器的DSP實(shí)現(xiàn)方案圖3 DSP系統(tǒng)構(gòu)成的濾波器如上圖3所示DSP系統(tǒng)構(gòu)成的濾波器,其中的輸入信號(hào)可以是麥克風(fēng)輸出的語音信號(hào)、線的已調(diào)數(shù)據(jù)信號(hào),可以是編碼后在數(shù)字鏈路上傳輸或存儲(chǔ)在計(jì)算機(jī)里的攝像機(jī)圖像信號(hào)等輸入號(hào)。首先進(jìn)行帶限濾波和抽樣,然后進(jìn)行A/D轉(zhuǎn)換成數(shù)字比特流,由耐奎斯特樣定理可知為了保證信息完整抽樣頻率至少是輸入帶限信號(hào)最高頻率的2倍。之后輸入DSP芯片的是以抽樣形式表示的數(shù)字信號(hào),DSP芯片對輸入信號(hào)行處理,如進(jìn)行一系列的累乘累加操作,最后經(jīng)過處理后的數(shù)字樣值經(jīng)D/A換成為模擬樣值再經(jīng)過插和平滑濾波就得到了連續(xù)的模擬波

13、形。FIR濾波器的DSP軟件實(shí)現(xiàn)方法有兩種,一種是用C語言實(shí)現(xiàn),一種是用匯編語言實(shí)現(xiàn),本次課程設(shè)計(jì)采用用C語言來實(shí)現(xiàn),其軟件流程圖如下圖4所示開始濾波結(jié)束輸入語音信號(hào)數(shù)據(jù)定義濾波器系數(shù)為原始信號(hào)和數(shù)據(jù)指定寄存器做濾波算法圖4 C語言程序流程圖3.4 TMS320F2812芯片介紹TMS320F2812是TI公司的一款用于控制的高性能、高性價(jià)比的32位定點(diǎn)DSP芯片。該芯片兼容TMS320LF2407指令系統(tǒng)最高可在150MHz主頻下工作,并帶有18K16位0等待周期片上SRAM和128K16位片上FLASH。其片上外設(shè)主要包括28路12位ADC(最快80ns轉(zhuǎn)換時(shí)間)、2路SCI、1路SPI、

14、1路McBSP、1路eCAN等,并帶有兩個(gè)事件管理模塊(EVA、EVB),分別包括6路PWMCMP、2路QEP、3路CAP、2路16位定時(shí)器(或TxPWMTxCMP)。另外,該器件還有3個(gè)獨(dú)立的32位CPU定時(shí)器,以與多達(dá)56個(gè)獨(dú)立編程的GPIO引腳,可外擴(kuò)大于1M16位程序和數(shù)據(jù)存儲(chǔ)器。TMS320F2812采用哈佛總線結(jié)構(gòu),具有密碼保護(hù)機(jī)制,可進(jìn)行雙1616位乘加和3232位乘法加操作,因而可兼顧控制和快速運(yùn)算的雙重功能。TMS320F2812芯片具有如下功能;(1)在一個(gè)指令周期可完成一次乘法和一次加法;(2)程序和數(shù)據(jù)空間分離,可以同時(shí)訪問指令和數(shù)據(jù); (3)片具有快速RAM,通常可通

15、過獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問;(4)具有低開銷或大開銷循環(huán)與跳轉(zhuǎn)的硬件支持; (5)具有在單周期操作的多個(gè)硬件地址產(chǎn)生器可以并行執(zhí)行多個(gè)操作;(6)支持流水線操作,使取值、譯碼、和執(zhí)行等操作可重疊執(zhí)行3.5 TLV320AIC23芯片介紹TLV320AIC23是TI公司推出的一款高性能立體聲音頻編解碼器,置耳機(jī)輸出放大器,支持mic和line in二選一的輸入方式。輸入和輸出都具有可編程的增益調(diào)節(jié)功能。TLV320AIC23的模/數(shù)轉(zhuǎn)換器(ADC)和數(shù)/模轉(zhuǎn)換器(DAC)集成在芯片部采用先進(jìn)的-過采樣技術(shù)可以在8kHz至96kHz的采樣率下提供16bit、20bit、24bit和32bit

16、的采樣數(shù)據(jù)。ADC和DAC的輸出信噪比分別可達(dá)90dB和100dB。同時(shí)。TLV320AIC23還具有很低的功耗(回放模式為23mW。節(jié)電模式為15w)。上述優(yōu)點(diǎn)使得TLV320AIC23成為一款非常理想的音頻編解碼器,與TI的DSP系列相配合更是相得益彰。4.程序調(diào)試結(jié)果與結(jié)果分析4.1 程序調(diào)試結(jié)果啟動(dòng)CCS,輸入實(shí)驗(yàn)程序代碼,進(jìn)行編譯并加載到DSP中。采用單步運(yùn)行或執(zhí)行到光標(biāo)處,或全速運(yùn)行,并打開波形觀察窗口,跟蹤觀察其執(zhí)行過程和濾波效果。先打開項(xiàng)目,然后編譯、加載實(shí)驗(yàn)程序,然后點(diǎn)擊菜單debugGo main就進(jìn)入預(yù)先編譯的實(shí)驗(yàn)程序然后打開波形觀察窗口,路徑是ViewGraphTime

17、/Frequence,將顯示類型,圖形名稱,起始地址,抽樣點(diǎn)數(shù),數(shù)據(jù)類型等分別進(jìn)行設(shè)置如下圖5所示。其中PA指原始信號(hào)的時(shí)域波形,PB指濾波后的時(shí)域波形,128指抽樣點(diǎn)數(shù),程序運(yùn)行后的波形如下圖6所示。同理要觀察頻域的原始波形和濾波后的波形,也按上述步驟操作,其波形觀察窗口如下圖7所示,其中PC指原始的時(shí)域信號(hào)的經(jīng)過傅里葉變換所得到的頻域波形,PD指濾波后的時(shí)域信號(hào)的經(jīng)過傅里葉變換所得到的頻域波形,其波形輸出圖如圖8所示。其中采樣頻率fs = 8000Hz,截止頻率fstop = 3000Hz為低通濾器濾除高頻部分。圖5 設(shè)置時(shí)域各項(xiàng)參數(shù)圖6 原始信號(hào)時(shí)域波形與時(shí)域?yàn)V波后波形圖7 設(shè)置頻域各項(xiàng)

18、參數(shù)圖8 原始信號(hào)頻域波形與頻域?yàn)V波后波形4.2 結(jié)果分析本次課程設(shè)計(jì)所用的FIR低通通濾波器,其目的就是要濾除高頻部分。其中采樣頻率fs = 8000Hz,截止頻率fstop = 3000Hz。圖6是原始語音信號(hào)時(shí)域波形與時(shí)域?yàn)V波后的波形,其中上一部分是原始語音信號(hào)的時(shí)域波形PA,下面的部分是原始語音信號(hào)經(jīng)低通濾波器后時(shí)域的波形PB,從圖6可以看出幅值較高的部分已經(jīng)濾去基本達(dá)到了濾波效果。圖8是原始語音信號(hào)頻域波形與頻域?yàn)V波后的波形,上面的部分為原始語音信號(hào)時(shí)域的波形經(jīng)過FFT后頻域的波形PC,下面的部分為原始語音信號(hào)濾波后的時(shí)域信號(hào)經(jīng)過FFT后的頻域波形PD。從圖8可以看出經(jīng)過頻域?yàn)V波后,

19、高頻部分已經(jīng)明顯濾去,達(dá)到了濾波效果。實(shí)驗(yàn)證明:未進(jìn)行FIR濾波時(shí), 聲音中含有的高頻雜音將明顯地影響聽覺效果。但是在進(jìn)行濾波以后, 高頻雜音去掉了, 聲音質(zhì)量明顯的改善了。因此, 在實(shí)際應(yīng)用中對語音信號(hào)進(jìn)行FIR濾波, 可以很好的將噪音部分去掉。5.結(jié)論5.1 設(shè)計(jì)過程所遇到的困難與解決辦法為期兩周的課程設(shè)計(jì)很快就結(jié)束了,通過本次課程設(shè)計(jì),使我受益匪淺。在本次實(shí)習(xí)過程中的確遇到了不少問題。這是我第一次用CCS這個(gè)軟件。剛開始,對于這軟件并不是很熟悉,所以導(dǎo)致花費(fèi)了很多時(shí)間用在熟悉這個(gè)軟件上。這次的課程設(shè)計(jì)非常重要,難度也比較大。它要求的數(shù)學(xué)知識(shí)多,包括高等代數(shù)、數(shù)值分析、概率統(tǒng)計(jì)、隨機(jī)過程等

20、。所以設(shè)計(jì)之初,我受困于基礎(chǔ)不扎實(shí),舉步維艱,于是我用了三天時(shí)間把要用到的一些知識(shí)重新復(fù)習(xí)了一遍,才開始著手于設(shè)計(jì)。本設(shè)計(jì)是一個(gè)基于TMS320F2812的語音采集硬件設(shè)計(jì)方案,敘述和分析了其中的幾個(gè)主要硬件模塊,包括信號(hào)采集A/D、D/A模塊、存儲(chǔ)器模塊、和電源模塊。同時(shí)對各個(gè)模塊與DSP芯片之間的接口電路進(jìn)行了詳細(xì)的論述和設(shè)計(jì)。在設(shè)計(jì)的過程中的確遇到了很多問題,如仿真軟件CCS的具體操作與使用方法等等,但最終通過查閱資料、請教同學(xué)等途徑使問題得以解決。本次課程設(shè)計(jì),讓我對抽象的理論知識(shí),有了更為深刻的理解。在解決困難的過程中讓我獲得了許多專業(yè)方面的知識(shí),拓展了視野,提高了理論水平和實(shí)踐動(dòng)手

21、能力,激發(fā)了我們的探索精神。當(dāng)然在實(shí)習(xí)的過程中,比需要強(qiáng)調(diào)團(tuán)隊(duì)精神,一個(gè)人的精力畢竟是有限的,遇到不懂的問題要懂得禮賢下士,才能爬上知識(shí)的高峰。5.2 結(jié)論 本次課程設(shè)計(jì)把理論應(yīng)用到了實(shí)踐中,同時(shí)通過設(shè)計(jì),也加深了自己對理論知識(shí)的理解和掌握,在解決困難的過程中,獲得了許多專業(yè)方面的知識(shí),拓展了視野。提高了理論水平和實(shí)際的動(dòng)手能力,學(xué)會(huì)了解決問題的方法,激發(fā)了我們的探索精神。這樣的課程設(shè)計(jì)是很好的鍛煉機(jī)會(huì),希望老師以后也多安排一些這些方面的實(shí)習(xí)任務(wù),通過實(shí)驗(yàn)設(shè)計(jì)使我深入了解到課程設(shè)計(jì)在大學(xué)學(xué)習(xí)的重要性,課程設(shè)計(jì)增強(qiáng)了我們的實(shí)踐動(dòng)手能力,也為大四下學(xué)期的畢業(yè)設(shè)計(jì)提供了寶貴的經(jīng)驗(yàn)。參考文獻(xiàn)1 顧衛(wèi)鋼

22、. 手把手教你學(xué)DSP-基于TMS320 x281x 航空航天大學(xué),2011.2 奎峰等. TMS320X281x DSP原理與C程序開發(fā).航空航天大學(xué),2008.3 奎峰等. TMS320F2812原理與開發(fā). 電子工業(yè),2005.4 萬山明. TMS320F2812/2810原理與應(yīng)用實(shí)例. 航空航天大學(xué),2007.5 TI公司著,胡廣書等編譯. TMS320C28X系列DSP的5CPU與外設(shè).清華大學(xué),2005.6 TI公司著,胡廣書等編譯. TMS320C28X系列DSP指令和編程指南.清華大學(xué)出版 社,2005. 附錄 程序清單#include math.h#include DSP2

23、81x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include FileUint16 read_data2,read_data1; /MCBSP 接收數(shù)據(jù)變量Uint16 write_data2,write_data1; /MCBSP 發(fā)送數(shù)據(jù)變量Uint16 readaudio1128,readaudio2128; /MCBSP 接收數(shù)據(jù)變量數(shù)組Uint16 PA128; 原始語音信號(hào)的時(shí)域波形Uint16 PB128; 原始語音信號(hào)的時(shí)域?yàn)V波后的波形Ui

24、nt16 PC128; 原始語音信號(hào)的頻域波形Uint16 PD128; 原始語音信號(hào)的頻域?yàn)V波后的波形double npass,h51,u,y,xmid51;int m=50;void spi_init(void); /SPI初始化Cvoid aic23_init(void); /初始化TLV320AIC23,設(shè)置部寄存器void mcbsp_init(void); /MCBSP初始化void mcbsp_write_rdy(Uint16 out_data1,Uint16 out_data2); /MCBSP發(fā)送一個(gè)數(shù)據(jù)32位void mcbsp_read_rdy(void); /MCBSP

25、接收一個(gè)數(shù)據(jù)32位void Delay(int numbers); /延遲void Delay0(Uint16 numbers);void spi_init() SpiaRegs.SPICCR.bit.SPISWRESET=0; / Reset SPISpiaRegs.SPICCR.all =0 x004F; / Reset on, falling edge, 16-bit char bits SpiaRegs.SPICTL.all =0 x0006; / Enable master mode, normal phase, / enable talk, and SPI int disabled

26、. SpiaRegs.SPISTS.all=0 x0080; SpiaRegs.SPIBRR =0 x0063; / Baud rate,100KHZ; SpiaRegs.SPIPRI.bit.FREE = 1; / Set so breakpoints dont disturb xmission SpiaRegs.SPICCR.bit.SPISWRESET=1; / Enable SPI void aic23_init(void) SpiaRegs.SPITXBUF=0 x1e00; /REG10 RESET AIC23 asm( nop); /Address (bits 15-9) 000

27、1111 Delay0(10); /RES (bits 8-0) 000000000 /0001 1110 0000 0000 SpiaRegs.SPITXBUF=0 x0117; /REG0 Left line input channel volume control asm( nop); /Address (bits 15-9) 0000000 Delay0(10); /LRS (bits 8) 1 Left/right line simultaneous volume/mute update Enabled /LIM (bits 7) 0 Left line input mute 0 =

28、 Normal /XX (bits 6-5) 00 Reserved /LIV4:0 (bits 4-0) 10111 Left line input volume control (10111 = 0 dB default) /0000 0001 0001 0111 SpiaRegs.SPITXBUF=0 x0317; /REG1 Right Line Input Channel Volume Control asm( nop); /Address (bits 15-9) 0000001 Delay0(10); /RRS (bits 8) 1 Left/right line simultan

29、eous volume/mute update Enabled /RIM (bits 7) 0 Left line input mute 0 = Normal /XX (bits 6-5) 00 Reserved /RIV4:0 (bits 4-0) 10111 Left line input volume control (10111 = 0 dB default) /0000 0011 0001 0111 SpiaRegs.SPITXBUF=0 x05f9; /REG2 Left Channel Headphone Volume Control asm( nop); /Address (b

30、its 15-9) 0000010 Delay0(10); /LRS (bits 8) 1 Left/right headphone channel simultaneous volume/mute update 1 = Enabled /LZC (bits 7) 1 Left-channel zero-cross detect 0 = Off /LHV6:0 (bits 6-0) 1111001 Left Headphone volume control (1111001 = 0 dB default) /0000 0101 1111 1001 SpiaRegs.SPITXBUF=0 x07

31、f9; /REG3 Right Channel Headphone Volume Control asm( nop); /Address (bits 15-9) 0000011 Delay0(10); /RLS (bits 8) 1 Left/right headphone channel simultaneous volume/mute update 1 = Enabled /RZC (bits 7) 1 Left-channel zero-cross detect 0 = Off /RHV6:0 (bits 6-0) 1111001 Left Headphone volume contro

32、l (1111001 = 0 dB default) /0000 0111 1111 1001/ SpiaRegs.SPITXBUF=0 x0810; /選擇線性輸入 SpiaRegs.SPITXBUF=0 x0814; /選擇麥克風(fēng)輸入 asm( nop); /REG4 Analog Audio Path Control Delay0(10); /Address (bits 15-9) 0000100 /X (bits 8) 0 Reserved /STA1:0 (bits 7-6) 00 Sidetone attenuation 00 = 6 dB /STE (bits 5) 0 Side

33、tone enable 0 = Disabled /DAC (bits 4) 1 DAC select 1 = DAC selected /BYP (bits 3) 0 Bypass 0 = Disabled 1=Enabled,ONLY FOR TEST /INSEL (bits 2) 0 Input select for ADC 0 = Line /MICM (bits 1) 0 Microphone mute 0 = Normal /MICB (bits 0) 0 Microphone boost 0=OdB /0000 1000 0001 0000 SpiaRegs.SPITXBUF=

34、0 x0A01; /REG5 Digital Audio Path Control asm( nop); /Address (bits 15-9) 0000101 Delay0(10); /X (bits 8-4) 00000 Reserved /DACM (bits 3) 0 DAC soft mute 0 = Disabled /DEEMP1:0 (bits 2-1) 00 De-emphasis control 00 = Disabled /ADCHP (bits 0) 1 ADC high-pass filter 1 = Enabled / 0000 1010 0000 0001 Sp

35、iaRegs.SPITXBUF=0 x0C00; /REG6 Power Down Control asm( nop); /Address (bits 15-9) 0000110 Delay0(10); /X (bits 8) 0 Reserved /OFF (bits 7) 0 Device power 0 = On /CLK (bits 6) 0 Clock 0 = On /OSC (bits 5) 0 Oscillator 0 = On /OUT (bits 4) 0 Outputs 0 = On /DAC (bits 3) 0 DAC 0 = On /ADC (bits 2) 0 AD

36、C 0 = On /MIC (bits 1) 0 Microphone input 0 = On /LINE (bits 0) 0 Line input 0 = On/ 0000 1100 0000 0000 SpiaRegs.SPITXBUF=0 x0E73; /REG7 Digital Audio Interface Formatasm( nop); /Address (bits 15-9) 0000111 Delay0(10); /X (bits 8-7) 00 Reserved/MS (bits 6) 1 Master/slave mode 1 = Master/LRSWAP (bit

37、s 5) 1 DAC left/right swap 1 = Enabled/LRP (bits 4) 1 DAC left/right phase,1 = Right channel on, LRCIN low; DSP mode, 1 = MSB is available on 2nd BCLK rising edge after LRCIN rising edge /IWL1:0 (bits 3-2) 00 Input bit length 00 = 16 bit/FOR1:0 (bits 1-0) 11 Data format 11 = DSP format, frame sync f

38、ollowed by two data words / 0000 1110 0111 0011 SpiaRegs.SPITXBUF=0 x100C; /8KHZ采樣頻率 / SpiaRegs.SPITXBUF=0 x101C; /96KHZ采樣頻率 /REG8 Sample Rate Control asm( nop); /Address (bits 15-9) 0001000 Delay0(10); /X (bits 8) 0 Reserved /CLKOUT (bits 7) 0 Clock input divider 0 = MCLK /CLKIN (bits 6) 1 Clock ou

39、tput divider 0 = MCLK /SR3:0 (bits 5-2) 0011 MCLK = 12.288 MHz, sampling rates=8KHZ /BOSR (bits 1) 0 Base oversampling rate Normal mode: 0 = 256 fs /USB/Normal(bits 0) 0 Clock mode select: 0 = Normal / 0001 0000 1100 1100 SpiaRegs.SPITXBUF=0 x1201; /REG9 Digital Interface Activation asm( nop); /Addr

40、ess (bits 15-9) 0001001 Delay0(10); /X (bits 8-1) 00000000 Reserved/ACT (bits 0) 1 Activate interface 1 = Active / 0001 0010 0000 0001 Delay(10);void firdes(int m, double npass)int t;for (t=0; t=m; t+)ht = sin(t-m/2.0)*npass*3.1415926)/(3.1415926*(t-m/2.0);if (t=m/2) ht=npass;void mcbsp_init(void) /

41、復(fù)位 McBSP McbspaRegs.SPCR2.bit.XRST=0; / Transmitter reset McbspaRegs.SPCR1.bit.RRST=0; / Receiver reset /延遲 Delay(10); /延遲 4000*CPU 時(shí)鐘周期 /等待復(fù)位穩(wěn)定 McbspaRegs.RCR1.all=0 x00A0; /接收幀長度為1,每幀1個(gè)碼字;接收字長為1,每字32位 McbspaRegs.RCR2.all=0 x00A0; / McbspaRegs.XCR1.all=0 x00A0; / McbspaRegs.XCR2.all=0 x00A0; /單相位幀,

42、發(fā)送幀長度為2,每幀一個(gè)碼字;接收字長位2,每字32位? /無壓縮擴(kuò)展模式;發(fā)送幀忽略;發(fā)送數(shù)據(jù)無延時(shí) McbspaRegs.PCR.all=0 x000D; /接收/發(fā)送幀同步極性,脈沖低有效;發(fā)送數(shù)據(jù)在上升沿被采集;接收數(shù)據(jù)在下降沿被采集 McbspaRegs.SPCR1.bit.RRST=1; /SET SPCR1.0(RRST)=1,允許MCBSP接收 McbspaRegs.SPCR2.bit.XRST=1; /SET SPCR2.0(XRST)=1,允許MCBSP發(fā)送 void mcbsp_write_rdy(Uint16 out_data1,Uint16 out_data2) wh

43、ile (McbspaRegs.SPCR2.bit.XRDY!=1); /SPCR2.1= XRDY /mask XRDY bit,XRDY = 1 Transmitter is ready for new data in DXR1,2. McbspaRegs.DXR2.all=out_data2;/MCBSP配置成單相32BIT時(shí), /發(fā)送(接收)一個(gè)32BIT數(shù)時(shí),必須先寫(讀)DXR2(DRR2) /再寫(讀)DXR1(DRR1) McbspaRegs.DXR1.all=out_data1;void mcbsp_read_rdy(void) while(McbspaRegs.SPCR1.

44、bit.RRDY!=1) /mask RRDY bit,RRDY = 1 Receive is ready for new data in DRR1,2.void Delay0(Uint16 numbers) Uint16 i,j; for(i=0;i1000;i+); for(j=0;jnumbers;j+); void Delay(int numbers) int i,j; for(i=0;i4000;i+) for(j=0;jnumbers;j+);void kfft(pr,pi,n,k,fr,fi,l,il) Uint16 n,k,l,il; double pr,pi,fr,fi; i

45、nt it,m,is,i,j,nv,l0; double p,q,s,vr,vi,poddr,poddi; for (it=0; it=n-1; it+) m=it; is=0; for (i=0; i=k-1; i+) j=m/2; is=2*is+(m-2*j); m=j; frit=pris; fiit=piis; pr0=1.0; pi0=0.0; p=6.283185306/(1.0*n); pr1=cos(p); pi1=-sin(p);if (l!=0) pi1=-pi1; for (i=2; i=n-1; i+) p=pri-1*pr1; q=pii-1*pi1; s=(pri

46、-1+pii-1)*(pr1+pi1); pri=p-q; pii=s-p-q; for (it=0; it=0; l0-) m=m/2; nv=2*nv; for (it=0; it=(m-1)*nv; it=it+nv) for (j=0; j=(nv/2)-1; j+) p=prm*j*frit+j+nv/2; q=pim*j*fiit+j+nv/2; s=prm*j+pim*j; s=s*(frit+j+nv/2+fiit+j+nv/2); poddr=p-q; poddi=s-p-q; frit+j+nv/2=frit+j-poddr; fiit+j+nv/2=fiit+j-podd

47、i; frit+j=frit+j+poddr; fiit+j=fiit+j+poddi; if (l!=0) for (i=0; i=n-1; i+) fri=fri/(1.0*n); fii=fii/(1.0*n); if (il!=0) for (i=0; i=n-1; i+) pri=sqrt(fri*fri+fii*fii); if (fabs(fri)0) pii=90.0; else pii=-90.0; else pii=atan(fii/fri)*360.0/6.283185306; return; void main(void) int i,j,n,k,p,s=0; double x128,pr128,pi128,fr128,fi128,mo128; double fs,fstop,r,rm; int xm,zm,ym; n=128; / PLL, WatchDog, enable Peripheral Clocks/ This example function is found in the DSP281x_SysCtrl.c file. InitSysCtrl();/ Setup only the

溫馨提示

  • 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)論