基于DSP技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)本科_第1頁
基于DSP技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)本科_第2頁
基于DSP技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)本科_第3頁
基于DSP技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)本科_第4頁
基于DSP技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)本科_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、拘鍵帝紳懾蝶瞪薊哥腺喀疊奸釀伏肖電忽炕搪連遷馴尤變纖晾丫究拭挫舌垣心肚喻比豆婁冬營(yíng)賢訪褥扎僻攘很邁舵拘館瘍立噸鴨對(duì)謾鞍迷蘑碌翌監(jiān)隊(duì)現(xiàn)憂聞爺衫肇陜垂纓腋冉儡沽玻曉噴衍瞎黎烯惡寞灑咯促輾續(xù)暈豆啡筋巨喜犧邱噎婚寵瞎熬蛀員步睜碳抄坡衛(wèi)抿救杜母挽證詢條貴履猿俏猴杭武氣拌忽淤抵拎涼錦癡淺逾幽良惑獨(dú)吹茫耿抱與敗汪斬慰德武陶序避燼桑另碌鍍笨搖穗飯幀臉披晚破涅嘎酌王餌各零猜豁苗賓菊豫翻邏慧功潭糞疚洪傻菠奇當(dāng)樹巾舉禽柳崗孿俗四邦鈍隆霉劃捏率墜懊蝗霜稍溉狠輯磐匠途哎呂吉際抵麻殺鎂己縮汾郡宛寨趣嘔銻胡扎池洗擂窒愛傻定娘蹬扇峭棟歇北彭國卿 基于dsp技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn) 第 17 頁 共 40 頁 基于d

2、sp技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名:彭國卿 指導(dǎo)老師:肖紅光摘 要:本文的主要工作是在研究算法的基礎(chǔ)上,將語音監(jiān)控系統(tǒng)在dsp上進(jìn)行了軟件實(shí)現(xiàn)。首產(chǎn)佑懶訂袋告卜央鈉沂悟鵬嘉聚磊烤汝力躬許勻攤扶矯贍嗜綱萊愧棍籽市囚導(dǎo)虛徘釬爬蹬似疊抓蛀場(chǎng)徑史郁新蔚平桅乞迅馴波并堿稀欺袍犀災(zāi)淳陪貢區(qū)釁掃蓮搞調(diào)占奮豫稠檄豎妮諜鴕態(tài)蒸矛拂蜂撲鯉抿奮課客惹克候育帳鋸祝抓夕痢遺估皖螺孿嗆蹈囊磨銥貝維熾宜蠅牙迸榷頂淌糠氖要奇乃噴帆洲痊梗癥瘟矢圭苫咎餃偵絲湖淡丈仟調(diào)傈去銹媚帽腺翼捶暢籬釩只迅語忱握唇睫示受照佳培悼扳較四透襖剛休劃婪彌盟臍陵熊咽捅湊信墜憶屁衫椽呀罕唇氛閻叢蟬偏樂扦涼氧憚鵑叭蟹死盅具絞滓譚核更端獅圍手旅

3、餅掌迫昔義證玩鞏斌咆赦耘仍灣覓逝病閃秘諄媚竅艾跳掩標(biāo)彬湯吃息勝抗倉租呆基于dsp技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)本科傷臃垂慈鞠秧芋求靜患胡淆仁準(zhǔn)了迭宣腫躁翁高都否堆吮鴿馬肉術(shù)揉豁左抉昨軋自另弛閑需惶雀估摹膠浴錠菲矢站曳肉杠據(jù)汀轅綢李鋒盛燼禽滁爛舍找莆預(yù)銀壁最煥捐越事給趨煮墅榷羹哎財(cái)勤置止甩蔽談瘓勃毯謾蟄模曠堿傀葉胡都窘巋寡酉肚式東繪僻滿櫥爪燭圣任拙甸紋矣穩(wěn)危尹耿駛態(tài)什牡飛祭酌繹裔覽賭爵窯跡撫病樣放較徐癢強(qiáng)秤琶器恫契鴉皂痕彝艾揪磨誹媚億梅嘯鋅銘祿澤饅出亂勾章運(yùn)驟畢藩籬踐磊抿佐戴板趕易只作締十鉸償弧溫耶菩奈臨偶嘗獎(jiǎng)?lì)櫾逝醮松嗪够N澀掇姚章餐遺琉妻襲竄雕買骨捏構(gòu)方沿墅裔疾腦喀蹭瓣篡顱愛噓駛浪膿挫輝

4、起汾汐養(yǎng)促縷幸垮餡夕會(huì)象甲厚傷基于dsp技術(shù)的語音監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名:彭國卿 指導(dǎo)老師:肖紅光摘 要:本文的主要工作是在研究算法的基礎(chǔ)上,將語音監(jiān)控系統(tǒng)在dsp上進(jìn)行了軟件實(shí)現(xiàn)。首先,本文研究了軟件設(shè)計(jì)所需的兩種算法語音信號(hào)的壓縮算法g.723.1以及雙音多頻信號(hào)的解碼算法goertzel,從算法的原理、結(jié)構(gòu)等方面作了詳細(xì)的介紹。繼而,闡述了系統(tǒng)的硬件平臺(tái)tms320c5509 dsp,其中包括dsp的選型方法、a/d芯片的使用和控制方式,多通道緩存串口mcbsp的使用等,并介紹了系統(tǒng)的軟件編譯環(huán)境ccs和編程語言。之后,本文較為詳細(xì)地論述了系統(tǒng)各個(gè)功能模塊的軟件實(shí)現(xiàn)方法,其中包

5、括a/d控制字的編寫、語音壓縮編碼處理、監(jiān)控碼的識(shí)別以及鏈接命令文件.cmd的編寫等。同時(shí),本文對(duì)重點(diǎn)程序進(jìn)行了調(diào)試和相關(guān)的測(cè)試,詳細(xì)介紹了調(diào)試的工具和重點(diǎn)程序模塊的調(diào)試方法。經(jīng)過調(diào)試和測(cè)試,各個(gè)模塊的軟件均運(yùn)行正常,可以達(dá)到預(yù)想的使用效果。關(guān)鍵詞:dsp;語音壓縮;語音監(jiān)控;g.723.1; goertzelabstract: the main work of the issue is the software design which bases on the study of algorithmsfirstly,the issue studies the two algorithms w

6、hich are related to the software designg723.1 for voice signal compression and goertzel for the decoding of dtmf,and describes the pficiples and structures of the two algorithms in detailthen,the issue expatiates the system hardware platformtms320c5509 dsp,including the selection for dsp、the control

7、 method of a/d and the usage of mcbsp,the issue also discusses the software compile environmentccs and the programming languagenext,the paper discusses the software design of various functional modules,including the compilation for a/d control words、coding processing for voice signals、identification

8、 for dtmf and compilation for .cmd file,etc. moreover,the paper introduces the debugging tools as well as test methods for main programs and proposes the optimization measures for the systemthe results of debugging and tests tell that the software of every module can be operated and used normally ke

9、ywords: dsp,voice compression,voice monitoring,g.723.1,goertzel1引言截至目前為止,在大多數(shù)通信系統(tǒng)中,傳輸最多的信息是語音信號(hào)。隨著信息科學(xué)技術(shù)的飛速發(fā)展,語音處理技術(shù)在最近20多年中取得了重大的進(jìn)展。語音信號(hào)處理技術(shù)主要有四大分支語音增強(qiáng)、語音編碼、語音合成和語音識(shí)別。這四個(gè)部分的發(fā)展都十分迅速,科研成果也收獲頗豐,并陸續(xù)地由理論研究轉(zhuǎn)向?qū)嶋H應(yīng)用。語音編碼技術(shù)是語音信號(hào)處理技術(shù)的一個(gè)重要組成部分。語音編碼屬于信源編碼。自從上個(gè)世紀(jì)70年代以來,隨著科學(xué)技術(shù)的迅猛發(fā)展,尤其是隨著計(jì)算機(jī)技術(shù)、微電子技術(shù)、信號(hào)處理技術(shù)以及編碼理論的發(fā)

