2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  DSP課程設(shè)計(jì)</b></p><p>  實(shí) 驗(yàn) 報(bào) 告</p><p><b>  語音噪聲濾波</b></p><p>  院(系):電子信息工程學(xué)院</p><p><b>  目 錄</b></p><p>

2、;  一、緒論……………………………………………………………1</p><p>  二、設(shè)計(jì)任務(wù)書………………………………………………………………3</p><p>  三、設(shè)計(jì)方案、算法原理說明……………………………………………4</p><p>  四、程序設(shè)計(jì)、調(diào)試與結(jié)果分析…………………………………………15</p><p>  五、

3、感想…………………………………………17</p><p>  六、附錄源程序…………………………………………………20</p><p>  七、參考文獻(xiàn)………………………………………………………………34</p><p>  七、……………………………………………………………16</p><p><b>  一、緒論</b&g

4、t;</p><p>  隨著語音技術(shù)研究的深入和實(shí)際應(yīng)用的增多,各種語音處理系統(tǒng)都面臨著進(jìn)一步提</p><p>  高性能的問題。語音增強(qiáng)是其中的關(guān)鍵技術(shù)之一。從20世紀(jì)60年代開始,對(duì)語音增強(qiáng)</p><p>  的研究就一直沒有停止。20世紀(jì)70年代由于數(shù)字信號(hào)處理理論的成熟,加速了語音增</p><p>  強(qiáng)技術(shù)的研究,使該技術(shù)走

5、向成熟。20世紀(jì)80年代以后,超大規(guī)模集成電路技術(shù)的發(fā)</p><p>  展為語音增強(qiáng)的實(shí)時(shí)實(shí)現(xiàn)提供了可能。</p><p>  語音增強(qiáng)即語音噪聲處理的目的是從帶有噪聲的語音信號(hào)中提取純凈的原始語音。但由于噪聲信號(hào)都是隨機(jī)產(chǎn)生的,完全消除噪聲幾乎不可能,因此實(shí)際語音增強(qiáng)的目的主要有:改進(jìn)語</p><p>  音質(zhì)量,消除背景噪聲,使聽者樂于接受,不感到疲倦,同

6、時(shí)提高語音信號(hào)的可懂度, </p><p><b>  方便聽者理解。</b></p><p>  語音增強(qiáng)不但與語音處理理論有關(guān),而且涉及到人的聽覺和語音學(xué)。再者,噪聲的</p><p>  來源眾多,應(yīng)用場合不同,它們的特性也各不相同。因此在不同的噪聲場合中應(yīng)采用不</p><p><b>  同的語音增強(qiáng)

7、方法。</b></p><p>  語音噪聲處理的應(yīng)用背景</p><p>  語音噪聲處理技術(shù)是指當(dāng)語音信號(hào)被各種各樣的噪聲(包括語音)干擾、甚至淹沒后,從</p><p>  噪聲背景中提取、增強(qiáng)有用的語音信號(hào),抑制、降低噪聲干擾的技術(shù)。語音增強(qiáng)技術(shù)無</p><p>  論在日常生活中,還是在其它的領(lǐng)域,或者對(duì)語音信號(hào)處理技

8、術(shù)本身來說都很有應(yīng)用價(jià)</p><p><b>  值。</b></p><p>  在日常生活中,我們經(jīng)常會(huì)遇到在噪聲干擾下進(jìn)行語音通信的問題。如:使用設(shè)置</p><p>  在嘈雜的馬路旁或市場內(nèi)的公用電話,或在奔馳的汽車、火車?yán)锸褂靡苿?dòng)電話時(shí),旁人</p><p>  的喧鬧聲、汽車和火車的轟鳴聲等背景噪聲都會(huì)干

9、擾語音通訊的質(zhì)量。對(duì)受話人來說, </p><p>  收聽夾雜著各種干擾噪聲的語音,至少會(huì)引起聽覺疲勞,嚴(yán)重一點(diǎn)就會(huì)錯(cuò)誤地識(shí)別或根</p><p>  本無法聽清對(duì)方的語音。</p><p>  對(duì)電話來說,干擾主要來自電話信道的回波干擾。還有一種叫無線信道干擾,它來</p><p>  自信道對(duì)外界干擾屏蔽能力的強(qiáng)弱。比如雷雨天收聽收音機(jī)

10、,會(huì)聽到陣陣噪聲。它是由</p><p>  于雷電引起信道附近強(qiáng)電流的驟變,導(dǎo)致強(qiáng)大的電磁波串入信道,并傳送到接受端而引</p><p>  起的噪聲干擾。這些隨機(jī)性的干擾也嚴(yán)重影響了語音的傳輸質(zhì)量。</p><p>  再有一類需要用到語音增強(qiáng)技術(shù)的方面就是處理舊的錄音磁帶。由于早年錄音技術(shù)</p><p>  不完善,磁帶質(zhì)量不高,加上

11、長久存放,使磁帶發(fā)生霉變、機(jī)械損傷、磁粉脫落、磁化</p><p>  等問題,使得重放語音產(chǎn)生噪聲。對(duì)于那些極具研究或收藏價(jià)值的寶貴錄音資料來說, </p><p>  語音增強(qiáng)技術(shù)是一個(gè)較好的恢復(fù)手段。</p><p>  在通信過程中,語音質(zhì)量的好壞顯得格外重要。如語音質(zhì)量很差,接收方難以聽清</p><p>  對(duì)方的語音信息,輕者可

12、能延誤時(shí)間、貽誤時(shí)機(jī),重者可能錯(cuò)誤地識(shí)別對(duì)方的語音,因</p><p>  而錯(cuò)誤地下達(dá)或執(zhí)行命令,導(dǎo)致對(duì)工作造成不可估量的損失。在機(jī)械制造領(lǐng)域,聲音環(huán)</p><p>  境一般都比較惡劣,除了各種機(jī)械內(nèi)部產(chǎn)生的噪聲,工作中還不時(shí)地充滿了各種沖擊性</p><p>  噪聲,使得工作者的語音經(jīng)常被部分或全部淹沒在一片強(qiáng)噪聲中,即使花九牛二虎之力</p>

13、<p>  也常常難以收聽到對(duì)方準(zhǔn)確可靠的語音信息。因此,機(jī)械制造領(lǐng)域也迫切需要語音增強(qiáng)</p><p><b>  技術(shù)。</b></p><p>  隨著現(xiàn)代科學(xué)的蓬勃發(fā)展,人類社會(huì)愈來愈顯示出信息社會(huì)的特點(diǎn)。通信或信息交</p><p>  換已成為人類社會(huì)存在的必要條件,正如衣食住行對(duì)人類是必要的一樣。語音作為語言<

14、/p><p>  的聲學(xué)表現(xiàn),是人類交流信息最自然、最有效、最方便的手段之一。</p><p>  然而,人們?cè)谡Z音通信過程中不可避免地會(huì)受到來自周圍環(huán)境和傳輸媒介引入的噪</p><p>  聲、通信設(shè)備內(nèi)部電噪聲、乃至其他講話者的干擾。這些干擾最終將使接收者接收到的</p><p>  語音不再是純凈的原始語音,而是被噪聲污染過的帶有噪聲的語

