以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- DSP系統和硬件開發討論區 (http://www.hufushizhe.com/bbs/list.asp?boardid=5) ---- 基于TMS320C64x DSP/BIOSⅡ的嵌入式語音采集與盲分離系統設計 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=5&id=1298) |
-- 作者:wangxinxin -- 發布時間:2010-11-13 10:58:07 -- 基于TMS320C64x DSP/BIOSⅡ的嵌入式語音采集與盲分離系統設計 摘要:盲信號分離是信號處理領域的熱點問題,涌現了許多成熟的算法,但它的硬件實現相對比較滯后。本文利用美國TI公司的TMS320C64X DSP芯片的多通道緩沖串口和增強型直接存儲器訪問(EDMA)的特點,并結合DSP/BIOSⅡ實時操作系統,設計出了嵌入式混合語音采集與盲分離系統。該系統結構簡單、易于集成、實時性好。 關鍵詞:數字信號處理芯片;盲信號分離;DSP/BIOS II嵌入式實時操作系統 1 概述 盲信號分離(BSS)是指在對彼此獨立的源信號的混合過程及各源信號本身均未知的情況下,如何從混合信號中分離出這些源信號。BSS可以用來從多個話筒混合語音信號中提取出單個的語音信號。然而,現有的BSS算法比較復雜、運算量大、實時性差,不能滿足語音處理對實時性的要求,從而限制了它的硬件實現和應用。 隨著IC技術的發展,DSP芯片的功能越來越強大。以數字器件特有的穩定性、可重復性、可大規模集成,特別是可編程性高和易于實現自適應處理的特點,DSP芯片從另一個方向解決了像BSS這樣復雜算法的實現問題。由于系統開發中的復雜硬件功能現在均已集成到了DSP芯片中,系統開發人員只需選擇合適的芯片并根據該硬件結構來設計軟件即可。因此,系統開發的主要難度已經轉移到了軟件設計上。而傳統的編程方式很難應付日益復雜的算法、系統設計,編程難度很大。DSP/BIOS II是TI公司為它的TMS320C5000和TMS320C6000系列DSP而設計的、免費的、用于復雜系統開發與應用的、可裁減的多任務實時內核,它大大地簡化了程序設計的難度和提高了系統的穩定性。 本文利用TMS320C6416 DSP設計出了基于DSP/BIOS II的、高性能的嵌入式混合語音盲信號分離系統。該系統通過采集的兩路混合語音信號進行BSS,能實時地輸出分離的語音信號。 2 盲信號分離 盲信號分離可以用下面的混合方程描述: 式中為n個源信號構成的n維向量;為m維觀測數 據向量,它的元素是各個傳感器得到的輸出;m×n維矩陣A稱為混合矩陣,它的元素表示信號的混合情況。式(1)的含義是n個源信號通過混合得到m維觀測數據向量。盲信號分離問題的提法是:在混合矩陣A和源信號未知的情況下,只根據觀測數據向量) X (t)確定分離矩陣W,使得變換后的輸出是源信號向量) S(t) 的復制或估計。 最大熵(ME)算法、獨立成分分析理論(ICA)、最小互信息量(MMI)算法和最大似然盲信號分離(ML)算法是幾種常用的盲信號分離算法。 3 系統設計 本系統用TMS320C6416芯片的2個McBSP和EDMA來實現語音信號的采集、數據的傳遞和分離語音的輸出。 3.1 系統硬件設計 32 位定點TMS320C6416芯片是TI公司TMS320C64X系列DSP的代表產品,其時鐘頻率為400 ~600MHz,可以同時執行8條32位指令,最大峰值速度為4800MIPS。外設資源十分豐富,其中包含一個具有64個獨立通道的增強型存儲器直接存儲(EDMA)控制器和3個多通道緩沖串口(McBSP)。 用于語音數據轉換的ADC和DAC很多,如TI公司生產的語音信號編碼解碼芯片TLC320AD50,ADI公司的AD1674等。由于C6416的McBSP通道含有μ律和A律壓擴硬件,支持對輸入數據的μ律或A律擴展以及對輸出數據的μ律或A律壓縮,又美國國家半導體(NS)公司的A律編解碼芯片TP3057為8位的串行A律壓擴編解碼器,包含一個利用D/A、A/D轉換結構的A律脈沖編碼調制的編/解碼器電路和一個串行PCM接口。因此,我們選用作TP3057為ADC和DAC。 系統選用兩片TP3057,它們把用麥克風采集到的語音信號數字化(8kHz的采樣頻率),輸出8位A律PCM碼。同時,其中一片TP3057還將C6416 McBSP輸出的A律PCM碼解壓縮后,通過揚聲器輸出。 我們將C6416的McBSP0和McBSP2分別與兩片TP3057相連,采集兩路混合語音信號,TP3057(1)還會輸出分離語音信號。TP3057將模擬混合語音信號轉換為8位A律PCM碼,然后在FSX為低期間,C6416通過McBSP接收PCM碼,經McBSP A律解壓縮后放入DRR中,再由EDMA控制器將數據從DRR中讀到L2中的SDRAM指定單元,最后進行BSS處理。分離語音信號由EDMA送到McBSP0中的發送寄存器(DXR),經過A律壓縮后送入發送移位寄存器,然后在FSR為低期間,經接口送到TP3057(1)。TP3057(1)把數據A律解壓縮后用揚聲器輸出。 3.2 嵌入式設計 DSP/BIOS II是TI為它的TMS320C5000和TMS320C6000系列DSP開發的一個免費的、用戶可剪裁的實時操作系統,集成在TI的Code Composer Studio集成開發環境之中,主要由四部分組成:搶占式多任務實時內核、配置工具、實時分析工具和芯片支持庫。利用此實時操作系統,可以方便快速地開發復雜的DSP程序。操作系統維護、調度多線程的運行,只需將定制的數字信號算法作為一個線程嵌入系統即可;芯片支持庫幫助管理外設資源;復雜的外設寄存器初始化可以直接利用圖形工具配置;實時分析工具可以幫助分析算法實時運行情況。DSP/BIOS II以模塊化方式提供給用戶,對線程、中斷、定時器、內存資源、所有外設資源的管理能力都可以根據需要剪裁。實際應用中需要定制的算法作為一個線程插入隊列,由DSP/BIOS II進行調度。 在本系統中,需要用DSP/BIOS II的配置工具來配置生成一個軟件中斷(BssSWI)、三個PIP對象(DSS_rx1Pipe、DSS_rx2Pipe和DSS_txPipe)、一個硬件中斷(HWI)。BssSWI實現BSS。三個PIP對象完成與語音編解碼芯片相連接的串口和軟件中斷之間的數據交換,語音編解碼芯片采集到的兩路語音數據流向串口,然后經DSS_rx1Pipe和DSS_rx2Pipe送到軟件中斷,軟件中斷對兩路信號進行盲分離(BSS),然后將分離出來的信號DSS_txPipe送回串口ISR,最后送到語音編解碼芯片輸出。程序信號流程圖如圖3所示。 圖中三個PIP對象中的DSS_rx2Pipe和DSS_rx1Pipe分別對應著SWI郵箱中的bit2和bit1,DSS_txPipe對應著SWI郵箱中的bit0,初始值均為1,通過這三位來實現同步。當ISR接收到一滿幀信號,就會調用相應的SWI_andn( ) 來清除SWI 郵箱中的相應位(如DSS_rx1Pipe調用SWI_andn(1)來清除郵箱中的bit1)。而且, 當出現一個空的數據接收塊時,將調用SWI_andn(0)來清除郵箱中的bit0。一旦bit2、bit1和bit0均為0時,觸發BssSWI,就調用Bss( )來進行盲信號分離。 4 結束語 本文設計了一個高性能的、基于DSP/BIOS II的嵌入式混合語音信號的采集與盲分離系統,采集到的數據經過DSP的McBSP和EDMA通道直接被送到片內存儲器堆棧中,然后進行BSS,將混合語音分離出來。系統還采用了實時操作系統DSP/BIOS II,大大地簡化了編程的難度和提高了系統的實時性和穩定性。由于該系統結構簡單、實時性好、性能穩定和易于集成,所以在移動通信終端有廣泛的應用空間和良好的市場前景。 另外,由于BSS算法復雜,在一定程度上影響了整個系統的性能。因此,要想進一步提高系統的實時性,研究簡單的、易于實現的、魯棒性好的BSS算法是十分必要的,這也是我們的下一步工作。 |