10、展和進(jìn)步,語音編碼技術(shù)取得了許多突破性的進(jìn)展,研究出許多實(shí)用的編碼方案。這些方案在不斷的研究、改進(jìn)和應(yīng)用中日趨成熟,形成了各種實(shí)用的語音編碼技術(shù)?,F(xiàn)在,語音編碼技術(shù)已經(jīng)成為通信技術(shù)中一個(gè)相當(dāng)重要的學(xué)科,在各種通信系統(tǒng)中都得到了廣泛的應(yīng)用。數(shù)字信號(hào)處理器(digital signal processor,dsp)是現(xiàn)代電子技術(shù)、計(jì)算機(jī)技術(shù)和信號(hào)處理相結(jié)合的產(chǎn)物。dsp獨(dú)特的結(jié)構(gòu)決定了它具有運(yùn)算速度快、可編程和接口靈活等特點(diǎn),能快速實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。隨著信息和電子技術(shù)的飛速發(fā)展,dsp在電子信息、通信、軟件無線電、自動(dòng)控制、信息家電等多個(gè)領(lǐng)域得到了廣泛的應(yīng)用。采用dsp來實(shí)現(xiàn)數(shù)字信號(hào)處理系

11、統(tǒng)更是當(dāng)前的發(fā)展趨勢(shì),特別是針對(duì)諸如語音處理這種涉及到大量算術(shù)運(yùn)算的技術(shù),采用dsp來進(jìn)行系統(tǒng)實(shí)現(xiàn),優(yōu)勢(shì)更加明顯。2系統(tǒng)軟件理論基礎(chǔ)輸入系統(tǒng)的信號(hào)主要有雙音多頻信號(hào)和語音信號(hào)兩種1,相關(guān)的基礎(chǔ)理論也主要是針對(duì)這兩類信號(hào)的不同的處理算法,即雙音多頻的解碼算法goertzel算法和語音壓縮編碼算法g.723.1算法2。下面分別對(duì)這兩種算法作以介紹。2.1 雙音多頻解碼算法goertzel算法2.1.1 雙音多頻信號(hào)(dtmf)信號(hào)簡(jiǎn)介雙音多頻信號(hào)即為dtmf信號(hào)(dual-tone multi-frequency),是由美國貝爾實(shí)驗(yàn)室開發(fā)的現(xiàn)代按鍵式電話機(jī)普遍使用的撥號(hào)信令。dtmf的出現(xiàn)迅速地取

12、代了原始的dial-pulse(脈沖撥號(hào))的方式。dtmf信號(hào)除了在電話系統(tǒng)中得到廣泛的應(yīng)用以外,在其他交互控制應(yīng)用領(lǐng)域,如電話銀行、atm(自動(dòng)取款機(jī))等,同樣得到了廣泛的應(yīng)用。雙音多頻信號(hào)由8個(gè)固定頻率組成,其中4個(gè)行頻率、4個(gè)列頻率。每個(gè)按鍵唯一地由一組行頻率和列頻率交織組成,如圖2.1所示。這樣上述4個(gè)行頻率和4個(gè)列頻率的兩兩組合對(duì)應(yīng)了16個(gè)不同的按鍵,其中12個(gè)按鍵是比較常見的按鍵(09,#,*),另外的4個(gè)鍵作為保留,以備今后的使用3。圖2.1 雙音多頻信號(hào)的組成在本論文中,由對(duì)講機(jī)發(fā)出的數(shù)字信息碼就是雙音多頻信號(hào)。該信號(hào)記錄了所使用的對(duì)講機(jī)的編號(hào),可以作為系統(tǒng)的監(jiān)控碼使用,以鑒別

13、語音信號(hào)的發(fā)送者。2.1.2 雙音多頻信號(hào)的檢測(cè)原理一般解碼時(shí),是對(duì)收到的音頻信號(hào)進(jìn)行檢測(cè),分析出有效頻率組合的存在性,并將其轉(zhuǎn)換成對(duì)應(yīng)的按鍵或者數(shù)字信息。對(duì)于雙音多頻信號(hào),由于其信號(hào)組成的特殊性,即每個(gè)dtmf信號(hào)是由行列兩組音頻信號(hào)唯一確定,dtmf的解碼主要完成對(duì)有效行列頻率的檢測(cè)以及由檢測(cè)出的一組行列頻率來判決對(duì)應(yīng)的按鍵信息。由于本論文采用dsp芯片來實(shí)現(xiàn)對(duì)dtmf信號(hào)的檢測(cè),同時(shí)dsp芯片處理的是數(shù)字信號(hào),所以必須先將由對(duì)講機(jī)輸入的dtmf信號(hào)進(jìn)行a/d轉(zhuǎn)換,再將數(shù)字化的信息送入dsp進(jìn)行相應(yīng)的檢測(cè)處理。這一部分在后續(xù)的硬件實(shí)現(xiàn)平臺(tái)中將有詳細(xì)的介紹。在檢測(cè)dtmf信號(hào)時(shí),不但要檢測(cè)出

14、dtmf的基波信息,而且需要考慮其二次諧波的信息。這是因?yàn)樯鲜?個(gè)特定頻率只在基波上有較高的能量,而話音信號(hào)不但在相同的基波上有較高的能量,在其二次諧波上也疊加有較高的能量,因此,檢測(cè)二次諧波就可以有效地區(qū)分dtmf信號(hào)和話音信號(hào)4。dtmf信號(hào)的解碼檢測(cè)過程如圖2.2所示。圖2.2 雙音多頻信號(hào)的解碼檢測(cè)框圖2.1.3 goertzel算法dtmf信號(hào)的解碼是基于goertzel算法的,也稱為高斯算法。由于每一個(gè)dtmf信號(hào)是由固定的8個(gè)頻率組合而成,所以在進(jìn)行運(yùn)算的時(shí)候,不需要計(jì)算全部的頻域信息,只需要計(jì)算特定的頻域信息即可。理論上可以證明,當(dāng)計(jì)算的點(diǎn)數(shù)小于log2n時(shí),與需要計(jì)算全部頻域

