語音信號矢量量化畢業(yè)設計及實現算法的matlab仿真_第1頁
語音信號矢量量化畢業(yè)設計及實現算法的matlab仿真_第2頁
語音信號矢量量化畢業(yè)設計及實現算法的matlab仿真_第3頁
語音信號矢量量化畢業(yè)設計及實現算法的matlab仿真_第4頁
語音信號矢量量化畢業(yè)設計及實現算法的matlab仿真_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、語音信號矢量量化畢業(yè)設計及實現算法的matlab仿真 引 言21世紀是信息的社會各種科技領域的信息大爆炸數字信號的數據量通常很巨大對存儲器的存儲容量通信信道的帶寬及計算機的處理速度帶來壓力因此必須對其進行量化壓縮來緊縮數據存儲容量 較快地傳輸各種信號 并使發(fā)信機功率降低 矢量量化VQ是一種極其重要的信號壓縮方法其在語音信號處理中占有十分重要的地位廣泛應用于語音編碼語音識別語音合成等領域在許多重要的課題中VQ都起著非常重要的作用采用矢量量化技術對信號波形或參數進行壓縮處理可以獲得非常高的效益VQ不僅可以壓縮表示語音參數所需的數碼率而且在減少運算量方面也是非常高效的它還能直接用于構成語音識別和說話

2、人識別系統語音數字通信的兩個關鍵部分是語音質量和傳輸數碼率但這兩者是矛盾的要獲得較高的語音質量就必須使用較高的傳輸碼率相反為了實現高效地壓縮傳輸數碼率就很難得到良好的語音質量但是矢量量化卻是一種既能得到高效壓縮的數碼率 又能保證語音質量的方法量化可以分為兩大類一類是標量量化一類是矢量量化VQ標量量化是把抽樣后的信號值逐個進行量化而矢量量化是先將k個抽樣值組成k維空間中的一個矢量然后將此矢量進行量化它可以極大的降低數碼率優(yōu)于標量量化各種數據都可以用矢量表示直接對矢量進行量化可以方便的對數據進行壓縮矢量量化屬于不可逆壓縮方法具備比特率低解碼簡單失真較小的優(yōu)點矢量量化的發(fā)展大致可以分為兩各階段第一階

3、段約為1956至1977年1956年steinhaus第一次系統的闡述了最佳矢量量化的問題1957年在loyd的PCM中的最小平方化一文中給出了如何劃分量化區(qū)間和如何求量化值問題的結論約于此同時也得出同樣的結果雖然他們談論的都是標量量化問題但他們的算法對后面的矢量量化的發(fā)展有著深刻的影響1964年NEWMAN研究了正六邊形原理1977年berger的率失真理論一書出版總體來說這一階段的工作多是理論性的但它為第二階段的發(fā)展奠定了一定的基礎第二階段約為1978年至今1978年buzo第一個提出實際的矢量量化器他提出的量化系統組成分為兩步第一步將語音信號做線性預測分析求出預測系數第二步對這些系數做矢

4、量量化于是得到壓縮數碼的語音編碼器1980年lindebuzo和gray將Loyd-算法推廣發(fā)表了第一個矢量量化器的設計算法通常稱為LBG算法這就將矢量量化的研究向前推動了一大步這一時期人們對矢量量化問題展開了全面的研究其中主要是對失真測度的探討碼書的設計各種矢量量化系統的研究快速搜索算法的尋找等等矢量量化研究的進展是很快的1980年美國加州公司在原來的編碼速度為24kbs的線性預測聲編碼器的基礎上僅將濾波系數從標量量化改為矢量量化就可以使編碼速率降低到800bs而聲音質量基本未下降1983年美國BBN公司研制了一種分段式聲編碼器由于該聲碼器采用了矢量量化所以可以用150bs的速率來傳送可懂的

5、話音近幾十年來在已經提出的各種矢量量化方法和系數的基礎上更多更好的矢量量化方法漸漸出現在圖像數據壓縮和語音識別的應用方面矢量量化研究也得到了很快的發(fā)展提出各種各樣的矢量量化系統用硬件實現矢量量化系統的方法也越來越多矢量量化壓縮技術的應用領域非常廣闊如軍事部門和氣象部門的衛(wèi)星 或航天飛機 遙感照片的壓縮編碼和實時傳輸雷達圖像和軍用地圖的存儲與傳輸數字電視和DVD的視頻壓縮醫(yī)學圖像的壓縮與存儲網絡化測試數據的壓縮和傳輸語音編碼圖像識別和語音識別等等 第一章 矢量量化器11 矢量量化概述11 矢量量化的基本概念 要了解矢量量化首先要了解量化和標量量化等基本概念量化就是把一個模擬信號值的連續(xù)范圍分為若