15、音信號(hào)。例如,汽車、</p><p>  街道、機(jī)場中的電話,常受到強(qiáng)背景噪聲的干擾,嚴(yán)重影響通話質(zhì)量。而環(huán)境噪聲的污</p><p>  染使得許多語音處理系統(tǒng)的性能急劇惡化。例如,語音識(shí)別已取得重大進(jìn)展,正步入使</p><p>  用階段。但目語音識(shí)別系統(tǒng)大多都是在安靜環(huán)境中工作的,在噪聲環(huán)境中尤其是強(qiáng)噪</p><p>  聲環(huán)境,語

16、音識(shí)別系統(tǒng)的識(shí)別率將受到嚴(yán)重影響。</p><p>  在上述情況下,必須加入語音增強(qiáng)系統(tǒng),或者抑制背景噪聲,以提高語音通信質(zhì)量, </p><p>  或者作為預(yù)處理器,以提高語音處理系統(tǒng)的抗干擾能力,維持系統(tǒng)性能。因此,語音增</p><p>  強(qiáng)技術(shù)在實(shí)際中有重要價(jià)值。目前,語音增強(qiáng)已在語音處理系統(tǒng)、通信技術(shù)、多媒體技</p><p>

17、;  術(shù)、數(shù)字化家電等領(lǐng)域得到了越來越廣泛的應(yīng)用。</p><p><b>  二、設(shè)計(jì)任務(wù)書:</b></p><p><b>  1、設(shè)計(jì)背景:</b></p><p>  語音通信的目的是傳遞聲音信息。位于甲地的通信者發(fā)出的聲音經(jīng)語音傳感器變換成為電信號(hào),經(jīng)發(fā)送端設(shè)備變換為適合傳輸?shù)男问?,通過傳輸信道傳輸?shù)揭业?。在?/p>

18、地經(jīng)接收端設(shè)備恢復(fù)出原來的語音信號(hào),經(jīng)耳機(jī)或者喇叭轉(zhuǎn)換為接收者可以聽到的聲音信號(hào)。這就是最基本的語音通信系統(tǒng),但是由于周圍環(huán)境的原因,我們采集到語音信號(hào)經(jīng)常含有不同程度的噪聲。</p><p>  典型語音通信系統(tǒng)中的噪聲來自三個(gè)方面:①信號(hào)處理設(shè)備產(chǎn)生的電噪聲及傳輸信道中的電噪聲;② 信號(hào)發(fā)送端空間環(huán)境中的音頻噪聲信號(hào)經(jīng)麥克風(fēng)變換為電信號(hào)之后,與有用信號(hào)其同傳遞到接收端;③信號(hào)接收端空間環(huán)境中的音頻噪聲對(duì)信號(hào)接

19、收者的影響。噪聲是由于發(fā)生體作無規(guī)則振動(dòng)產(chǎn)生的。</p><p>  在很多情況下,環(huán)境中的背景噪聲是通信系統(tǒng)中噪聲干擾的主要來源。當(dāng)語音信號(hào)受到背景噪聲干擾時(shí)語音通信質(zhì)量變得不可接受,因此要對(duì)語音信號(hào)中的噪聲濾除。DSP利用直接存儲(chǔ)器訪問方式DMA(Direct Memory Access)采集數(shù)據(jù)時(shí)不打擾CPU,因此利用DMA方式工作時(shí),CPU可以對(duì)語音信號(hào)進(jìn)行實(shí)時(shí)地濾波。本設(shè)計(jì)要求利用DSP的DMA方式進(jìn)行

20、信號(hào)采集和信號(hào)輸出,對(duì)語音信號(hào)進(jìn)行數(shù)字編碼,濾波后進(jìn)行解碼。</p><p>  2、設(shè)計(jì)要求及目標(biāo):</p><p><b>  基本部分:</b></p><p>  (1)對(duì)DMA進(jìn)行初始化;</p><p>  (2)對(duì)A/D、D/A進(jìn)行初始化;</p><p> ?。?)編寫DMA中斷服

21、務(wù)程序和濾波算法程序,實(shí)現(xiàn)語音信號(hào)的實(shí)時(shí)濾波;</p><p><b>  發(fā)揮部分:</b></p><p> ?。?)使用DSP產(chǎn)生帶回波的語音信號(hào);</p><p> ?。?)利用自適應(yīng)濾波實(shí)現(xiàn)語音信號(hào)的回波對(duì)消。</p><p><b>  3、設(shè)計(jì)思路:</b></p>&l

22、t;p>  首先利用DSP的DMA方式對(duì)外部含噪聲的語音信號(hào)進(jìn)行實(shí)時(shí)采集,語音信號(hào)先經(jīng)過A/D轉(zhuǎn)換為數(shù)字信號(hào),利用MCBSP的接收寄存器接收數(shù)據(jù)。編寫濾波算法程序,或調(diào)用DSPLIB中的濾波函數(shù),對(duì)信號(hào)進(jìn)行濾波。濾波后的數(shù)據(jù)利用DMA方式送到D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬信號(hào)。</p><p>  4、要求完成的任務(wù):</p><p>  編寫C語言程序,并在CCS集成開發(fā)環(huán)境下調(diào)試通過;&

23、lt;/p><p>  將包含噪聲的語音信號(hào)進(jìn)行濾波,從揚(yáng)聲器輸出端口輸出,比較濾波前后的信號(hào)的變化;</p><p>  按要求撰寫設(shè)計(jì)報(bào)告。</p><p>  三、設(shè)計(jì)方案、算法原理說明:</p><p>  語音噪聲濾波是個(gè)很寬泛的題目,雖然從老師給的要求來看,主要是想讓我們熟悉CODEC、DMA和簡單的數(shù)字濾波器設(shè)計(jì),但我們認(rèn)為語音噪聲

24、的處理遠(yuǎn)遠(yuǎn)不止于此。既然我們要進(jìn)行語音濾波濾掉噪音,我們就要將我們的注意力聚焦在各種噪聲的處理上。我們將分門別類的處理各式各樣的噪聲。不同的噪聲有不同的處理方法。</p><p><b>  噪聲的種類</b></p><p>  根據(jù)與輸入語音的關(guān)系,噪聲可分為加性噪聲和非加性噪聲兩類。對(duì)某些非加性噪</p><p>  聲而言,可以通過一定

25、的變換轉(zhuǎn)換成加性噪聲。例如乘性噪聲可以通過同態(tài)變換轉(zhuǎn)換為</p><p>  加性噪聲。某些與信號(hào)相關(guān)的量化噪聲也可以通過隨機(jī)噪聲擾動(dòng)的方法轉(zhuǎn)換成與信號(hào)獨(dú)</p><p>  立的加性噪聲。因此,為簡化討論,下面主要分析加性噪聲的干擾。語音處理中的加性</p><p>  噪聲大體上可以分為周期噪聲、脈沖噪聲、寬帶噪聲和同聲道其它語音干擾等。</p>

26、<p><b>  (1)周期性噪聲</b></p><p>  周期性噪聲主要來源于發(fā)動(dòng)機(jī)等周期性運(yùn)轉(zhuǎn)的機(jī)械,電氣干擾也會(huì)引起周期性噪</p><p>  聲。其特點(diǎn)是頻譜上有許多離散的線譜。實(shí)際信號(hào)受多種因素的影響,線譜分量通常轉(zhuǎn)</p><p>  變?yōu)檎瓗ёV結(jié)構(gòu),而且通常這些窄帶譜都是時(shí)變的,位置也不固定。必須采用自適應(yīng)濾&l