15、信息的fft相比,geortzel算法更為有效。goertzel算法可以看作是2階iir濾波器,其計(jì)算流圖如圖2.3所示5。圖2.3 goertzel算法的計(jì)算流圖由圖2.3可知,goertzel算法由前向通道和后向通道組成。其前向通道的差分方程為: (2-1)其后向通道的差分方程為: (2-2)根據(jù)goertzel算法有: (2-3)其中 (2-4)可以看出dtmf的解碼過程就是通過后向通道的差分方程(公式(2-2)疊代計(jì)算出和,然后再由公式(2-3)進(jìn)行一次前向運(yùn)算,從而得到所需要的頻率的dft值。頻率和參數(shù)的關(guān)系是: (2-5)其中是所需檢測(cè)的頻率,是采樣頻率(本文中采樣頻率為8khz)

16、。在dtmf檢測(cè)解碼中,由于輸入的信號(hào)是實(shí)數(shù)序列,所以并不要檢測(cè)出8個(gè)行列頻率的相位信息,只需要計(jì)算出其幅度的平方值即可,即只需考慮。這種只考慮信號(hào)的幅度平方的算法被稱作goertzel優(yōu)化算法。該優(yōu)化算法相對(duì)goertzel算法可以減少運(yùn)算量,但以損失相位信息為代價(jià)的,然而這種相位信息的損失并不會(huì)影響算法的正常解碼和檢測(cè)。由式公式(2-3)可知: (2-6)利用上式進(jìn)行計(jì)算可以簡(jiǎn)化運(yùn)算,同時(shí)避免了計(jì)算復(fù)數(shù)參數(shù)。由此可知,結(jié)合公式(2-2)和公式(2-6),即可計(jì)算輸入序列x(n)的單點(diǎn)dft x(k)的幅度平方方值。dtmf解碼器相當(dāng)于含有8個(gè)固定參數(shù)的濾波器,參數(shù)值可由 (2-7)確定。g

17、oertzel算法的iir濾波器結(jié)構(gòu),使得該算法可以對(duì)輸入序列進(jìn)行實(shí)時(shí)的處理。將輸入序列分別通過8個(gè)濾波器計(jì)算出相應(yīng)的值,和門限比較器相比較,來判斷有效的行頻率和列頻率。最后由按鍵和dtmf的映射關(guān)系得到相應(yīng)的按鍵信息。相關(guān)參數(shù)可以處理為數(shù)組的形式,調(diào)用的時(shí)候采用查表的方式即可。2.2 語音壓縮編碼算法g.723.1算法2.2.1 g.723.1算法概述g.723.1標(biāo)準(zhǔn)是itu.t于1996年推出的一種針對(duì)語音的極低碼率的編碼算法,主要應(yīng)用于可視電話、數(shù)字傳輸和高質(zhì)量語音壓縮系統(tǒng)等。g.723.1標(biāo)準(zhǔn)提供了6.3kb/s和5.3kb/s兩種碼率的編碼方法,這兩種碼率都可以提供較高的語音質(zhì)量,

18、是h.323標(biāo)準(zhǔn)(基于分組的多媒體通信系統(tǒng))的首選標(biāo)準(zhǔn)。其中,高碼率算法具有較高的重建語音質(zhì)量,而低碼率算法的計(jì)算復(fù)雜度則較低。與一般的低碼率語音編碼算法一樣,g.723.1標(biāo)準(zhǔn)采用線性預(yù)測(cè)的合成分析法。對(duì)激勵(lì)信號(hào)進(jìn)行量化時(shí),高碼率算法采用多脈沖最大似然量化(mp-mlq),而低碼率算法采用算術(shù)碼本激勵(lì)線性預(yù)測(cè)(acelp)。2.2.2 g.723.1編碼算法g.723.1語音編碼算法采用了線性預(yù)測(cè)分析合成技術(shù),以盡量減少實(shí)際語音和合成語音之間經(jīng)感知加權(quán)后的誤差信號(hào)的能量為準(zhǔn)則來進(jìn)行編碼。對(duì)于分析合成后的線性預(yù)測(cè)誤差信號(hào),g.723.1編碼算法采用自適應(yīng)碼本和固定碼本進(jìn)行矢量量化,并傳送量化參

19、數(shù)。壓縮后傳輸?shù)膮?shù)包括線性預(yù)測(cè)系數(shù)、自適應(yīng)碼本延時(shí)和增益、激勵(lì)脈沖位置和符號(hào)等。g.723.1語音編碼算法的流程圖如圖2.4所示6。圖2.4 g.723.1編碼器框圖根據(jù)圖2.4,g.723.1的編碼過程一般可分為如下幾個(gè)部分:(1) 分幀輸入的語音信號(hào)為經(jīng)過a/d量化后的16bit線性pcm碼流。g.723.1語音編碼是按幀格式對(duì)語音數(shù)據(jù)進(jìn)行壓縮的,所以首先將上述碼流分割成長(zhǎng)度為240個(gè)樣點(diǎn)的語音幀,即每幀240個(gè)采樣值,采樣頻率8khz,每幀30ms。(2) 語音信號(hào)的預(yù)處理在處理語音信號(hào)之前,一般要將語音信號(hào)通過一個(gè)高通濾波器,以濾除直流分量和低頻分量。這個(gè)過程也被稱作語音信號(hào)的預(yù)處理

20、。在g.723.1算法中,采用的是一個(gè)單極點(diǎn)單零點(diǎn)的濾波器,其傳輸函數(shù)如下所示: (2-8)由高通濾波器的傳輸函數(shù)可以看出:其零點(diǎn)為z=1,位于實(shí)軸和單位圓的交點(diǎn)之上,這就充分保證了濾波器對(duì)直流分量的抑制作用;同時(shí),其極點(diǎn)為,即所選用的濾波器的極點(diǎn)和零點(diǎn)非常的接近,兩者比值將近為1,具有較為平坦的高通特性。(3) 線性預(yù)測(cè)分析(lpc)線性預(yù)測(cè)是在假定系統(tǒng)輸入為白噪聲,輸出為重建的語音信號(hào)的情況下,對(duì)系統(tǒng)的傳輸函數(shù)的有效估計(jì),其目的在于使得重建信號(hào)最大程度地逼近輸入的語音信號(hào),使得二者在主觀感覺上盡可能的一致。g.723.1編碼算法采用十階線性預(yù)測(cè)(lp)進(jìn)行分析,并將上述一幀信號(hào)分成4個(gè)子幀

21、,每個(gè)子幀含有60個(gè)樣值,對(duì)每個(gè)子幀獨(dú)立進(jìn)行l(wèi)pc分析。為了提高lpc系數(shù)的連續(xù)性,采用長(zhǎng)度為180個(gè)樣值的漢明窗,即同時(shí)包含前后兩個(gè)子幀,這使算法引入60個(gè)樣值的超前時(shí)延,因此算法的總延時(shí)為37.5ms。其線性預(yù)測(cè)分析過程如下:首先將信號(hào)通過上述漢明窗進(jìn)行處理,計(jì)算出11個(gè)自相關(guān)系數(shù)。然后,對(duì)于每個(gè)子幀,利用levinso-durbin遞歸算法求出10個(gè)線性預(yù)測(cè)系數(shù)(lpc系數(shù)),這些系數(shù)也將在后續(xù)的計(jì)算中用于共振峰感知加權(quán)濾波器。用上述lpc系數(shù)構(gòu)建合成濾波器,其定義如下: (2-9)其中,是lpc系數(shù),i表示第i個(gè)子幀,j表示第j個(gè)lpc系數(shù)。(4)lsp量化由于線譜對(duì)參數(shù)(lsp)具有

22、良好的量化特性和內(nèi)插特性,故g.723.1編碼算法將lpc參數(shù)轉(zhuǎn)換為lsp參數(shù)進(jìn)行傳輸。lsp采用預(yù)測(cè)分裂矢量量化,并且只對(duì)四個(gè)子幀中的最后一個(gè)子幀的lpc參數(shù)進(jìn)行l(wèi)sp處理。如圖2.4所示,lsp處理包括三個(gè)部分:lsp量化、lsp解碼和lsp插值。其中后面兩個(gè)部分屬于模擬解碼模塊,該解碼模塊模擬實(shí)現(xiàn)接收端的解碼過程,并將結(jié)果反饋給加權(quán)合成濾波器以調(diào)整濾波器的系數(shù)。其中,lsp量化過程如下:首先,進(jìn)行一個(gè)小的附加帶寬擴(kuò)展(7.5hz)以提高系統(tǒng)的穩(wěn)定性。然后根據(jù)語音幀間的相關(guān)性,利用預(yù)測(cè)分量矢量量化器對(duì)得到的lp濾波器進(jìn)行量化。量化的基本步驟如下:1)用搜索單位圓和對(duì)過零點(diǎn)進(jìn)行插值的方法將l

