MATLAB的A律PCM譯碼器系統(tǒng)仿真論文_第1頁
MATLAB的A律PCM譯碼器系統(tǒng)仿真論文_第2頁
MATLAB的A律PCM譯碼器系統(tǒng)仿真論文_第3頁
MATLAB的A律PCM譯碼器系統(tǒng)仿真論文_第4頁
MATLAB的A律PCM譯碼器系統(tǒng)仿真論文_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MATLAB的A律PCM譯碼器系統(tǒng)仿真 摘 要 脈沖編碼調制(PCM)是現代語音通信中數字化的重要編碼方式。本課程設計主要目的是在信號傳輸過程中,運用A律PCM譯碼實現數字信號到模擬信號的轉換。該設計運用MATLAB的M文件來編寫程序,根據經過抽樣、量化、編碼后收到的碼組(極性碼除外),使用A律譯碼產生相應的控制脈沖,從而輸出一個與發(fā)信端抽樣值接近的脈沖,通過計算,得出理論值與實際值近似,成功達到了設計效果。 關鍵詞 PCM脈沖編碼;MATLAB;A律13折線;譯碼 1 引 言近十年來,隨著大規(guī)模集成電路的飛速發(fā)展,已可將話路濾波器和PCM編碼器集成在同一芯片上,這使PCM在光纖通信,數字微波

2、通信,衛(wèi)星通信等數字通信領域中獲得了更廣泛的應用。然而在某些需要PCM編碼器的實際應用中,如數字交換機中的信號音的產生和實現,單靠PCM編解碼芯片來完成整個編解碼功能,在電路設計和實現上都顯得煩瑣和笨拙,相反如果運用軟件方法來實現PCM編解碼芯片的部分功能并與PCM編解碼芯片相結合來共同完成整個電路設計上的編解碼,不僅設計簡單,靈活方便,而且往往可以達到事半功倍的結果。在現代通信系統(tǒng)中以PCM為代表的編碼調制技術被廣泛應用于模擬信號的數字傳輸。PCM的主要優(yōu)點是:抗干擾能力強;失真??;傳輸特性穩(wěn)定,尤其是遠距離信號再生中繼時噪聲不累積,而且可以采用壓縮編碼、糾錯編碼和保密編碼等來提高系統(tǒng)的有效

3、性、可靠性和保密性。另外,PCM還可以在一個信道上將多路信號進行時分復用傳輸。所以,在未來的很長一段時間內,PCM在通信系統(tǒng)中都會起著很大的作用。隨著電子技術和計算機技術的發(fā)展,仿真技術也得到了廣泛的應用?;谛盘栍糜谕ㄐ畔到y(tǒng)的動態(tài)仿真軟件MATLAB具有強大的功能,可以滿足從底層到高層不同層次的設計、分析使用,并且提供了嵌入式的模塊分析方法,形成多層系統(tǒng),使系統(tǒng)設計更加簡潔明了,便于完成復雜系統(tǒng)的設計。 1.1 課程設計目的該課程設計的目的是讓我們進一步學習PCM編譯碼器原理;在通信系統(tǒng)仿真軟件MATLAB平臺上,采用M文件設計A律PCM碼譯碼器。對設計項目進行調試;對譯碼器進行仿真;對仿真

4、結果結合編譯碼理論進行分析等。1.2 課程設計要求設計譯碼器前,首先以理論作指導,構思設計方案。再用MATLAB語言編寫程序,在MATLAB軟件平臺上運行,得到正確程序,并且進行調試、仿真和分析。然后對結果進行處理,輸出結果和分析結論應該一致,而且應符合理論。最后,獨立完成課程設計并按要求寫課程設計報告書。1.3 設計平臺該設計使用的是MATLAB軟件平臺?,F在應用非常廣泛。一種語言之所以能如此迅速地普及,顯示出如此旺盛的生命力,是由于它有著不同于其他語言的特點,正如同FORTRAN和C等高級語言使人們擺脫了需要直接對計算機硬件資源進行操作一樣,被稱作為第四代計算機語言的MATLAB,利用其豐

5、富的函數資源,使編程人員從繁瑣的程序代碼中解放出來。MATLAB最突出的特點就是簡潔。MATLAB用更直觀的,符合人們思維習慣的代碼,代替了C和FORTRAN語言的冗長代碼。MATLAB給用戶帶來的是最直觀,最簡潔的程序開發(fā)環(huán)境。以下簡單介紹一下MATLAB的主要特點。(1)語言簡潔緊湊,使用方便靈活,庫函數極其豐富。MATLAB程序書寫形式自由,利用起豐富的庫函數避開繁雜的子程序編程任務,壓縮了一切不必要的編程工作。由于庫函數都由本領域的專家編寫,用戶不必擔心函數的可靠性??梢哉f,用MATLAB進行科技開發(fā)是站在專家的肩膀上。(2)運算符豐富。由于MATLAB是用C語言編寫的,MATLAB提

