matlab通信原理課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論