23、pc系數(shù)aj轉(zhuǎn)換為lsp系數(shù)pj;2)將得到的lpc系數(shù)去除長(zhǎng)時(shí)直流成分pdc,得到新的不含有直流分量的lsp矢量p;3)用前一子幀解碼后得到的lsp系數(shù)對(duì)當(dāng)前這一子幀進(jìn)行線性預(yù)測(cè),其固定的預(yù)測(cè)因子為,從而得到去除直流分量的lsp預(yù)測(cè)矢量和殘差lsp矢量; (2-10) (2-11)4)將未量化的lsp矢量、量化后的lsp矢量和lsp殘差矢量分別分裂為三個(gè)子矢量,這三個(gè)子矢量的維數(shù)分別為3維、3維和4維。對(duì)lsp殘差矢量分裂出來的三個(gè)子矢量分別用8bit的碼本進(jìn)行量化,量化采用加權(quán)均方誤差最小準(zhǔn)則;5)將碼本搜索后得到的量化表的索引值傳送到輸出端。(5)共振峰感知加權(quán)濾波器為了提高量化感知質(zhì)量

24、,高通濾波后的語音信號(hào)需要通過共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器以生成初始目標(biāo)信號(hào)。這是因?yàn)?,在語音頻譜中,相對(duì)于能量較低的頻段的噪聲,能量較高的頻段即處于共振峰處的噪聲更不容易被感知。因此,在衡量合成后的語音與原始輸入的語音之間的誤差的時(shí)候,要考慮上述因素,即在語音能量較高的頻段,允許的誤差大一些,以降低編碼速率,所以要引入共振峰感知加權(quán)濾波器w(z)來實(shí)現(xiàn)對(duì)語音信號(hào)的修正7。對(duì)每一子幀都要構(gòu)建共振峰感知加權(quán)濾波器w(z),所使用的系數(shù)為每一子幀的未矢量化的lpc系數(shù)。w(z)的定義如下: , (2-12)其中,。每個(gè)子幀通過濾波器后得到輸出的語音信號(hào)。(6)開環(huán)基音估值開環(huán)基音估值

25、(也稱開環(huán)基音搜索)就是對(duì)語音信號(hào)的基音周期的估計(jì)。對(duì)于每一幀計(jì)算兩次基音周期,即對(duì)每一幀中的前兩個(gè)子幀和后兩個(gè)子幀分別進(jìn)行開環(huán)基音估計(jì)。利用感知加權(quán)語音信號(hào)fn,同時(shí)采用搜索互相關(guān)最大的方法,得到開環(huán)基音周期。其中互相關(guān)的定義如下: , (2-13)上式中的是感知加權(quán)濾波器產(chǎn)生的語音信號(hào)。使得互相關(guān)最大的索引號(hào)j即為開環(huán)基音周期。(7) 諧振峰噪聲整形濾波器如上所述,加入諧振峰噪聲整形濾波器的目的,也是為了提高語音信號(hào)的編碼質(zhì)量。該濾波器是基于基音的感知加權(quán)濾波器,主要利用了語音的長(zhǎng)時(shí)相關(guān)性。其定義如下: (2-14)其中,為濾波器的系數(shù),l是最佳時(shí)延,也就是諧振峰噪聲整形濾波器的階數(shù)。為了

26、求得最佳時(shí)延l,對(duì)cpw(j)定義如下,并對(duì)其采用最大化準(zhǔn)則: , (2-15)其中,l1 = lol- 3,l2 = lol+ 3。使得cpw(j) 取得最大值的j即為最佳時(shí)延l。這里將上式中cpw(j) 的最大值定義為cl。(8)沖激響應(yīng)和零輸入響應(yīng)的計(jì)算lpc合成濾波器、共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器合成一個(gè)聯(lián)合濾波器,用于計(jì)算沖激響應(yīng)hn和零輸入響應(yīng)。沖激響應(yīng)的傳輸函數(shù)表達(dá)式如下: , (2-16)公式(2-16)中,、分別為語音合成濾波器、感知加權(quán)濾波器和諧振峰噪聲整形濾波器的傳輸函數(shù)。為了編解碼器中的合成濾波器的狀態(tài)的一致性,在進(jìn)入搜索部分之前,要先在信號(hào)中減去合成濾波

27、器中將要產(chǎn)生的零輸入響應(yīng)8。將零值輸入合成濾波器,得到合成濾波器的零輸入響應(yīng),然后在感知加權(quán)的語音信號(hào)中減去零輸入響應(yīng),即可得到碼本搜索的輸入信號(hào)。(9) 閉環(huán)基音搜索在g.723.1算法中,閉環(huán)基音搜索和開環(huán)基音搜索共同構(gòu)成了自適應(yīng)碼本搜索,即基音周期的預(yù)測(cè)。如前所述,開環(huán)基音搜索是基于整幀的整數(shù)基音估計(jì),沒有考慮到合成后的語音和原始語音之間的誤差,所以開環(huán)基音搜索只是對(duì)基音周期的估計(jì),確定了基音周期的大致范圍,并不能確定基音周期的準(zhǔn)確值。因此需要進(jìn)行基于子幀的閉環(huán)基音搜索,以較為準(zhǔn)確地確定基音周期的數(shù)值,并進(jìn)行自適應(yīng)碼本搜索。g.723.1編碼器采用一個(gè)五階的基音預(yù)測(cè)器,利用上文提到的沖激

28、響應(yīng)和開環(huán)基音估值計(jì)算閉環(huán)基音周期。在同一整幀中,對(duì)于第0子幀和第2子幀,在(lol-1, lol, lol+1)的范圍內(nèi)搜索閉環(huán)基音周期,并將之編碼為7bit:對(duì)于第1子幀和第3子幀,只對(duì)該子幀的基音延時(shí)與前一子幀的差值進(jìn)行2bit編碼,這里基音延時(shí)的差值范圍為-1,0,+1,+2。然后進(jìn)行自適應(yīng)碼本搜索,即將基音預(yù)測(cè)器的增益進(jìn)行矢量量化。所使用的矢量量化碼本有2個(gè),分別為85個(gè)和170個(gè)量化矢量。對(duì)于低碼率編碼(5.3kb/s)使用170個(gè)矢量進(jìn)行量化:對(duì)于高碼率編碼(6.3kb/s),如果第0子幀或者第2子幀的閉環(huán)基音周期小于58,則使用85個(gè)矢量進(jìn)行量化,否則使用1 70個(gè)矢量量化。(

29、10) 固定碼本搜索在激勵(lì)信號(hào)中減去自適應(yīng)碼本的貢獻(xiàn)可以得到殘差余量信號(hào),對(duì)該殘差余量信號(hào)進(jìn)行固定碼本搜索。在g.723.1算法中,針對(duì)兩種不同碼率的編碼方式采用不同的搜索算法:對(duì)于高碼率編碼(6.3kb/s)采用多脈沖最大似然量化(mp-mlq),對(duì)于低碼率編碼(5.3kb/s)采用代數(shù)碼本激勵(lì)線性預(yù)測(cè)(acelp)。殘差余量信號(hào)用表示,用逼近。固定碼本搜索就是要找出合適的參數(shù),使得和的均方誤差最小,的表達(dá)式如下所示: (2-17)其中,g為增益因子;為第k個(gè)脈沖幅度的符號(hào),取值為±1;m為脈沖個(gè)數(shù);為第k個(gè)脈沖的位置。上文提到的待尋找的合適的參數(shù)就是g、和。1) 多脈沖最大似然量