6、供了和C語言幾乎一樣多的運算符,靈活使用MATLAB的運算符將使程序變得極為簡短。(3)MATLAB既具有結構化的控制語句(如for循環(huán),while循環(huán),break語句和if語句),又有面向對象編程的特性。(4)程序限制不嚴格,程序設計自由度大。例如,在MATLAB里,用戶無需對矩陣預定義就可使用。(5)程序的可移植性很好,基本上不做修改就可以在各種型號的計算機和操作系統(tǒng)上運行。(6)MATLAB的圖形功能強大。在FORTRAN和C語言里,繪圖都很不容易,但在MATLAB里,數據的可視化非常簡單。MATLAB還具有較強的編輯圖形界面的能力。(7)MATLAB的缺點是,它和其他高級程序相比,程序

7、的執(zhí)行速度較慢。由于MATLAB的程序不用編譯等預處理,也不生成可執(zhí)行文件,程序為解釋執(zhí)行,所以速度較慢。(8)功能強大的工具箱是MATLAB的另一特色。MATLAB包含兩個部分:核心部分和各種可選的工具箱。核心部分中有數百個核心內部函數。其工具箱又分為兩類:功能性工具箱和學科性工具箱。功能性工具箱主要用來擴充其符號計算功能,圖示建模仿真功能,文字處理功能以及與硬件實時交互功能。功能性工具箱用于多種學科。而學科性工具箱是專業(yè)性比較強的,如control,toolbox,signl proceessing toolbox,commumnication toolbox

8、等。這些工具箱都是由該領域內學術水平很高的專家編寫的,所以用戶無需編寫自己學科范圍內的基礎程序,而直接進行高,精,尖的研究。(9)源程序的開放性。開放性也許是MATLAB最受人們歡迎的特點。除內部函數以外,所有MATLAB的核心文件和工具箱文件都是可讀可改的源文件,用戶可通過對源文件的修改以及加入自己的文件構成新的工具箱1。2 設 計 原 理2.1 PCM原理脈沖編碼調制 (PCM,Pulse Code Modulation)在通信系統(tǒng)中完成將語音信號數字化功能。是一種對模擬信號數字化的取樣技術,將模擬信號變換為數字信號的編碼方式,特別是對于音頻信號。PCM 對信號每秒鐘取樣 8000 次;每

9、次取樣為 8 個位,總共 64 kbps。PCM的實現主要包括三個步驟完成:抽樣、量化、編碼。分別完成時間上離散、幅度上離散、及量化信號的二進制表示。根據CCITT的建議,為改善小信號量化性能,采用壓擴非均勻量化,有兩種建議方式,分別為A律和律方式,我 2 。低通濾波瞬時壓縮抽 樣量 化編 碼低通濾波瞬時擴張解 調解 碼信道再 生話音輸入話音輸出圖2.1 PCM原理框圖其中簡單介紹下抽樣、量化、編碼和譯碼原理。(1)抽樣所謂抽樣,就是對模擬信號進行周期性掃描,把時間上連續(xù)的信號變成時間上離散的信號。該模擬信號經過抽樣后還應當包含原信號中所有信息,也就是說能無失真的恢復原模擬信號。它的抽樣速率的

10、下限是由抽樣定理確定的。在一個頻帶限制在(0,f h)內的時間連續(xù)信號f(t),如果以1/2 f h的時間間隔對它進行抽樣,那么根據這些抽樣值就能完全恢復原信號?;蛘哒f,如果一個連續(xù)信號f(t)的頻譜中最高頻率不超過f h,當抽樣頻率f S2 f h時,抽樣后的信號就包含原連續(xù)的全部信息。抽樣定理在實際應用中應注意在抽樣前后模擬信號進行濾波,把高于二分之一抽樣頻率的頻率濾掉。這是抽樣中必不可少的步驟。(2)量化從數學上來看,量化就是把一個連續(xù)幅度值的無限數集合映射成一個離散幅度值的有限數集合。如圖2所示,量化器Q輸出L個量化值yk,k=1,2,3,L。常稱為重建電平或量化電平。當量化器輸入信號