6、干相鄰并具有唯一量值的區(qū)間凡落在某區(qū)間的抽樣信號樣值都指定為該區(qū)間量值的過程 量化分為兩類標量量化和矢量量化一 標量量化整個動態(tài)范圍被分成若干個小區(qū)間每個小區(qū)間有一個代表值量化時落入小區(qū)間的信號值就用這個代表值代替或者叫被量化為這個代表值這時的信號量是一維的所以稱為標量量化圖1-1標量量化原理圖二 矢量量化 矢量量化若干個標量數據組成一個矢量矢量量化是對矢量進行量化它把矢量空間分成若干個小區(qū)域每個小區(qū)域尋找一個代表矢量量化時落入小區(qū)域的矢量就用這個代表矢量代替或者叫著被量化為這個代表矢量在輸入信號序列中每K個連續(xù)樣點可以組成一組K維歐式空間中的一個矢量矢量量化就是把這個K維輸入矢量X映射成另一

7、個K維量化矢量其中量化矢量構成的集合稱為碼書或碼本碼書中的每個矢量稱為碼字或碼矢比如說當K 2時所得到的是二維矢量所有可能的二維矢量就構成了一個平面記為a1a2所有可能的a1a2就是一個二維空間如圖a所示矢量量化就是將平面分成M小區(qū)域即從每個小區(qū)域中找出代表向量這些代表向量的集合就是有M個區(qū)間的二維矢量量化器若要對落在二維矢量空間中的一個模擬矢量進行量化首先要選擇一個合適的失真測度而后利用最小失真原則分別計算用量化矢量替代X所帶來的失真其中最小失真值所對應的那個量化矢量中的某一個就是模擬矢量X的重構矢量或稱恢復矢量通常把所有M個量化矢量構成的集合稱之為碼書codebook或碼本碼書中的量化矢量

8、稱為碼字codeword或碼矢codevector例如圖b中所示的矢量量化器的碼書其中每個量化矢量稱為碼字或碼矢不同的劃分或不同的量化矢量選取就可以構成不同的矢量量化器 a b 圖 1-3 矢量量化示意圖 根據上面對矢量量化的描述我們可以給矢量量化以下的定義矢量量化是把一個K維模擬矢量映射成為另一個K維量化矢量其數學表達式為 式1-1 式1-2 式中X表示輸入矢量表示信源空間表示K維歐氏空間Y表示量化矢量碼字或碼矢表示輸出空間即碼書表示量化符號N表示碼書的大小即碼字的數目矢量量化系統通??梢苑纸鉃閮蓚€集合的映射即 式1-3式中 是編碼器它是將輸入矢量映射為信道符號集中的一個元是譯碼器它是將信道

9、符號映射為碼書中的一個碼字即 式1-4 式1-5 com 矢量量化步驟矢量量化共有三個關鍵技術即碼書設計碼字搜索和碼字索引分配其中前兩項最關鍵一 碼書設計 對于矢量量化首先要解決的問題是設計出一個性能好的碼書如果沒有碼書那么編碼將根本無法實現如果用平方誤差測度作為失真測度并且訓練矢量數為N想要生成含有M M N 個碼字的碼書那么設計碼書的過程就要找到一種最佳方案把N個訓練矢量分成M類而把這M類的質心矢量作為碼書的碼字所以尋求一種有效的算法使盡可能找到全局最優(yōu)或接近全局最優(yōu)的碼書來提高碼書性能才是研究碼書設計算法的目的從而減少計算的復雜程度二 碼字搜索 矢量量化碼字搜索算法是當碼書已經設計好的時

10、候輸入給定矢量在碼書中搜索與輸入碼字間失真最小的碼字1三 碼字索引分配 在矢量量化參與的編碼和解碼系統中如果信道有噪聲則在信道左端的索引i經過信道傳輸輸出索引j 這樣就會導致在解碼端引入額外的失真碼字索引進行重新分配可以有效的減少這種失真對于矢量量化來說設計性能好的碼書是矢量量化最為關鍵的問題好的碼書能最大程度的提高矢量量化的效果使得恢復后的矢量語音圖像和原來的矢量語音圖像盡可能的相似12 矢量量化器概述矢量量化在實際中的應用實現就是矢量量化器矢量量化器在實際生產生活中的應用非常廣泛特別是在多媒體信息中矢量量化技術的核心是矢量量化器的設計1978年第一個實際的矢量量化器發(fā)明在這么多年的發(fā)展中矢