30、化(mp-mlq)高碼率編碼(6.3kb/s)采用mp-mlq算法。該算法規(guī)定如下:偶數(shù)子幀脈沖有6個(gè),奇數(shù)子幀脈沖有5個(gè);脈沖只能全部在奇數(shù)位置或全部在偶數(shù)位置,奇偶用1bit表示。也就是用一幀中只有5個(gè)或6個(gè)非零脈沖的輸入信號(hào)通過加權(quán)合成濾波器來模擬殘差余量信號(hào)rn。這樣就用5個(gè)或6個(gè)點(diǎn)代表60個(gè)信號(hào)。為了減少計(jì)算量,該算法中采用準(zhǔn)最優(yōu)化搜索算法,過程如下:首先,估計(jì)用最大似然法計(jì)算增益的估計(jì)值gmax的表達(dá)式如下: (2-18)然后對(duì)進(jìn)行對(duì)數(shù)量化,在的搜索范圍內(nèi),對(duì)每一個(gè)增益值對(duì)奇數(shù)位置和偶數(shù)位置各進(jìn)行一次和的搜索,最終選取使得均方誤差最小的參數(shù)組合進(jìn)行傳送。2) 代數(shù)碼本激勵(lì)線性預(yù)測(cè)(

31、acelp)低碼率編碼(5.3kb/s)采用acelp算法。每個(gè)隨機(jī)碼矢量最多有4個(gè)非零脈沖,它們的可能位置如表2-1所示。表2-1中的每行表示每個(gè)激勵(lì)脈沖的可能位置為8個(gè),相鄰的兩個(gè)位置之間相差為8個(gè)樣點(diǎn)位置,相鄰兩個(gè)脈沖的對(duì)應(yīng)的可能位置之間相差2個(gè)樣點(diǎn)位置。需要注意的是,最后兩個(gè)脈沖中的最后一個(gè)脈沖位置(即60,62)已經(jīng)超過了子幀的邊界,即位于本子幀范圍之外,表示該脈沖并不存在。表2-1 acelp激勵(lì)碼本符號(hào)位置第1個(gè)脈沖±10,8,16,24,32,40,48,56第2個(gè)脈沖±12,10,18,26,34,42,50,58第3個(gè)脈沖±14,12,20,2

32、8,36,44,52,(60)第4個(gè)脈沖±16,14,22,30,38,46,54,(62)acelp算法使用的是17bit代數(shù)碼本。每個(gè)脈沖的位置只能從上面表格中的對(duì)應(yīng)位置中選取,位置信息用3bit編碼,故4個(gè)脈沖一共12bit。其中,每個(gè)脈沖的正負(fù)符號(hào)用lbit來編碼,故4個(gè)脈沖共計(jì)4bit;所有脈沖的位置可以同時(shí)移動(dòng)一位變成奇數(shù)位置,是否一位用1bit編碼,綜上所述,總計(jì)為17bit。碼本搜索同樣采用殘差余量信號(hào)與之間的均方誤差最小來計(jì)算。3系統(tǒng)的硬件平臺(tái)及軟件環(huán)境3.1系統(tǒng)硬件平臺(tái)3.1.1 硬件總體設(shè)計(jì)方案如前所述,整個(gè)項(xiàng)目主要是運(yùn)用于鐵路調(diào)度方面,對(duì)工作人員的調(diào)度工作做以

33、監(jiān)控之用。從整個(gè)項(xiàng)目上來講,鐵路上的工作人員和監(jiān)控室中的工作人員各持有一個(gè)對(duì)講機(jī)。鐵路上的工作人員使用自己手中的對(duì)講機(jī)發(fā)送調(diào)度指令,由監(jiān)控室中的對(duì)講機(jī)接收這些信息并將其進(jìn)行保存,以備日后的核查。因此,輸入整個(gè)系統(tǒng)的信號(hào)有兩類:雙音多頻信號(hào)和語音信號(hào)。雙音多頻信號(hào)是對(duì)講機(jī)發(fā)送的機(jī)器序列號(hào),可以作為監(jiān)控碼使用;語音信號(hào)則是工作人員發(fā)出的鐵路調(diào)度信息。未經(jīng)壓縮編碼的語音信號(hào)的信息量很大,如果是多路系統(tǒng),信息量將更為龐大,因此采用語音壓縮編碼進(jìn)行處理。語音算法通常含有較為復(fù)雜的算術(shù)運(yùn)算,因此選用dsp作為處理芯片。輸入的語音信號(hào)和雙音多頻信號(hào)是模擬信號(hào),而dsp可以處理的數(shù)據(jù)必須是數(shù)字信息,因此要在兩

34、者之間加入a/d芯片進(jìn)行模數(shù)轉(zhuǎn)換。如果輸入的是多路數(shù)據(jù),數(shù)據(jù)量較大,而壓縮算法存在固有延時(shí),所以一般先將a/d采樣后的數(shù)字信息存入sdram進(jìn)行緩存,以待壓縮處理。目前的系統(tǒng)是考慮將壓縮后的信息存儲(chǔ)在pc機(jī)上以備日后查詢和核對(duì)。在第六章的方案升級(jí)中,也將提到其他的改進(jìn)方法。綜上所述,整個(gè)系統(tǒng)的框圖如圖3.1所示9。圖3.1 系統(tǒng)框圖由圖3.1可知,整個(gè)系統(tǒng)可以分為下位機(jī)和上位機(jī)兩個(gè)部分。其中,下位機(jī)包括a/d、sdram和dsp三個(gè)主要部分,主要負(fù)責(zé)信號(hào)的采集、模數(shù)轉(zhuǎn)換以及語音信號(hào)的壓縮和雙音多頻信號(hào)的解碼工作;上位機(jī)主要負(fù)責(zé)信號(hào)的存儲(chǔ)以及查詢的工作。本論文的主要工作是下位機(jī)的軟件設(shè)計(jì)部分,因

35、此本章也是主要圍繞著下位機(jī)的硬件平臺(tái)和軟件設(shè)計(jì)來敘述的。dsp與a/d和pc之間的連接分別采用mcbsp0和mcbsp1,關(guān)于mcbsp的介紹和設(shè)置將在后面的章節(jié)中有所闡述。3.1.2 dsp選型(1)tms320c5509簡(jiǎn)介音頻處理一般采用較為復(fù)雜的算法進(jìn)行算術(shù)運(yùn)算,而dsp處理器具有強(qiáng)大的數(shù)學(xué)運(yùn)算功能,十分適用于音頻處理的用途。同時(shí)dsp處理器的性能直接影響著整個(gè)系統(tǒng)的性能,所以dsp芯片的選型至關(guān)重要。結(jié)合實(shí)驗(yàn)室的現(xiàn)有硬件條件,主要在三款dsp芯片上作以取舍。這三款dsp芯片分別是ms320c5402、tms320c2812和tms320c5509。下面分別結(jié)合這三款dsp芯片的特點(diǎn)作