27、t;/p><p>  波的方法才能有效地區(qū)分這些噪聲分量。</p><p><b>  (2)脈沖噪聲</b></p><p>  脈沖噪聲主要來源于爆炸、撞擊、放電及突發(fā)性干擾等。其特征是時(shí)間上的寬度很</p><p>  窄。消除脈沖噪聲通??梢栽跁r(shí)域內(nèi)進(jìn)行,其過程如下:根據(jù)帶噪語音信號(hào)幅度的平均</p>

28、<p>  值確定閾值。當(dāng)信號(hào)幅度超出這一閾值時(shí)判別為脈沖噪聲。然后對(duì)信號(hào)進(jìn)行適當(dāng)?shù)乃p, </p><p>  就可以完全消除噪聲分量,也可以使用內(nèi)插方法將脈沖噪聲在時(shí)域上進(jìn)行平滑。</p><p><b>  (3)寬帶噪聲</b></p><p>  寬帶噪聲來源很多,熱噪聲、氣流(如風(fēng)、呼吸)噪聲及各種隨機(jī)噪聲源、量化噪聲&l

29、t;/p><p>  也可視為寬帶噪聲。寬帶噪聲與語音信號(hào)在時(shí)域和頻域上基本上重疊,只有在無話期間, </p><p>  噪聲分量才單獨(dú)存在。因此消除這種噪聲比較困難。對(duì)于平穩(wěn)的寬帶噪聲,通??梢哉J(rèn)</p><p><b>  為是高斯白噪聲。</b></p><p>  (4)同聲道語音干擾</p><

30、;p>  在實(shí)際生活中經(jīng)常遇到很多人同時(shí)說話的情況,此時(shí)不需要的語音就形成了同聲道干擾。入耳可以根據(jù)需要分辨出其中某個(gè)人的聲音,這種能力來源于人的雙耳輸入效應(yīng)和人類語音中包含的“聲紋’’特征,這是人體內(nèi)部語音理解機(jī)理的一種感知能力表現(xiàn)。通常情況下語音經(jīng)雙耳輸入,人們根據(jù)兩路輸入的不同時(shí)延特性進(jìn)行分離。同時(shí)由于人的發(fā)聲器官生理結(jié)構(gòu)的差異,每個(gè)人都有自身獨(dú)特的“聲紋’’,因此即使雙耳效應(yīng)不顯著(例如單聲道傳輸時(shí))人耳也可以借助聲紋對(duì)信

31、號(hào)進(jìn)行分離。</p><p><b>  (5)背景噪聲</b></p><p>  背景噪聲破壞了信號(hào)原有的聲學(xué)特征及模型參數(shù),因此減弱了不同語音間的差別, </p><p>  使語音質(zhì)量下降,可懂度降低。強(qiáng)噪聲會(huì)使人產(chǎn)生聽覺疲勞,從而影響人耳的聽覺特性。</p><p>  同時(shí),較強(qiáng)的背景噪聲也會(huì)使講話人的發(fā)音方

32、式發(fā)生變化,即使發(fā)相同的語音,其語音</p><p>  的特征參數(shù)也會(huì)與安靜環(huán)境下的發(fā)音有所不同。這種效應(yīng)稱為Lombard效應(yīng)。</p><p><b>  (6)單頻噪聲</b></p><p>  它主要源于無線電干擾。因?yàn)殡娕_(tái)發(fā)射的頻譜集中在比較窄的頻率范圍內(nèi),因此可</p><p>  以近似地看作是單頻性質(zhì)

33、的。另外,像電源交流電,反饋系統(tǒng)自激振蕩等也都屬于單頻</p><p>  干擾。它的特點(diǎn)是~種連續(xù)干擾,并且其頻率是可以通過實(shí)測來確定的,因此在采取適</p><p>  當(dāng)?shù)拇胧┖缶陀锌赡芊乐埂?lt;/p><p>  以上的噪聲有的離我們很遠(yuǎn),有的對(duì)我們來講太難。經(jīng)過我們的總結(jié),我們準(zhǔn)備將重點(diǎn)放在語音通信中的三種噪聲上。</p><p>&

34、lt;b>  1、信道干擾</b></p><p>  它來自信道對(duì)外界干擾屏蔽能力的強(qiáng)弱。比如雷雨天收聽收音機(jī),會(huì)聽到陣陣噪聲。它是由于雷電引起信道附近強(qiáng)電流的驟變,導(dǎo)致強(qiáng)大的電磁波串入信道,并傳送到接受端而引起的噪聲干擾。這些隨機(jī)性的干擾也嚴(yán)重影響了語音的傳輸質(zhì)量。</p><p><b>  2、回波噪聲</b></p><

35、p>  聲回波是指在語音通信中,遠(yuǎn)端的語音信號(hào)通過近端揚(yáng)聲器-房間-近端麥克風(fēng)路徑,又隨著近端說話者的聲音一同通過通信線路傳播到了遠(yuǎn)端。然而,遠(yuǎn)端聽話者是不愿聽到自己聲音回波的。</p><p><b>  3、脈沖式噪聲</b></p><p>  這種噪聲主要是仿真當(dāng)我們語音通話時(shí)突然外界傳來巨大聲響的情況,比如在施工現(xiàn)場。這種情況下,聽者的聽覺和心情會(huì)被突

36、入的巨大聲響嚴(yán)重?fù)p害。</p><p><b>  應(yīng)對(duì)方式:</b></p><p>  對(duì)于信道干擾,往往會(huì)上尖峰或者工頻脈沖。這種噪聲的特點(diǎn)就是與語音信號(hào)的頻率差異很大。所以,我們應(yīng)用濾波器將4000HZ頻率以上的聲音濾除,即可一定程度上消除電噪聲或其他信道干擾。</p><p>  對(duì)于回波噪聲就不能應(yīng)用這種方法,因?yàn)樵肼暠倔w就是聲音信

37、號(hào),頻率于我們的語音信號(hào)一樣,對(duì)于這種噪音,我們應(yīng)用自適應(yīng)濾波方式進(jìn)行濾除。</p><p>  對(duì)于脈沖式,我們將應(yīng)用閾值濾波的方法。</p><p><b>  信道干擾濾波部分:</b></p><p>  首先利用DSP的DMA方式對(duì)外部含噪聲的語音信號(hào)進(jìn)行實(shí)時(shí)采集,語音信號(hào)先經(jīng)過A/D轉(zhuǎn)換為數(shù)字信號(hào),利用MCBSP的接收寄存器接收數(shù)據(jù)

38、。編寫濾波算法程序,或調(diào)用DSPLIB中的濾波函數(shù),對(duì)信號(hào)進(jìn)行濾波。濾波后的數(shù)據(jù)利用DMA方式送到D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬信號(hào)。這就是我們的設(shè)計(jì)思路。</p><p>  具體的設(shè)計(jì)方案原理圖如下。模擬輸入信號(hào)通過DSK的MIC端口輸入,經(jīng)A/D轉(zhuǎn)換,然后到達(dá)DSP的DMA通道2,DSP接收到信號(hào)后,調(diào)用中斷服務(wù)程序進(jìn)行濾波,濾波后的信號(hào)可以在CCS上顯示,也可以通過DMA通道3將信號(hào)輸出到D/A轉(zhuǎn)換器,經(jīng)D/A轉(zhuǎn)

