郭 慧
(山西大學(xué) 商務(wù)學(xué)院 信息學(xué)院,山西 太原 030031)
基于PCM編碼的模擬信號數(shù)字化實(shí)現(xiàn)
郭 慧
(山西大學(xué) 商務(wù)學(xué)院 信息學(xué)院,山西 太原 030031)
用A律13折線近似PCM編碼的過程,總結(jié)了三種不同的計算思路,通過對極性碼C1,段落碼C2C3C4,段內(nèi)碼C5C6C7C8的計算,得到PCM的8位二進(jìn)制編碼、編碼電平及編碼量化誤差。三種計算方法結(jié)果一致,表明了三種計算方法的有效性。最后,在MATLAB上對PCM編碼進(jìn)行了仿真,并總結(jié)了三種計算方法的特點(diǎn),對PCM編碼的計算及實(shí)現(xiàn)具有一定的借鑒意義。
PCM;MATLAB仿真;A律13折線;編碼
脈沖編碼調(diào)制(Pulse Code Modulation, PCM)通信系統(tǒng)原理如圖1所示[1]。
圖1 PCM通信系統(tǒng)原理圖
為了讓模擬信號在數(shù)字通信系統(tǒng)上進(jìn)行傳輸,在發(fā)送端需要進(jìn)行模/數(shù)變換,在接收端需要進(jìn)行反變換,即數(shù)/模變換。模擬信號數(shù)字化的三個步驟分別是抽樣、量化和編碼,具體步驟說明如表1所示[2]。把模擬信號數(shù)字化的過程稱為PCM編碼[3]。
量化的過程是近似模擬抽樣值的過程,因此,存在量化誤差。
表1 PCM編碼步驟
采用A律13折線[4]實(shí)現(xiàn)PCM編碼。
已知:抽樣值為+631△,求按照A律13折線編碼的8位碼、編碼電平、解碼電平和解碼量化誤差。采用A律13折線編碼的相關(guān)取值如表2所示[5]。
表2 A律13折線段落碼及其對應(yīng)的起始電平和量化間隔
1.1 逐次比較法
第1次比較:抽樣值IS=+631△,C1=1。
第2次比較:串-并變化輸出C2~C8為1000000,本地譯碼輸出為:
IS2=128△
IS=+631△>IS2=128△,C2=1,位于第5段~第8段
第3次比較:串-并變化輸出C2~C8為1100000,本地譯碼輸出為:
Is3=512△
Is=+631△>Is3=512△,C3=1,位于第7段~第8段
第4次比較:串-并變化輸出C2~C8為1110000,本地譯碼輸出為:
Is4=1024△
Is=+631△ 第5次比較:串-并變化輸出C2~C8為1101000,本地譯碼輸出為: Is5=512△+[(1 024△-512△)/16*8=768△ Is=+631△ 第6次比較:串-并變化輸出C2~C8為1100100,本地譯碼輸出為: Is6=512△+[(1 024△-512△)/16*4=640△ Is=+631△ 第7次比較:串-并變化輸出C2~C8為1100010,本地譯碼輸出為: Is7=512△+[(1 024△-512△)/16*2=576△ Is=+631△>Is7=576△,C7=1 第8次比較:串-并變化輸出C2~C8為1100011,本地譯碼輸出為: Is8=512△+[(1 024△-512△)/16*3=608△ Is=+631△>Is8=608△,C8=1 因此,編碼C1C2C3C4C5C6C7C8為11100011,編碼電平為608△,編碼量化誤差為631△-608△=23△。 1.2 分別比較法 極性比較:抽樣值Is=+631△,C1=1 段落比較:512△<+631△<1 024△,位于第7段,C2C3C4=110 段內(nèi)比較:631△-512△=119△<256△,C5=0 119△<128△,C6=0 119△>64△,C7=1 119△-64△=55△>32△,C8=1 因此,編碼C1C2C3C4C5C6C7C8為11100011,編碼電平=512△+(23*C5+22*C6+21*C7+20*C8)*[(1 024-512)/16]△=608△,編碼量化誤差為631△-608△=23△。 1.3 除以量化間隔法 極性比較與段落比較可以采用逐次比較法或分別比較法,C1C2C3C4=1110 段內(nèi)比較:|抽樣值-段落起始值|/量化間隔 量化間隔=(1 024-512)/16=32,|631-512|/32,商為3,余數(shù)為23,商轉(zhuǎn)換為4位二進(jìn)制,0011為所以C5C6C7C8為0011。 因此,編碼C1C2C3C4C5C6C7C8為11100011,編碼量化誤差為余數(shù)23△。 采用64位Windows 7操作系統(tǒng),MATLAB2012a進(jìn)行仿真實(shí)現(xiàn)。算法采用方法三,具體如下: %判斷極性 for i=1:n if A(i)>=0 code(i,1)=1; else code(i,1)=0; end %確定段落碼、量化間隔和起始電平 if abs(A(i))>=0&& abs(A(i))<16 code(i,2)=0; code(i,3)=0; code(i,4)=0;interval=1;start=0; else if abs(A(i))>=16&& abs(A(i))<32 code(i,2)=0; code(i,3)=0; code(i,4)=1;interval=1;start=16; else if abs(A(i))>=32&& abs(A(i))<64 code(i,2)=0; code(i,3)=1; code(i,4)=0;interval=2;start=32; else if abs(A(i))>=64&& abs(A(i))<128 code(i,2)=0; code(i,3)=1; code(i,4)=1;interval=4;start=64; else if abs(A(i))>=128&& abs(A(i))<256 code(i,2)=1; code(i,3)=0; code(i,4)=0;interval=8;start=128; else if abs(A(i))>=256&& abs(A(i))<512 code(i,2)=1; code(i,3)=0; code(i,4)=1;interval=16;start=256; else if abs(A(i))>=512&& abs(A(i))<1024 code(i,2)=1; code(i,3)=1; code(i,4)=0;interval=32;start=512; else if abs(A(i))>=1024&& abs(A(i))<2048 code(i,2)=1; code(i,3)=1; code(i,4)=1;interval=64;start=1024; end %確定段內(nèi)碼 B=floor(abs(A(i)-start)/interval); t=dec2bin(B,4) code(i,5:8)=t(1:4); end 仿真結(jié)果如圖2所示。 圖2反映了PCM的抽樣及量化過程,通過比較發(fā)現(xiàn),量化后的折線可以近似原始模擬信號線,但是量化后的取值和抽樣的原始值之間存在誤差。 采用三種方法進(jìn)行PCM編碼,殊途同歸,各種方法特點(diǎn)如下: (1)逐次比較法,采用嘗試策略,大于取1,否則取0,易于電路實(shí)現(xiàn),思路簡單。 圖2 MATLAB仿真結(jié)果圖 (2)分別比較法,采用三步走策略,將極性、段落碼和段內(nèi)碼分別進(jìn)行比較,極性與0比較,段落碼與各段起止電平進(jìn)行比較,段內(nèi)碼采用逐次比較的方法,大于比較值取1,否則取0,分別比較,清晰明了。 (3)除以段內(nèi)間隔法,極性與段落碼的比較同方法2,段內(nèi)碼采用除以段內(nèi)間隔的方法,商轉(zhuǎn)換為4位二進(jìn)制編碼。從本質(zhì)上剖析了段內(nèi)碼的由來,計算過程簡單,易于編程實(shí)現(xiàn)。 綜上,對三種方法進(jìn)行了總結(jié),對PCM編碼的計算和實(shí)現(xiàn)具有一定的借鑒作用。 [1] 王新良.現(xiàn)代通信技術(shù)概論[M].北京:機(jī)械工業(yè)出版社,2015. [2] 李曉峰,周寧,周亮,等.通信原理(第2版)[M].北京:清華大學(xué)出版社,2014. [3] SKLAR B.數(shù)字通信——基礎(chǔ)與應(yīng)用(第二版)[M].徐平平,宋鐵成,葉芝慧,等,譯.北京:電子工業(yè)出版社,2015. [4] 趙守彬,李鴻剛.利用Matlab實(shí)現(xiàn)PCM編碼的A律13折線法量化[J].科技信息,2009(36):231-232. [5] 劉全金.一種A律PCM編碼的簡化方法[J].安慶師范學(xué)院學(xué)報(自然科學(xué)版),2007,13(4): 34-36. Implementation of analog signal digitization based on PCM coding Guo Hui (School of Information, College of Business, Shanxi University, Taiyuan 030031, China) With the encoding of A law 13 segments approximate PCM encoding, through the specific examples, this paper gives three different calculation methods and processes. Through the calculation of polar code C1, the code section C2C3C4, and code segment C5C6C7C8, it concludes the PCM 8-bit binary coding, coding level and coding quantization error. The results of the three methods are consistent, and the results show that the three methods are effective. Finally, the PCM code is simulated on MATLAB, and the characteristics of the three calculation methods are summarized, which can be used for reference for the calculation and implementation of PCM coding. PCM; MATLAB simulation; A law 13 segments; encoding TP914 A 10.19358/j.issn.1674- 7720.2017.02.021 郭慧.基于PCM編碼的模擬信號數(shù)字化實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(2):70-71,77. 2016-07-31) 郭慧(1980-),通信作者,女,碩士,講師,主要研究方向:網(wǎng)絡(luò)通信與人工智能。E-mail:guozihui80@163.com。2 MATLAB仿真實(shí)現(xiàn)
3 結(jié)論