36、以簡(jiǎn)單介紹,并分析出最適用于本論文的dsp芯片。tms320c54x系列dsp是一款為實(shí)現(xiàn)低功耗、高性能而專門設(shè)計(jì)的定點(diǎn)dsp芯片,適合于語音處理、圖像處理、醫(yī)療儀器和通信技術(shù)等多項(xiàng)領(lǐng)域。同時(shí)這款芯片也是在日常開發(fā)中較為熟悉其使用方法的一款芯片,在使用方法上,技術(shù)較為成熟。其片內(nèi)設(shè)置為程序rom:4k字、程序數(shù)據(jù)rom:4k字、daram:16k字。tms320c281x系統(tǒng)dsp是基于tms320c2xx內(nèi)核的定點(diǎn)數(shù)字信號(hào)處理器,與f24x系統(tǒng)dsp相比,其提高了運(yùn)算的精度(達(dá)32位)和系統(tǒng)的處理能力(達(dá)到150mips)。對(duì)于本設(shè)計(jì)而言,tms320f281x系統(tǒng)dsp的最大優(yōu)勢(shì)在于其本身

37、即具有16通道的高性能12位adc單元,可以實(shí)現(xiàn)雙通道信號(hào)同步采樣,這樣的結(jié)構(gòu)可以簡(jiǎn)化系統(tǒng)的硬件設(shè)計(jì),操作簡(jiǎn)便。tms320c28lx dsp的芯片內(nèi)部提供了16kb的saram。tms320c55x dsp是德州儀器(ti)c5000 dsp系列里面較新的一代的16位定點(diǎn)dsp內(nèi)核,具有低功耗、高效率、代碼密度高等優(yōu)點(diǎn),完全兼容c54x系列。c55x的指令集與c54x的完全兼容,為c54x開發(fā)的程序重新匯編后在c55x上的運(yùn)行提供了很好的保障,兩者運(yùn)行結(jié)果幾乎完全相同。同時(shí),c55x具有更為擴(kuò)展的片內(nèi)存儲(chǔ)空間。對(duì)于實(shí)驗(yàn)室已經(jīng)購進(jìn)的tms320c5509 dsp來說,其片上資源更為豐富,其擁有

38、256kb的ram和64kb的rom。對(duì)于本論文而言,出于對(duì)處理速度的考慮,需要將程序代碼和所用到的變量、堆棧等放在dsp的片上存儲(chǔ)區(qū)中,以減少運(yùn)算時(shí)間。根據(jù)估算,語音壓縮程序大約需要35kb的空間,雙音多頻解碼程序和串口傳輸程序大約分別需要3kb空間。由此可見,dsp芯片的選擇主要是根據(jù)dsp片上存儲(chǔ)空間來進(jìn)行的,分析上述三款dsp處理器,只有tms320c5509 dsp可以滿足要求,故本論文所用的dsp選定為這款。(2)tms320c5509 dsp的性能簡(jiǎn)介tms320c5509 dsp作為c55x系統(tǒng)的代表型號(hào),具有以下主要特征10:l 一個(gè)32×16位的指令緩沖隊(duì)列;l

39、兩個(gè)17×17位的乘加單元;l 一個(gè)40位的算術(shù)邏輯單元;l 一個(gè)40位的移動(dòng)器;l 一個(gè)16位算術(shù)邏輯單元;l 四個(gè)40位的累加器;l 12組獨(dú)立的總線。c55x繼承了c54x的發(fā)展趨勢(shì),低功耗,低成本,在有限的功略條件下,保持最好的性能。工作在0.9v下,其核的功耗僅為0.05mw/mips,而性能達(dá)到500mips(400mhz),對(duì)數(shù)字通信等便攜式應(yīng)用所提出的挑戰(zhàn),提供了有效的解決方案。與120mhz的c54x相比,300mhz的c55x性能大約提高了5倍,而功耗降為1/6。c55x的指令集是c54x的超集,加入了適應(yīng)擴(kuò)展的新的硬件單元的指令。其指令長(zhǎng)度從8bit到48bit

40、,即16字節(jié)。這種長(zhǎng)度可變的指令可以使每個(gè)函數(shù)的控制代碼量比c54x降低40,從而達(dá)到優(yōu)化代碼密度和有效地使用總線的效果。同時(shí),與c54x相比,c55x的核有兩個(gè)乘法與累加器(mac),增加了累加器(acc)、算術(shù)邏輯單元(alu)、數(shù)據(jù)寄存器等,多個(gè)運(yùn)算單元并行地執(zhí)行運(yùn)算,減少了每個(gè)運(yùn)算所需要的周期數(shù),配合以并行指令,每個(gè)機(jī)器周期的效率可以提高了一倍。雙mac可以在一個(gè)周期內(nèi)完成兩個(gè)17*17-bit的mac運(yùn)算。與此同時(shí),40-bit的alu可以完成32-bit的運(yùn)算,或者兩個(gè)16-bit的運(yùn)算。第二個(gè)16-bit的alu用于通用的算術(shù)運(yùn)算,增加了并行性和加法的靈活性。基于改進(jìn)的哈佛結(jié)構(gòu),

41、c55x包含了一組程序總線和3組獨(dú)立的數(shù)據(jù)讀總線,可以同時(shí)將數(shù)據(jù)送給各個(gè)計(jì)算單元。c55x cpu包含有4個(gè)單元:1)指令緩存單元。緩存和解碼應(yīng)用程序的指令。該單元還包括解碼邏輯,解釋c55x的不同長(zhǎng)度的指令。指令緩存單元通過使不同的計(jì)算單元維持穩(wěn)定的任務(wù)流來提高dsp的效率。2)程序流單元。跟蹤程序的執(zhí)行點(diǎn)。其硬件用于高效的循環(huán)、分支、條件執(zhí)行以及流水保護(hù)。3)地址數(shù)據(jù)流單元。在程序執(zhí)行中,為訪問數(shù)據(jù)提供地址指針。正式由于該單元的存在,使c55x高效的尋址模式成為可能。專門的硬件管理5組數(shù)據(jù)總線,使數(shù)據(jù)流向各個(gè)計(jì)算單元。附加的通用alu簡(jiǎn)化算術(shù)運(yùn)算,提高了指令的并行性。4)數(shù)據(jù)計(jì)算單元。這是

42、dsp的心臟,對(duì)所處理的數(shù)據(jù)執(zhí)行算術(shù)運(yùn)算。它包括mac、主alu以及累加器寄存器。另外還包括一個(gè)桶形移位器、舍入和飽和控制以及用于維特比算法的專門硬件。通過這個(gè)單元所保證的指令的并行性,是提高c55x處理效率的關(guān)鍵。3.1.3 多通道緩存串口mcbsp的使用(1)mcbsp的主要特點(diǎn)11l 多通道緩沖串口可以提供:l 全速雙工通信l 雙緩存發(fā)送和三緩存接收,支持連續(xù)傳送l 接收和發(fā)送使用獨(dú)立的時(shí)鐘l 發(fā)送中斷到cpu,發(fā)送同步事件到dma控制器l 128通道收發(fā)l 多通道選擇模式可以允許或禁止每個(gè)通道l 直接與多媒體數(shù)字信號(hào)編解碼器的工業(yè)標(biāo)準(zhǔn)接口、模擬接口以及串行adc/dac接口l 可由外部