39、換后從SPEAKER端口輸出。</p><p> ?。?)直接存儲(chǔ)器訪問DMA</p><p>  直接存儲(chǔ)器訪問(Direct Memory Access)是C54x DSP非常重要的片上外設(shè),DMA控制器可以在不影響CPU的情況下完成數(shù)據(jù)的傳輸,因此數(shù)據(jù)傳輸速度快,在要求信號(hào)實(shí)時(shí)采集和處理的系統(tǒng)中常采用DMA方式進(jìn)行信號(hào)采集和傳輸。C5402有6個(gè)可獨(dú)立編程的DMA通道,每個(gè)DMA通道

40、受各自的5個(gè)16位寄存器控制:源地址寄存器DMSRC、目的地址寄存器DMDST、單元計(jì)數(shù)寄存器DMCTR、同步事件和計(jì)數(shù)寄存器DMSFC、發(fā)送模式控制寄存器DMMCR。目的地址寄存器DMDST規(guī)定DMA要傳送數(shù)據(jù)目的地址和首地址。單元計(jì)數(shù)寄存器DMCTR規(guī)定DMA傳送數(shù)據(jù)的個(gè)數(shù)為DMCTR寄存器的值加1。同步事件和楨計(jì)數(shù)寄存器DMSFC規(guī)定DMA傳送數(shù)據(jù)的同步事件類型和傳送一塊數(shù)據(jù)所含楨信號(hào)的個(gè)數(shù)。發(fā)送模式控制寄存器DMMCR規(guī)定DMA

41、通道的傳輸模式,當(dāng)DMA工作在自動(dòng)初始化模式時(shí),CPU在一個(gè)DMA事件完成后自動(dòng)裝載下一個(gè)DMA初始化設(shè)置并繼續(xù)進(jìn)行數(shù)據(jù)傳送。DINM位和IMOD位設(shè)置DMA中斷產(chǎn)生方式。CTMOD位設(shè)置發(fā)送計(jì)數(shù)模式控制,CTMOD位為0時(shí),DMA工作在多楨模式,CTMOD位為1時(shí),</p><p>  本實(shí)驗(yàn)利用DMA通道2與MCBSP1通道結(jié)合來讀取A/D轉(zhuǎn)換器的數(shù)據(jù),利用DMA通道3與MCBSP1通道結(jié)合來將處理后的數(shù)據(jù)發(fā)

42、送至D/A轉(zhuǎn)換器。選擇MCBSP1通道的接收寄存器DRR11(41H)為DMA傳送數(shù)據(jù)的首地址,并選擇DMA源地址工作在不調(diào)整方式,選擇MCBSP1接收事件為DMA同步事件,以實(shí)現(xiàn)DMA和MCBSP的結(jié)合。A/D轉(zhuǎn)換器的數(shù)據(jù)按MCBSP1的設(shè)置被傳送到DSP內(nèi)部接收寄存器DRR11中,再由DMA通道2將DRR11中的數(shù)據(jù)讀到指定數(shù)據(jù)存儲(chǔ)區(qū)inp_buffer中完成數(shù)據(jù)采集。DMA在傳送外部來的數(shù)據(jù)時(shí)不會(huì)影響CPU的正常運(yùn)行,當(dāng)DMA通道

43、2采集完一組數(shù)據(jù)后產(chǎn)生一個(gè)DMA中斷事件中斷CPU,來通知CPU對(duì)其進(jìn)行相應(yīng)的處理,此時(shí)DMA通道2可以按照設(shè)定繼續(xù)采集下一組數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)采集與CPU處理的并行操作。</p><p>  當(dāng)一組數(shù)據(jù)處理完成后,將數(shù)據(jù)存放在數(shù)據(jù)存儲(chǔ)區(qū)out_buffer中,選擇out_buffer為DMA通道3的首地址,并選擇源工作地址工作在不調(diào)整方式。選擇MCBSP1通道的發(fā)送積存器DXR11(43H)為DMA通道3傳送數(shù)據(jù)

44、的目的地址,并選擇DMA源地址工作在不調(diào)整方式,選擇MCBSP1接收事件為DMA同步事件,以實(shí)現(xiàn)DMA和MCBSP的結(jié)合。</p><p>  在CCS集成開發(fā)環(huán)境中,與DMA相關(guān)的頭文件有regs54xx.h和dma54xx.h。在這兩個(gè)頭文件中,定義了DMA的寄存器資源、使用方法和DMA寄存器的地址和基本訪問方式,以及寄存器的各個(gè)比特域和訪問方法,因此需要進(jìn)行C源程序的開始處包含這兩個(gè)頭文件。輸入信號(hào)經(jīng)A/D

45、轉(zhuǎn)換后,利用DMA通道2進(jìn)行傳輸進(jìn)入DSP處理,而濾波后的信號(hào)輸出利用了DMA通道3進(jìn)行傳輸進(jìn)入D/A轉(zhuǎn)換器等輸出,因此需要對(duì)DMA通道2和通道3進(jìn)行初始化配置。</p><p> ?。?)A/D和D/A轉(zhuǎn)換器</p><p>  本實(shí)驗(yàn)要用到A/D和D/A轉(zhuǎn)換器。A/D轉(zhuǎn)換器能夠?qū)⒔邮盏恼Z音信號(hào)(模擬信號(hào))轉(zhuǎn)化為數(shù)字信號(hào),供CPU進(jìn)行處理;D/A轉(zhuǎn)換器能夠?qū)?shù)字信號(hào)轉(zhuǎn)換為語音信號(hào)送SPE

46、AKER端口輸出。</p><p>  要使用A/D和D/A轉(zhuǎn)換器,必須首先對(duì)A/D和D/A轉(zhuǎn)換器進(jìn)行初始化設(shè)置,即設(shè)置A/D轉(zhuǎn)換器的工作模式(15+1bit模式,16bit模式)、輸入增益(0dB,6Db,12dB)以及抽樣頻率(8000Hz,16000Hz)等。</p><p><b>  2、回波去噪部分:</b></p><p>  初

47、始化FIR延遲輸出數(shù)組dbuffer_h[]、FIR輸出數(shù)組、自適應(yīng)濾波器系數(shù)矢量coff_w[]和自適應(yīng)濾波器的輸出數(shù)組out_w[]以及DSK板之后,采集輸入的語音信號(hào),根據(jù)模式的不同進(jìn)行不同的處理以輸出不同的信號(hào)來進(jìn)行效果的比較。我們的做法是利用設(shè)置參數(shù)mode來改變板子的功能。mode=1時(shí)信號(hào)通過FIR濾波器后產(chǎn)生回聲,為使現(xiàn)象更明顯可以附加一個(gè)延遲;mode=2時(shí)用自適應(yīng)濾波器逼近FIR濾波器以使之輸出近似的信號(hào),用信號(hào)通過

