??? 摘? 要: 提出了一種基于TMS320VC5402 DSP的音頻信號" title="音頻信號">音頻信號處理系統(tǒng),。介紹了該系統(tǒng)的總體方案和硬軟件設(shè)計,并對音頻信號的處理算法進行了論述,。實際使用證明,所述的基于 DSP的硬件和軟件系統(tǒng)是一個很好的音頻信號采集與處理系統(tǒng)。?
??? 關(guān)鍵詞: 音頻信號? 音頻效果? 數(shù)字信號處理?
?
??? 在調(diào)音臺和各種音響設(shè)備上,效果器是一種不可缺少的設(shè)備,。有了效果器,才有了聲音的千變?nèi)f化,。高質(zhì)量的效果器能達到令人滿意的效果,使人有身臨其境的感覺?,F(xiàn)在效果器上的效果種類越來越多,有的多達幾十種,。實際上從聲學(xué)原理考慮,一共只有五種基本效果:?
??? (1)延時/延遲類(包括延時,、延遲、混響" title="混響">混響,、殘響等),?
??? (2)壓縮類(包括噪聲門,、均衡器等),?
??? (3)失真類(包括各種失真、金屬,、“臟”效果器等),?
??? (4)合唱類(包括立體聲、鑲邊,、八度器等),?
??? (5)濾波器(包括哇音,、相位等)。?
??? 目前國內(nèi)的效果器市場多被國外產(chǎn)品所壟斷,價格昂貴,。國產(chǎn)的效果器又多為模擬實現(xiàn),成本高,、損耗大、干擾大,、穩(wěn)定性差,且參數(shù)不易修改,。而基于DSP的數(shù)字效果器,是一種具有內(nèi)置的數(shù)字接口且可進行數(shù)字音頻處理的音響系統(tǒng),它能克服以上缺點,達到令人滿意的效果。?
1 系統(tǒng)總體方案?
??? 音頻信號處理系統(tǒng)如圖1所示,整個系統(tǒng)由單片機MCU,、數(shù)字信號處理器DSP,、A/D和D/A轉(zhuǎn)換器、外擴存儲器,、顯示屏和鍵盤等組成,。其中MCU作為主機,整個系統(tǒng)的初始化和控制都由它來完成。DSP作為從機,主要完成音頻信號的算法處理,實現(xiàn)各種效果,。而LED則把通過鍵盤控制的各種效果及其參數(shù)顯示出來,以便工作人員及時調(diào)整和修改,。由于DSP內(nèi)部存儲器較小,不能滿足系統(tǒng)數(shù)據(jù)和程序存儲需要,所以需要外擴存儲器。?
?
?
??? 系統(tǒng)工作時,輸入的音頻信號是模擬信號,經(jīng)過高精度,、高速度的ADC轉(zhuǎn)換之后得到一串數(shù)字信號,分幀送入到波形輸入緩沖區(qū)RAM,。然后經(jīng)過DSP內(nèi)部高速處理,通過各種算法實現(xiàn)各種效果。經(jīng)過處理的音頻信號再輸入到高精度,、高速度的DAC轉(zhuǎn)換器中,還原成模擬的聲音信號,經(jīng)音響功率放大電路放大輸出,。?
??? 為了實現(xiàn)音效的實時處理,加入了緩沖區(qū),。系統(tǒng)中各模塊是同時進行處理的,一部分信號正在ADC中進行轉(zhuǎn)換,而另一部分信號則正在DSP處理器中進行算法處理。整個系統(tǒng)以流水線方式進行工作,保證了對音效的實時處理,。?
2 系統(tǒng)硬件電路的設(shè)計?
??? DSP芯片選用美國TI公司的TMS320VC5402(以下簡稱‘C5402),單片機選用PIC16F72,A/D和D/A轉(zhuǎn)換器選用24位的CS4228A,其較寬的動態(tài)范圍能夠滿足高保真的音頻系統(tǒng)的要求,。?
2.1 ‘C5402?
??? ‘C5402是TI公司于1999年10月推出的性價比較高的定點數(shù)字信號處理器,主要特點如下:?
??? ·具有先進的多總線結(jié)構(gòu),三條16位數(shù)據(jù)存儲器總線,一條程序存儲器總線和四條地址總線;?
??? ·操作速率達100MIPS;?
??? ·40位算術(shù)邏輯單元(ALU),包括一個40位桶形移位器和兩個40位累加器;?
??? ·一個17×17乘法器和一個40位專用加法器,允許16位帶/不帶符號的乘法;?
??? ·整和維特比加速器,用于提高維特比編譯碼的速度;?
??? ·8個輔助寄存器及一個軟件棧,允許使用最先進的定點DSP、C語言編譯器;?
??? ·數(shù)據(jù)/程序?qū)ぶ房臻g為1M×16位,內(nèi)置4K×16位ROM和16K×16位RAM;?
??? ·內(nèi)置可編程等待狀態(tài)發(fā)生器,、鎖相環(huán)(PLL)時鐘產(chǎn)生器,、兩個多通道" title="多通道">多通道緩沖串行口、一個8位與外部處理器通信的HPI口,、兩個16位定時器以及6通道DMA控制器;?
??? ·低功耗,工作電源為3V和1.8V(內(nèi)核),。?
??? DSP通過其McBSP口與CS4228A相連。McBSP串口" title="串口">串口是在TDM串口和BSP串口的基礎(chǔ)上發(fā)展而來的,。它既可以實現(xiàn)時分多路通訊功能,又可以通過DSP提供的DMA功能實現(xiàn)不用CPU參與的自動緩存功能,從而把 DSP從繁重的串口通訊中解放出來,提高了運行的效率,。McBSP串口由數(shù)據(jù)接收發(fā)送部分、時鐘及幀同步" title="幀同步">幀同步信號產(chǎn)生器,、多通道選擇以及CPU中斷信號和DMA同步信號等組成,。同以前的串口相比,McBSP串口具有相當大的靈活性。串口的接收和發(fā)送時鐘CLKR和CLKX既可由外部設(shè)備提供,又可由內(nèi)部時鐘產(chǎn)生器提供;幀同步信號FSX和FSR的輸入,、輸出極性可以進行選擇;串口的信號發(fā)送和接收部分既可單獨運行,又可合在一起配合工作;CPU中斷信號和DMA同步信號使得Mc BSP串口可由CPU控制運行,也可脫離CPU通過直接內(nèi)存存取單獨運行;多通道選擇部分使得串口具備了多通道信號通訊能力,。?
??? 正是由于McBSP串口所特有的靈活性,使其可以滿足T1/E1標準和AC97標準。它的多通道接收和發(fā)送能力可達128個通道,數(shù)據(jù)寬度可在8,、12,、16、20,、24和32比特中任選,可進行A律和μ律壓縮和擴展,。8比特數(shù)據(jù)傳送時可選擇從高位或低位開始傳送,幀同步信號和數(shù)據(jù)時鐘信號的極性可編程,內(nèi)部時鐘和幀同步信號產(chǎn)生器也可由軟件編程控制。?
2.2 A/D和D/A電路?
??? CS4228A多媒體數(shù)字信號編解碼器(CODEC) 在一個壓縮的28針SSOP芯片上可提供兩個模/數(shù)轉(zhuǎn)換器和6個數(shù)/模轉(zhuǎn)換器,并分別帶有音量控制功能,。CS4228A芯片具有功能較強,、連接方便、控制容易的特點,。該芯片與環(huán)繞聲解碼器相結(jié)合,成為DVD機,、A/V功放接收器和汽車音響的理想芯片。它可支持杜比數(shù)碼AC-3,、AAC,、DTS、杜比邏輯環(huán)繞聲(Dolby Pro-Logic),、THX和MPEG等標準,。一個靈活的串行接口允許使用Left Justified、Right Justified,、I2S,、或One Line Data 模式,。采樣率可達100kHz,具有可連接片外靜音電路的靜音控制引腳,片內(nèi)具有抗混疊和輸出平滑濾波器。 ?
??? 在本系統(tǒng)中,CS4228A采用主模式的工作方式,。在工作過程中,LRCK管腳向DSP發(fā)出一個幀同步信號,而采樣的數(shù)據(jù)信號將接著幀同步信號后由SDOUT管腳向DSP傳送 ,從而完成采樣的全過程,。經(jīng)過DSP處理的數(shù)據(jù)信號由BDX0管腳向CS4228A傳送。CS4228A與DSP之間的主要接線如圖2所示,。?
?
?
2.3 單片機部分?
??? 單片機主要完成兩部分的工作,一是對CS4228A的操作,通過CCLK,、CDIN、CS和RST管腳實現(xiàn)對它的初始化和工作模式的選擇;另一就是對鍵盤和LED的控制,實現(xiàn)效果選擇和參數(shù)顯示,。?
3 軟件設(shè)計?
??? 軟件部分包括DSP編程和單片機編程,。DSP編程的主要任務(wù)是完成音頻信號的算法處理,單片機編程的重點則是管理DSP操作和應(yīng)用層軟件的編寫。本系統(tǒng)若完全采用匯編語言進行編程,比較麻煩,而C語言以其靈活性和易移植性已經(jīng)廣泛應(yīng)用在開發(fā)系統(tǒng)中,。對于更復(fù)雜的系統(tǒng)更是如此,。本系統(tǒng)采用了混合編程的方法。?
??? 這里主要介紹一下音頻算法處理的實現(xiàn),。在進行算法研究時,先在PC機上用Matlab進行仿真,然后再移植到DSP平臺中,。考慮到效率問題,可進一步進行手工匯編的調(diào)整,。在各種效果實現(xiàn)的過程中,延時不僅是一種最基本的輸出效果,也是實現(xiàn)其它輸出效果的基礎(chǔ),如混響效果,、合唱效果、弗蘭格效果,都離不開延時,。?
??? 基本的延時有兩種,其中一種是不帶反饋的,其原理如圖3所示,它只是對輸入實現(xiàn)一次延時,能實現(xiàn)回聲效果;另一種是帶反饋控制的延時,它能實現(xiàn)聲音的反復(fù)延時、重復(fù)播放,其原理如圖4所示,。?
?
?
?
??? 還有一種特殊的延時,它的延時時間是可變的,可以在基本延時結(jié)構(gòu)的基礎(chǔ)上加一個低頻振蕩器(LFO)來實現(xiàn),。一般情況下,可以用正弦波或者三角波來實現(xiàn)。在合唱和弗蘭格效果的實現(xiàn)過程中就要用到這種延時,。其原理如圖5所示,。?
?
?
??? 目前,基于數(shù)字化的延時設(shè)備的應(yīng)用已非常有效。實際上,數(shù)字延時設(shè)備的實現(xiàn)非常簡單,只要有一定容量的內(nèi)存,在每一個取樣間隔將先前值從存儲器的一個單元中讀出來,然后將當前的輸入值存儲在另一個存儲單元中(有時,這兩個存儲區(qū)域可能是同一個區(qū)域,所以在寫入一個值前,必須首先將其中的值讀出)即可,。在下一個取樣期間,讀寫存儲區(qū)間的另一個區(qū)域,當?shù)竭_存儲器底部時,又將從第一個存儲區(qū)域開始循環(huán),。編寫一個延時程序一般會使用兩個指針:一個讀指針和一個寫指針,用來記錄從存儲器讀出的地址和寫入存儲器的地址。每進行一次操作指針就會自動加一,。對于第一種不帶反饋的延時,可用如下C程序?qū)崿F(xiàn):?
??? void delay( )?
??? {?
??? int?? i,j,k;?
??? for? (i=0;i<=delay_size;i++)?
???? ??? {? if??? (i>=delay)?
?????? ?????????? j=i-delay;? //work out the buffer position?
??????????? else j=i-delay+delay_size+1;?
??? ??? //add the delayed sample to the input sample?
??? ?????????? s=input+delay_buffer[j]*decay;?
??? ??? //store the result in the delay buffer ,and output?
?? ??????????? delay_buffer[i]=s;?
?? ??????????? output=s;?
??? ??? }?
??? }?
??? 混響也是一種比較常用且重要的效果,其實現(xiàn)比較復(fù)雜,要通過六個并聯(lián)的梳狀濾波器comb和一個全通濾波器allpass才能很好地實現(xiàn),。其實現(xiàn)過程如圖6所示。
?
?
4 CCS集成開發(fā)平臺的應(yīng)用?
??? Code Composer Studio 簡稱CCS,是TI公司推出的為開發(fā)TMS320系列DSP軟件的集成開發(fā)環(huán)境,。CCS工作在Windows操作系統(tǒng)下,采用圖形接口界面,提供有編輯工具和工程管理工具,。CCS所集成的代碼調(diào)試工具具有各種調(diào)試功能,包括原TI公司提供的C源代碼調(diào)試器和模擬器所具有的全部功能,支持ASM編程、C語言編程以及ASM和C語言混合編程,。能對TMS320系列DSP進行指令級的仿真和可視化的實時數(shù)據(jù)分析,。CCS在調(diào)試和仿真時具有很強的功能:允許中斷點,、剖析點及探測點三種斷點設(shè)置,分別實現(xiàn)程序斷點、實時分析和數(shù)據(jù)導(dǎo)入等功能,。此外,還提供豐富的輸入/輸出庫函數(shù)和信號處理的庫函數(shù),極大地方便了TMS320系列DSP軟件的開發(fā)過程,。在程序編譯時,設(shè)定不同的編譯選項來控制優(yōu)化目標,如使用-pm、-o3和內(nèi)聯(lián)函數(shù)等,其效果是顯著的,計算速度可提高很多,。?
??? 本文設(shè)計完成的的音頻信號處理系統(tǒng)實現(xiàn)了音頻的壓縮,、失真、均衡,、延時,、混響等效果,各種效果可以單獨使用,也可以串接使用,都能達到預(yù)想的效果。把相同的電吉它信號分別輸入ZOOM 505(日產(chǎn)電吉它音效器)系統(tǒng)和本系統(tǒng),然后在時域與頻域以及振幅與相位上對輸出波形進行比較,可以看出最后的音色效果幾乎一樣,。將它用于調(diào)音臺或效果器等音頻設(shè)備,具有廣闊的市場前景,。?
參考文獻?
1 TMS320VC5402 FixedPoint Signal Processor.TI Technology?Document Sprs079e, 2000.8?
2 彭振哲.使用TMS320C542構(gòu)成數(shù)據(jù)采集處理系統(tǒng).電子技術(shù)應(yīng)用, 2000;26(9)