<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于TMS320VC5402的音頻信號采集與處理系統

基于TMS320VC5402的音頻信號采集與處理系統

作者: 時(shí)間:2009-02-09 來(lái)源:網(wǎng)絡(luò ) 收藏


本文引用地址:http://dyxdggzs.com/article/167072.htm

PCM1800完成后,在DSP的外擴程序存儲器中嵌入相應的算法,語(yǔ)音經(jīng)后,再從PCM1744輸出。

3 軟件設計

軟件部分主要包括DSP編程和PC編程。DSP程的主要任務(wù)是初始化、管理板上的資源和完成算法,可參考有關(guān)資料。PC編程重點(diǎn)則是管理DSP操作和應用層軟件編寫(xiě)。

3.1 A/D與D/A程序設計

為了在20kHz的音響頻段獲得優(yōu)良的輸出,A/D和D/A的采樣頻率應該達到44.1kHz或48kHz。要正確編寫(xiě)采樣和輸出音頻的程序,必須對'C5402的McBSP相關(guān)寄存器(spcr1,spcr2,rcr1,rcr2,xcr1,xcr2,srgr1,srgr2,mcr1,mcr2,rcera1,rcerb1,xcera,xcerb,pcr1)進(jìn)行正確的設置[1],以滿(mǎn)足'C5402和PCM1744、PCM1800的各種時(shí)序要求(位同步、幀同步、時(shí)鐘信號等)。為了使TOUT能給外圍器件提供時(shí)鐘信號,就設計到DSP的定時(shí)和中斷操作,具體請參考TI提供的Spru302.pdf資料。

3.2 DSP和PC的編程

DSP程序首先初始化'C5402和模擬接口。在分配好相應的緩沖區和產(chǎn)生相應的中斷之后,進(jìn)行各項音效處理算法,例如:壓縮、失真、蛙聲、房間噪聲抑制ZNR、放大、均衡、合唱、鑲邊、延時(shí)反唱等,或者幾種算法混合進(jìn)行。

PC的編程包括DSP接口部分和應用層編程部分。在PC程序的開(kāi)始,與DSP接口部分的程序先調用初始化函數,將DSP程序下載到DSP(初始化程序在DSP中載入一個(gè)很小的自舉程序,然后通過(guò)自舉程序一段一段地把全部程序載入DSP)中。初始化完成后,與DSP接口部分程序再按自定義的“通信協(xié)議”在指定位置讀出DSP處理結果幀或DSP的請求幀,并將它交給上一層(應用程序)處理。應用程序亦通過(guò)與DSP接口部分程序向DSP發(fā)出各種命令。上層應用程序是用戶(hù)使用系統的界面,它提供語(yǔ)音數據庫管理和系統管理等功能。

3.3 優(yōu)化工具的程序優(yōu)化

根據用戶(hù)的要求,選擇C程序優(yōu)化器和匯編優(yōu)化器,對編碼器的特定性能如代碼長(cháng)度、計算速度等進(jìn)行優(yōu)化。使用方法是在編譯(Built Options)時(shí)設定不同的編譯選項來(lái)控制優(yōu)化目標。根據我們的實(shí)踐,認為選擇下列幾項進(jìn)行優(yōu)化對提高計算速度等的影響較大:

(1)-pm:程序級全局優(yōu)化,包括程序的外部訪(fǎng)問(wèn)、全局變量的優(yōu)化和函數的外部調用。

(2)-o3:采用三級優(yōu)化技術(shù)。其中第一級優(yōu)化主要完成消除無(wú)用賦值和局部公共表達式等,第二級優(yōu)化主要完成循環(huán)算法的優(yōu)化并將循環(huán)中的數組訪(fǎng)問(wèn)轉化為指針增量形式、實(shí)施循環(huán)展開(kāi)。消除全局公共了表達式和無(wú)用賦值等,第三級優(yōu)化主要完成消除冗余代碼、簡(jiǎn)化表達式和語(yǔ)句、使用內聯(lián)(inline)函數并展開(kāi)等。-03在上述基礎上還完成消除從未使用的函數、對函數聲明進(jìn)行重排序和對函數使用的內聯(lián)形式等。

(3)使用內聯(lián)函數(intrinsic)。'C5402編譯器提供的intrinsi可以快速優(yōu)化C代碼。Intrinsic是直接映射為內聯(lián)的'C5402指令的特殊函數(ETSI函數)。Intrinsic用前下劃線(xiàn)表示,使用時(shí)同函數的調用一樣。

實(shí)際表明:選擇上述幾項進(jìn)行優(yōu)化,只要編譯選項選擇適當,其效果很顯著(zhù)的,計算速度可提高5~10倍,當然其代碼長(cháng)度會(huì )有少許增加。

3.4 音頻信號處理算法簡(jiǎn)介[2]

在聲音的拾取和傳輸過(guò)程中,由于設備和器件的限制,其幅度對頻率的響應并不是一致的,極有可能出現某些頻率成分的增益太大或太小。對于頻率響應特性的這類(lèi)缺陷,需要進(jìn)行適當的調整。音頻信號的均衡算法,這是通過(guò)軟件設計調節某些頻率成分的增益,對其進(jìn)行提升或衰減。聲音信號經(jīng)均衡處理后,可以彌補頻率響應特性的缺隱,也可以人為地制造一些較好的音響效果。

當然,音頻信號的處理是一個(gè)很復雜的過(guò)程,例如,電吉它音效器還包括調制、延時(shí)混響等算法的處理。

本文設計的音頻信號與處統,已作為電吉他等音效器研制的硬件試驗平臺,并具有如下算法:壓縮模塊、失真模塊、ZNR/AMP模塊、均衡模塊、調制模塊、延時(shí)混響模塊。各個(gè)模塊可以單獨使用,也可以串聯(lián)使用,并采用兩個(gè)LED數碼顯示器表示選擇好的混合音效模式。它大大改變了電吉它自身的音色,可產(chǎn)生壓縮、失真、蛙聲、房間噪聲擼制(ZNR)、放大、均衡、合唱、鑲邊、延時(shí)反響等多種單獨的音色效果,也可同時(shí)使用幾種音色效果,極大地豐富了電吉他現場(chǎng)演奏效果。把相同的電吉它信號分別輸入ZOOM 505(日本ZOOM公司生產(chǎn))和該系統,然后分別把輸出波形在時(shí)域與頻域以及幅值與相位上進(jìn)行分析比較,進(jìn)行算法的優(yōu)化處理,可以發(fā)現最終音色效果相差無(wú)幾。另外,在此系統中,既有A/D又有D/A,構成一個(gè)閉環(huán),可自發(fā)自收;而算法則集中在DSP芯片內進(jìn)行模塊化處理,這給系統的設計和調試帶來(lái)了很大的方便。所以,如果能在本文提出的以 DSP芯片為核心器件的音頻信號與處統的基礎上,設計出功能及效果與ZOOM 505相比美的電吉它音效器,可以從根本上改變國內目前的電吉它音效器市場(chǎng)基本上被國外產(chǎn)生所壟斷的局面[3],具有很強的實(shí)用價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>