48、兩個(gè)系統(tǒng)產(chǎn)生的信號(hào)之差(即剩余回聲)來調(diào)整自適應(yīng)濾波器的系數(shù),使剩余回聲逐漸收斂于0。</p><p> ?。?)自適應(yīng)濾波器的基本原理:</p><p>  自適應(yīng)濾波原理:利用前一時(shí)刻獲得的濾波結(jié)果,自動(dòng)調(diào)節(jié)現(xiàn)時(shí)刻的濾波器參數(shù),以適應(yīng)信號(hào)和噪聲的未知特性,從而實(shí)現(xiàn)最優(yōu)濾波。</p><p>  自適應(yīng)濾波器主要由系數(shù)可調(diào)的數(shù)字濾波器和調(diào)整濾波器系數(shù)的自適應(yīng)算法兩

49、部分構(gòu)成.自適應(yīng)濾波器的一般結(jié)構(gòu)如圖l所示.自適應(yīng)濾波其最重要的性能是能有效地在未知環(huán)境中跟蹤時(shí)變的輸入信號(hào),使輸出信號(hào)達(dá)到最優(yōu)。因而在電信、雷達(dá)、聲納、實(shí)時(shí)控制以及圖像處理等領(lǐng)域都有成功的應(yīng)用。</p><p>  常規(guī)濾波器具有特定的特性,對(duì)于輸入信號(hào)根據(jù)這個(gè)濾波器特性產(chǎn)生相應(yīng)的輸出。也就是,先有了濾波器構(gòu)成的權(quán)系數(shù),然后決定相應(yīng)輸出值。但有些實(shí)際應(yīng)用往往是反過來要求的,即對(duì)濾波器輸出的要求是明確的,而濾波器

50、特性是無法預(yù)先知道的。例如長話系統(tǒng),回波相消器的理想輸出是無回波信號(hào),這個(gè)要求是明確的,而系統(tǒng)本身卻不能一開始就確定下來,因?yàn)樗Q于長話系統(tǒng)話路傳輸條件的變化,像這樣的應(yīng)用技術(shù)就必須依賴自適應(yīng)濾波技術(shù)。</p><p>  圖l中d(n)為期望響應(yīng),x(n)為自適應(yīng)濾波器的輸入,y(n)為自適應(yīng)濾波器的輸出, e(n)為估計(jì)誤差,P(n)= x(n)-y(n).前置級(jí)完成跟蹤信號(hào)的選擇,確定是信號(hào)還是噪聲;后置

51、級(jí)根據(jù)前置級(jí)的不同選擇對(duì)數(shù)字濾波器輸出作不同的處理,以得到信號(hào)輸出.自適應(yīng)濾波器的濾波器系數(shù)受誤差信號(hào)e(n)控制,根據(jù)e(n)的值和自適應(yīng)算法自動(dòng)調(diào)整.</p><p> ?。?)回聲消除器的基本原理:</p><p>  回聲消除的基本原理是采用一個(gè)自適應(yīng)濾渡器自動(dòng)識(shí)別回聲通道,通過自適應(yīng)濾波算法的調(diào)整,使其沖激響應(yīng)與實(shí)際回聲路徑逼近,從而得到回聲預(yù)測信號(hào)y(n),再將預(yù)測信號(hào)從近端采

52、樣的語音信號(hào)d(n)中減去,即可實(shí)現(xiàn)回聲消除。自適應(yīng)算法要求收斂速度快、計(jì)算復(fù)雜度低、穩(wěn)定性好和失調(diào)誤差小。雖然許多自適應(yīng)算法在理論上實(shí)現(xiàn)回聲消除都是可行的,但通常采用的是較簡單的算法。例如廣泛應(yīng)用的LMS自適應(yīng)算法。</p><p><b> ?。?)LMS算法:</b></p><p>  本設(shè)計(jì)中自適應(yīng)算法是根據(jù)最小均方誤差判據(jù)來設(shè)計(jì)的,即理想信號(hào)與濾波器輸出之

53、差的平方值的期望值最小,并且根據(jù)這個(gè)判據(jù)來修改權(quán)系數(shù)。</p><p>  均方誤差ε表示為  ε△E[e2(n)]=E[d(n)-y(n)]2</p><p>  對(duì)于橫向結(jié)構(gòu)濾波器,代入y(n)的表達(dá)式,有</p><p>  ε= E[d2(n)]+WT(n)RW(n)-2 WT(n)P</p><p>  其中,R = E[X(n)

54、XT(n)]是N*N的自相關(guān)矩陣,它是輸入信號(hào)采樣值間的相關(guān)性矩陣。P = E[d(n) X(n)]為N*1互相關(guān)矢量,代表理想信號(hào)d(n)與輸入矢量的相關(guān)性。</p><p>  在均方誤差ε達(dá)到最小時(shí),得到最佳權(quán)系數(shù)W*=[w0*, w1* , w2*, ……, wN-1*]T。它應(yīng)滿足下列方程</p><p><b>  =0</b></p>&l

55、t;p>  即 R*W-P=0</p><p>  顯然,Φx(m)=[x(n)x(n-m)]是x(n)的自相關(guān)值,Φxd(R) =E[x(n)d(n-k)]是x(n)與d(n)的互相關(guān)值。在有些應(yīng)用中,把輸入信號(hào)的采樣值分成相同的段(每段稱為一幀),再求出R和P估計(jì)值,以得到每幀的最佳權(quán)系數(shù)。這種方法稱為塊對(duì)塊自適應(yīng)算法。如語音信號(hào)的線性預(yù)測編碼LPC,

56、就是把語音信號(hào)分成幀進(jìn)行處理的。R和P的計(jì)算,要求出期望值E,在實(shí)際運(yùn)算中不易實(shí)現(xiàn)。為此,可通過下式進(jìn)行估計(jì):</p><p><b>  =</b></p><p><b>  =</b></p><p>  用以上方法獲得最佳W*的運(yùn)算量很大,對(duì)于一些在線或?qū)崟r(shí)應(yīng)用的場合,無法滿足其時(shí)間要求。</p>&

57、lt;p>  大多數(shù)場合使用迭代算法,對(duì)每次采樣值求出較佳權(quán)系數(shù),稱為采樣值對(duì)采樣值迭代算法。迭代算法可以避免復(fù)雜的R-1和P的運(yùn)算,又能實(shí)時(shí)求得式的近似解,因而切實(shí)可行。</p><p>  LMS算法是以最快下降法為原則的迭代算法,即W(n+1)矢量是W(n)矢量按均方誤差性能平面的負(fù)斜率大小調(diào)節(jié)相應(yīng)一個(gè)增量。</p><p>  W(n+1)= W(n)-u▽(n)</p

58、><p>  這個(gè)u是由系統(tǒng)穩(wěn)定性和迭代運(yùn)算收斂速度來決定的自適應(yīng)步長。▽(n)為n次迭代的梯度。對(duì)于LMS算法,▽(n)是E[e2(n)]的斜率。</p><p>  由式W(n+1)= W(n)-u▽(n),產(chǎn)生了求解最佳權(quán)系數(shù)的兩種方法,一種是最陡梯度法。其思路為,設(shè)定初始權(quán)系數(shù),用上式迭代公式計(jì)算,直到W(n+1)與W(n)誤差小于規(guī)定范圍。其中▽(n)的E計(jì)算,可用估計(jì)值表達(dá)式<

