基于DSP的語音處理系統(tǒng)的設(shè)計[致遠(yuǎn)書苑]_第1頁
基于DSP的語音處理系統(tǒng)的設(shè)計[致遠(yuǎn)書苑]_第2頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Cadence SPB基于DSP的語音處理系統(tǒng)的設(shè)計 摘 要近年來,隨著DSP技術(shù)的普及和低價格、高性能DSP芯片的出現(xiàn),DSP已越來越多地被廣大的工程師所接受越來越廣泛地被應(yīng)用于各個領(lǐng)域,并且已日益顯示出其巨大的優(yōu)越性。DSP是利用專門或通用的數(shù)字信號處理芯片,以數(shù)字計算的方法對信號進(jìn)行處理,具有處理速度快、靈活、精確、抗干擾能力強(qiáng)、體積小及可靠性高等優(yōu)點(diǎn),滿足了對信號快速、精確、實(shí)時處理及控制的要求。本次設(shè)計基于TLV320AIC23和TMS320VC5416兩種芯片設(shè)計并實(shí)現(xiàn)了一種語音錄音、語音編碼、語音解碼、語音處理和回放的系統(tǒng)。通過軟件和硬件結(jié)合對該系統(tǒng)進(jìn)行設(shè)計,使本次設(shè)計的語音處理

2、系統(tǒng)具有強(qiáng)大的數(shù)據(jù)處理能力并配有靈活的接口電路,可以作為一種語音信號處理算法研究和實(shí)時實(shí)現(xiàn)的通用平臺,對語音編碼在DSP上的實(shí)時實(shí)現(xiàn)進(jìn)行了簡單的研究,從而掌握了算法移植的一般流程,為能夠在高速DSP硬件平臺設(shè)計及系統(tǒng)應(yīng)用開發(fā)方面取得成功奠定基礎(chǔ)。關(guān)鍵詞:DSP;數(shù)據(jù)采集; TLV320AIC23;TMS320VC5416。 目錄摘 要 I 第1章 緒論 1 1.1 DSP的發(fā)展及應(yīng)用 1 1.2 語音信號處理系統(tǒng)概述 2 第2章 DSP芯片介紹 3 2.1 TLV320AIC23簡介 3 2.2 TMS320VC5416簡介 3 第3章 系統(tǒng)設(shè)計 4 3.1系統(tǒng)硬件設(shè)計 4 3.1.1系統(tǒng)結(jié)構(gòu)

3、框圖 4 3.1.2 DSP處理器 5 3.1.3 A/D電路 5 3.1.4 D/A電路 7 3.2系統(tǒng)軟件設(shè)計 10 3.2.1 TMS320VC5416初始化 10 3.2.2 TLV320AIC23初始化 10 第4章 總結(jié) 11 參考文獻(xiàn) 12 致謝 13 附錄 14 第1章 緒論近年來,在數(shù)字信號處理領(lǐng)域有著絕對優(yōu)勢的DSP技術(shù)得到了迅速發(fā)展,不僅在通信計算機(jī)領(lǐng)域大顯身手,并已逐漸滲透到人們?nèi)粘OM(fèi)領(lǐng)域。正因?yàn)槿绱?,DSP應(yīng)用越來越得到普遍重視。 DSP作為可編程數(shù)字信號處理專用芯片是微型計算機(jī)發(fā)展的一個重要分支,也是數(shù)字信號處理理論實(shí)用化過程的重要技術(shù)工具。DSP器件分為兩大類:

4、一類是專門用于FFT、FIR濾波、卷積等運(yùn)算的芯片,稱為專用DSP器件;另一類是可以通過編程完成各種用戶要求的信息處理任務(wù)的芯片 ,稱為通用數(shù)字信號處理器件。 1.1 DSP的發(fā)展及應(yīng)用最初的DSP器件只是被設(shè)計用以完成復(fù)雜數(shù)字信號處理算法。這可以追溯到20世紀(jì)50年代到60年代,那時數(shù)字信號處理技術(shù)剛剛起步。由于一般的數(shù)字信號處理算法運(yùn)算量大,因此,算法只能在大型計算機(jī)上進(jìn)行模擬仿真,無法實(shí)現(xiàn)數(shù)字信號處理。60年代中期,快速傅里葉算法的出現(xiàn)及大規(guī)模集成電路的發(fā)展,奠定了硬件完成數(shù)字信號處理算法和數(shù)字信號處理理論實(shí)用化的重要技術(shù)基礎(chǔ),從而促進(jìn)了近40年來DSP技術(shù)與器件的飛速發(fā)展。通用DSP器