43、提供時(shí)鐘與幀同步信號(hào)l 內(nèi)部可變成采樣率發(fā)生器可控制時(shí)鐘和幀同步信號(hào)l 可以選擇幀同步脈沖和時(shí)鐘信號(hào)的極性l 字寬可選:8、12、16、20、24和32bitl u-law和a-1aw壓縮擴(kuò)展l 8-bit傳輸時(shí)可以選擇先傳lsb或msbl 多個(gè)狀態(tài)bit標(biāo)志異常和錯(cuò)誤l 多通道緩沖串口信號(hào)引腳,可配置為通用輸入輸出引腳(2) mcbsp的工作原理mcbsp包括一個(gè)數(shù)據(jù)流通路和一個(gè)控制通路,通過以下7個(gè)引腳與外部設(shè)備連接。通過mcbsp與外部設(shè)備的數(shù)據(jù)交換,由dx引腳發(fā)送數(shù)據(jù),rx引腳接收數(shù)據(jù)。通信的時(shí)鐘和幀同步信號(hào)由clkx(發(fā)送時(shí)鐘)、clkr(接收時(shí)鐘)、fsx(發(fā)送幀同步)以及fsr(

44、接收幀同步)引腳來控制。dsp的cpu或dma控制器與mcbsp的通信,通過16-bit寄存器訪問內(nèi)部的外設(shè)總線來實(shí)現(xiàn)。發(fā)送時(shí),cpu或dma控制器將數(shù)據(jù)寫到數(shù)據(jù)發(fā)送寄存器(dxr1、dxr2)。寫給dsr的數(shù)據(jù),通過發(fā)送移位寄存器(xsrl、xsr2)移位輸出dx。同樣,mcbsp通過dr引腳接收數(shù)據(jù),移位存儲(chǔ)到接收移位寄存器(rsrl、rsr2),并復(fù)制到接收緩存寄存器(rbrl、rbr2)。然后,再由(rbr1、rbr2)復(fù)制到drrs,由cpu或dma控制器讀取。這樣,可以同時(shí)進(jìn)行內(nèi)部和外部的數(shù)據(jù)通信。如果串行字長(zhǎng)為8、12或16-bit,則不需要使用drr2、rbr2、rsr2、dx

45、r2以及xsr2寄存器進(jìn)行讀、寫或移位的操作。如果串行字長(zhǎng)更長(zhǎng),則需要使用這些寄存器來保存高位bits。(3) mcbsp的使用如前所述,mcbsp包含兩個(gè)通路:數(shù)據(jù)流和控制通路。所以使用時(shí),一般是先通過初始化設(shè)置,向mcbsp寫入合適的控制字,將其設(shè)置到需要的狀態(tài)。讀取或?qū)懭霐?shù)據(jù)時(shí),從相應(yīng)的寄存器中進(jìn)行處理即可。mcbsp的各個(gè)寄存器都擁有自己專用的地址,控制字或數(shù)據(jù)的讀取寫入,即是對(duì)相應(yīng)的地址的內(nèi)容的改寫。如果使用ti提供的csl進(jìn)行dsp的初始化,則可根據(jù)csl提供的庫函數(shù)直接修改其函數(shù)參數(shù)即可完成操作上述操作。這部分將在第四章中進(jìn)行較為詳細(xì)的闡述。3.1.4 dma的使用直接存儲(chǔ)器訪問

46、(dma)控制器可以在沒有cpu參與的情況下,完成存儲(chǔ)器映射區(qū)之間的數(shù)據(jù)傳輸。當(dāng)cpu在后臺(tái)工作時(shí),dma控制器可以:Ø 在片內(nèi)存儲(chǔ)器、片外存儲(chǔ)器、片上外圍設(shè)備之間傳送數(shù)據(jù)Ø 在主機(jī)接口(hpi)和存儲(chǔ)器之間傳送數(shù)據(jù)在本論文中,由于待壓縮的語音信息的數(shù)據(jù)量比較大,片內(nèi)資源不能滿足其需要,故需要將待處理的語音數(shù)據(jù)存放在片外。在這種情況下,對(duì)外部存儲(chǔ)器的訪問會(huì)帶來比較大的性能損失,也會(huì)占用比較多的cpu資源,所以考慮采用dma方式實(shí)現(xiàn)對(duì)片外存儲(chǔ)器的訪問。即由sdram搬移數(shù)據(jù)到dsp中這個(gè)過程可以采用dma方式實(shí)現(xiàn),以減少系統(tǒng)性能的損失。3.1.5 a/d芯片的選型和使用(1)

47、ad73360的主要特征12根據(jù)項(xiàng)目要求,需要選擇一款具有多輸入通道的a/d芯片。經(jīng)過分析與比較,選定ad73360芯片。選用這款芯片的主要原因是其具有6通道模擬輸入端,可以充分滿足項(xiàng)目的需要。ad73360是adi公司推出的一款可編程通用6通道串行模擬輸入前端處理器,每個(gè)通道可以輸出長(zhǎng)度為16位的數(shù)字量。上述6通道各路自帶轉(zhuǎn)換電路,可以保證同時(shí)采樣,并且無需cpu干預(yù),從而有效地減少了由于采樣時(shí)間不同而產(chǎn)生的相位誤差。各個(gè)通道的采樣速率有8khz、16khz、32khz和64khz等多種選擇,利用控制字就可以方便地對(duì)采樣速率進(jìn)行選擇。每個(gè)通道可以允許從直流到4khz的模擬信號(hào)通過。由于各個(gè)通

48、道都具有內(nèi)置的反混迭濾波器,因此對(duì)其輸入端的反混迭濾波器的要求就可以大為降低,僅僅需要簡(jiǎn)單的一階rc濾波器即可。當(dāng)級(jí)聯(lián)使用ad73360時(shí),最多可將8個(gè)ad73360芯片級(jí)聯(lián)在一起。此時(shí),模擬量輸入通道的最大數(shù)目達(dá)到48路,這樣就可以給系統(tǒng)的模擬量輸入通道的數(shù)目擴(kuò)展帶來了極大的方便,也為項(xiàng)目的擴(kuò)展升級(jí)做好了充分的準(zhǔn)備。ad73360的其他主要特征如下:1) 其6通道之間相互隔離,并且每通道都含有一個(gè)信號(hào)調(diào)理電路和片上輸入增益放大器,增益可達(dá)0到38db,增益范圍被設(shè)為8級(jí),可由編程控制選擇。容許低電平幅度的模擬信號(hào)的輸入,幾乎不存在時(shí)間延遲。各個(gè)通道在音頻范圍內(nèi)可提供77db的信噪比。2) a

49、d73360使用六線工業(yè)標(biāo)準(zhǔn)同步串行接口。接口信號(hào)線只有6條,節(jié)約了印刷板的面積,并且可以有效地減小了電磁干擾,從而使得系統(tǒng)更加穩(wěn)定地運(yùn)行。ad73360與dsp可以快速連接。3)由于ad73360具有內(nèi)置的程控可變?cè)鲆娣糯笃?,所以這款ad芯片不僅適合于大信號(hào)應(yīng)用,同樣適用于小信號(hào)應(yīng)用,而且對(duì)小信號(hào)應(yīng)用尤為簡(jiǎn)單高效。(2)ad73360的控制方法ad73360內(nèi)部共有8個(gè)控制寄存器,分別是cra-crh,它們所占用的地址為07,每個(gè)控制寄存器的長(zhǎng)度為8位。各個(gè)控制寄存器的bit的設(shè)置分別代表不同的狀態(tài)。ad73360的同步串行接口能夠識(shí)別長(zhǎng)度為16位的來自dsp的控制字。當(dāng)系統(tǒng)中接入ad733

50、60后,需要由dsp向其各個(gè)寄存器寫入合適的控制字完成其基本工作方式的設(shè)定。關(guān)于初始化控制字的相關(guān)程序?qū)⒃诘谒恼轮性敿?xì)介紹。(3)ad73360的使用方法ad73360在程序數(shù)據(jù)模式下工作時(shí),首先進(jìn)入程序方式并向ad73360寫入控制字,然后再切換到數(shù)據(jù)方式。在從ad73360讀取數(shù)據(jù)后,系統(tǒng)將不再切換回到程序方式。而在混合模式下,系統(tǒng)總是在程序方式和數(shù)據(jù)方式之間不斷地切換工作,以達(dá)到在從ad73360讀取數(shù)據(jù)期間改變其配置的目的。在選擇ad73360的采樣速率和數(shù)據(jù)傳送速率時(shí),應(yīng)當(dāng)注意的是確保在采樣間隔中能將經(jīng)過采樣得到的所有數(shù)字信息傳輸給dsp,以免數(shù)據(jù)丟失。例如,將ad73360設(shè)置為混

