基于TMS320C64x DSP的語音采集與盲信號(hào)分離系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:本文利用tms320c64xdsp的多通道緩沖串口(mcbsp)和增強(qiáng)型直接存儲(chǔ)器訪問(edma)的特點(diǎn),設(shè)計(jì)出了混合語音采集與盲信號(hào)分離(bss)系統(tǒng)。
關(guān)鍵詞:盲信號(hào)分離;mcbsp; edma
引言
盲信號(hào)分離是指在對(duì)彼此獨(dú)立的源信號(hào)混合過程中及各源信號(hào)本身均未知的情況下,從混合信號(hào)中分離出這些源信號(hào)的方法。bss可以用來從多個(gè)麥克風(fēng)混合語音信號(hào)中提煉出單個(gè)語音信號(hào)。然而,現(xiàn)有的bss算法比較復(fù)雜、運(yùn)算量大、實(shí)時(shí)性差,不能滿足語音處理對(duì)實(shí)時(shí)性的要求,從而限制了它的硬件實(shí)現(xiàn)和應(yīng)用。
本文利用tms320c6416 dsp設(shè)計(jì)出了混合語音盲信號(hào)分離系統(tǒng)。該系統(tǒng)通過采集的兩路混合語音信號(hào)進(jìn)行盲信號(hào)分離,實(shí)時(shí)輸出分離的語音信號(hào)。tms320c6416的特點(diǎn)
本系統(tǒng)用tms320c6416(以下簡(jiǎn)稱c6416)的2個(gè)mcbsp和edma來實(shí)現(xiàn)語音信號(hào)的采集、數(shù)據(jù)的傳遞和分離語音的輸出。
mcbsp的特點(diǎn)
除了具有標(biāo)準(zhǔn)串口的功能以外,mcbsp還有以下特點(diǎn):支持多種傳輸接口,如mvip兼容的交換方式以及st-bus兼容設(shè)備和t1/e1幀協(xié)議等;可以與多達(dá)128個(gè)通道進(jìn)行收發(fā);支持不同字長(zhǎng)的數(shù)據(jù)傳輸,并且當(dāng)8bit數(shù)據(jù)傳輸時(shí),還可以選擇先傳lsb或msb;可設(shè)置幀同步信號(hào)和數(shù)據(jù)時(shí)鐘信號(hào)的極性;內(nèi)部傳輸時(shí)鐘和幀同步信號(hào)可編程程度高。
edma的特點(diǎn)
edma控制器負(fù)責(zé)片內(nèi)l2存儲(chǔ)器與其他外設(shè)之間的數(shù)據(jù)傳輸。edma和dma控制器在結(jié)構(gòu)上有很大的不同,dma控制器是基于寄存器結(jié)構(gòu)的,而edma控制器是基于ram結(jié)構(gòu)的。其增強(qiáng)之處包括:提供了64個(gè)通道;通道之間的優(yōu)先級(jí)可以設(shè)置;支持不同結(jié)構(gòu)數(shù)據(jù)傳輸?shù)逆溄印dma控制器由事件和中斷處理寄存器、事件編碼器、參數(shù)ram和硬件地址產(chǎn)生器組成。首先,事件寄存器對(duì)edma事件進(jìn)行捕獲,事件編碼器再對(duì)同時(shí)發(fā)生的多個(gè)事件進(jìn)行分辨,最后,硬件地址產(chǎn)生器根據(jù)參數(shù)ram中存放的相關(guān)傳輸參數(shù)產(chǎn)生讀寫操作所需要的地址。edma數(shù)據(jù)的傳輸格式和控制都是通過設(shè)置edma控制寄存器和參數(shù)ram來實(shí)現(xiàn)的,每個(gè)通道有一組6個(gè)字節(jié)(192 bit)參數(shù)ram,可以通過32 bit的外設(shè)總線對(duì)其進(jìn)行訪問。接口設(shè)計(jì)
由于本系統(tǒng)采樣的數(shù)據(jù)量比較大,并且c6416的mcbsp通道含有m律和a律壓擴(kuò)硬件,支持對(duì)輸入數(shù)據(jù)的m律或a律擴(kuò)展以及對(duì)輸出數(shù)據(jù)的m律或a律壓縮,因此,本文選用a律編/解碼芯片tp3057作為adc和dac。
系統(tǒng)選用兩片tp3057,它們將麥克風(fēng)采集到的語音信號(hào)數(shù)字化(8khz的采樣頻率),輸出8位a律pcm碼。圖1是tp3057和c6416的接口圖。
本方案將c6416的mcbsp0和mcbsp2分別與兩片tp3057相連,采集兩路混合語音信號(hào)。tp3057(1)還會(huì)輸出分離語音信號(hào)。tp3057將模擬混合語音信號(hào)轉(zhuǎn)換為8位a律pcm,然后在fsx為低期間,c6416通過mcbsp接收pcm碼,經(jīng)過mcbsp a律解壓縮后放入drr中,再由edma控制器將數(shù)據(jù)從drr中讀到l2中的sdram指定單元,最后進(jìn)行bss處理。分離語音信號(hào)由edma送到mcbsp0中的發(fā)送寄存器(dxr),經(jīng)過a律壓縮后送入發(fā)送移位寄存器,然后在fsr為低期間,經(jīng)接口送到tp3057(1)。tp3057(1)把數(shù)據(jù)a律解壓縮后用揚(yáng)聲器輸出。
系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的程序主要有以下幾部分構(gòu)成:c6416的初始化、mcbsp0和mcbsp2兩通道的初始化、edma通道的設(shè)置以及bss子程序。圖2給出了系統(tǒng)的程序流程。
c6416的初始化主要是對(duì)dsp時(shí)鐘、工作模式、片內(nèi)l2存儲(chǔ)器的分配和dsp堆棧的設(shè)置。mcbsp0和mcbsp2兩通道的初始化則是通過14個(gè)控制寄存器來設(shè)置時(shí)鐘和幀同步信號(hào)、幀同步的相位、幀的長(zhǎng)度、數(shù)據(jù)單元的字長(zhǎng)、數(shù)據(jù)延遲和壓擴(kuò)方式等。在本系統(tǒng)中,由于接口處是8位pcm碼,所以數(shù)據(jù)單元的字長(zhǎng)設(shè)置為0,以8位傳輸,延遲為0,并將壓擴(kuò)模式設(shè)置為a律。edma通道初始化主要是對(duì)相關(guān)通道(通道12、13、17和18)的控制寄存器和傳輸參數(shù)ram進(jìn)行設(shè)置。而bss子程序是整個(gè)系統(tǒng)的核心部分,對(duì)采集到的兩路混合語音信號(hào)運(yùn)用盲信號(hào)分離方法進(jìn)行處理,分離出語音信號(hào)。結(jié)語
本文設(shè)計(jì)了一個(gè)高性能的混合語音信號(hào)采集與盲分離系統(tǒng),采集到的數(shù)據(jù)經(jīng)過dsp的mcbsp 和edma通道直接被送到片內(nèi)存儲(chǔ)器堆棧中,然后進(jìn)行bss,將混合語音分離出來。
另外,由于bss算法復(fù)雜,在一定程度上影響了整個(gè)系統(tǒng)的性能。因此,要想進(jìn)一步提高系統(tǒng)的實(shí)時(shí)性,研究簡(jiǎn)單的、易于實(shí)現(xiàn)的、魯棒性好的bss算法是十分必要的,這也是下一步工作要解決的問題?!鰠⒖嘉墨I(xiàn)
1 tms320c60000 dsp reference set(rev.). texas instrumentinc. 2003
2 he, p., sommen, p.c.w. and yin, b. a realtime dsp blind signal separation experimental system based on a new simplified mixing model[j]. proc. of eurocon’2001, bratislava, slovak republic. july. 2001
3 李方慧 等.tms320c6000系列dsps原理與應(yīng)用[m]. 北京:電子工業(yè)出版社,2003. 1