5、件的發(fā)展可分為三個階段:第一階段(1980年前后),DSP雛形階段。第二階段(1990年前后),DSP的成熟階段。第三階段(2000年以后),DSP的完善階段。目前,DSP的發(fā)展非常迅速。硬件結(jié)構(gòu)方面主要是向多處理器的并行處理結(jié)構(gòu)、便于外部數(shù)據(jù)交換的串行總線傳輸、大容量片上RAM和ROM、程序加密、增加I/O驅(qū)動能力、外圍電路內(nèi)裝化、低功耗等方面發(fā)展。軟件方面主要是綜合開發(fā)平臺的完善,使DSP的應(yīng)用開發(fā)更加靈活方便。目前,DSP芯片的價格越來越低,性能價格比日益提高,具有巨大的應(yīng)用潛力。DSP芯片的主要應(yīng)用: 信號處理數(shù)字濾波,自適應(yīng)濾波,快速傅里葉變換,相關(guān)運(yùn)算,頻譜分析,卷積,波形產(chǎn)生等;

6、 語音處理語音編碼,語音識別,語音合成,文本語音轉(zhuǎn)換等; 圖象圖形處理三維圖形轉(zhuǎn)換,機(jī)器人視覺,圖象轉(zhuǎn)換及壓縮,模式識別,圖象增強(qiáng)等; 控制司服控制,機(jī)器人控制,自適應(yīng)控制,神經(jīng)網(wǎng)絡(luò)控制等; 軍事保密通信,雷達(dá)及聲音信號處理,導(dǎo)航及制導(dǎo),調(diào)制解調(diào),全球定位,搜索與跟蹤等; 儀器儀表頻譜分析,函數(shù)發(fā)生器,模態(tài)分析,暫態(tài)分析等; 通訊回音相消,高速調(diào)制解調(diào)器,數(shù)字編碼與解碼,自適應(yīng)均衡,移動電話,擴(kuò)展通訊,噪音對消,網(wǎng)絡(luò)通訊等; 消費(fèi)電子高清晰度電視,音樂合成器,智能玩具,游戲等; 醫(yī)學(xué)助聽器,病員監(jiān)控,超聲波設(shè)備,自動診斷設(shè)備,胎兒監(jiān)控等。 1.2 語音信號處理系統(tǒng)概述語音處理在現(xiàn)代通信中應(yīng)用非

7、常廣泛,主要有語音編碼、語音識別、語音合成、語音郵件、語音存儲等。典型的語音處理系統(tǒng)如下圖1.1所示: 圖1.1 典型的語音處理系統(tǒng)圖中的輸入信號可以有各種各樣的形式。例如,它可以是麥克風(fēng)輸入的語音信號或是電話線已調(diào)的數(shù)據(jù)信號,可以是編碼后在數(shù)字鏈路上傳輸或存儲在計算機(jī)里德攝像機(jī)圖象信號等。輸入信號首先進(jìn)行帶限濾波和抽樣,然后進(jìn)行A/D變換將信號變成數(shù)字比特流。根據(jù)奈奎斯特抽樣定理,為保證信息不丟失,抽樣頻率至少是輸入帶限信號最高頻率的2倍。 DSP芯片的輸入是A/D變換后得到的以抽樣形式表示的數(shù)字信號。DSP芯片對輸入的數(shù)字信號進(jìn)行某種處理。數(shù)字處理是DSP系統(tǒng)的關(guān)鍵,這與其它系統(tǒng)(如電話交

8、換系統(tǒng))有很大的不同。在交換系統(tǒng)中,處理器的作用是進(jìn)行路由選擇,它并不對輸入數(shù)據(jù)進(jìn)行修改。因此兩者雖然都是實(shí)時系統(tǒng),但兩者的實(shí)時約束條件卻有很大不同。最后,經(jīng)過處理后的數(shù)字樣值再經(jīng)D/A變換轉(zhuǎn)換為模擬樣值。之后進(jìn)行內(nèi)插和平滑濾波就會得到連續(xù)的模擬波形。上面給出的典型的DSP語音處理系統(tǒng),根據(jù)不同的用途應(yīng)有不同的變動。第2章 DSP芯片介紹 2.1 TLV320AIC23簡介 TLV320AIC23(簡稱AIC23)是TI公司的一款高性能Codec芯片。主要特性有:內(nèi)置耳機(jī)輸出放大器,支持MIC和LINE IN兩種輸入方式(二選一)。且對輸入和輸出都具有可編程增益調(diào)節(jié);芯片中的A/D轉(zhuǎn)換器和D/