11、量量化技術被不斷的推出新的設計com 矢量量化器原理矢量量化器可以分解為兩個部分編碼器和解碼器在編碼端輸入矢量X與碼書中的每一個或部分碼字進行比較分別計算它們的失真搜索到失真最小的碼字的序號或此碼字所在碼書中的地址并將的編碼信號通過信道傳輸到譯碼端在譯碼端先把信道傳來的編碼信號譯成序號再根據序號 或碼字所在地址 從碼書中查出相應的碼字由于碼書與碼書是一樣的此時失真最小所以就是輸入矢量X的重構矢量恢復矢量很明顯由于在信道中傳輸的并不是矢量本身而是其序列號的編碼信號所以傳輸速率還可以進一步提高矢量量化器原理框圖如下圖1-4矢量量化器原理框圖com 失真測度設計矢量量化器的關鍵是編碼器的設計而譯碼器

12、的工作僅是一個簡單的查表過程在編碼的過程中需要引入失真測度的概念前已指出失真是將輸入信號矢量用碼書的重構矢量來表征時的誤差或付出的代價而這種代價的統計平均值平均失真描述了矢量量化器的工作特性失真測度是以什么樣的方法來反映用碼字代替信源矢量時所付出的代價即 式1-6式中 表示求期望在矢量量化器的設計中失真測度的選擇是很重要的失真測度選用得合適與否直接影響系統的性能失真測度主要有均方誤差失真測度即歐氏距離加權的均方誤差失真測度板倉-齋藤似然比距離似然比失真測度等它們在語音信號處理中常被應用于語音波形矢量量化線性預測參數矢量量化和孤立詞識別的矢量量化中在本畢業(yè)設計中各種算法中涉及到計算失真的部分均采

13、用的是歐氏距離-均方誤差歐氏距離-均方誤差的定義如下設輸入信號的某個K維矢量X與碼書中某個K維矢量Y進行比較分別表示X和Y中的各元素則定義均方誤差為歐氏距離即有 式1-7這里的下標2表示平方誤差第二章 矢量量化器算法研究經過多年的研究矢量量化算法已有不少包括LBG算法K均值算法 K-Means 模擬退火算法K均值修正算法 MKM 鏈映射法最鄰近算法預測矢量量化法 PreVQ 乘積矢量量化法等等本章選取LBG算法覆蓋算法和PNN算法三種算法進行研究21 最佳碼本設計最佳矢量量化器的碼本設計也被稱為最佳碼本設計即從大量的輸入信號樣本中訓練出一個好的碼本在一定的條件下矢量量化器的最佳碼本設計使失真最

14、小矢量量化器最佳設計中最重要的問題是如何確定量化區(qū)間和確定矢量量化也就是要達到最佳劃分和最佳碼書一 最佳劃分碼書給定可以用最近鄰準則NNRNearest Neighbor Rule 也稱voronoi分割條件得到最佳劃分最鄰近準則根據該條件對信號空間進行最佳劃分對于信源空間中的任意一個矢量X若X和碼字的失真小于它和其他碼字的失真即 式2-1則為最佳劃分即為一個胞腔由于給定碼書中共有N個碼字所以可以把信源空間劃分為N個區(qū)間二 最佳碼書劃分了后為了使碼書的平均失真最小碼字必須為相應劃分 的形心即滿足 centroid質心條件 式2-2為集合中矢量的個數22 LBG算法實現LBG算法由Linde B

15、uzo和 Gray在1980年提出它是標量量化器中Lloyd算法的推廣在矢量量化中是一個基本算法2LBG算法以其嚴密的理論簡便的應用和設計效果良好被廣泛的應用是許多新型碼書設計算法的基礎算法LBG算法是一種迭代算法從一個最初選定的初始碼本開始迭代把訓練序列進行分組找到每組的初始碼書計算初始碼本與訓練序列的失真度根據最小失真度來確定新的碼本產生的新碼本作為第二次迭代的初始碼本重復上述過程直到系統滿足性能要求或不在有明顯改進是結束迭代com LBG算法的實現流程LBG算法根據最佳矢量量化器設計的最佳劃分和最佳碼書這兩個必要條件提出它的特點是算法理論嚴密物理概念清晰和算法實現容易LBG算法是目前比較

16、常用和流行的一種碼書建立方法該方法可以用于兩種情況一是已知信源概率分布二是未知信源概率分布但是已知一個信號序列的情況由于實際情況中信源確定多維的概率分布很難所以利用訓練序列建立碼本的LBG算法用得比較多一些利用訓練序列建立碼書的LBG算法的步驟如下3第一步 初始化給定初始碼書即給定碼書的大小N和碼字并設置n 0設起始平均失真 以及給定計算停止門限第二步 迭代用初始碼書為形心根據最鄰近準則將訓練序列分成N個胞腔即 式2-3 式2-4第三步 計算平均失真與相對失真平均失真為 式2-5相對失真為 式2-6若 則停止計算當前的碼書就是設計好的 否則進行第四步第四步 利用公式 計算這時劃分的各個胞腔的形

