版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> MATLAB通信原理課程設(shè)計(jì)報(bào)告</p><p><b> 目 錄</b></p><p><b> 1課題名稱(chēng)1</b></p><p> 2課程設(shè)計(jì)的方案和基本原理1</p><p> 2.1信息論基本計(jì)算1</p><p> 2.
2、2數(shù)字信號(hào)基帶傳輸系統(tǒng)1</p><p><b> 3課程設(shè)計(jì)步驟3</b></p><p> 3.1信息論基本計(jì)算的設(shè)計(jì)步驟3</p><p> 3.2數(shù)字信號(hào)基帶傳輸系統(tǒng)的設(shè)計(jì)步驟3</p><p> 4課程設(shè)計(jì)結(jié)果和結(jié)果分析論證4</p><p> 4.1信息論的基本運(yùn)算
3、結(jié)果4</p><p> 4.2數(shù)字信號(hào)基帶傳輸系統(tǒng)的設(shè)計(jì)結(jié)果6</p><p><b> 5、心得體會(huì)11</b></p><p><b> 6附件12</b></p><p> 6.1信息論基本計(jì)算12</p><p> 6.2數(shù)字信號(hào)基帶傳輸系統(tǒng)1
4、4</p><p><b> 7 評(píng)分表28</b></p><p><b> 1課題名稱(chēng)</b></p><p> (1)信息論基本計(jì)算。</p><p> ?。?)數(shù)字信號(hào)基帶傳輸系統(tǒng)設(shè)計(jì)</p><p> 2課程設(shè)計(jì)的方案和基本原理</p>&l
5、t;p> 2.1信息論基本計(jì)算</p><p> 2.1.1平均信息量:平均每個(gè)符號(hào)所能提供的信息量。</p><p><b> H(X) 。</b></p><p> 2.1.2離散信道容量:信道容量是信道所能傳送的最大的信息量。</p><p> C=maxI(X;Y) R=
6、I(X;Y)=H(X)-H(X\Y)</p><p> 2.1.3信源編碼過(guò)程:Huffman編碼的意義是,用最少的編碼長(zhǎng)度來(lái)表達(dá)符號(hào)的信息。為了使平均碼長(zhǎng)度最小,將發(fā)生概率較大的符號(hào)用比較短的碼組來(lái)表示,將發(fā)生概率較小的符號(hào)用較長(zhǎng)的碼組實(shí)現(xiàn),以得到最佳的變長(zhǎng)編碼,減少冗余度,提高系統(tǒng)傳輸?shù)男省?lt;/p><p> 2.2數(shù)字信號(hào)基帶傳輸系統(tǒng)</p><p>
7、 2.2.1數(shù)字基帶信號(hào)的碼型:由于數(shù)字基帶信號(hào)是數(shù)字信息的電脈沖表示,不同形式的基帶信號(hào)(又稱(chēng)為碼型)有不同的頻譜結(jié)構(gòu)和功率譜分布。不同的碼型有不同的優(yōu)點(diǎn),常用的碼型有單/雙極性碼、非歸零/歸零碼、數(shù)字雙相碼(曼徹斯特碼)、密勒碼、AMI碼、HDB3碼。</p><p> 2.2.2單/雙極性碼:?jiǎn)螛O性碼是用電平1來(lái)表示二元信息中的‘1’,用電平0來(lái)表示二元信息中的0,電平在整個(gè)碼元的持續(xù)時(shí)間里保持不變,記做
8、NRZ碼。雙極性碼與單極性碼的區(qū)別僅在于它用電平-1來(lái)表示二元信息中的‘0’。</p><p> 2.2.3非歸零/歸零碼:歸零碼與非歸零碼的區(qū)別僅在于,非歸零碼在整個(gè)碼元持續(xù)時(shí)間內(nèi)保持電平值不變,而歸零碼的碼元持續(xù)時(shí)間的前一半時(shí)間內(nèi)保持,而后一半時(shí)間內(nèi)回到0.</p><p> 2.2.4數(shù)字雙相碼(曼徹斯特碼):此種碼型采用在一個(gè)碼元的持續(xù)時(shí)間中央時(shí)刻從0到1的跳變來(lái)表示1,從1到
9、0的跳變來(lái)表示0?;蛘吲c之相反用在一個(gè)碼元的持續(xù)時(shí)間中央時(shí)刻從0到1的跳變來(lái)表示0,從1到0的跳變來(lái)表示1。</p><p> 2.2.5密勒碼:該碼型是雙相碼的變型。它采用碼元中央時(shí)刻跳變表示信息1即前半時(shí)間的電平和前一碼元的后半時(shí)間的電平相同,中間跳變。遇到信息0做如下處理:首先對(duì)0的碼元在整個(gè)持續(xù)時(shí)間內(nèi)保持同一電平值,其次若此0的前一信息是一則碼元的電平同前面信息1的碼元后半時(shí)間電平相同,若前一信息為0,
10、則與前面碼元的電平相反。</p><p> 2.2.6 AMI碼、HDB3碼: AMI碼是傳號(hào)交替反轉(zhuǎn)碼。其編碼規(guī)則是將消息碼中的“1”交替變成“+1”和“-1”,將消息碼中的“0”仍保持為“0”。HDB3碼的全稱(chēng)是3階高密度雙極性碼。首先將信息碼變換成AMI碼,然后檢查AMI碼中連0的情況,沒(méi)有發(fā)現(xiàn)4個(gè)以上連0的碼元串時(shí)碼型不需變換,仍為AMI碼的形狀。若發(fā)現(xiàn)4個(gè)以上連0的碼元串時(shí),則根據(jù)相應(yīng)規(guī)則把第四個(gè)0變
11、換成相應(yīng)符號(hào)。</p><p> 2.2.7碼型的功率譜分布:數(shù)字基帶信號(hào)一般是隨機(jī)信號(hào),因此分析隨機(jī)信號(hào)的頻譜特性要用功率諾密度來(lái)分析。一般來(lái)說(shuō),求解功率譜是一件相當(dāng)困難的事,但由于上述幾種碼型比較簡(jiǎn)單,我們可以求出其功率譜密度函數(shù)。</p><p> 對(duì)單極性非歸零碼、單極性歸零碼、雙極性非歸零碼和雙極性歸零碼這4種碼。由于統(tǒng)計(jì)的獨(dú)立性,課由由功率譜公式畫(huà)出功率譜波形圖。</
12、p><p> 數(shù)字雙相碼的功率相關(guān)公式如下:“y=sin(pi*x/2);y=y./(pi*x/2);y(1)=1;mache=sin(pi*x/2).*sin(pi*x/2);mache=mache.*y;mache=mache.*y”。</p><p> 密勒碼的相關(guān)功率公式如下:</p><p> “x=x*pi;miler=(23-2*cos(x)-22*
13、cos(2*x)-12*cos(3*x)+5*cos(4*x)+12*cos(5*x)+2*cos(6*x)-8*cos(7*x)+2*cos(8*x))./(17+8*cos(8*x));t=x.*x;miler=miler./t;”</p><p> 對(duì)于AMI碼和HDB3碼的功率譜函數(shù),則需要進(jìn)行實(shí)際的碼型進(jìn)行分析。</p><p><b> 3課程設(shè)計(jì)步驟</b
14、></p><p> 3.1信息論基本計(jì)算的設(shè)計(jì)步驟</p><p> 3.1.1信源平均信息量的計(jì)算(以高斯分布的信源為例):</p><p> 通過(guò)系統(tǒng)產(chǎn)生一個(gè)高斯隨機(jī)信源,再求出它的平均信息量。</p><p> 3.1.2離散信道容量的計(jì)算(以輸入符號(hào)等概分布為例):</p><p> 編寫(xiě)hm
15、essage函數(shù)求出平均互信息,編寫(xiě)dmessage函數(shù),求出離散信息熵,調(diào)用hmessage函數(shù)和dmessage函數(shù)得出hf和hx,最后信道容量c=hx-hf。</p><p> 3.1.3信源編碼過(guò)程(以Huffman編碼為例):</p><p> 先編寫(xiě)huffman函數(shù),對(duì)系列排序并求出huffman編碼。調(diào)用huffman函數(shù)和dmessage函數(shù),得出編碼后的碼字。<
16、;/p><p> 3.2數(shù)字信號(hào)基帶傳輸系統(tǒng)的設(shè)計(jì)步驟</p><p> 3.2.1單/雙極性歸零/非歸零碼:先對(duì)原始碼型進(jìn)行相應(yīng)的碼型變換,畫(huà)出碼型子圖,再由功率譜公式畫(huà)出功率譜波形圖。</p><p> 3.2.2數(shù)字雙相碼:先進(jìn)行碼型變換,再畫(huà)出功率譜,功率相關(guān)公式如下:“y=sin(pi*x/2);y=y./(pi*x/2);y(1)=1;mache=si
17、n(pi*x/2).*sin(pi*x/2);mache=mache.*y;mache=mache.*y”。</p><p> 3.2.3密勒碼:密勒碼的相關(guān)功率公式如下:</p><p> “x=x*pi;miler=(23-2*cos(x)-22*cos(2*x)-12*cos(3*x)+5*cos(4*x)+12*cos(5*x)+2*cos(6*x)-8*cos(7*x)+2*
18、cos(8*x))./(17+8*cos(8*x));t=x.*x;miler=miler./t;”</p><p> 3.2.4AMI碼:編寫(xiě)AMI函數(shù),求的AMI碼型變換。編寫(xiě)t2f函數(shù),功能是將時(shí)域信號(hào)做傅里葉變換到頻域。為了求AMI碼的功率譜密度,編寫(xiě)AMIpower函數(shù),該函數(shù)中又調(diào)用了t2f函數(shù)。</p><p> 3.2.5HDB3碼:編寫(xiě)HDb3函數(shù)和t2f函數(shù),分別實(shí)
19、現(xiàn)HDb3編碼和傅里葉變換。調(diào)用HDb3函數(shù)和t2f函數(shù),得出原序列圖、編碼后的序列圖和功率譜圖。</p><p> 4課程設(shè)計(jì)結(jié)果和結(jié)果分析論證</p><p> 4.1信息論的基本運(yùn)算結(jié)果</p><p> 4.1.1信源平均信息量的計(jì)算(以高斯分布的信源為例):</p><p> 圖4.1.1連續(xù)信源平均信息量</p>
20、;<p> 4.1.2離散信道容量的計(jì)算(以輸入符號(hào)等概分布為例)</p><p> 圖4.1.2離散信道容量</p><p> 信道容量為信源的平均信息量減去互信息量。</p><p> 4.1.3信源編碼過(guò)程(以Huffman編碼為例)</p><p> 圖4.1.3 huffman編碼</p>&l
21、t;p> 哈弗曼編碼是把出現(xiàn)概率較大的用較短的碼元來(lái)實(shí)現(xiàn),概率出現(xiàn)較小的用較長(zhǎng)的碼元實(shí)現(xiàn)。</p><p> 4.2數(shù)字信號(hào)基帶傳輸系統(tǒng)的設(shè)計(jì)結(jié)果</p><p> 4.2.1單極性非歸零碼及其功率譜</p><p> 圖4.2.1單極性非歸零碼碼型和功率譜</p><p> 輸入的序列是x=[1 1 0 1 0 0 1 0
22、1 0 0 1],輸出的序列是y=[1 1 0 1 0 0 1 0 1 0 0 1]經(jīng)編碼規(guī)則驗(yàn)證是正確的。功率譜顯示,碼型的功率分布有分段性,并以某些頻率為中心。</p><p> 4.2.2單極性歸零碼及其功率譜</p><p> 圖4.2.2單極性歸零碼碼型和功率譜</p><p> 由圖可知,輸入的序列是x=[1 1 0 1 0 0 1 0 1 0 0
23、 1],輸出的序列是y=[10 10 00 10 00 00 10 00 10 00 00 10] 經(jīng)編碼規(guī)則驗(yàn)證是正確的。功率譜顯示,碼型的功率分布有分段性,并以某些頻率為中心。</p><p> 4.2.3雙極性非歸零碼及其功率譜</p><p> 圖4.2.3雙極性非歸零碼碼型和功率譜</p><p> 由圖可知輸入的序列為x=[1 1 0 1 0 0
24、1 0 1 0 0 1],輸出的序列為y=[1 1 -1 1 -1 -1 1 -1 1 -1 -1 1], 經(jīng)編碼規(guī)則驗(yàn)證是正確的。功率譜顯示,碼型的功率分布有分段性,并以某些頻率為中心。</p><p> 4.2.4雙極性歸零碼及其功率譜密度</p><p> 圖4.2.4雙極性歸零碼碼型和功率譜</p><p> 由圖可知,輸入序列為x=[1 1 0 1
25、0 0 1 0 1 0 0 1],輸出序列為y=[10 10 -10 10 -10 -10 10 -10 10 -10 -10 10]。經(jīng)編碼規(guī)則驗(yàn)證是正確的。功率譜顯示,碼型的功率分布有分段性,并以某些頻率為中心。</p><p> 4.2.5數(shù)字雙相碼及其功率譜</p><p> 圖4.2.5數(shù)字雙相碼碼型和功率譜</p><p> 由圖可知,輸入的序列為
26、x=[1 1 0 1 0 0 1 0 1 0 0 1],輸出的序列為y=[10 10 01 10 01 01 10 01 10 01 01 10]. 功率譜顯示,碼型的功率分布有分段性。</p><p> 4.2.6密勒碼及其功率譜</p><p> 圖4.2.6密勒碼碼型和功率譜</p><p> 信息的輸入序列是x=[1 1 0 1 0 0 1 0 1 0
27、 0 1]。</p><p> 4.2.7 AMI碼及其功率譜</p><p> 圖4.2.7AMI碼碼型和功率譜</p><p> 輸入序列是x=[1 1 0 1 0 0 1 0 1 0 0 1]。</p><p> 4.2.8 HDB3碼及其功率譜</p><p> 圖4.2.8 HDB3碼碼型和功率譜&
28、lt;/p><p> 由此圖的功率譜與AMI碼的功率譜比較可知,HDB3碼與AMI碼是相似的,HDB3碼是AMI碼的變形。</p><p><b> 5、心得體會(huì)</b></p><p><b> 6附件</b></p><p> 6.1信息論基本計(jì)算</p><p>
29、 6.1.1、信源平均信息量的計(jì)算(高斯分布的信源)</p><p> x=randn(1,100000);%產(chǎn)生N(0,1)高斯源</p><p> px=1/sqrt(2*pi)*exp(-(x-1).^2/2);%計(jì)算概率</p><p> l=-mean(log2(px))%計(jì)算熵</p><p> 6.1.2、編程實(shí)現(xiàn)離散信
30、道容量的計(jì)算(以輸入符號(hào)等概分布為例)</p><p> function r=dmessage(x,n) %參數(shù)x表示概率矩陣,n是符號(hào)的數(shù)目</p><p><b> r=0;</b></p><p><b> for i=1:n</b></p><p> r=r-x(i)*l
31、og(x(i))/log(2);</p><p><b> end</b></p><p> disp('此離散信源的平均信息量為:'); </p><p><b> r</b></p><p> %直接在命令窗口中調(diào)用dmessage函數(shù),也可以在其它函數(shù)中調(diào)用</p
32、><p> dmessage( [0.25,0.25,0.25,0.25],4)</p><p> 6.1.3、離散信道容量的計(jì)算</p><p> %求互信息的函數(shù)文件如下</p><p> function r=hmessage(x,f,nx,my)</p><p> %x為輸出的信源分布,f為轉(zhuǎn)移概率矩陣,
33、nx為輸出的符號(hào)可選個(gè)數(shù)</p><p> %my為輸出的符號(hào)個(gè)數(shù)</p><p><b> sum=0;</b></p><p> for i=1:nx</p><p> for j=1:my</p><p> %通過(guò)式子p(x,y)=p(x)p(y/x)來(lái)求p(x,y),用t表示&l
34、t;/p><p> t=f(i,j)*x(i);</p><p><b> %求平均互信息量</b></p><p><b> if t~=0</b></p><p> sum=sum-t*log(f(i,j))/log(2);</p><p> end;end; en
35、d;</p><p><b> r=sum;</b></p><p> disp('平均互信息量為:');</p><p> %利用函數(shù)dmessage來(lái)求信源的熵,利用函數(shù)hmessage來(lái)求平均互信息量</p><p> x=[0.25,0.25,0.25,0.25];</p>
36、<p> f1=[1/2,1/4,1/4,0,0,0</p><p> 0,1/2,1/4,1/4,0,0</p><p> 0,0,1/2,1/4,1/4,0</p><p> 0,0,0,1/2,1/4,1/4,];</p><p> hf1=hmessage(x,f1,4,6);</p><p&g
37、t; hx=dmessage(x,4);</p><p> c1=hx-hf1 %信道容量</p><p> 6.1.4、哈弗曼編碼的實(shí)現(xiàn)</p><p> p=[1/4,1/4,1/4,1/8,1/8];</p><p> [h,l]=huffman1(p)</p><p> %哈弗曼編碼的實(shí)現(xiàn)函數(shù)如下
38、</p><p> function [h,l]=huffman (p)</p><p> if (length(find(p<0))~=0) </p><p> error('Not a prob,negative component'); </p><p><b> end</b><
39、;/p><p> if (abs(sum(p)-1)>10e-10) </p><p> error('Not a prob.vector,component do not add to 1') </p><p><b> end</b></p><p> n=length(p); </
40、p><p><b> q=p; </b></p><p> m=zeros(n-1,n);</p><p> for i=1:n-1 </p><p> [q,l]=sort(q); </p><p> m(i,:)=[l(1:n-i+1),zeros(1,i-1)]; &l
41、t;/p><p> q=[q(1)+q(2),q(3:n),1]; </p><p><b> end</b></p><p> for i=1:n-1 </p><p> c(i,:)=blanks(n*n);</p><p><b> end</b></p
42、><p> c(n-1,n)='0'; </p><p> c(n-1,2*n)='1'; </p><p> for i=2:n-1 </p><p> c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)
43、)); </p><p> c(n-i,n)='0'; c(n-i,n+1:2*n-1)=c(n-i,1:n-1); </p><p> c(n-i,2*n)='1'; for j=1:i-1 </p><p> c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1
44、,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));</p><p><b> end; end </b></p><p> for i=1:n </p><p> h(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n); </p>
45、<p> ll(i)=length(find(abs(h(i,:))~=32)); </p><p><b> end</b></p><p> l=sum(p.*ll); </p><p> %在命令窗口或M文件里調(diào)用haffman函數(shù)</p><p> p=[1/2,1/4,1/8,1/16,1
46、/16];</p><p> [h,l]=huffman(p)</p><p> 6.2數(shù)字信號(hào)基帶傳輸系統(tǒng)</p><p> 6.2.1、單極性非歸零碼以及功率譜的實(shí)現(xiàn)</p><p> function y=djx(x)</p><p> %本函數(shù)實(shí)現(xiàn)將輸入的一段二進(jìn)制代碼編碼為相應(yīng)的單極性非歸零碼輸出&
47、lt;/p><p> %輸入x為二進(jìn)制碼,輸出y為編好的碼</p><p> %給出計(jì)算每一個(gè)碼元的點(diǎn)數(shù),因?yàn)槲覀冎挥杏秒x散的點(diǎn)來(lái)得出連續(xù)的函數(shù)表示</p><p><b> grid=300;</b></p><p> t=0:1/grid:length(x);</p><p> for
48、i=1:length(x)</p><p> if(x(i)==1)</p><p> for j=1:grid</p><p> y((i-1)*grid+j)=1;</p><p><b> end</b></p><p><b> else</b></p
49、><p> for j=1:grid</p><p> y((i-1)*grid+j)=0;</p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><
50、;p> y=[y,x(i)];</p><p> M=max(y);m=min(y);</p><p> subplot(2,1,1) ;plot(t,y);hold on;</p><p> axis([0,i,m-0.1,M+0.1]);</p><p> %采用title命令來(lái)實(shí)現(xiàn)標(biāo)記出各碼元對(duì)應(yīng)的二元信息</p&
51、gt;<p> title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');</p><p><b> fs=100;</b></p><p> x=1:1/fs
52、:5;</p><p> y=sin(pi*x);</p><p> y=y./(pi*x);</p><p><b> y(1)=1;</b></p><p> dan1=y.*y;</p><p> dan1=dan1/4;</p><p> subplot
53、(2,1,2);</p><p> subplot(2,1,2);plot(x,dan1);</p><p> axis([1,4,0,0.015]);</p><p> title('單極性非歸零碼的功率譜');%函數(shù)調(diào)用</p><p> t=[1 1 0 1 0 0 1 0 1 0 0 1];</p>
54、<p><b> djx(t);</b></p><p> 6.2.2、單極性歸零碼及其功率譜實(shí)現(xiàn)</p><p> function y=djxglm(x)</p><p><b> grid=200;</b></p><p> t=0:1/grid:length(x);&
55、lt;/p><p> for i=1:length(x)</p><p> if(x(i)==1)</p><p> for j=1:grid/2</p><p> y(grid/2*(2*i-2)+j)=1;</p><p> y(grid/2*(2*i-1)+j)=0;</p><p>
56、;<b> end</b></p><p><b> else</b></p><p> for j=1:grid/2</p><p> y(grid*(i-1)+j)=0;</p><p><b> end</b></p><p><b
57、> end</b></p><p><b> end</b></p><p> y=[y,x(i)];</p><p> M=max(y);m=min(y);</p><p> subplot(2,1,1);plot(t,y);</p><p> axis([0,i,
58、m-0.1,M+0.1]);</p><p> title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');</p><p><b> fs=50;</b></p>
59、<p> x=1:1/fs:5;</p><p> y=sin(pi*x);</p><p> y=y./(pi*x);</p><p><b> y(1)=2;</b></p><p> dan2=y.*y;</p><p> dan2=dan2/4;</p>
60、<p> subplot(2,1,2);</p><p> plot(x,dan2);</p><p> axis([1,5,0,0.05]);</p><p> title('單極性歸零碼的功率譜');</p><p> %在命令窗口或M文件中調(diào)用函數(shù)</p><p> t=
61、[1 1 0 1 0 0 1 0 1 0 0 1];</p><p> djxglm(t);</p><p> 6.2.3、雙極性非歸零碼及其功率譜的實(shí)現(xiàn)</p><p> function y=sjx(x)</p><p> %本函數(shù)實(shí)現(xiàn)將輸入的一段二進(jìn)制代碼編碼為相應(yīng)的雙極性非歸零碼輸出</p><p>
62、 %輸入x為二進(jìn)制碼,輸出y為編好的碼</p><p><b> grid=300;</b></p><p> t=0:1/grid:length(x);</p><p> for i=1:length(x)</p><p> if(x(i)==1)</p><p> for j=1:g
63、rid</p><p> y((i-1)*grid+j)=1;</p><p><b> end</b></p><p><b> else</b></p><p> for j=1:grid</p><p> y((i-1)*grid+j)=-1;</p&g
64、t;<p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p> y=[y,x(i)];</p><p> M=max(y);m=min(y);</p><p&
65、gt; subplot(2,1,1); plot(t,y);</p><p> axis([0,i,m-0.1,M+0.1]);</p><p> %采用title命令來(lái)實(shí)現(xiàn)標(biāo)記出各碼元對(duì)應(yīng)的二元信息</p><p> title(' 1 1 0 1 0 0 1
66、 0 1 0 0 1 ');</p><p><b> fs=100;</b></p><p> x=1:1/fs:5;</p><p> y=sin(pi*x);</p><p> y=y./(pi*x);</p>&
67、lt;p><b> y(1)=1;</b></p><p> dan1=y.*y;</p><p> dan1=dan1/4;</p><p> subplot(2,1,2);</p><p> plot(x,dan1);</p><p> axis([1,4,0,0.02]);
68、</p><p> title('雙極性非歸零碼的功率譜');</p><p> %在命令窗口或M文件中調(diào)用函數(shù)</p><p> t=[1 1 0 1 0 0 1 0 1 0 0 1];</p><p><b> sjx(t);</b></p><p> 6.2.4、雙
69、極性歸零碼及其功率譜的實(shí)現(xiàn)</p><p> function y=sjxglm(x)</p><p> %本函數(shù)實(shí)現(xiàn)將輸入的一段二進(jìn)制代碼編碼為相應(yīng)的雙極性歸零碼輸出</p><p> %輸入x為二進(jìn)制碼,輸出y為編好的碼</p><p><b> grid=300;</b></p><p&
70、gt; t=0:1/grid:length(x);</p><p> for i=1:length(x)</p><p> if(x(i)==1)</p><p> for j=1:grid/2</p><p> y(grid/2*(2*i-2)+j)=1;</p><p> y(grid/2*(2*i-1
71、)+j)=0;</p><p><b> end</b></p><p><b> else</b></p><p> for j=1:grid/2</p><p> y(grid/2*(2*i-2)+j)=-1;</p><p> y(grid/2*(2*i-1)
72、+j)=0;</p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p> y=[y,x(i)];</p><p> M=max(y);m=min(y);<
73、/p><p> subplot(2,1,1);plot(t,y);</p><p> axis([0,i,m-0.1,M+0.1]);</p><p> %采用title命令來(lái)實(shí)現(xiàn)標(biāo)記出各碼元對(duì)應(yīng)的二元信息</p><p> title(' 1 1 0 1 0
74、 0 1 0 1 0 0 1 ');</p><p><b> fs=50;</b></p><p> x=1:1/fs:5;</p><p> y=sin(pi*x);</p><p> y=y./(pi*x);&
75、lt;/p><p><b> y(1)=2;</b></p><p> dan2=y.*y;</p><p> dan2=dan2/4;</p><p> subplot(2,1,2);</p><p> plot(x,dan2);</p><p> axis([1
76、,5,0,0.025]);</p><p> title('雙極性歸零碼的功率譜');</p><p> %在命令窗口或M文件中調(diào)用函數(shù)</p><p> t=[1 1 0 1 0 0 1 0 1 0 0 1];</p><p> sjxglm(t);</p><p> 6.2.5、數(shù)字雙相碼
77、及其功率譜的實(shí)現(xiàn)</p><p> function y=szsxm(x)</p><p> %本函數(shù)實(shí)現(xiàn)將輸入的一段二進(jìn)制代碼編碼為相應(yīng)的數(shù)字雙相碼輸出</p><p> %輸入x為二進(jìn)制碼,輸出y為編好的碼</p><p><b> grid=300;</b></p><p> t=
78、0:1/grid:length(x);</p><p> for i=1:length(x)</p><p> if(x(i)==1)</p><p> for j=1:grid/2</p><p> y(grid/2*(2*i-2)+j)=1;%用從1到0的電平跳變來(lái)表示‘1’</p><p> y(gri
79、d/2*(2*i-1)+j)=0;</p><p><b> end</b></p><p><b> else</b></p><p> for j=1:grid/2</p><p> y(grid/2*(2*i-2)+j)=0;%用從0到1的電平跳變來(lái)表示‘0’</p>&
80、lt;p> y(grid/2*(2*i-1)+j)=1;</p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p> y=[y,x(i)];</p><p&g
81、t; M=max(y);m=min(y);</p><p> subplot(2,1,1); plot(t,y);</p><p> axis([0,i,m-0.1,M+0.1]);</p><p> %采用title命令來(lái)實(shí)現(xiàn)標(biāo)記出各碼元對(duì)應(yīng)的二元信息</p><p> title(' 1 1
82、 0 1 0 0 1 0 1 0 0 1 ');</p><p><b> fs=100;</b></p><p> x=1:1/fs:5;</p><p> y=sin(pi*x/2);</p
83、><p> y=y./(pi*x/2);</p><p><b> y(1)=1;</b></p><p> mache=sin(pi*x/2).*sin(pi*x/2);</p><p> mache=mache.*y;</p><p> mache=mache.*y;</p>
84、<p> subplot(2,1,2);</p><p> plot(x,mache);</p><p> axis([1,5,0,0.5]);</p><p> title('數(shù)字雙相碼的功率譜');</p><p> %在命令窗口或M文件中調(diào)用函數(shù)</p><p> t=[
85、1 1 0 1 0 0 1 0 1 0 0 1];</p><p><b> szsxm(t);</b></p><p> 6.2.6、密勒碼及其功率譜的實(shí)現(xiàn)</p><p> function y=mlm(x)</p><p> %該函數(shù)實(shí)現(xiàn)密勒編碼,輸入碼序列為x</p><p>&l
86、t;b> grid=100;</b></p><p> t=0:1/grid:length(x);%定義時(shí)間序列</p><p> i=1;%由于第一碼元的編碼不定,我們直接給出</p><p> if(x(i)==1)</p><p> for j=1:grid/2</p><p> y
87、(grid/2*(2*i-2)+j)=0;%前半時(shí)間為0</p><p> y(grid/2*(2*i-1)+j)=1;%后半時(shí)間為1</p><p><b> end</b></p><p><b> else</b></p><p> for j=1:grid%若輸入0</p>
88、;<p> y(grid*(i-1)+j)=0;%碼元持續(xù)時(shí)間內(nèi)為0</p><p><b> end</b></p><p><b> end</b></p><p> for i=2:length(x)%開(kāi)始進(jìn)行密勒編碼</p><p> if (x(i)==1)%若輸入
89、信息為1</p><p> for j=1:grid/2</p><p> y(grid/2*(2*i-2)+j)=y(grid/2*(2*i-3)+grid/4);%前半時(shí)間與前一碼元后半時(shí)間值相同</p><p> y(grid/2*(2*i-1)+j)=1-y(grid/2*(2*i-2)+j);%后半時(shí)間與前半時(shí)間相反</p><p
90、><b> end</b></p><p><b> else</b></p><p> if(x(i-1)==1)%反之,若前一信息為1,輸入為0</p><p> for j=1:grid</p><p> y(grid*(i-1)+j)=y(grid/2*(2*i-3)+gri
91、d/4);%所有時(shí)間與前一碼元后半時(shí)間值相同</p><p><b> end</b></p><p> else%前一信息為0</p><p> for j=1:grid</p><p> y(grid*(i-1)+j)=1-y(grid/2*(2*i-3)+grid/4);%所有時(shí)間與前一碼元后半時(shí)間值相反&
92、lt;/p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p> y=[y,y(i*grid)];&l
93、t;/p><p> M=max(y);m=min(y);</p><p> subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);</p><p> %采用title命令來(lái)實(shí)現(xiàn)標(biāo)記出各碼元對(duì)應(yīng)的二元信息</p><p> title(' 1 1 0
94、 1 0 0 1 0 1 0 0 1 ');</p><p><b> fs=100;</b></p><p> x=1:1/fs:5;</p><p><b> x=x*pi;</b>&
95、lt;/p><p> miler=(23-2*cos(x)-22*cos(2*x)-12*cos(3*x)+5*cos(4*x)+12*cos(5*x)+2*cos(6*x)-8*cos(7*x)+2*cos(8*x))./(17+8*cos(8*x));</p><p><b> t=x.*x;</b></p><p> miler=mil
96、er./t;</p><p> miler(1)=0.2;</p><p><b> x=x/pi;</b></p><p> subplot(2,1,2);</p><p> plot(x,miler);</p><p> axis([1,5,0,0.3]);</p>&
97、lt;p> title('密勒碼的功率譜')</p><p> %下面是mlm函數(shù)的調(diào)用</p><p> t=[1 1 0 1 0 0 1 0 1 0 0 1];</p><p><b> mlm(t);</b></p><p> 6.2.7、AMI碼及其功率譜的實(shí)現(xiàn)</p>
98、<p> *t2f.m文件:傅里葉變換</p><p> function X=t2f(x,dt)</p><p> X=fftshift(fft(x))*dt;</p><p> function y=AMI(x)</p><p><b> grid=300;</b></p>&l
99、t;p> t=0:1/grid:length(x);</p><p><b> i=1; </b></p><p> if(x(i)==1) </p><p> for j=1:grid</p><p><b> y(j)=1; </b></p><p>
100、;<b> h=1;</b></p><p><b> end</b></p><p> else </p><p> for j=1:grid</p><p><b> y(j)=0; </b></p><p>
101、<b> end</b></p><p><b> end</b></p><p> for i=2:length(x) </p><p> if(x(i)==1) </p><p><b> if h==1</b></p><p> f
102、or j=1:grid</p><p> y(grid*(i-1)+j)=-1; </p><p><b> h=-1;</b></p><p><b> end</b></p><p><b> else</b></p><p><b&g
103、t; if h==-1</b></p><p> for j=1:grid</p><p> y(grid*(i-1)+j)=1; </p><p><b> h=1;</b></p><p><b> end</b></p><p><b>
104、 end</b></p><p><b> end </b></p><p> else </p><p> for j=1:grid</p><p> y(grid*(i-1)+j)=0; </p><p><b> end&
105、lt;/b></p><p><b> end</b></p><p><b> end</b></p><p> y=[y,x(i)];</p><p> M=max(y); m=min(y);</p><p> subplot(2,1,1);plot(t
106、,y);</p><p> axis([0,i,m-0.1,M+0.1]);</p><p> %采用title命令來(lái)實(shí)現(xiàn)標(biāo)記出各碼元對(duì)應(yīng)的二元信息</p><p> title(' 1 1 0 1 0 0 1 0 1 0
107、 0 1 ');</p><p><b> Rt=0.5; </b></p><p><b> k=14;</b></p><p><b> N=2^k; </b></p><p><b> L=64; </b&
108、gt;</p><p><b> M=N/L; </b></p><p><b> Rb=2; </b></p><p><b> Ts=1/Rb </b></p><p> dt=Ts/L; </p><p> df=1/(N*d
109、t) </p><p> T=N*dt </p><p> Bs=N*df/2; </p><p> t=[-T/2+dt/2:dt:T/2]; </p><p> f=[-Bs+df/2:df:Bs]; </p><p> Ep=zeros(size(f)); </p
110、><p> for ii=1:50 </p><p><b> n=1; </b></p><p> while rem(n,2)~=0, </p><p> a=round(rand(1,M)); </p><p> n=length(find(a==1)); </p>
111、<p><b> end </b></p><p> bb=find(a==1); </p><p> cc=bb(1:2:length(bb)); </p><p><b> b=a; </b></p><p> b(cc)=-ones(size(cc)); </p>
112、;<p> ami=zeros(1,N); </p><p> for tt=1:Rt*Ts/dt; </p><p> ami(tt+[0:M-1]*L)=b; </p><p><b> end </b></p><p> AMI=t2f(ami,dt); <
113、/p><p> P=AMI.*conj(AMI)/T; </p><p> Ep=(Ep*(ii-1)+P)/ii; </p><p> end </p><p> aa=30+10*log10(Ep+eps); </p><p> subplot(2,1,2);plot(
114、f,aa);</p><p> axis([-5,+5,-50,50]); </p><p> title('AMI功率譜密度')</p><p><b> %AMI函數(shù)的調(diào)用</b></p><p> t=[1 1 0 1 0 0 1 0 1 0 0 1];</p><p&g
115、t;<b> AMI(t);</b></p><p> 6.2.8、HDB3碼及其功率譜的實(shí)現(xiàn)</p><p> function X=t2f(x,dt)</p><p> X=fftshift(fft(x))*dt;</p><p> *HDB3_encoding.m文件:</p><p&
116、gt; function [changed_hdb3]=Hdb3_encoding(pcm)</p><p> last_V=-1;</p><p> last_one=-1;</p><p> M=length(pcm);</p><p> changed_hdb3=zeros(size(pcm)); </p>
117、<p> count=0; </p><p><b> for i=1:M</b></p><p> if(pcm(i)==1) </p><p> changed_hdb3(i)=-last_one;</p><p> last_one=changed_hdb3(
118、i);</p><p><b> count=0;</b></p><p><b> else</b></p><p> count=count+1;</p><p> if(count==4)</p><p><b> count=0;</b>
119、;</p><p> changed_hdb3(i)=-last_V; </p><p> last_V=changed_hdb3(i);</p><p><b> if(i>4)</b></p><p> if(changed_hdb3(i)*last_one==-1)
120、 changed_hdb3(i-3)=changed_hdb3(i); </p><p><b> end</b></p><p><b> end</b></p><p> last_one=changed_hdb3(i);</p><p><
121、b> end</b></p><p><b> end</b></p><p><b> end</b></p><p><b> %函數(shù)調(diào)用</b></p><p><b> clear all</b></p>
122、<p><b> close all</b></p><p> k=input(‘取樣點(diǎn)數(shù)=2^k,k=[4]’);</p><p> if isempty(k),</p><p><b> k=14;</b></p><p><b> end</b><
123、;/p><p><b> N=2^k; </b></p><p><b> L=64; </b></p><p><b> M=N/L; </b></p><p><b> Rb=1; </b></p><p><b>
124、; Ts=1/Rb; </b></p><p><b> dt=Ts/L; </b></p><p> df=1/(N*dt); </p><p><b> T=N*dt; </b></p><p> Bs=N*df/2; </p><p> t=[-
125、T/2+dt/2:dt:T/2]; </p><p> f=[-Bs+df/2:df:Bs]; </p><p> Ep=zeros(size(f));</p><p> for ii=1:30</p><p> a=rand(1,M)>0.75; </p><p> b=Hdb3_enco
126、ding(a);</p><p> hdb=zeros(L,M);</p><p> init=zeros(L,M);</p><p> for loop=1:L/2</p><p> init(loop,:)=a; </p><p><b> end</b></p>&l
127、t;p> for loop=1:L/2</p><p> hdb(loop,:)=b; </p><p><b> end</b></p><p> hdb=reshape(hdb,1,N);</p><p> init=reshape(init,1,N);</p><p> H
128、DB=t2f(hdb,dt);</p><p> P=HDB.*conj(HDB)/T;</p><p> Ep=(Ep*(ii-1)+P)/ii;</p><p><b> end</b></p><p><b> init</b></p><p><b>
129、; figure(9)</b></p><p> subplot(3,1,1)</p><p> plot(t,init,'m')</p><p><b> grid on</b></p><p> axis([0,T/10,-1.5,1.5])</p><p&g
130、t; set(gca,'XTick',[0:1:T/10])</p><p> xlabel('t(Tb)')</p><p> ylabel('s(t)')</p><p> title(‘原始序列’)</p><p> subplot(3,1,2)</p><p
131、> plot(t,hdb,'b')</p><p><b> grid on</b></p><p> axis([0,T/10,-1.5,1.5])</p><p> set(gca,'XTick',[0:1:T/10])</p><p> xlabel('t(T
132、b)')</p><p> ylabel('s(t)')</p><p> title(‘HDB3編碼序列’)</p><p> subplot(3,1,3)</p><p> aa=30+10*log10(Ep+eps);</p><p> plot(f,aa,'r'
133、)</p><p><b> grid on</b></p><p> axis([-5,5,-50,50])</p><p> xlabel('f(Rb)')</p><p> ylabel('Ps(f)')</p><p> title(‘HDB3碼功
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信原理matlab課程設(shè)計(jì)報(bào)告
- matlab與通信仿真課程設(shè)計(jì)報(bào)告
- 通信原理課程設(shè)計(jì)報(bào)告
- 通信原理課程設(shè)計(jì)報(bào)告
- 通信原理課程設(shè)計(jì)--matlab 軟件仿真課設(shè)
- 通信原理i課程設(shè)計(jì)報(bào)告
- 通信原理課程設(shè)計(jì)-- 基于matlab的am系統(tǒng)仿真
- 通信原理課程設(shè)計(jì)報(bào)告---模擬(數(shù)字)通信系統(tǒng)matlab仿真平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)
- 通信原理課程設(shè)計(jì)總結(jié)報(bào)告
- matlab課程設(shè)計(jì)報(bào)告
- matlab課程設(shè)計(jì)報(bào)告
- 通信原理課程設(shè)計(jì)
- 通信原理課程設(shè)計(jì)--基于matlab的相移鍵控仿真設(shè)計(jì)
- 通信原理課程設(shè)計(jì)
- 通信原理課程設(shè)計(jì)
- 通信原理課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)報(bào)告-雙機(jī)串行通信
- matlab課程設(shè)計(jì)報(bào)告 (2)
- 現(xiàn)代通信原理課程設(shè)計(jì)
- 通信原理課程設(shè)計(jì) (2)
評(píng)論
0/150
提交評(píng)論