




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序用matlab實現(xiàn),全都運行過,完美實現(xiàn)PCM功能 班 級 _通信原理大作業(yè)-抽樣量化編碼譯碼的Matlab實現(xiàn) 學(xué) 院 電子工程學(xué)院 學(xué) 號 * 學(xué)生姓名 * * * 授課老師 * * * 1、 前言通信系統(tǒng)的信源有兩大類:模擬信號和數(shù)字信號。例如:話筒輸出的語音信號屬于模擬信號;而文字、計算機數(shù)據(jù)屬于數(shù)字信號。數(shù)字信號相比于模擬信號有抗干擾能力強、無噪聲積累的優(yōu)點。因此,若輸入是模擬信號,則在數(shù)字通信系統(tǒng)的信源編碼部分需對輸入模擬信號進行數(shù)字化。數(shù)字化需要三個步驟:抽樣、量化和編碼。抽樣是指用每隔一定時間的信號樣值序列來代替原來在時間上連續(xù)的信號,也就是在時間上將模擬信號離散化。量化是
2、用有限個幅度值近似原來連續(xù)變化的幅度值,把模擬信號的連續(xù)幅度變?yōu)橛邢迶?shù)量的有一定間隔的離散值。編碼則是按照一定的規(guī)律,把量化后的值用二進制數(shù)字表示,然后轉(zhuǎn)換成二值或多值的數(shù)字信號流。三個步驟如下圖所示:抽樣信號抽樣信號量化信號t011011011100100100100編碼信號二、模擬信號的抽樣(1) 低通模擬信號的抽樣原理抽樣定理:設(shè)一個連續(xù)模擬信號m(t)中的最高頻率 < ,則以間隔時間為T 的周期性沖激脈沖對它抽樣時,m(t)將被這些抽樣值所完全確定。下面對這個定理進行證明。設(shè)有一個最高頻率小于的信號m(t) 。將這個信號和周期性單位沖激脈沖相乘,乘積就是抽樣信號,它是一系列間隔為
3、T 秒的強度不等的沖激脈沖。這些沖激脈沖的強度等于相應(yīng)時刻上信號的抽樣值?,F(xiàn)用表示此抽樣信號序列。故有令M(f)、和分別表示m(t)、和的頻譜。計算可得:上式表明,抽樣信號的頻譜是無數(shù)間隔頻率為的原信號頻譜M(f)相疊加而成。 m(t)、和的時域和頻域波形如下圖所示:信號m(t)的最高頻率小于,若頻率間隔,則中包含的每個原信號頻譜M(f)之間互不重疊。這樣就能夠從中用一個低通濾波器分離出m(t)的頻譜M(f),也就是能從抽樣信號中恢復(fù)原信號。(2) 模擬信號抽樣的Matlab實現(xiàn)及采樣定理的驗證(a)編程思想令輸入的模擬信號m(t)=,由已學(xué)知識可知:m(t)的最高頻率=200Hz,由抽樣定理
4、知:當(dāng)采樣頻率(采樣周期小于1/400 s)時,抽樣信號可以完全確定原信號。由傅里葉變換知識得:模擬信號m(t)=的頻譜=。分別令采樣頻率,繪制出兩種情況下各自抽樣信號的頻譜,與原模擬信號的頻譜進行比較。若只有當(dāng)采樣頻率大于400Hz時,抽樣信號的頻譜才與原模擬信號相同,則可以驗證采樣定理的正確性。(b)Matlab輸出波形圖(c)結(jié)論由上圖可知:當(dāng)采樣頻率小于2時,抽樣信號的頻譜發(fā)生了混疊。而采樣頻率大于2時,抽樣信號的頻譜與原模擬信號頻譜相同。(d)Matlab源代碼%sampling.m 對模擬信號采樣產(chǎn)生序列信號,并驗證采樣定理t=0:0.001:1; %模擬信號 時域和頻域波形x=2
5、.5+3.*sin(200*2*pi*t)+2.*cos(70*2*pi*t);figure(1)subplot (2,1,1)plot(t,x);title('模擬信號時域波形') fs=linspace(-1000/2,1000/2,length(t);xf=fftshift(fft(x);subplot (2,1,2)plot(fs,abs(xf) %可知,信號最大頻率200Hztitle('模擬信號頻域波形') T=0.009; %不滿足采樣定理,采樣周期大于1/400n=0:1:1/T;xn=2.5+3.*sin(200*2*pi*n*T)+2.*co
6、s(70*2*pi*n*T);figure(2)subplot (2,1,1)stem(n,xn)title('采樣序列 時域(不符合采樣定理)') fns=linspace(-0.5/T,0.5/T,length(n);xnf=fftshift(fft(xn);subplot (2,1,2)plot(fns,abs(xnf)title('采樣序列 頻域(不符合采樣定理)') T=0.0013; %滿足采樣定理,采樣周期小于1/400n=0:1:1/T;xn=2.5+3.*sin(200*2*pi*n*T)+2.*cos(70*2*pi*n*T);figure(
7、3)subplot (2,1,1)stem(n,xn)title('采樣序列 時域(符合采樣定理)') fns=linspace(-0.5/T,0.5/T,length(n);xnf=fftshift(fft(xn);subplot (2,1,2)plot(fns,abs(xnf)title('采樣序列 頻域(符合采樣定理)')3、 抽樣信號的非均勻量化編碼(13折線法)(1)脈沖編碼調(diào)制簡介模擬信號抽樣后變成時間離散的信號,經(jīng)過量化后,此抽樣信號才能成為數(shù)字信號。分析可知:最簡單的均勻量化器對于小輸入信號很不利。為了改善小信號時的信號量噪比,在實際應(yīng)用中常采用
8、非均勻量化。非均勻量化時,量化間隔隨信號抽樣值的不同而變化。信號抽樣值小時,量化間隔也?。恍盘柍闃又荡髸r,量化間隔也變大。實際應(yīng)用中,用13折線法近似A壓縮律,來進行非均勻量化。圖中橫坐標(biāo)x在0至1區(qū)間中分為不均勻的8段。1/2至1間的線段稱為第8段;1/4至1/2間的線段稱為第7段;1/8至1/4間的線段稱為第6段;依此類推。圖中縱坐標(biāo)y 則均勻地劃分作8段。將與這8段相應(yīng)的座標(biāo)點(x, y)相連,就得到了一條折線。在語音通信中,通常采用8位的PCM編碼就能夠保證滿意的通信質(zhì)量。 在13折線法中采用的折疊碼有8位。第一位c1表示量化值的極性正負(fù)。后面的7位分為段落碼和段內(nèi)碼兩部分,用于表示量
9、化值的絕對值。其中第2至4位(c2 c3 c4)是段落碼,共計3位,可以表示8種斜率的段落;其他4位(c5 -c8)為段內(nèi)碼,可以表示每一段落內(nèi)的16種量化電平。段內(nèi)碼代表的16個量化電平是均勻劃分的。所以,這7位碼總共能表示128種量化值。在下面的表中給出了段落碼和段內(nèi)碼的編碼規(guī)則。量化間隔段內(nèi)碼c5 c6 c7 c8151 1 1 1141 1 1 0141 1 0 1121 1 0 0111 0 1 1101 0 1 091 0 0 181 0 0 070 1 1 160 1 1 050 1 0 140 1 0 030 0 1 120 0 1 010 0 0 100 0 0 0段落序號段
10、落碼c2 c3 c4段落范圍(量化單位)81 1 11024204871 1 0512102461 0 125651251 0 012825640 1 16412830 1 0326420 0 1163210 0 0016在上述編碼方法中,段內(nèi)碼是按量化間隔均勻編碼的,但是因為各個段落的斜率不等,長度不等,故不同段落的量化間隔是不同的。其中第1和2段最短,斜率最大,其橫坐標(biāo)x的歸一化動態(tài)范圍只有1/128。再將其等分為16小段后,每一小段的動態(tài)范圍只有(1/128)/(1/16) = 1/2048。第8段最長,其橫坐標(biāo)x的動態(tài)范圍為1/2。將其16等分后,每段長度為1/32。假若采用均勻量化而
11、仍希望對于小電壓保持有同樣的動態(tài)范圍1/2048,則需要用11位的碼組才行。現(xiàn)在采用非均勻量化,只需要7位就夠了。(2) 13折線法編碼的Matlab實現(xiàn)(a)編程思想上面“模擬信號的抽樣”已經(jīng)得到了時間離散、幅度連續(xù)的抽樣信號。若將對抽樣信號非均勻量化編碼編出的8位碼組用表示。(1)抽樣信號是1×n的矩陣,例如采樣周期T=0.0013; n=0:1:1/T; 則有770個抽樣值,13折現(xiàn)法編碼后得到的則是770×8的矩陣,一行對應(yīng)一個抽樣值的8位PCM碼組。每個抽樣值的編碼思想都是一樣的,若要進行多個抽樣值的編碼,進行for循環(huán)即可。下面闡述單個抽樣值的編碼思路。(2)確
12、定極性碼:利用matlab的符號函數(shù)sign(x) :x<0時,sign(x)=-1; x=0時,sign(x)=0;x>0時,sign(x)=1。所以,若sign(x)大于等于0,=1;否則=0。例如:+1000,sign(1000)=1,所以=1。(3)確定段落碼:PCM13折線編碼的動態(tài)范圍為-2048-2048,而上一步驟中已經(jīng)求出了各抽樣信號極性,于是只要對抽樣信號的絕對值分析即可。故對抽樣值依次進行取模、歸一、乘以2048、取整的操作,可以將抽樣值轉(zhuǎn)化為0-2048之間的整數(shù)。根據(jù)段落碼與段落范圍的關(guān)系,使用if語句即可確定。例如:+1000,因為1000128,故=1
13、;又1000512,故=1;又10001024,故=0。對于其他取值情況,判斷方法與此類似。(4)確定段內(nèi)碼:每一段落均被均勻地劃分為16個量化間隔,不過不同段落的量化間隔是不同的。(3)中確定了段落編碼,可以確定每段的起始值,再根據(jù)待編碼值、所在段的起始值、所在段量化間隔的大小即可確定段內(nèi)碼。例如:+1000,=110,故1000處于第7段(二進制110轉(zhuǎn)化為十進制得到6,6+1=7)sp=0,16,32,64,128,256,512,1024; %每段起始值spmin=1,1,2,4,8,16,32,64; %每段的最小量化間隔再得到段起始值sp(7)=512,段最小量化間隔spmin(7
14、)=32。,向負(fù)無窮方向取整得到15,再將15十進制轉(zhuǎn)化為二進制,得到1111,故=1111。令Matlab程序輸入為S=1000,可得:S = 1000抽樣信號進行13折線編碼后的碼組為(每一行代表一個抽樣值,共1個值)code = 1 1 1 0 1 1 1 1(可知:程序運行結(jié)果與上述分析結(jié)果相同)(5) 若碼組矩陣初始化為全0陣,則只有當(dāng)某個碼為1時,才需要進行賦值。例如:-100,sign(-100)=-1,=0。而初始化值就為0,故可以不采取任何操作,保持初始值即可。(b)Matlab輸出結(jié)果抽樣信號進行13折線編碼后的碼組為(每一行代表一個抽樣值,共770個值)code = 1
15、1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0
16、1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 (c)源代碼%pcm depcm comp.m 對抽樣信號進行量化編碼譯碼,將譯碼輸出值與原抽樣值比較%13折線法編碼源代碼T=0.0013; n=0:1:1/T;xn=2.5+3.*sin(200*2*pi*n*T)+2.*cos(70*2*pi*n*T); %采樣產(chǎn)生的抽樣信號 figure(4)subplot(2,1,1)stem(n,xn)title('抽樣得到的序列') z=sign(xn); %判斷S的正負(fù)xnnor=abs(xn)/max(abs(xn); %xn取
17、模并且歸一化S=2048*xnnor;S=floor(S); %向負(fù)無窮方向取整 subplot(2,1,2)stem(n,S)axis(0,800,-2020,2020)title('取模、歸一、乘2048、取整后的序列') code=zeros(length(S),8); %初始化碼組矩陣為全零陣 %極性碼第一位和段落碼第二三四位for i=1:length(S) if z(i)>=0 code(i,1)=1; %不改變依舊為0 end if (S(i)>=128) code(i,2)=1; if (S(i)>=512) code(i,3)=1; if (
18、S(i)>=1024) code(i,4)=1; end else if (S(i)>=256) code(i,4)=1; end end else if (S(i)>=32) code(i,3)=1; if (S(i)>=64) code(i,4)=1; end else if (S(i)>=16) code(i,4)=1; end end endend %段內(nèi)碼,第五六七八位N=zeros(1,length(S);for i=1:length(S)N(i)=bin2dec(num2str(code(i,(2:4)+1; %找到code位于第幾段end sp=0
19、,16,32,64,128,256,512,1024; %每段起始值spmin=1,1,2,4,8,16,32,64; %每段的最小量化間隔 for i=1:length(S) loc=floor(S(i)-sp(N(i)/spmin(N(i); %向負(fù)無窮方向取整,段內(nèi)第幾段 if (loc=16) loc=loc-1; end %正負(fù)2048時,loc=16,當(dāng)做15處理 for k=1:4 code(i,9-k)=mod(loc,2); loc=floor(loc/2); end %十進制數(shù)轉(zhuǎn)化為4位二進制 end fprintf('抽樣信號進行13折線編碼后的碼組為(每一行代表
20、一個抽樣值,共%d個值)',length(S) code %code為13折線譯碼后的碼組,是length(S)*8的矩陣(3) 8位PCM碼的譯碼實現(xiàn)(a)編程思想(1)由可以確定抽樣值的正負(fù),=1,抽樣值為正;否則為負(fù)。(2)確定抽樣值的段落序號,確定抽樣值在段內(nèi)第幾個量化間隔。(3)譯碼時,通常是將碼組轉(zhuǎn)化為此量化間隔的中間值。例如:+1000編碼后的8位碼組為1110111,對1110111進行解碼。=1,故抽樣值為正。=110,二進制轉(zhuǎn)化為十進制為6,6+1=7,故抽樣值在第7段。sp=0,16,32,64,128,256,512,1024; %段落起點值spmin=1,1,
21、2,4,8,16,32,64; %最小量化間隔=1111,二進制轉(zhuǎn)為十進制為15,故抽樣值在段內(nèi)第15段。sp(7)=512,spmin(7)=32。11101111譯碼值為(992+1024)/2=1008。也就是sp(7)+spmin(7)×(15+0.5)=512+32×15.5=1008故利用段落碼和段內(nèi)碼即可編程實現(xiàn)譯碼。令Matlab譯碼程序輸入為1 1 1 0 1 1 1 1,運行結(jié)果如下:dcode = 1 1 1 0 1 1 1 18位PCM碼譯碼后的數(shù)值為(共1個值)dS = 1008(可知:與上面理論分析結(jié)果一致)(b)Matlab輸出結(jié)果(將前面編碼
22、得到770×8的碼組矩陣作為輸入)8位PCM碼譯碼后的歸一化數(shù)值為(共770個值)dS = Columns 1 through 10 0.6094 0.9531 0.3984 -0.0996 0.2578 0.4609 -0.0684 -0.2070 0.4922 0.7969 Columns 11 through 20 0.3203 0.2891 0.8281 0.7344 -0.0149 -0.0801 0.4141 0.2734 -0.1992 0.1523 Columns 21 through 30 0.8281 0.6719 0.2070 0.5156 0.8594 0.2
23、891 -0.2461 0.1289 0.4766 0.0645 Columns 31 through 40 -0.0801 0.6094 0.9219 0.4141 0.2148 0.6719 0.6094 -0.1191 -0.1992 0.3828 Columns 41 through 50 0.3984 -0.0361 0.2578 0.9219 0.7656 0.1758 0.3359 0.6719 0.2070 -0.3203(c)源代碼%十三折線解碼源代碼dcode=code; %將上面產(chǎn)生的770個碼值作為輸入,decode是length(S)*8的矩陣sp=0,16,32,64,128,256,512,1024; %段落起點值spmin=1,1,2,4,8,16,32,64; %最小量化間隔dS=zeros(1,size(dcode,1); for i=1:size(dcode,1) par=bin2dec(num2str(dcode(i,(2:4)+1; %段落位置 parmid=bin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何讓年度工作計劃更具吸引力
- 智能倉庫建設(shè)工作總結(jié)計劃
- 水利水電工程發(fā)展戰(zhàn)略試題及答案
- 工程投資過程中的數(shù)據(jù)可視化技術(shù)試題及答案
- 水利水電工程創(chuàng)新技術(shù)與試題及答案
- 工程經(jīng)濟官方指導(dǎo)試題及答案
- 市政工程知識運用試題及答案
- 行政管理中經(jīng)濟法的實務(wù)應(yīng)用試題及答案
- 市政工程相關(guān)法規(guī)試題及答案
- 2025年國家電網(wǎng)招聘之經(jīng)濟學(xué)類題庫練習(xí)試卷B卷附答案
- 2024年安徽省蕪湖市經(jīng)濟技術(shù)開發(fā)區(qū)招聘筆試高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 國際貿(mào)易地理 全套課件
- 校園零星維修服務(wù) 投標(biāo)方案(技術(shù)方案)
- 12J11衛(wèi)生、洗滌設(shè)施
- YYT 0660-2008 外科植入物用聚醚醚酮(PEEK)聚合物的標(biāo)準(zhǔn)規(guī)范
- NB-T+10110-2018風(fēng)力發(fā)電場技術(shù)監(jiān)督導(dǎo)則
- 畜禽屠宰設(shè)備采購合同模板
- 地質(zhì)災(zāi)害排查臺賬表
- 中建土建工程施工工藝標(biāo)準(zhǔn)
- DZ∕T 0382-2021 固體礦產(chǎn)勘查地質(zhì)填圖規(guī)范(正式版)
- GB/T 9442-2024鑄造用硅砂
評論
0/150
提交評論