17、心由這N個新形心構成新的碼書 并置n n1返回第二步再進行計算直到得到所要求的碼書為止LBG算法流程圖如下所示 圖2-1LBG算法流程圖com LBG算法初始碼書的選取一 隨機選取法 該方法最先是用在聚類算法中它是從訓練序列中隨機選取N個矢量作為初始碼字構成初始碼書其優(yōu)點是大大節(jié)約計算時間而且由于初始碼書是從訓練序列中選出來得所以沒有空胞腔的問題隨機選取法的另一個優(yōu)點是形成初始碼書的過程需要的時間較短但這種方法也存在一些問題就是很可能選到一些不是典型的矢量作為碼字因此該胞腔只有很少的矢量特別是只剩下一個初始碼字造成在某些空間將胞腔劃分的太細致碼字中有很多個碼字得不到充分的利用而有些空間將胞腔分

18、的過大所以該方法比較適用于相對比較平穩(wěn)的序列語音信息與別的多媒體信息比較信息之間的冗余較少本設計中的語音信息由于選取的時間較短就是一個相對平穩(wěn)的序列所以使用隨機選取法選取初始碼書是可行的二 分裂法該方法是1980年由LindeBuzoGray提出的先取一個較少碼字的碼書用LBG算法對其優(yōu)化對優(yōu)化的結果進行分裂得到較大的體積較優(yōu)化的碼書再重復優(yōu)化分裂再優(yōu)化過程具體步驟如下第一步計算所有訓練序列的形心將此形心作為第一個碼字第二步用一個合適的參數A乘以碼字形成第二個碼字第三步以碼字為簡單的初始碼書即 式2-7用前面所述的LBG算法去設計僅含兩個碼字的碼書第四步將碼書中的兩個碼字分別乘以合適的參數B得

19、到四個碼字第五步以這4個碼字為基礎按步驟3構成含4個碼字的碼書再乘以合適的參數以擴大碼字的數目如此反復經過次設計就得到所要求的有N個碼字的初始碼書在此方法中這些參數的選擇對初始碼書的設計性能有一定影響用分裂法形成的初始碼書其性能較好當然矢量量化器的性能也較好只是計算工作量比較大隨著馬書中碼字的增加計算量也迅速增加com LBG算法非典型碼矢的問題LBG算法中遇到的另一個問題是隨機選取法中的非典型碼字如何處理此問題同樣存在于其他算法中下面進行說明4在隨機選取法中存在一些非典型矢量用它們去形成胞腔時胞腔中往往只有少數幾個矢量甚至只有它們自身一個矢量其實在別的設計算法中也有只含有很少幾個矢量的胞腔此

20、時一般采用下面的方法進行處理第一步 重新選擇隨機初始碼字直到沒有非典型碼字為止第二步 把這種胞腔中少數矢量分別歸并到鄰近的各個胞腔中再用分裂法把其中一個最大的胞腔分裂為兩個小胞腔23 覆蓋算法的實現com 覆蓋算法的基本原理及實現流程覆蓋算法的基本原理如下5第一歩 給定一個失真半徑任選一個訓練矢量作為第一個碼字計算出此碼字相對訓練序列TS中各個矢量的失真凡失真小于的那些TS中的矢量均屬于胞腔這樣確定的胞腔為 式2-8第二歩 在剩余的矢量之中選一個訓練矢量作為第二個碼字仍以與上述相同的矢量半徑計算相對剩余TS中各矢量的失真以確定第二個胞腔即 式2-9第三歩 按上述步驟構成新的胞腔要不斷的修改失真

21、半徑反復多次修改直至選出的碼字個數滿足碼書大小N的要求為止覆蓋算法流程圖如下所示圖2-2覆蓋算法流程圖24 成對最鄰近PNN算法的實現com 成對最鄰近PNN算法的實現流程成對最鄰近算法PNNpairwise nearest neighbor由Eqitz等人提出6該算法是刪除算法的一種因為它在設計過程中不斷合并這個合并的過程不斷進行直到胞腔數目達到要求7假設訓練矢量集中的矢量個數為M每個矢量都占有一個獨立的胞腔算法的目的是不斷合并相臨近的兩個胞腔直到得到所需數目的胞腔且最終的碼書由各胞腔的質心矢量組成設訓練矢量集為該算法描述如下步驟1令碼字數n M每個胞腔的質心步驟2計算各對碼字和間的失真步驟