59、;/p><p>  式中K的取值應(yīng)該足夠大。如果用瞬時(shí)-2e(n)X(n)來代替上式對(duì)-2E{ e(n)X(n)}的估計(jì)運(yùn)算,就產(chǎn)生了另一種算法——隨機(jī)梯度法,即Widrow Hoff的LMS算法。此時(shí)迭代公式為</p><p>  W(n+1)= W(n)+2u e(n)X(n)</p><p>  以上討論的自適應(yīng)算法都是基于Widrow Hoff的LMS算法。上式

60、的迭代公式,假定濾波器結(jié)構(gòu)為橫向結(jié)構(gòu)。對(duì)于對(duì)稱橫向型結(jié)構(gòu),也可推出類似的迭代公式</p><p>  W(n+1)= W(n)+2u e(n)[X(n)+ X(n-N+1)]</p><p><b>  其中,</b></p><p><b>  X(n)=,</b></p><p>  而X(n-

61、N+1)=。</p><p><b>  LMS算法流程圖</b></p><p><b>  自適應(yīng)控制 </b></p><p>  自適應(yīng)控制可以看作是一個(gè)能根據(jù)環(huán)境變化智能調(diào)節(jié)自身特性的反饋控制系統(tǒng)以使系統(tǒng)能按照一些設(shè)定的標(biāo)準(zhǔn)工作在最優(yōu)狀態(tài)。一般地說,自適應(yīng)控制在航空、導(dǎo)彈和空間飛行器的控制中很成功??梢缘贸鼋Y(jié)論,

62、傳統(tǒng)的自適應(yīng)控制適合(1)沒有大時(shí)間延遲的機(jī)械系統(tǒng);(2)對(duì)設(shè)計(jì)的系統(tǒng)動(dòng)態(tài)特性很清楚。但在工業(yè)過程控制應(yīng)用中,傳統(tǒng)的自適應(yīng)控制并不如意。PID自整定方案可能是最可靠的,廣泛應(yīng)用于商業(yè)產(chǎn)品,但用戶并不怎么喜歡和接受。傳統(tǒng)的自適應(yīng)控制方法,要么采用模型參考要么采用自整定,一般需要辨識(shí)過程的動(dòng)態(tài)特性。它存在許多基本問題(1)需要復(fù)雜的離線訓(xùn)練;(2)辨識(shí)所需的充分激勵(lì)信號(hào)和系統(tǒng)平穩(wěn)運(yùn)行的矛盾;(3)對(duì)系統(tǒng)結(jié)構(gòu)假設(shè);(4)實(shí)際應(yīng)用中,模型的收斂

63、性和系統(tǒng)穩(wěn)定性無法保證。另外,傳統(tǒng)自適應(yīng)控制方法中假設(shè)系統(tǒng)結(jié)構(gòu)的信息,在處理非線性、變結(jié)構(gòu)或大時(shí)間延遲時(shí)很難。</p><p><b>  一言以蔽之:</b></p><p>  就是利用LMS的方式使以前的波形信息為反饋提供給適合的參數(shù)已達(dá)到濾去噪聲的作用。</p><p><b>  dlms:</b></p&

64、gt;<p>  short oflag = dlms (DATA *x, DATA *h, DATA *r, DATA **d, DATA *des, DATA step, ushort nh, ushort nx)</p><p><b>  參數(shù)如下表所示:</b></p><p>  注意:h和d的存儲(chǔ)地址要求起點(diǎn)必須位于Kbit邊界處,即起始地

65、址值的最低有效位必須是0,必須在CMD文件中開辟對(duì)齊1K邊界的空間,并且只能在頭文件中進(jìn)行段的配置。否則編譯無法通過。</p><p><b>  3、脈沖式濾波:</b></p><p>  我們的方式先求個(gè)點(diǎn)的平均值,然后根據(jù)實(shí)際,大于這個(gè)平均值的5倍以上的信號(hào)幅度進(jìn)行衰減,這樣可以在時(shí)域直接進(jìn)行處理。進(jìn)而得到需要的聲音,將亂入的聲音濾掉,保護(hù)聽者。</p&

66、gt;<p><b>  4、小創(chuàng)意:變調(diào)</b></p><p>  音調(diào)轉(zhuǎn)移使用同一個(gè)存儲(chǔ)的聲音片斷,可以幫助產(chǎn)生其他頻率的音符。</p><p>  正弦信號(hào)的頻率與周期成反比,所以抽樣間隔變大的話,就相當(dāng)于頻率變大。</p><p>  運(yùn)用此原理,我們對(duì)dma256數(shù)據(jù)進(jìn)行抽樣,若抽樣間隔大于,則抽樣頻率提高,聲調(diào)提高;

67、若間隔小于,則抽樣頻率降低,聲調(diào)降低。</p><p>  四、程序設(shè)計(jì)、調(diào)試與結(jié)果分析:</p><p><b>  1、調(diào)試過程:</b></p><p>  a、首先設(shè)計(jì)FIR濾波器。FIR濾波器的算法可以由MATLAB來設(shè)計(jì)。</p><p>  打開MATLAB,在命令窗中輸入FDAtool,打開濾波器設(shè)計(jì)與分

68、析工具。因?yàn)檎Z音信號(hào)的頻率成分主要分布在300Hz到3400Hz,所以我們只要設(shè)計(jì)4000Hz的低通FIR濾波器就可以實(shí)現(xiàn)對(duì)語音信號(hào)中摻雜的噪聲的濾除。在FDA中選擇帶低通FIR濾波器,階數(shù)選擇15,抽樣頻率選擇16kHz。就可以設(shè)計(jì)所要的濾波器了。然后將設(shè)計(jì)好的結(jié)果導(dǎo)出為fir.c文件。</p><p>  設(shè)計(jì)好濾波器后,還要進(jìn)行對(duì)A/D和D/A以及DMA的初始化,并編寫主程序和中斷服務(wù)程序,以及控制調(diào)用中斷

69、時(shí)程序流向的中斷向量表,詳細(xì)內(nèi)容請(qǐng)見程序清單。由于DSK5402板上存儲(chǔ)器分配方式基本相同,所以 .cmd文件可以采用其他程序中的 .cmd文件。</p><p><b>  b、信號(hào)濾波部分:</b></p><p> ?。?)通過MIC向計(jì)算機(jī)輸入語音信號(hào)。但此種方式不能很好的聽出聲音到底有什么變化,因?yàn)槠鋵?shí)板子的噪聲即不準(zhǔn)。所以最好是用輸入正弦波再利用CCS看圖

70、形的方式??墒?,咱們的板子本身有問題,經(jīng)過板子后會(huì)加上噪音圖形無法分辨!</p><p>  (2)編譯濾波工程之前先在CCS下選擇Tools/Linker Configuration,出現(xiàn)連接器配置對(duì)話框,選擇Use the Visual Linker,然后再對(duì)程序進(jìn)行編譯。</p><p> ?。?)編譯通過則會(huì)產(chǎn)生Firlab.out文件,并可執(zhí)行文件Firlab.out下載到DSP