9、A轉(zhuǎn)換器采用多位的Sigma-Delta技術(shù),數(shù)據(jù)傳輸字長為16、20、24、32bit,采樣率為8kHz 96kHz;在采樣率為96kHz情況下A/D轉(zhuǎn)換器信噪比達(dá)到90dB,D/A轉(zhuǎn)換器達(dá)到100dB;回放模式下功率為23mW,省電模式下更是小于15uW;只占用25mm的面積?;谏鲜鰞?yōu)點(diǎn),AIC23是可移動的數(shù)字音頻播放和錄音使用中的模擬輸入輸出等應(yīng)用系統(tǒng)的理想選擇,例如MP3播放器等。 2.2 TMS320VC5416簡介 TMS320VC5416(以下簡稱VC5416)是TI公司的一款16bit定點(diǎn)高性能DSP,是TMS320VC54x系列中的第3代芯片。主要特性有:速率最高達(dá)160

10、MI/s;3條16bit數(shù)據(jù)存儲器總線和1條程序存儲器總線;1個40bit桶形移位器和2個40bit累加器;1個1717乘法器和1個40bit專用加法器;最大8M16bit的擴(kuò)展尋址空間,內(nèi)置128k16bit的RAM和16k16bit的ROM;3個多通道緩沖串口(McBSP);配有PCM3002,可對語音進(jìn)行A/D和D/A轉(zhuǎn)換。由于VC5416功耗低,性能高,其分開的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時存取,再加上高度優(yōu)化的指令集,使得該芯片具有很高的運(yùn)算速度并且該芯片本身具有豐富的片內(nèi)存儲器資源和多種片上外設(shè),因此在工程界得到廣泛應(yīng)用,尤其是在語音編碼

11、和通信應(yīng)用方面。 第3章 系統(tǒng)設(shè)計 3.1系統(tǒng)硬件設(shè)計 3.1.1系統(tǒng)結(jié)構(gòu)框圖音頻系統(tǒng)應(yīng)該具有較寬的動態(tài)范圍,選擇1624位的ADC和DAC能完全捕獲或恢復(fù)高保真的音頻信號。系統(tǒng)的核心芯片(DSP)選用美國TI公司的TMS320VC54021(以下簡稱C5402)。 DSP芯片模塊是整個實(shí)時語音處理系統(tǒng)的核心部分,它對經(jīng)數(shù)字化的信號進(jìn)行壓縮,編解碼等。 A/D轉(zhuǎn)換模塊功能是把模擬信號數(shù)字化,包括采集和量化,這部分為DSP處理語音數(shù)字信號做好了準(zhǔn)備;D/A轉(zhuǎn)換模塊就是把數(shù)字信號轉(zhuǎn)換為模擬的信號,輸出音頻信號。 SDRAM(動態(tài)隨機(jī)存儲器)存儲器模塊主要是為DSP處理器擴(kuò)展存儲容量,達(dá)到要求的存儲

12、容量;但要注意的是要與DSP處理器的速度相匹配,以便良好的運(yùn)行。電源模塊是為內(nèi)部芯片及周邊系統(tǒng)電路提供能量的部分。系統(tǒng)結(jié)構(gòu)框圖圖3.1如下所示: 圖3.1 系統(tǒng)結(jié)構(gòu)框圖 3.1.2 DSP處理器作為DSP家族高性價比代表的16位定點(diǎn)DSP芯片,C5402適用于語音通信等實(shí)時嵌入應(yīng)用場合。與其它C54X芯片一樣,C5402具有高度靈活的可操作性和高速的處理能力。其性能特點(diǎn)如下:操作速率可達(dá)100MIPS;具有先進(jìn)的多總線結(jié)構(gòu),三條16位數(shù)據(jù)存儲器總線和一條程序存儲器總線;40位算術(shù)邏輯單元(ALU),包括一個40位桶形移位器和兩個40位累加器;一個1717乘法器和一個40位專用加法器,允許16位