22、3假設則合并胞腔和碼字更新為 式3-10若j n-1則從碼書中去掉碼字否則令 從碼書中去掉碼字 令n n-1 步驟4若 n N則終止程序其中N為所要求的碼書大小否則轉步驟2繼續(xù)合并最近的兩個胞腔將PNN算法得到的碼書作為LBG算法的初始碼書初始碼書的碼字能在整個輸入矢量空間中很好的散開盡可能的占據輸入概率密度較大的區(qū)域提高最后碼書的質量PNN算法流程圖如下所示圖2-3PNN算法流程圖第三章 矢量量化器的設計及MATLAB仿真MATLAB仿真環(huán)境簡介MATLAB是由美國mathworks公司發(fā)布的主要面對科學計算可視化以及交互式程序設計的高科技計算環(huán)境它將數值分析矩陣計算科學數據可視化以及非線性

23、動態(tài)系統的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中為科學研究工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案并在很大程度上擺脫了傳統非交互式程序設計語言如CFortran的編輯模式 MATLAB可以進行矩陣運算繪制函數和數據實現算法創(chuàng)建用戶界接其他編程語言的程序等主要應用于工程計算控制設計信號處理與通訊圖像處理信號檢測金融建模設計與分析等領域 1 矢量量化器LBG算法的仿真及仿真結果分析com 程序設計思路為了使程序簡短運行容易初始碼書的選取采用隨機選取法考慮到輸入數據有正值有負值失真測度采用歐氏距離-均方誤差8具體的程序輸入為150841秒長的8比特單聲道

24、語音取樣頻率為8000hz通過隨機選取的方法選取大小為200的初始碼書設置碼本維數是5碼書大小為16通過不斷迭代來修改碼書直到小于失真門限0001停止迭代此時的碼書是最終的碼書仿真達到200個數據量化為16個數據的目的程序運行結果語音長度 150841 秒取樣頻率 8000 取樣點秒sample_num 200s初始碼書 00234 0 00547 00703 01406 -01094 -01797 -01328 -00469 00078 00234 00859 00938 01094 01172 -00859 -01406 -01484 -01172 -00547 01406 00781 0

25、0313 00547 00781 -01328 -01406 -01953 -01797 -00391 01016 00547 00234 -00234 0 -00156 -00625 -00625 -00156 00313 01797 01484 00547 -00234 -00078 -01016 -00313 00625 00625 00938 -01563 -02188 -01875 -01797 -01875 01250 00703 00313 -00234 -00938 -00078 00313 0 -00156 -00313 0 01016 00859 -00078 -00234

26、 -00859 -00234 -00156 -00625 -00469 -00781 -00625 -00703 -00625 -00547cpu_time 26891pj_distort 平均失真 Columns 1 through 1001529 00766 00648 00574 00528 00455 00426 00400 00389 00386Columns 11 through 12 00384 00384xd_shizhen 相對失真 Columns 1 through 10 10000 04993 01532 01141 00813 01372 00640 00625 002

27、72 00060Columns 11 through 1200060 0N1 每個碼書的樣本個數 11 12 10 12 11 5 14 19 10 9 6 2 20 24 22 13j2循環(huán)次數 12final_codebook -00462 -00036 00710 01470 02273 -01165 -01328 -01250 -00846 -00306 07891 07305 07141 06687 05828 -03086 -03438 -03314 -03548 -04505 02649 03764 05327 05320 06314 -05781 -04250 -03594 -

28、02484 00156 01217 00871 00368 -00073 -00229 -00728 -00592 -00341 -00247 -00029 03836 03063 01922 01812 01234 -01311 -00712 -00009 00634 00938 -09492 -09401 -09089 -08802 -07656 02813 01953 00391 -01797 -03242 00074 00289 00309 00180 00145 01120 01064 01289 01061 00918 00004 -00302 -00526 -00803 -008

29、77 -00811 -01190 -01454 -01599 -01989輸入語音與碼書波形如下圖所示圖3-1輸入語音與碼書波形圖com 仿真結果在對實際語音信號進行MATLAB仿真的過程中通過改變語音數據量大小碼書維數失真門限量化壓縮比四個參數比對分析實驗結果的數據一 改變數據量改變數據量大小碼書中碼字個數隨之變化保持量化壓縮比不變表3-100310001270031700216相對失真00008000060000500003運算時間4019951241140367443729數據分析改變數據量大小試驗用的是同一段語音保持量化壓縮比125不變使輸入訓練序列大小分別為1000200050001