11、幅度x落在與之間時,量化器輸出電平為yk。這個量化過程可以表達為: (2-1)這里稱為分層電平。通常: (2-2)其中稱為量化間隔。模擬信號的量化分為均勻量化和非均勻量化。由于均勻量化存在的主要缺點是:無論抽樣值大小如何,量化噪聲的均方根值都固定不變。因此,當信號較小時,則信號量化噪聲功率比也就很小,這樣,對于弱信號時的量化信噪比就難以達到給定的要求。通常,把滿足信噪比要求的輸入信號取值范圍定義為動態(tài)范圍,可見,均勻量化時的信號動態(tài)范圍將受到較大的限制。為了克服這個缺點,實際中,往往采用非均勻量化。非均勻量化是根據信號的不同區(qū)間來確定量化間隔的。對于信號取值小的區(qū)間,其量化間隔也??;反之,量化

12、間隔就大。它與均勻量化相比,有兩個突出的優(yōu)點。首先,當輸入量化器的信號具有非均勻分布的概率密度(實際中常常是這樣)時,非均勻量化器的輸出端可以得到較高的平均信號量化噪聲功率比;其次,非均勻量化時,量化噪聲功率的均方根值基本上與信號抽樣值成比例。因此量化噪聲對大、小信號的影響大致相同,即改善了小信號時的量化信噪比。實際中,非均勻量化的實際方法通常是將抽樣值通過壓縮再進行均勻量化。通常使用的壓縮器中,大多采用對數式壓縮。廣泛采用的兩種對數壓縮律是壓縮律和A壓縮律。美國采用 3 模擬入量化器量化值圖2.2 模擬信號的量化(3)編碼所謂編碼就是把量化后的信號變換成代碼,其相反的過程稱為譯碼。當然,這里

13、的編碼和譯碼與差錯控制編碼和譯碼是完全不同的,前者是屬于信源編碼的范疇。在現有的編碼方法中,若按編碼的速度來分,大致可分為兩大類:低速編碼和高速編碼。通信中一般都采用第二類。編碼器的種類大體上可以歸結為三類:逐次比較型、折疊級聯(lián)型、混合型。在逐次比較型編碼方式中,無論采用幾位碼,一般均按極性碼、段落碼、段內碼的順序排列。下面結合13折線的量化來加以說明。在13折線法中,無論輸入信號是正是負,均按8段折線(8個段落)進行編碼。若用8位折疊二進制碼來表示輸入信號的抽樣量化值,其中用第一位表示量化值的極性,其余七位(第二位至第八位)則表示抽樣量化值的絕對大小。具體的做法是:用第二至第四位表示段落碼,

14、它的8種可能狀態(tài)來分別代表8個段落的起點電平。其它四位表示段內碼,它的16種可能狀態(tài)來分別代表每一段落的16個均勻劃分的量化級。這樣處理的結果,8個段落被劃分成27128個量化級。段落碼和8個段落之間的關系如表2-1所示;段內碼與16個量化級之間的關系見表2-2所示。表2-1 段落碼 表2-2 段內碼段落序號段落碼量化級段內碼8111151111141110711013110112110061011110111010105100910018100040117011160110301050101401002001300112001010001000100000PCM編譯碼器的實現可以借鑒單片PC

15、M編碼器集成芯片,如:TP3067A、CD22357等。單芯片工作時只需給出外圍的時序電路即可實現,考慮到實現細節(jié),仿真時將PCM編譯碼器分為編碼器和譯碼器模塊分別實現4 。(4)譯碼PCM譯碼器是實現PCM編碼的逆系統(tǒng)。其中各模塊功能如下:D/A轉換器:用來實現與A/D轉換相反的過程,實現數字量轉化為模擬量,從而達到譯碼最基本的要求,也就是最起碼的步驟。瞬時擴張器:實現與瞬時壓縮器相反的功能,由于采用 A 律壓縮,擴張也必須采用A律瞬時擴張器。 低通濾波器:由于采樣脈沖不可能是理想沖激函數會引入孔徑失真,量化時也會帶來量化噪聲,及信號再生時引入的定時抖動失真,需要對再生信號進行幅度及相位的補

16、償,同時濾除高頻分量,在這里使用與編碼模塊中相同的低通濾波器。2.2 A律13折線原理 實際中,非均勻量化的實際方法通常是將抽樣值通過壓縮再進行均勻量化。通常使用的壓縮器中,大多采用對數式壓縮。廣泛采用的兩種對數壓縮律是壓縮律和A壓縮律。美國采用壓縮律,我國和歐洲各國均采用A壓縮律,因此,PCM編碼方式采用的也是A壓縮律。所謂A壓縮律也就是壓縮器具有如下特性的壓縮律: (2-3) (2-4)其中。在實際中,A律13折線應用比u律13折線用得廣泛。表2-3列出了計算值與13折線時的值的比較。表2-3 計算值與A律13折線時值的比較0101按折線分段時的01段落12345678斜率16168421