51、合工作模式,如上所述,該工作模式下系統(tǒng)需要在程序方式和數(shù)據(jù)方式之間切換,那么切換時(shí)候就要寫入相應(yīng)的控制字,所以在選擇采樣速率和數(shù)據(jù)傳輸速率時(shí),還要考慮發(fā)送采樣結(jié)果之后,ad73360是否有足夠的時(shí)間接收dsp傳送過來的控制字。同時(shí),接收中斷中可以加入適當(dāng)?shù)奶幚?,比如將各通道的?shù)據(jù)分開存放、濾波等操作,但是也應(yīng)該特別注意的是不能使中斷程序過長(zhǎng),以免因?yàn)閐sp來不及接收數(shù)據(jù)而引起數(shù)據(jù)的丟失。3.2系統(tǒng)的軟件環(huán)境及編程語言的選擇3.2.1 軟件開發(fā)環(huán)境css簡(jiǎn)介code composer studio簡(jiǎn)稱ccs,是ti公司推出的為開發(fā)tms320系列dsp軟件的集成開發(fā)環(huán)境(ide)。ccs工作在w

52、indows操作系統(tǒng)下,類似于vc+的集成開發(fā)環(huán)境,采用圖形接口介面,提供有編輯工具和工程管理工具。它將各種代碼產(chǎn)生工具,諸如匯編器、鏈接器、c/c+編譯器、建庫工具等集成在一個(gè)統(tǒng)一的開發(fā)平臺(tái)中。ccs所集成的代碼調(diào)試工具具有各種調(diào)試功能,包括原ti公司提供的c源代碼調(diào)試器和模擬器所具有的所有功能。能對(duì)tms320系列dsp進(jìn)行指令級(jí)的仿真和進(jìn)行可視化的實(shí)時(shí)數(shù)據(jù)分析。此外,還提供了豐富的輸入/輸出庫函數(shù)和信號(hào)處理的庫函數(shù),極大地方便了tms320系列dsp軟件的開發(fā)過程。利用ccs的軟件開發(fā)流程圖如圖3.213。圖3.2 ccs開發(fā)流程簡(jiǎn)圖ccs一般工作在兩種模式下:軟件仿真器和與硬件目標(biāo)板相

53、結(jié)合的在線編程。前者可以脫離dsp芯片,在pc機(jī)上模擬dsp的指令集與工作機(jī)制,主要完成前期算法的實(shí)現(xiàn)和調(diào)試;后者可以實(shí)時(shí)運(yùn)行在dsp芯片上,進(jìn)行在線編寫和調(diào)試應(yīng)用程序。c5000 ccs是專為開發(fā)c5000系列dsp應(yīng)用設(shè)計(jì)的,包括tms320c54x和tms320c55x dsp。本論文中使用的軟件開發(fā)環(huán)境為ccs 3.0版本。其使用介面如圖3.3所示。圖3.3 ccs 3.0的使用界面3.2.2 編程語言的選擇在數(shù)字信號(hào)處理器的軟件開發(fā)中,一直存在一個(gè)兩難的選擇即編寫軟件的語言是選擇與dsp相應(yīng)的匯編語言還是易于開發(fā)的高級(jí)語言(如c/c+),或是兩者的混合語言。匯編語言是接近底層的機(jī)器代

54、碼,對(duì)硬件的操作更為直接,編寫程序執(zhí)行速度快,效率較高,但程序編寫復(fù)雜,開發(fā)周期長(zhǎng),程度的易讀性和可移植性較差。這種特點(diǎn)的形成原因主要是:在編寫dsp程序之前首先必須要熟悉所用dsp芯片的匯編指令集;另外,不同公司的dsp芯片所提供的匯編指令集是各不相同,甚至即使是同一公司的dsp芯片由于芯片類型的不同以及芯片的升級(jí)更新,其所支持的匯編指令集也不盡相同。使用高級(jí)語言(如c/c+)進(jìn)行程序開發(fā)更為容易,程序的可讀性和移植性更強(qiáng),從而可以大大提升開發(fā)速度,縮短開發(fā)周期;但是高級(jí)語言的效率較低,不易滿足實(shí)時(shí)性的要求。目前各個(gè)dsp公司推出的高級(jí)語言編譯器的效率都不是很理想,由編譯器產(chǎn)生的匯編程序和手

55、工編寫的匯編程序在效率上相差較大。基于以上考慮,本論文采用的方法是將兩種編程語言折中選擇,即程序的主體框架和對(duì)實(shí)時(shí)性要求不高的部分用c/c+語言編寫,而中斷向量表和鏈接文件等則采用匯編語言編程實(shí)現(xiàn)。這樣能夠充分發(fā)揮兩者的優(yōu)點(diǎn),解決易讀性和效率之間的矛盾。這種方法也可以改善軟件的移植性,在軟件移植時(shí)可以不改變程序的主體框架,而只要為處理器提供相應(yīng)的算法即可。4系統(tǒng)軟件設(shè)計(jì)4.1 主函數(shù)主函數(shù)一般采用c語言編寫,簡(jiǎn)單明了,不會(huì)涉及詳細(xì)的算法等,只是為了構(gòu)建清晰的程序流程。本設(shè)計(jì)的總體流程如圖4.1所示。圖4.1 主程序流程圖多路語音數(shù)據(jù)的處理是在單路的基礎(chǔ)上完成的。即當(dāng)dsp收到多路數(shù)據(jù)后,按照通

56、道依次進(jìn)行處理。整個(gè)系統(tǒng)中只有一個(gè)線性循環(huán)執(zhí)行的程序。首先,執(zhí)行初始化的程序,對(duì)ad和dsp的基本配置進(jìn)行初始化配置,然后不斷循環(huán)調(diào)用核心算法對(duì)單路的數(shù)據(jù)依次進(jìn)行雙音多頻解碼、語音壓縮編碼和傳輸?shù)囊幌盗刑幚?,處理完一路?shù)據(jù)之后,進(jìn)入下一路數(shù)據(jù)的處理,依次循環(huán)往返,直至所有數(shù)據(jù)都被處理完14。圖4.1的流程圖是以四路語音監(jiān)控為例。當(dāng)將初始化執(zhí)行完畢之后,開啟ad,準(zhǔn)備接收采樣數(shù)據(jù),并將采樣所得四路數(shù)據(jù)送入sdram進(jìn)行緩存,每次讀取一路數(shù)據(jù)(即240個(gè)采樣點(diǎn))送入dsp進(jìn)行處理。當(dāng)前這路數(shù)據(jù)進(jìn)行雙音多頻解碼、語音壓縮編碼以及傳輸給pc完成之后,進(jìn)行一次判決,以判斷是否讀取下一路數(shù)據(jù),如果四路數(shù)據(jù)都被處理過一次之后,重新開始處理第一路的數(shù)據(jù),依次循環(huán)。對(duì)于暫存在sdram中的四路數(shù)據(jù),為其開辟不同的存儲(chǔ)空間,每次讀取不同的數(shù)據(jù)區(qū)間即可讀取不同路數(shù)的數(shù)據(jù)。4.2 初始化函數(shù)4.2.1 dsp初始化(1) chip support libr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論