71、中。</p><p> ?。?)在中斷服務(wù)程序dmac2isr.c中的有效行上設(shè)置斷點(diǎn),以便觀察圖形。</p><p> ?。?)選擇Debug/Animate,激活程序。Animate=Run-Halt-Run。</p><p>  (6)在CCS中選擇View/Graph/Time/Frequency,出現(xiàn)圖形屬性對(duì)話框。圖形屬性對(duì)話框中,Start Adres

72、s設(shè)置為輸入變量名、Acquisition Buffer Size為十進(jìn)制256、Display Data Size 為十六進(jìn)制、DSP Data Type為16位有符號(hào)整形數(shù),其它設(shè)置不變。確定后出現(xiàn)如下圖所示時(shí)域波形。</p><p>  c、擴(kuò)展回波對(duì)消部分:</p><p> ?。?)由麥克將產(chǎn)生的語音信號(hào)輸入到J5端口。J6端口接入音響或耳機(jī),對(duì)比處理前后的語音信號(hào)。</p

73、><p> ?。?)編譯濾波工程之前先在CCS下選擇Tools/Linker Configuration,出現(xiàn)連接器配置對(duì)話框,選擇Use the text Linker,然后再對(duì)程序進(jìn)行編譯。</p><p> ?。?)通過設(shè)置mode的值,對(duì)不同算法處理過的信號(hào)分別觀察。0代表產(chǎn)生輸入原聲;1代表產(chǎn)生帶回波噪聲的聲音;2代表用自適應(yīng)消除回波后的聲音;;3代表產(chǎn)生添加正弦頻率噪音的信號(hào);4代

74、表用自適應(yīng)方法濾除正弦噪音后的聲音;5代表音調(diào)降低;6代表近音調(diào)升高;7代表濾除脈沖噪音</p><p> ?。?)選擇Debug/Animate,激活程序。Animate=Run-Halt-Run。</p><p> ?。?)在程序運(yùn)行過程中,輸入語音信號(hào)分別進(jìn)行語音輸出觀察。</p><p><b>  2、結(jié)果分析:</b></p&

75、gt;<p>  (1)理論上老師給的濾波輸入輸出信號(hào):</p><p><b>  我們的:</b></p><p><b>  女變男:</b></p><p><b>  明顯看出有失真。</b></p><p>  五、設(shè)計(jì)(安裝)與調(diào)試的體會(huì):</

76、p><p><b>  感想: </b></p><p>  這次的dsp實(shí)驗(yàn)我們可以用辛酸來形容,500多人排不到20塊板子,必須要起個(gè)大早才可以用到板子,所以我們的用板時(shí)間真的不是太多.當(dāng)然有我們前幾天的大意這方面的因素,后來當(dāng)我們把理論知識(shí)研究到一定深度的準(zhǔn)備實(shí)踐的時(shí)候,實(shí)驗(yàn)室已經(jīng)門可羅雀了,唉~~~~ 我們的辛酸的借板子的歷程就開始了.雖然資源不夠,但這同樣給

77、與了我們提高,鍛煉了我們非常嫻熟的調(diào)試技術(shù),可以用神速來形容我們倆生成工程的速度!所以,什么樣的情況都是一種經(jīng)歷,這種艱苦的經(jīng)歷對(duì)于我們更是一種鍛煉和提高,對(duì)于我們這種從小沒怎么吃苦的孩子們也是一次額外的經(jīng)歷,也許到了我們老了,還會(huì)想起交大小學(xué)期排板子的經(jīng)歷.那時(shí)我們倆要是一起聊天,一定會(huì)相視一笑的~</p><p>  因?yàn)楸菊n題的基本語音濾波部分楊老師在課上給予了我們講解,因此我們就在原本的基礎(chǔ)上進(jìn)行改善和增

78、加拓展。因?yàn)檎n題要求是DMA進(jìn)行語音濾波,因此我們一開始從DMA通道的初始化使能著手,然后了解到整個(gè)程序模板中真正對(duì)DMA采集到的音頻信號(hào)進(jìn)行濾波的是中斷服務(wù)程序,這與我們學(xué)得單片機(jī)有驚人的類似. 所以這方面的初始化,我們還是掌握的不錯(cuò)的,但是dma寄存器實(shí)在是太多了,我們只能照著書一點(diǎn)一點(diǎn)的翻,一點(diǎn)一點(diǎn)的寫,當(dāng)然書上的初始化程序還是給的很細(xì),我們也借鑒了很多,但我們想,這些都是死的.我們沒有必要在這上面浪費(fèi)很多時(shí)間,還是以理解為主吧~

79、~</p><p>  之后就是研究中斷中具體的濾波程序了,我們是從噪聲的種類角度下手,一點(diǎn)一點(diǎn)的進(jìn)行的,考慮了很多噪聲,這在報(bào)告的前面部分中也都提到了,然后我們就研究具體的解決辦法,一步一步地下手.再查找具體的濾波函數(shù)的時(shí)候,我們也發(fā)現(xiàn)我們的數(shù)學(xué)水平真的還欠缺,或者說我們很強(qiáng)的耐心看很長的數(shù)學(xué)公式,這在日后的學(xué)習(xí)過程中還待加強(qiáng)阿~~</p><p>  接著,我們?cè)谠瓉淼幕A(chǔ)上,想到了變

80、聲。我們最初想對(duì)實(shí)時(shí)濾波處理過后的256個(gè)語音樣本點(diǎn)間的距離進(jìn)行適當(dāng)?shù)睦L和壓短,這樣應(yīng)該就會(huì)產(chǎn)生一定的變聲。因?yàn)榕毡楸饶猩l(fā)生的頻率高,這樣音調(diào)高,所以對(duì)語音樣本點(diǎn)間的距離進(jìn)行壓縮后,就能將一段男聲近似變成“女聲”;同理,對(duì)語音樣本點(diǎn)間的距離進(jìn)行拉長后,這樣頻率變低,就相應(yīng)地實(shí)現(xiàn)女聲變“男聲”。最后經(jīng)過反復(fù)實(shí)驗(yàn),我們做出了近似變聲功能。</p><p>  然后,我們用自適應(yīng)濾波器濾除回波。比對(duì)了幾種自適應(yīng)

81、濾波器后,我們最終決定采用dlms濾波器進(jìn)行濾波,最后我們用了將近一天的時(shí)間dlms的參數(shù)使用和定義搞清楚。一開始我們遇到了不小的麻煩,不管怎么樣都不出聲,最后我們想到參考資料上介紹的是用cpu采集方式,數(shù)據(jù)一個(gè)一個(gè)的采集,而我們用的是DMA傳輸,是一串一串的采集,所以我們猜想是不是自適應(yīng)濾波器的步長參數(shù)設(shè)置得過低,使得其自適應(yīng)的過程中容量不夠,因此我們嘗試著將步長由原來的100該為25600,最后一試還真的實(shí)現(xiàn)了回波消除。</p

82、><p>  用dsp板的一個(gè)語音輸入端模擬一方的電話用戶,而再用軟件產(chǎn)生一個(gè)接近2kHz的正弦信號(hào)模擬另一端用戶傳來的語音,將這兩端傳來的信號(hào)疊加在一起后就類似于我們?nèi)粘Mㄔ捴心苈牭阶约夯芈暤默F(xiàn)象,再采用dlms自適應(yīng)濾波,濾除一方信號(hào)后就能實(shí)現(xiàn)回聲消除!</p><p>  最后我們自己模仿了脈沖噪音的形式,自己錄制了一段聲音,然后想在MODE7中應(yīng)用閾值濾波法濾波,但是因?yàn)闀r(shí)間有限,主要