17、表2-3中第二行的值是根據時計算得到的,第三行的值是13折線分段時的值。可見,13折線各段落的分界點與曲線十分逼近,同時按2的冪次分割有利于數字化。未壓縮(1)(2)(3)(4)(5)(6)(7)(8) 0A律壓擴特性是連續(xù)曲線,A律不同壓擴特性也不同,在電路上實現這樣的函數規(guī)律是相當復雜的。實際中,往往采用近似于A律函數規(guī)律的13折線()的壓擴特性。這樣,它基本上保持了連續(xù)壓擴特性曲線的優(yōu)點,。本設計中所用到的PCM編碼正是采用這種壓擴特性來編碼的,圖2.3示出了這種壓擴特性5。圖2.3 A律13折線MATLAB 語言是當今國際上科學界 (尤其是自動控制領域) 最具影響力、也是最有活力的軟件

18、。它起源于矩陣運算,并已經發(fā)展成一種高度集成的計算機語言。它提供了強大的科學運算、靈活的程序設計流程、高質量的圖形可視化與界面設計、便捷的與其他程序和語言接口的功能。MATLAB 語言在各國高校與研究單位起著重大的作用。    MATLAB的含義是矩陣實驗室(MATRIX LABORATORY),主要用于方便矩陣的存取,其基本元素是無須定義維數的矩陣。MATLAB自問世以來,就是以數值計算稱雄。MATLAB進行數值計算的基本單位是復數數組(或稱陣列),這使得MATLAB高度“向量化”。經過十幾年的完善和擴充,現已發(fā)展成為線性代數課程的標準工具。由于它不需定義數組的

19、維數,并給出矩陣函數、特殊矩陣專門的庫函數,使之在求解諸如信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領域的問題時,顯得大為簡捷、高效、方便,這是其它高級語言所不能比擬的。美國許多大學的實驗室都安裝有MATLAB供學習和研究之用。在那里,MATLAB是攻讀學位的大學生碩士生、博士生必須掌握的基本工具。MATLAB中包括了被稱作工具箱(TOOLBOX)的各類應用問題的求解工具。工具箱實際上是對MATLAB進行擴展應用的一系列MATLAB函數(稱為M文件),它可用來求解各類學科的問題,包括信號處理、圖象處理、控制系統(tǒng)辨識、神經網絡等。隨著MATLAB版本的不斷升級,其所含的工具箱的功能也越來越豐富,因此

20、,應用范圍也越來越廣泛,成為涉及數值分析的各類工程師不可不用的工具。中包括了圖形界面編輯GUI,改變了以前單一的“在指令窗通過文本形的指令進行各種操作”的狀況。這可讓使用者也可以象VB、VC、VJ、DELPHI等那樣進行一般的可視化的程序編輯。在命令窗口(matlab command window)鍵入simulink,就出現(SIMULINK) 窗口。以往十分困難的系統(tǒng)仿真問題,用SIMULINK只需拖動鼠標即可輕而易舉地解決問題,這也是近來受到重視的原因所在。該系統(tǒng)主要是通過A律PCM譯碼,在信號傳輸過程中,運用A律PCM譯碼實現數字信號到模擬信號的轉換。該設計運用MATLAB的M文件來編

21、寫程序,根據經過抽樣、量化、編碼后收到的碼組(極性碼除外),使用A律譯碼產生相應的控制脈沖,從而輸出一個與發(fā)信端抽樣值接近的脈沖,通過計算,得出理論值與實際值近似,成功達到了設計效果。在通信系統(tǒng)中完成將語音信號數字化功能。PCM的實現主要包括三個步驟完成:抽樣、量化、編碼。分別完成時間上離散、幅度上離散、及量化信號的二進制表示。PCM 編碼通過抽樣、量化、編碼三個步驟將連續(xù)變化的模擬信號轉換為數字編碼。采用均勻量化時,其抗噪聲性能與量化級數有關,每增加一位編碼,其信噪比增加約6dB,但實現的電路復雜程度也隨之增加,占用帶寬也越寬。因此實際采用的量化方式多為非均勻量化,通常使用信號壓縮與擴張技術