13、帶/不帶符號的乘法;整合維特比加速器,用于提高維特比編譯碼的速度;單周期正規(guī)化及指數(shù)譯碼;8個輔助寄存器及一個軟件棧,允許使用業(yè)界最先進(jìn)的定點(diǎn)DSP C語言編譯器;數(shù)據(jù)/程序?qū)ぶ房臻g為1M16bit,內(nèi)置4K16bit ROM和16k16bit RAM;內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(PLL)時鐘產(chǎn)生器、兩個多通道緩沖串口、一個與外部處理器通信的8位并行HPI口、兩個16位定時器以及6通道DMA控制器且低功耗。與C54X系列的其它芯片相比,5402具有高性能、低功耗和低價格等特點(diǎn)。它采用6級流水線,且當(dāng)RPT(重復(fù)指令)時,一些多周期的指令就變成了單周期的指令;芯片內(nèi)部RAM和ROM可根據(jù)P

14、MST寄存器中的OVLY和DROM位靈活設(shè)置。這些都有利于算法的優(yōu)化。 C5402采用3.3V和1.8V電源供電,其中I/O采用3.3V電源供電,芯片的核采用1.8V電源供電。而實(shí)際常用的只有5V電源,所以必須采用電源轉(zhuǎn)換芯片。選用TPS7301和TPS7333兩塊電源轉(zhuǎn)換芯片(它們都是TI公司為配合DSP而設(shè)計的電源轉(zhuǎn)換芯片),分別接上適當(dāng)?shù)耐鈬娮瑁瑯?gòu)成電阻分壓器,即可調(diào)整兩塊芯片的輸出電壓分別為3.3V和1.8V。 3.1.3 A/D電路 PCM1800是雙聲道單片型20位ADC,單+5V電源供電,信噪比為95dB,動態(tài)范圍為95dB,其內(nèi)部嵌有高通濾波器,具有PCM音頻接口和四種數(shù)據(jù)格

15、式,分為主控和受控兩種模式,采樣頻率可選為32kHz、44.1KHz和48KHz。 PCM1800構(gòu)成音頻信號采集系統(tǒng)時,主要涉及到BCK(位時鐘信號)、LRCK(采樣時鐘信號)、FSYNC(幀同步信號)、DOUT(數(shù)字信號輸出)、SYSCLK(系統(tǒng)時鐘輸入)這幾個對時序有要求的引腳。通過對引腳MODE0和MODE1進(jìn)行編程,可讓PCM1800工作于主控模式(Master Mode)。此時,BCK、LRCK、FSYNC均作為輸出,其時序由PCM1800內(nèi)部的時鐘產(chǎn)生電路控制。但SYSCLK只能由外部提供(這里用C5402的TOUT腳輸出信號提供)。 PCM1800的系統(tǒng)時鐘只能是256fs、3

16、84fs或者512fs,這里fs是音頻信號采樣頻率。在主控模式時,F(xiàn)SYNC用來指明PCM1800的DOUT輸出的有效數(shù)據(jù),它的上升沿表明一幀數(shù)據(jù)的起始,下降沿表明一幀數(shù)據(jù)的結(jié)束。FSYNC的頻率是采樣時鐘頻率LRCK的2倍。在此模式下,位時鐘信號BCK的頻率是采樣時鐘頻率LRCK的64倍。 通過對PCM1800的FMT0、FMT1兩引腳編程(FMT01,F(xiàn)MT10),可以設(shè)置PCM1800輸出的數(shù)據(jù)格式為20位的IIS格式。為了保證在數(shù)據(jù)處理時不影響新數(shù)據(jù)的接收以及在接收數(shù)據(jù)時不中斷正在進(jìn)行的數(shù)據(jù)處理過程,采用了多通道緩沖同步串口(McBSP)。 PCM1800與C5402連接后,C5402