83、是因?yàn)榘遄犹伲谖覀兇疝q以前,我倆還沒有利用板子嘗試過,但是我們的原理很清晰,并準(zhǔn)備在答辯時(shí)現(xiàn)場嘗試。</p><p>  綜上,就是我們對(duì)這次實(shí)驗(yàn)的感想,最后我們表達(dá)一下對(duì)小學(xué)期的情感.雖然說這小學(xué)期比上課還要累,但我們從理論逐步向?qū)嵺`過渡了,把兩門信號(hào)處理的大課的知識(shí)結(jié)合到實(shí)踐中去做了.我們不再是只會(huì)算題的學(xué)生了,更像是兩個(gè)工程師,雖然研究的東西不太高端,但對(duì)我們應(yīng)經(jīng)是受益匪淺了,用一句玩笑來形容就是,這些

84、實(shí)踐為我們回去和朋友吹噓自己在大學(xué)學(xué)到了什么提供了很強(qiáng)的說服力.最后的最后,感謝楊老師為我們上課打下的最原始的基礎(chǔ),感謝那些借我們板子的可愛的同學(xué)們,更要感謝學(xué)院開設(shè)這么有意義的課.</p><p><b>  六、源程序代碼</b></p><p>  1、FIRlab.C</p><p>  /***********************

85、******************************************************/</p><p>  /* FIRlab.C AIC,McBSP,DMA initialization for FIR lab Filter */ </p><p>  /*

86、 */</p><p>  /* Goal: This code performs the following functions: */</p><p>  /*- toggle the three LEDs on the DSK */</

87、p><p>  /*- setup AIC (CODEC) parameters */</p><p>  /* - initialize DMA Channel (CH2-input) */</p><p>  /*- turn on interrupts */</p

88、><p>  /*- run forever (waiting for DMA interrupts to transfer data) */</p><p>  /* */</p><p>  /* Author: Scott Bland Date: 03/20/2000 */</p>

89、;<p>  /*****************************************************************************/</p><p>  /*****************************************************************************/</p><p>  /*

90、 Include Files */</p><p>  /*****************************************************************************/</p><p>  #include <type.

91、h></p><p>  #include <board.h></p><p>  #include <codec.h></p><p>  #include <string.h></p><p>  #include <dma54xx.h></p><p>  #

92、include <regs54xx.h></p><p>  #include <intr.h></p><p>  #include "timer.h"</p><p>  #include <dsplib.h></p><p>  #include <math.h><

93、;/p><p>  /*****************************************************************************/</p><p>  /* Function Prototypes */</p><p&g

94、t;  /*****************************************************************************/</p><p>  void delay(s16 period);</p><p>  extern void DMAC2ISR();</p><p>  /*********************

95、********************************************************/</p><p>  /* Global Variables */</p><p>  /*************************************

96、****************************************/</p><p>  HANDLE hHandset;</p><p>  unsigned int dmsefc, dmmcr, dmctr, src_addr, dst_addr;</p><p>  unsigned int dmpre, dmsrcp, dmdstp, dmid

97、x0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr;</p><p>  /* Create specific data section for buffer (symbol, section_name) */</p><p>  #pragma DATA_SECTION(inp_buffer,"audio_buffer&

98、quot;);</p><p>  int inp_buffer[0x200];</p><p>  /* Create specific data section for buffer (symbol, section_name) */</p><p>  #pragma DATA_SECTION(out_buffer,"outt_buffer"

99、;);</p><p>  int out_buffer[0x200];</p><p>  /* Create specific data section for coeffiecients */</p><p>  #pragma DATA_SECTION(coeffs,"coefficients");</p><p>

100、;  /* Low Pass Filter fs=16000 fc=4000Hz*/ </p><p>  int coeffs[16]={ -79, -136, 312, 654, -1244, -2280, 4501, 14655, 14655,</p><p>  4501, -2280, -1244, 654, 312, -136

101、, -79};</p><p>  /* High Pass Filter */ </p><p>  // int coeffs[16]={-120,5245,-3421,2451,-11216,40,-24657,29610,29610,-24657,40,-11216,2451,-3421,5245,-120}; </p><p>  /* Band P

102、ass Filter */ </p><p>  /* int coeffs[16]={921,-2494,137,-3654,-2485,-2063,-9015,16165,16165,-9015,-2063,-2485,-3654,137,-2494,921}; */</p><p>  /* Band Stop Filter */</p><p>  /*

103、int coeffs[16]={491,165,-2159,772,-6697,10044,648,12297,12297,648,10044,-6697,772,-2159,165,491}; */ </p><p>  /* All Pass Filter */</p><p>  /* int coeffs[16] ={32767,0,0,0,0,0,0,0,0,0,0,0,0,0

104、,0,0}; */</p><p>  int highpass[16]={-848, -1129, -1496, -2000, -2754, -4053, -6980, -21279, 21279,</p><p>  6980, 4053, 2754, 2000, 1496, 1129, 848}; </p><p> 

105、 /* Create specific data section for delay buffer */</p><p>  #pragma DATA_SECTION(delaybuff,"delayb");</p><p>  int delaybuff[16]={0}; </p><p>  int delaybuff1[16]={0};&

106、lt;/p><p>  /* declare and initialize two variables for DMAC ISRs */</p><p>  int frame=0; </p><p>  int flag=0;</p><p>  int temp; </p><p><b>  int a

107、,b;</b></p><p>  int bf1[0x3000]={0};</p><p>  /* delayptr holds the address of the start of the delay buffer */</p><p>  int *delayptr1 = &(delaybuff[0]); </p><

108、;p>  int *delayptr2 = &(delaybuff1[0]); </p><p>  interrupt void DMAC2ISR();</p><p>  /*****************************************************************************/</p><p> 

109、 /* MAIN */</p><p>  /*****************************************************************************/</p><p>  void main()<

110、/p><p><b>  { </b></p><p>  s16 cnt=2;</p><p><b>  a=8;</b></p><p><b>  b=6;</b></p><p>  /* These are the items that BI

111、OS will set when we use it */</p><p>  BSCR = 0x8806;</p><p><b>  XPC = 0;</b></p><p>  PMST = 0xA0;</p><p>  brd_set_cpu_freq(100);</p><p>  T

112、IMER_HALT(0); </p><p>  brd_set_wait_states(7, 7, 9);</p><p>  TIMER_RESET(0); </p><p>  IMR=0;//禁止所有中斷</p><p>  /* --------------------------------------------------

113、--- */</p><p>  if(brd_init_bios()) </p><p><b>  return;</b></p><p>  while(cnt--)</p><p><b>  {</b></p><p>  brd_led_toggle(B

114、RD_LED0);//切換LED指示燈的顯示狀態(tài)</p><p>  delay(1000);</p><p>  brd_led_toggle(BRD_LED1);//切換LED指示燈的顯示狀態(tài)</p><p>  delay(1000);</p><p>  brd_led_toggle(BRD_LED2);//切換LED指示

溫馨提示

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

評(píng)論

0/150

提交評(píng)論