30、0000則碼書中碼字個數為80160400800其他參數設置不變結果如上表所示循環(huán)次數為10131414呈現遞增趨勢平均失真沒有規(guī)律相對失真為00008000060000500003呈現遞減趨勢運算時間為401995124114036744372呈現遞減趨勢進行大量的仿真說明輸入的數據量越大相對失真越小循環(huán)次數越多運算量運算時間越大二 改變量化壓縮比改變數據量大小碼書中碼字個數不變壓縮比隨之改變表3-2000450006000082相對失真000100000700009運算時間288237152322130247數據分析改變量化壓縮比試驗用的是同一段語音保持訓練序列樣本個數10000不變使量化

31、壓縮比分別為1252550則碼書中碼字個數為800400200其他參數設置不變結果如上表所示循環(huán)次數為141521呈現遞增趨勢相對失真沒有規(guī)律平均失真為000450006000082呈現遞增趨勢運算時間為288237 152322 130247呈現遞減趨勢進行大量的仿真說明壓縮比越大循環(huán)次數越多平均失真越大運算量運算時間越多 三 改變碼書維數表3-3000490013400234相對失真000080000700005運算時間251355313353397941數據分析改變碼字維數試驗用的是同一段語音使碼字維數分別為5811其他參數設置不變結果如上表所示循環(huán)次數為151413呈現遞減趨勢平均失真

32、為0004900134 00234呈現遞增趨勢相對失真為000080000700005呈現遞減趨勢運算時間為251355313353397941呈現遞減趨勢進行大量的仿真說明 碼書維數越大循環(huán)次數越少平均失真越大相對失真越小運算量運算時間越大四 改變失真門限3-456815平均失真00242002400023800234相對失真00137000840004400008運算時間150609176709218670383548數據分析改變失真門限試驗用的是同一段語音使失真門限分別為00200100050001其他參數設置不變結果如上表所示循環(huán)次數為56815呈現遞增趨勢平均失真為002420024

33、00023800234呈現遞減趨勢相對失真為00137000840004400008呈現遞減趨勢運算時間為150609176709218670383548呈現遞減趨勢進行大量的仿真說明失真門限越小平均失真越小相對時間越小循環(huán)次數越大運算量運算時間越大仿真結論一 保持量化壓縮比不變輸入的數據量越大相對失真越小循環(huán)次數越多運算量運算時間越大二 壓縮比越大循環(huán)次數越多平均失真越大運算量運算時間越多 三 碼書維數越大循環(huán)次數越少平均失真越大相對失真越小運算量運算時間越大四 失真門限越小平均失真越小相對失真越小循環(huán)次數越大運算量運算時間越大32 矢量量化器覆蓋算法的仿真及仿真結果分析com 程序設計思路

34、為了使程序簡短運行容易初始碼書的選取采用隨機選取法考慮到輸入數據有正值有負值失真測度采用歐氏距離-均方誤差具體的程序輸入為150841秒長的8比特單聲道語音取樣頻率為8000hz通過隨機選取的方法選取大小為200的初始碼書 設置碼本維數是5初始失真半徑為0001通過不斷增大失真半徑迭代來修改碼書直到碼書大小滿足碼書大小16停止迭代此時的碼書是最終的碼書仿真達到200個數據量化為16個數據的目的程序運行結果劃分胞腔次數 1754最終碼書中碼字個數 16最終失真半徑 01763每個胞腔中的向量數 138 14 6 1 7 4 5 4 1 2 1 4 2 2 1 3cpu_time 533711co

35、m 仿真結果在對實際語音信號進行MATLAB仿真的過程中通過改變語音數據量大小碼書維數初始失真半徑量化壓縮比四個參數比對分析實驗結果的數據一 改變數據量改變數據量大小碼書中碼字個數隨之變化保持量化壓縮比不變表3-5參數類型8比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s15s樣本個數50100200400碼書中碼字個數481632碼字維數5555量化壓縮比125125125125初始失真半徑002002002002最終失真半徑00307002840176302573空胞腔個數0045劃分胞腔次數10784

36、15632373運算時間03468062483815043337794數據分析改變數據量大小試驗用的是同一段語音保持量化壓縮比125不變使輸入訓練序列大小分別為50100200400則碼書中碼字個數為481632其他參數設置不變結果如上表所示劃分胞腔次數10784156384基本呈現遞增趨勢最終失真半徑為00307002840176302573呈現遞減趨勢運算時間為03468062483815043337794呈現遞增趨勢進行大量的仿真說明輸入的數據量越大劃分胞腔次數越多最終失真半徑越小運算量運算時間越大二 改變碼書維數改變數據量大小碼書中碼字個數不變壓縮比隨之改變表3-6參數類型8比特單聲道