17、使用緩沖串口0接收數(shù)據(jù),各種同步信號由PCM1800產(chǎn)生,C5402是被動接收各種信息。PCM1800與C5402的硬件接線圖如圖3.2所示。 圖3.2 PCM1800與C5402的硬件接線圖電源管理功能模塊所用器件: TPS73HD301( 3.3-V/Adjustable Output 該芯片一端輸入可調(diào),范圍是(1.2-9.7V)電源模塊管腳圖3.3如下所示: 圖3.3 電源模塊管腳圖 3.1.4 D/A電路 PCM1744是雙聲道立體聲DAC,包含數(shù)字濾波器和輸出放大器,動態(tài)范圍為95dB,具有多種采樣頻率可選,最高可達(dá)96kHz。采用24位的IIS數(shù)據(jù)輸入格式。PCM1744的操作主

18、要涉及到LRCIN(采樣時鐘信號輸入)、BCKIN(位時鐘信號輸入)、SCKI(系統(tǒng)時鐘輸入)、DIN(數(shù)據(jù)輸入)這幾個對時序有要求的引腳。PCM1744與C5402連接后,C5402使用緩沖串口1發(fā)送數(shù)據(jù),各種時鐘信號均由C5402產(chǎn)生,PCM1744被動接收各種信息。PCM1744的系統(tǒng)時鐘信號(SCKI)由C5402的TOUT引腳提供,TOUT是C5402的定時器輸出信號引腳,有較強(qiáng)的驅(qū)動能力,可以驅(qū)動多個芯片。PCM1744的數(shù)據(jù)接收時鐘格式必須是IIS格式,C5402在緩沖串口寄存器中設(shè)置各種時鐘方式時,必須滿足IIS格式的要求。C5402作為主動工作器件,可以對其緩沖串口輸出信號進(jìn)

19、行調(diào)整。輸出的采樣時鐘信號、位時鐘信號可以在McBSP寄存器SRGR1和SRGR2中設(shè)置,設(shè)置遵循圖3.4的原則。 圖3.4 C5402時鐘發(fā)生流程圖基本的時鐘信號可以來自CPU時鐘,也可以來自晶振時鐘,這在SRGR2寄存器中的第13位設(shè)置。基本時鐘輸入后,經(jīng)CLKGDV(SRGR1的第7位到第0位)所設(shè)置的值進(jìn)行第一次分頻,得到位時鐘信號(由BCLKX1腳輸出)。值得注意的是,位時鐘信號最高為DSP頻率的一半。位時鐘信號經(jīng)FPER(SRGR2的第11位到第0位)和FWID(SRGR1的第15位到第8位)所設(shè)置的值進(jìn)一步分頻得到采樣時鐘信號(由BFSX1腳輸出),F(xiàn)PER和FWID分別設(shè)置采樣

20、時鐘信號的低電平和高電平的時間值。C5402與PCM1744的硬件接線如圖3.5所示。 圖3.5 PCM1744與C5402接線圖 PCM1800完成音頻信號采集后,在DSP的外擴(kuò)程序存儲器中嵌入相應(yīng)的處理算法,語音信號經(jīng)處理后,再從PCM1744輸出。復(fù)位電路:所用芯片為74HC14。復(fù)位電路圖3.6如下所示: 圖3.6 復(fù)位電路圖存儲器模塊所用芯片為:MT48LC8M8A2TG-75、存儲容量Density 為64Mb、數(shù)據(jù)寬度16位、工作電壓 3.3V、 TSOP封裝 54管腳、 時鐘速率133 MHz、 存儲器模塊圖3.7如下所示: 圖3.7 存儲器模塊圖 3.2系統(tǒng)軟件設(shè)計 3.1.

21、1 TMS320VC5416初始化 SWWSR=0x7fff;/程序、數(shù)據(jù)、I/O空間 SWCR=0x0001;/等待周期為72=14 BSCR=0x8006;/按32KW分區(qū),HD7:0,D15:0Hold CLKMD=PLL_DIV_INIT; Waitloop(0x0400); CLKMD=PLL_LOCK_INIT_X(5); Waitloop(0x0400); PMST=0x0168;/中斷向量表定位在0X100,MP/MC=1 OVLY=1 DROM=1; 3.2 TLV320AIC23初始化 為使AIC23正常工作并產(chǎn)生預(yù)期的音頻效果,必須對其相應(yīng)的寄存器進(jìn)行配置。首先對VC54

22、16的I2C模塊初始化,將AIC23總線上的地址寫入從機(jī)地址寄存器ICSAR;再把相應(yīng)的AIC23內(nèi)部映射寄存器的地址和待寫數(shù)據(jù)合并為16bit控制字,逐次寫入ICDXR,并通過I2C總線發(fā)送給AIC23,即可完成對AIC23的初始化配置。 AIC23初始化的部分源代碼: Unsigned int codec_buf9=OX1e00,OXOc00,OxO81a OxOaO4,OxOe01,0x1020,0x1021,0x0117,OxO5f9; Port_sub_address=(unsigned int*)MCBSP_SPSA_ADDR(1); Port_sub_index_reg=(uns

23、igned int*)MCBSP_SPAD_ADDR(1); *Port_sub_address=MCBSP_SPCR2_SUBADDR; For(i=O;i9;i+) While(!(*Port_sub_index_reg&(MASK_BIT(XRDY); Set_codec_cs_low(); MCBSP1_DXR1=codec_bufi; While(!(*Port_sub_index_reg&(MASK_BIT(XRDY); Set_codec_cs_high(); 第4章 總結(jié) 經(jīng)過這次的課程設(shè)計,我發(fā)現(xiàn)我在DSP這方面學(xué)得不夠,很多東西都學(xué)得不夠全面,掌握得不夠深,不能熟練地把它們

24、應(yīng)用在實(shí)踐當(dāng)中。這次在劉偉春老師的細(xì)心指導(dǎo)和同學(xué)的熱心幫助,以及自己上網(wǎng)查找資料下,還算比較順利地完成了本次課程設(shè)計的任務(wù)。這次課程設(shè)計使我對DSP方面的知識有更深的理解,強(qiáng)化了自己的基礎(chǔ)知識,也深刻體會到DSP技術(shù)應(yīng)用領(lǐng)域的廣泛。同時對CCS集成環(huán)境更為熟悉了,為我在今后的工作中奠定了堅(jiān)實(shí)的實(shí)踐基礎(chǔ)。通過這次課程設(shè)計讓我明白基礎(chǔ)知識的重要性,同時也要理解更多的有關(guān)它的知識,并且很好地運(yùn)用到實(shí)踐當(dāng)中,也讓我知道了要好好地學(xué)習(xí),不能懈怠。 參考文獻(xiàn) 1戴明楨等編著.TMS320C54X DSP 結(jié)構(gòu)原理及應(yīng)用. 北京:航空航天大學(xué)出版社,第2版,2007; 2彭啟琮編著.DSP技術(shù)的發(fā)展與應(yīng)用.

25、北京:高等教育出版社,2002; 3胡廣書編著.數(shù)字信號處理理論、算法與實(shí)現(xiàn).北京:清華大學(xué)出版社,2005; 4張雄偉,曹鐵勇DSP芯片的原理與開發(fā)應(yīng)用(第二版)M北京:電子工業(yè)出版社,2000; 5郝軟層,徐金甫.基于DSP芯片的MELP聲碼器的算法實(shí)現(xiàn)J.微計算機(jī)信息,2006; 6任麗香,馬淑芬,李方慧.TMS220600系列DSP的原理與應(yīng)用M北京:電子工業(yè)出版社,2000; 7北京合眾達(dá)電子技術(shù)有限公司編著.SEED-DTK系列實(shí)驗(yàn)手冊.北京合眾達(dá)電子技術(shù)有限公司出版,2007。 致 謝在這次課程設(shè)計過程中,我要感謝每一個幫助過我的人。本論文是在劉老師的悉心指導(dǎo)下完成的,劉老師對我

26、的論文提出了很多寶貴的意見,幫助我開拓研究思路,精心點(diǎn)撥、熱忱鼓勵。同時,劉老師淵博的學(xué)識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度也令我十分敬佩,是我以后學(xué)習(xí)和工作的榜樣。在整個設(shè)計過程中我懂得了許多東西,也培養(yǎng)了我獨(dú)立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學(xué)習(xí)工作生活有非常重要的影響,同時,也讓我知道了那些基礎(chǔ)知識的重要性。本論文的順利完成,離不開我們老師悉心教導(dǎo)、同學(xué)和朋友的關(guān)心和幫助??傊兄x每一位關(guān)心過我,愛護(hù)過我的人。最后,再次感謝各位老師各位同學(xué)的幫助和支持,衷心地謝謝你們! 附 錄源代碼如下: #include void iirbcf(ifilt,band,ns,n,f1,f2,f3,

27、f4,db,b,a) double b,a,f1,f2,f3,f4,db; /* TMS320VC5416初始化*/ SWWSR=0x7fff;/程序、數(shù)據(jù)、I/O空間 SWCR=0x0001;/等待周期為72=14 BSCR=0x8006;/按32KW分區(qū),HD7:0,D15:0Hold CLKMD=PLL_DIV_INIT; Waitloop(0x0400); CLKMD=PLL_LOCK_INIT_X(5); Waitloop(0x0400); PMST=0x0168;/中斷向量表定位在0X100,MP/MC=1 OVLY=1 DROM=1; /* TLV320AIC23初始化*/ Un

28、signed int codec_buf9=OX1e00,OXOc00,OxO81a OxOaO4,OxOe01,0x1020,0x1021,0x0117,OxO5f9; Port_sub_address=(unsigned int*)MCBSP_SPSA_ADDR(1); Port_sub_index_reg=(unsigned int*)MCBSP_SPAD_ADDR(1); *Port_sub_address=MCBSP_SPCR2_SUBADDR; For(i=O;i9;i+) While(!(*Port_sub_index_reg&(MASK_BIT(XRDY); Set_codec

29、_cs_low(); MCBSP1_DXR1=codec_bufi; While(!(*Port_sub_index_reg&(MASK_BIT(XRDY); Set_codec_cs_high(); int ifilt,band,ns,n; int k; double omega,lamda,epslon,f1,fh; double d5,c5; void chebyi(),chebyii(),bwtf(); double coshl(),warp(),bpsub(),omin(); void fblt(); if(band=1)|(band=4) fl=f1; if(band=2)|(ba

30、nd=3) fl=f2; if(band=3) fh=f3; if(band=4) fh=f4; if(ifilt3) switch(band) case1: case2: omega=warp(f2)/warp(f1); break; case3: omega=omin(bpsub(warp(f1),fh,fl),bpsub(warp(f4),fh,fl); break; case4: omega=omin(1.0/bpsub(warp(f2),fh,fl),1.0/bpsub(warp(f3),fh,fl); lamda=pow(10.0,(db/20.0); epslon=lamda/c

31、osh(2*ns*coshl(omega); for(k=0;k switch(ifilt) case1: chebyi(2*ns,k,4,epslon,d,c); break; case2: chebyii(2*ns,k,4,omega,lamda,d,c); break; case3: bwtf(2*ns,k,4,d,c); break; fblt(d,c,n,band,fl,fh,&bk*(n+1)+0,&a(n+1)+0); static double coshl(x) double x; double z; z=log(x+sqrt(x*x-1.0); return(z); stat

32、ic double warp(f) double f; double pi,z; pi=4.0*atan(1.0); z=tan(pi*f); return(z); static double bpsub(om,fh,fl) double om,fh,fl; double z; z=(om*om-warp(fh)*warp(fl)/(warp(fh)-warp(fl)*om); return(z); static double omin(om1,om2) double om1,om2; double z,z1,z2; z1=fabs(om1); z2=fabs(om2); z=(z1retur

33、n(z); static void bwtf(ln,k,n,d,c) int ln,k,n; double d,c; int i; double pi,tmp; pi=4.0*atan(1.0); d0=1.0; c0=1.0; for(i=1;i=n;i+) di=0.0; ci=0.0; tmp=(k+1)-(ln+1.0)/2.0; if(tmp=0,0) c1=1.0; else c1=-2.0*cos(2*(k+1)+ln-1)*pi/(2*ln); c2=1.0; static void chebyi(ln,k,n,ep,d,c) double d,c,ep; int ln,k,n

34、; int i; double pi,gam,omega,sigma; pi=4.0*atan(1.0); gam=pow(1.0+sqrt(1.0+ep*ep)/ep),1.0/ln); sigma=0.5*(1.0/gam-gam)*sin(2*(k+1)-1)*pi/(2*ln); omega=0.5*(1.0/gam+gam)*cos(2*(k+1)-1)*pi/(2*ln); for(i=0;i=n;i+) di=0.0; ci=0.0; if(ln%2)=1)&(k+1)=(ln+1)/2) d0=-sigma; c0=d0; c1=1.0; else c0=sigma*sigma

35、+omega*omega; c1=-2.0*sigma; c2=1.0; d0=c0; if(ln%2)=0)&(k=0) d0=d0/sqrt(1.0+ep*ep); static void chebyii(ln,k,n,ws,att,d,c) double d,c,ws,att; int ln,k,n; int i; double pi,gam,alpha,beta,sigma,omega,scln,scld; pi=4.0*atan(1.0); gam=pow(att+sqrt(att*att-1.0),1.0/ln); alpha=0.5*(1.0/gam-gam)*sin(2*(k+1)-1)*pi/(2*ln); beta=0.5*(1.0/gam+gam)*cos(2*(k+1)-1)*pi/(2*ln); sigma=ws*alpha/(alpha*alpha+beta*beta); omega=-1.0*ws*beta/(

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論