22、來實現非均勻量化。在保持信號固有的動態(tài)范圍前提下,在量化前將小信號進行放大而對大信號進行壓縮。通常的壓縮方法有13折線A律和律兩種標準,本課程設計采用的是A律13折線。從而成功實現了該課程設計。3 設計步驟3.1 系統(tǒng)分析通過對脈沖編碼調制的了解,將PCM與譯碼器原理結合,通過運用MATLAB軟件的M文件進行編程,在MATLAB軟件平臺里調試,輸出結果,并對結果進行分析。實現該設計。3.2 源程序的運行與解釋該程序主要是通過MATLAB軟件里的M文件,結合A律13折線和PCM譯碼器進行編程,實現譯碼輸出。源程序代碼為:x=input(輸入編碼信號向量形式:); %輸入PCM編碼信號a=inpu

23、t(輸入信號范圍a:); b=input(輸入信號范圍b:); %a,b為輸入信號范圍 delta=b/2048; %量化間隔 n1=x(2)*22+x(3)*21+x(4)+1; %將二進制碼轉換成十進制碼,求得信號落在第幾個段落區(qū)間 if n1=1 a1=0;b1=16; else a1=2(n1+2);b1=2(n1+3); end %求該段落區(qū)間的范圍 delta1=(b1-a1)/16; %將該段落平均分成16份 p=x(5)*23+x(6)*22+x(7)*21+x(8); %p為該信號落在第幾個段內區(qū)間 a2=a1+delta1*(p);b2=a1+delta1*(p+1); %

24、求得段內區(qū)間范圍 disp(譯碼器輸出為:)if x(1)=1 y=(a2+b2)/2*delta %根據極性輸出PCM解碼值else y=-(a2+b2)/2*deltaend3.3 程序輸入與輸出結果程序的編碼輸入與譯碼輸出如下:>> q_pcmx=1 0 0 1 1 1 0 1a=-2048b=2048>>y =3.4 輸出結果分析 輸入編碼信號的向量第一個10 0 1代表的是在第二區(qū)間,其中第二區(qū)間的范圍是1632,把第二區(qū)間分成16份,每個量化區(qū)間為1,最后四位1 1 0 1代表的是第二的區(qū)間的第13個量化間隔。譯碼輸出為: (3-1)該計算結果與程序輸出結果

25、相同,所以結果正確6。4 出現的問題與解決方法在設計過程中,出現了很多錯誤。但經過老師和同學的幫助,都一一解決了。(1)開始進行調試的時候,提示我的文件沒被定義。因為以前對MATLAB的了解比較少,所以我也不知道什么原因,于是請教了個成績好的同學。這才知道原來是我沒打開M文件所在的文件,因此導致程序以及一些公式無法被調用。經過重新設置,終于可以進行調試。(2)后來,碰到一個嚴重的問題。程序譯碼輸出結果為: (4-1)但我計算的結果是: (4-2)譯碼輸出與我計算的結果差1。開始以為是我算錯了,就重新算了一遍,并且請同學進行了檢查,但同樣發(fā)現結果是。于是把錯誤定在了程序上,但又感覺程序沒有錯誤。

26、通過對程序一句依據反復的檢查,最后發(fā)現“p=x(5)*23+x(6)*22+x(7)*21;”出了問題。因為我少寫了一項x(8),本來應該是“p=x(5)*23+x(6)*22+x(7)*21+x(8);”的。根據二進制到十進制的轉換,1 1 0 1的值應該是: (4-3)而我程序里面的結果是: (4-4)所以我計算的結果與譯碼輸出的結果相差1。成功解決這個問題后,我對接下來的設計細心許多,因為很多問題就是出在認為最簡單的地方。5 結 束 語 經過三周的努力終于完成了本次的課程設計。該課程設計對通信系統(tǒng)的編碼、傳輸和譯碼都進行了設計與仿真,對仿真結果結合編譯碼理論進行了分析。從老師那里了解到,說這門課程設計比較容易完成,于是對這次的課程設計充滿了信心??僧斘议_始動手的時候,發(fā)現并不是他們說的那么容易,主要是我對所設計的東西不是很清楚,所以要用MATLAB語言來編程序確實有點困難。但想歸想,課程設計還得繼續(xù)下去,于是開始大量的找資料,并且大致想好了設計思路。當這一切悄悄進行的時候,確實感覺到這些真的都算容易。設計過程中,在老師和同學的幫助下,弄懂了A律13折線和PCM譯碼的原理,了解這些后總個設計思路就呈現在眼前,自己的信心也倍增。

溫馨提示

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

評論

0/150

提交評論