37、采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s樣本個數100100100碼書中碼字個數888碼字維數5811量化壓縮比125125125初始失真半徑002002002最終失真半徑002840119205956空胞腔個數020劃分胞腔次數849925756運算時間062481807521528775數據分析改變碼字維數試驗用的是同一段語音使碼字維數分別為5811其他參數設置不變結果如上表所示劃分胞腔次數為849925756呈現遞增趨勢最終失真半徑為002840119205956呈現遞增趨勢運算時間為062481807521528775呈現遞減趨

38、勢進行大量的仿真說明 結論碼書維數越大劃分胞腔次數越多最終失真半徑越大運算量運算時間越大三 改變初始失真半徑表3-7參數類型8比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s15s樣本個數100100100100碼書中碼字個數8888碼字維數5555量化壓縮比125125125125初始失真半徑00010005001002最終失真半徑00284002840028400284空胞腔個數0000劃分胞腔次數27524419484運算時間44113273071759506248數據分析改變初始失真半徑試驗用的是同

39、一段語音使初始失真半徑分別為00010005 001com表所示胞腔劃分次數為27524419484呈現遞增趨勢最終失真半徑均為00284胞腔劃分是一模一樣的運算時間為4411327307175906248呈現遞減趨勢進行大量的仿真說明初始失真半徑越大劃分胞腔次數越大最終失真半徑不受影響而運算量運算時間越小胞腔劃分是一模一樣的四 改變量化壓縮比表3-8參數類型8比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s15s樣本個數50100200400碼書中碼字個數8888碼字維數5555量化壓縮比62512525

40、50初始失真半徑001001001001最終失真半徑00193002840343306772空胞腔個數1010劃分胞腔次數10319433436682運算時間04027131964647723850976數據分析改變量化壓縮比試驗用的是同一段語音保持碼書中碼字個數不變使量化壓縮比分別為625 1252550則碼書中碼字個數為50100200400其他參數設置不變結果如上表所示胞腔劃分次數為10319433436682呈現遞增趨勢最終失真半徑為00193 00284 03433 06772呈現遞增趨勢運算時間為04027131964647723850976呈現遞增趨勢進行大量的仿真說明壓縮比越大

41、胞腔劃分次數越多最終失真半徑越大運算量運算時間越多五 LBG算法與覆蓋算法對比設置量化壓縮比為125不變碼書維數均為為5維LBG算法的失真門限為002覆蓋算法的初始失真半徑為002初始碼書均由隨機選取法生成表3-9247742582426235空胞腔數002胞腔中矢量個數的方差422500270625648000覆蓋算法初始失真半徑為002運算時間00284370280852736空胞腔數0528胞腔中矢量個數的方差167359411431e00326281e003數據分析在相同初始碼書和量化壓縮比情況下訓列序列大小分別為1004001000碼書大小分別為83280LBG算法的運算時間分別為2

42、47742582426325覆蓋算法的運算時間分別為00284370280648000LBG算法產生的空胞腔數為002覆蓋算法產生的空胞腔數分別為0528LBG算法劃分的胞腔中的矢量個數的方差分別為422500270625648000覆蓋算法劃分的胞腔中的矢量個數的方差分別為167359411431e00326281e003進行大量的仿真說明當訓練序列較小時覆蓋算法比LBG算法的運算量少運算時間短當訓練序列較大時LBG算法比覆蓋算法的運算量少運算時間短另外覆蓋算法算法比LBG算法算法更容易產生空胞腔失真更大且胞腔中向量個數的方差更大也即覆蓋算法比LBG算法劃分出的胞腔更不均勻com 仿真總結一

43、 輸入的數據量越大劃分胞腔次數越多最終失真半徑越小運算量運算時間越大二 碼書維數越大劃分胞腔次數越多最終失真半徑越大運算量運算時間越大三 初始失真半徑越大劃分胞腔次數越大最終失真半徑不受影響而運算量運算時間越小胞腔劃分是一模一樣的四 壓縮比越大胞腔劃分次數越多最終失真半徑越大運算量運算時間越多五 當訓練序列較小時覆蓋算法比LBG算法的運算量少運算時間短當訓練序列較大時LBG算法比覆蓋算法的運算量少運算時間短另外覆蓋算法算法比LBG算法算法更容易產生空胞腔失真更大且胞腔中向量個數的方差更大也即覆蓋算法比LBG算法劃分出的胞腔更不均勻33 矢量量化器成對最鄰近PNN算法的仿真及仿真結果分析com

