<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è) > 嵌入式系統 > 設計應用 > 基于DSP和MATLAB的語(yǔ)音數據采集和處理系統

基于DSP和MATLAB的語(yǔ)音數據采集和處理系統

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

1 引言
---目前迅速發(fā)展的數字信號處理器已在數據采集、通信及多媒體等領(lǐng)域中得到廣泛的應用。本系統采用TI公司16位定點(diǎn)高速芯片TMS320C5410和專(zhuān)用語(yǔ)音采集芯片TLC320AD50進(jìn)行數據采集和相關(guān)濾波、壓縮處理,并將最終的數據流經(jīng)串口送入計算機。在計算機中使用控制串口接收數據并完成解壓、回放、編碼、通信仿真等處理。

2 硬件接口電路


---

2.1 TMS320C5410外部擴展電路
---TMS320C5410是TI公司于1996年推出的定點(diǎn)數字信號處理器。它運行速度快,單周期定點(diǎn)指令執行時(shí)間10ns或8.3ns,遠大于語(yǔ)音采集和處理的要求。另外它采用修正的哈佛結構,程序與數據分開(kāi)存放,內部具有8條高度并行性的總線(xiàn)。其中,一組程序總線(xiàn),三組16位數據總線(xiàn)和四組地址總線(xiàn)。允許數據存放在程序存儲器中,并被算術(shù)指令直接使用,大大提高了運行速度和靈活性。CPU具有40位算術(shù)邏輯單元,兩個(gè)獨立的40位累加器,17×17位并行乘法器,一個(gè)40位桶形移位寄存器、8個(gè)輔助寄存器、2個(gè)輔助寄存器算術(shù)邏輯單元。最大可有8M字可尋址程序存儲空間,可訪(fǎng)問(wèn)的數據存儲空間有64K字,I/O存儲器空間有64KB。其中片內64KB的RAM包括兩塊2KB的DARAM,七塊8KB的SARAM以及片內16KB的ROM配置位程序存儲器。片上集成一個(gè)16位定時(shí)器、軟件可編程等待狀態(tài)發(fā)生器、六通道直接存儲器訪(fǎng)問(wèn)(DMA)控制器、三個(gè)多通道緩沖串口(McBSP)以及一個(gè)8位增強型主機接口(HPI8)。
---圖1為與存儲器的接口電路,其中PS、DS、IS分別為程序、數據和I/O空間選擇信號。MSTRB、IOSTRB分別為存儲器和I/O選通信號。
---另外,由于FLASH存儲器與EPROM相比有更高的性?xún)r(jià)比,而且體積小,功耗低,可電擦寫(xiě),使用較方便。因此,本系統也擴展了一片FLASH存儲器,圖2為與FLASH的接口電路。FLASH芯片為AMD公司的AM29LV400B,該芯片為單電源供電,支持整片擦除,每個(gè)分區有保護,避免意外擦除,并且使用壽命很長(cháng)。

--2.2 TMS320C5410與TLC320AD50的接口電路
---AD轉換是本系統的重要組成部分,要著(zhù)重考慮轉換精度和抗干擾問(wèn)題。本系統所用AD和DA轉換芯片為T(mén)I公司的TLC320AD50,它在一個(gè)封裝中集成了兩種功能,可同時(shí)進(jìn)行AD和DA轉換。圖3為T(mén)MS320C5410和TLC320AD50的接口電路。
---AD50采用16位過(guò)采樣sigma-delta技術(shù),以8K的采樣率對輸入的語(yǔ)音信號進(jìn)行采樣、量化,按同步串行方式傳給5410進(jìn)行處理。AD50向CPU發(fā)出幀同步和移位時(shí)鐘信號來(lái)控制數據的串行傳輸。在此需說(shuō)明一下,本系統主要用來(lái)將語(yǔ)音信號通過(guò)AD轉換采集進(jìn)來(lái),然后串行發(fā)送給PC,在PC中用接收信號并進(jìn)行處理。整個(gè)過(guò)程中DA轉換并不在信號處理的主要流程中,DA轉換只是用來(lái)驗證采集數據時(shí)所用到的濾波、壓縮算法的正確性與合理性。所以,在編寫(xiě)系統軟件時(shí)并沒(méi)有將DA轉換寫(xiě)入。此外,把DA轉換加進(jìn)來(lái)也是為了豐富系統硬件資源利于今后進(jìn)行功能擴展。
---2.3 TMS320C5410與PC機的串口通信
---本系統采用MAX232E構成5410與PC間的通信接口。MAXIM公司的MAX232E采用單5V電源供電,使用時(shí)只需外接4個(gè)電容就能完成TTL與RS232間的電平和邏輯關(guān)系的轉換。經(jīng)過(guò)系統處理的語(yǔ)音信號通過(guò)串口以9600b/s的速率送入計算機,在計算機中通過(guò)控制串口接收數據,并且利用MATLAB強大的數據處理能力對語(yǔ)音信號進(jìn)行處理。

3 軟件實(shí)現


---