44、程序設計思路為了使程序簡短運行容易初始碼書的選取采用隨機選取法考慮到輸入數據有正值有負值失真測度采用歐氏距離-均方誤差具體的程序輸入為150841秒長的8比特單聲道語音取樣頻率為8000hz通過隨機選取的方法選取大小為200的訓練序列 設置碼本維數是5初始化碼書為訓練序列一個訓練矢量為一個胞腔計算所有碼字之間的失真找出失真最小的兩個碼字合并胞腔直到碼書大小滿足碼書大小16停止迭代此時的碼書是最終的碼書仿真達到200個數據量化為16個數據的目的程序運行結果循環(huán)次數 184final_book 03920 03010 00529 -00333 -00117 -01431 -00857 00231

45、01574 02956 03464 03938 05330 06240 08340 -00558 -00557 -00456 -01162 -01927 08311 07588 07715 07559 07783 -05343 -04830 -04548 -03186 -02977 -10000 -10000 -09766 -09492 -09570 -08477 -08438 -08008 -07832 -05820 01484 -01875 -04141 -05156 -07344 09922 09922 09922 09922 09922 04673 03242 02537 03052

46、02275 -05098 -03496 -02266 -01758 01953 00840 03213 04883 05098 05303 04609 01953 00313 -03281 -03594 -03594 -03750 -04375 -06953 -10000 09922 09063 07813 05547 01719cup_time 113905每個胞腔中的碼字個數 72 16 9 60 5 12 3 3 1 1 7 3 5 1 1 1com 仿真結果在對實際語音信號進行MATLAB仿真的過程中通過改變語音數據量大小碼書維數量化壓縮比三個人參數比對分析實驗結果的數據一 改變數據量

47、表3-10參數類型8比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s15s樣本個數50100200400碼書中碼字個數481632碼字維數5555量化壓縮比125125125125空胞腔個數0156胞腔中向量個數的方差22250019725004316705000循環(huán)次數4692184368運算時間0213115203123226989196數據分析改變數據量大小試驗用的是同一段語音保持量化壓縮比125不變使輸入訓練序列大小分別為50100200400則碼書中碼字個數為481632其他參數設置不變結果如上表

48、所示循環(huán)次數4692368184呈現遞增趨勢空胞腔個數為0156呈現遞增趨勢胞腔中向量個數的方差為22250019725004316705000呈現遞增趨勢運算時間為0213114836123226989196呈現遞增趨勢進行大量的仿真說明輸入的數據量越大循環(huán)次數越多空胞腔數越多胞腔劃分越不均勻運算量運算時間越大二 改變碼書維數表3-11參數類型8比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s15s樣本個數100100100100碼書中碼字個數8888碼字維數581114量化壓縮比125125125125

49、空胞腔個數1314胞腔中向量個數的方差1972500375250022475004685000循環(huán)次數92929292運算時間15203190522149419200數據分析改變碼字維數試驗用的是同一段語音使碼字維數分別為5814其他參數設置不變結果如上表所示循環(huán)次數為92929292不變運算時間為15203190522149419200胞腔中向量個數的方差為1972500375250022475004685000呈現遞增趨勢進行大量的仿真說明 結論碼書維數越大胞腔中向量的個數的方差越大胞腔劃分的越不均勻 三 改變量化壓縮比表3-12參數類型8比特單聲道采樣率為80008比特單聲道采樣率為80

50、008比特單聲道采樣率為80008比特單聲道采樣率為8000語音長度15s15s15s15s樣本個數50100200400碼書中碼字個數8888碼字維數5555量化壓縮比6251252550空胞腔個數3110胞腔中向量個數的方差3568751972500959250029578e003循環(huán)次數4292192392運算時間0209515203123646950149數據分析改變量化壓縮比試驗用的是同一段語音保持最終碼書大小8不變使量化壓縮比分別為 6251252550則初始碼書中碼字個數為50100200400其他參數設置不變結果如上表所示循環(huán)次數為4292192392呈現遞增趨勢空胞腔個數分別為3110胞腔中向量個數的方差為3568751972500959250029578e003呈現遞增趨勢運算時間為0209515203123646950149呈現遞增趨勢進行大量的仿真說明壓縮比越大循環(huán)次數越多空胞腔個數越少胞腔劃分越不平均運算量運算時間越多四 LBG算法與PNN算法對比設置量化壓縮比為125不變碼書維數均為為5維LBG算法的失真門限為002初始碼書均由隨機選取法生成表3-13247742582426561空胞腔數000胞腔中向量個數的方差42250027062

溫馨提示

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

評論

0/150

提交評論