本系統的軟件由上位機部分和下位機部分組成。其中,下位機部分主要是針對DSP編程完成語(yǔ)音信號的采樣、量化、濾波、壓縮編碼、以及與PC的串行通信。上位機部分主要是采用MATLAB語(yǔ)言編程進(jìn)行串口數據接收、解壓縮、以文件的形式存儲數據并且最終將該數據文件送入本人用MATLAB語(yǔ)言完成的一個(gè)通信信號處理系統進(jìn)行進(jìn)一步處理。


---3.1 下位機部分
---整個(gè)下位機部分的程序流程圖如圖4所示,其中濾波部分為一個(gè)FIR高通濾波算法。這是因為主要采集的對象為語(yǔ)音信號,而TLC320AD50內部只有一個(gè)低通濾波器,可以用于濾除高于3.4kHz的干擾信號,但是對于低于300Hz的干擾則無(wú)能為力,所以針對DSP編程設計一個(gè)FIR高通濾波器濾除低頻干擾。FIR濾波器在數學(xué)上可表示為:

---式(1)中x(n)為最近的輸入信號,x(n-k)為延時(shí)了k個(gè)取樣周期的輸入信號,y(n)為時(shí)刻t=nT的濾波器輸出信號,N為濾波器的階數。h(k)是第k個(gè)延時(shí)節的加權值,既濾波器系數,可由MATLAB的kaiserord函數和fir1函數共同算得。從計算結果可以看出,一個(gè)N(設N為偶數)階的FIR濾波器具有系數對稱(chēng)性,從而其輸出方程可進(jìn)一步簡(jiǎn)寫(xiě)為:
---y(n)=h0[x(k)+x(k-N+1)]+h1[x
---(k-1)+x(k-N+2)]+Λ+
---nH/2-1[x(k-N/2+1)+x(k-
v---N/2)] (2)
---根據(2)式可以編寫(xiě)相應程序完成FIR高通濾波。
---語(yǔ)音壓縮部分采用的是非失真的壓縮算法。具體為:當有兩個(gè)以上連續相等的數據時(shí),可以用3字節表示,即前2字節相等表示被壓縮的數據值,后1字節表示被重復次數。由于語(yǔ)音信號自身的特點(diǎn),即冗余度大,這就為此種壓縮提供了可能。同樣,在解壓時(shí),程序讀入數據流,當遇到兩個(gè)相等數據時(shí)則重復此數,重復次數由后一個(gè)數據決定。


3.2 上位機部分
---本次設計中比較新穎的地方就是上位機部分采用MATLAB控制串口接收并處理數據。比起VC或者VB,用MATLAB作上位機程序有其獨特的優(yōu)勢。MATLAB自帶很龐大的函數庫,控制串口有serial等函數,語(yǔ)音的回放有wavread函數,至于信號處理更是MATLAB的強項,它自帶的信號處理工具箱函數大大的縮短了系統軟件開(kāi)發(fā)的周期。另外,MATLAB作人機交互界面也很方便,其自帶的GUI工具包使整個(gè)過(guò)程快捷、流暢,比起VB也遜色不了多少。
---3.1.1 MATLAB的人機交互軟件設計


---

用MATLAB控制串口接收數據有以下幾步:
---1. 先進(jìn)行串口的初始化操作,然后打開(kāi)串口,用到的函數為:serial和open。
---2. 設定MATLAB和DSP的握手方式,可通過(guò)串口目標的FlowControl屬性設定。
---3. 接收和發(fā)送數據,用到fread和fwrite函數。
---界面如圖5所示,調試時(shí)注意MATLAB本身的GUI環(huán)境下設計的軟件界面不能使用全局變量,若是使用會(huì )出現函數使用錯誤。另外,接收和發(fā)送數據之前要清PC的數據緩沖區,以免接收到或發(fā)送的數據不是當前數據。最后,接收到的數據應以文件的形式存儲下來(lái),以便后續的系統處理。
---3.1.2 信號處理系統設計
---上位機的信號處理系統的設計思路是這樣的,信號首先以文件的形式輸入處理系統進(jìn)行頻譜分析,觀(guān)察信號是否被噪聲污染。若其頻譜含有噪聲譜則馬上進(jìn)入濾波器模塊進(jìn)行濾波,以濾除信號中的噪聲。然后,再將濾波后的信號送入編解碼模塊進(jìn)行編碼或解碼(在這里用戶(hù)可以選擇不同的編解碼方式)。最后將信號送入通信仿真模塊進(jìn)行各種調制或解調處理及相應波形的顯示。

結束語(yǔ)
---TMS320C5410作為高速數字信號處理器具有快速的運算能力,結合MATLAB強大的信號處理能力,完全可以達到較復雜的語(yǔ)音信號處理要求。而且系統的可擴展能力很強,可對軟件進(jìn)行修改或者添加新的快速的算法提高系統信號處理的實(shí)時(shí)性。

濾波器相關(guān)文章:濾波器原理


濾波器相關(guān)文章:濾波器原理


低通濾波器相關(guān)文章:低通濾波器原理


存儲器相關(guān)文章:存儲器原理


高通濾波器相關(guān)文章:高通濾波器原理


關(guān)鍵詞: DSP MATLAB 語(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>