信工院通信原理實驗指導書_第1頁
信工院通信原理實驗指導書_第2頁
信工院通信原理實驗指導書_第3頁
信工院通信原理實驗指導書_第4頁
信工院通信原理實驗指導書_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

通信原理實驗指導書班級:____________學號:____________姓名:____________目錄第一部分知識準備.........................................................................................................................3一前言...................................................................................................................................3二MATLAB初步........................................................................................................................41.CommandWindow指令窗簡介...................................................................................41.1命令的執行與顯示............................................................................................41.2MATLAB基本命令..............................................................................................42.矩陣、矢量和標量.....................................................................................................52.1矩陣...................................................................................................................52.2計算矩陣尺寸命令size..................................................................................52.3矢量...................................................................................................................62.4計算矢量長度命令length..............................................................................62.5標量...................................................................................................................62.6數據類型...........................................................................................................63.基本運算.....................................................................................................................63.1矢量與標量的加減乘除...................................................................................63.2矢量與矢量之間的加減...................................................................................73.3矢量與矢量之間的點乘“.*”與點除“./”.................................................73.4冪“^”與點冪“.^”.......................................................................................74.函數.............................................................................................................................74.1三角函數...........................................................................................................84.2指數類函數.......................................................................................................84.3復數類函數.......................................................................................................84.4取整函數...........................................................................................................84.5取余數函數.......................................................................................................84.6矩陣的產生與變換函數...................................................................................84.7數據分析函數...................................................................................................94.8繪圖類函數.......................................................................................................95.MATLAB編程............................................................................................................135.1M文件..............................................................................................................135.2自定義函數.....................................................................................................136.其他基本操作...........................................................................................................13第二部分實驗指導.....................................................................................................................15實驗一數字基帶傳輸系統的MATLAB仿真.......................................................................15一、實驗目的.................................................................................................................15二、實驗內容.................................................................................................................15三、實驗原理.................................................................................................................153.1信號及系統在計算機中的表示.....................................................................153.1.1時域取樣及頻域取樣.........................................................................153.1.2頻域分析.............................................................................................163.2與隨機信號產生相關的指令.........................................................................173.2.1高斯噪聲的產生.................................................................................17第1頁3.2.2隨機碼序列的產生.............................................................................173.2.3產生數字隨機信號的一般方法.........................................................173.3信號的仿真.....................................................................................................183.3.1連續時間信號的仿真.........................................................................183.3.2離散時間信號的仿真.........................................................................19四、實驗步驟.................................................................................................................20五、實驗報告要求.........................................................................................................22附錄.................................................................................................................................231.T2F子函數........................................................................................................232.F2T函數............................................................................................................23實驗二模擬信號幅度調制仿真實驗.................................................................................24一、實驗目的.................................................................................................................24二、實驗內容.................................................................................................................24三、實驗原理.................................................................................................................243.1AM調制............................................................................................................243.2DSB調制..........................................................................................................263.3SSB調制..........................................................................................................27四、實驗步驟.................................................................................................................29五、實驗報告要求.........................................................................................................31實驗三二進制數字信號調制仿真實驗.............................................................................32一、實驗目的.................................................................................................................32二、實驗內容.................................................................................................................32三、實驗原理.................................................................................................................323.1二進制數字序列的產生.................................................................................323.2OOK調制..........................................................................................................333.32FSK調制........................................................................................................343.42PSK調制........................................................................................................35四、實驗內容.................................................................................................................35五、實驗報告要求.........................................................................................................39實驗四模擬信號數字傳輸仿真實驗.................................................................................40一、實驗目的.................................................................................................................40二、實驗內容.................................................................................................................40三、實驗原理.................................................................................................................403.1抽樣.................................................................................................................403.1.1低通信號的抽樣定理.........................................................................403.1.2帶通信號的抽樣定理.........................................................................423.2量化.................................................................................................................423.2.1均勻量化.............................................................................................433.2.2非均勻量化.........................................................................................433.3編碼.................................................................................................................45四、實驗步驟.................................................................................................................46五、實驗報告要求.........................................................................................................49第2頁第一部分知識準備一

前言《通信原理》課程是電子通信類專業的主要技術基礎課程之一,是電子通信類專業本科生的必修課程,也是電子信息類專業碩士研究生入學考試必考課程。該課程的主要內容是論述怎樣可靠而有效地實現消息的傳輸,使學生掌握通信的基本概念和常用的傳輸方式及其原理,并能判斷出噪聲、信道、傳輸方式等因素對通信指標的影響。該課程的基本理論和方法大量用于電子通信領域的各個方面,特別是在電話網、數據通信網、綜合業務數字網和移動通信網等領域有著極其廣泛的應用。實驗實踐與《通信原理》的教學相配合,對加強學生對通信原理理論的感性認識,提高學生的綜合能力具有重要的意義。要想充分地了解某種傳輸方式的特性,最理想的辦法莫過于把它做出來,實際測量其參數。然而實際制作一套通信系統所需的周期長、代價高,有時要改變系統的某些參數就可能意味著整個系統需要重做。故對于研究設計人員來說,通過把所有的設計方案、研究問題等都做成硬件,再對硬件進行測量從而獲得系統性能的研究方法應屬于不得己而為之。較好的研究方法應該是在硬件制作前就對將要制作的實際傳輸系統做充分的研究,對其參數進行評估,以判斷設計是否合理,如果設計是合理的,就可以放心地去實現系統,不然就需要修改現有設計再做分析。即先進行軟件的仿真,在仿真結果達標后,再進行具體的硬件制作。近年來,計算機多媒體教學手段的運用逐步普及,大量優秀的科學計算和系統仿真軟件不斷涌現,為我們實現實際系統設計、計算機輔助教學和學生上機實驗提供了很好的平臺。通過對這些軟件的分析和對比,我們選擇MATLAB語言作為輔助教學工具,借助MATLAB強大的計算能力和圖形表現能力,將《通信原理》中的概念、方法和相應的結果,以圖形的形式直觀地展現給學生,大大地方便學生迅速理解和掌握教學內容。《通信原理實驗指導書》采用的實驗平臺也是MATLAB。為了使學生能夠較好的使用MATLAB語言完成相應的實驗任務,教程中除了回顧了MATLAB軟件使用的基本知識外,更詳細地給出了與通信相關的眾多的MATLAB函數及其用法,同時給出了大量的范例程序,說明針對某一具體問題進行編程的方法等。學生們在實驗前,只要認真閱讀、預習實驗的相關內容,并在實驗中,嚴格按照《實驗教程》規定的實驗內容和步驟進行實驗,即可完成相應的實驗報告。《通信原理實驗指導書》中設計的實驗項目包括:1、數字基帶傳輸系統的MATLAB仿真;2、模擬信號幅度調制仿真實驗;3、二進制數字信號調制仿真實驗;4、模擬信號數字傳輸仿真實驗。所有這些實驗項目所涉及到的實驗內容基本上覆蓋了《通信原理》課程的大部分主要內容。期望本部分實驗能帶給你如下收獲:(1)學會MATLAB軟件的最基本運用。MATLAB軟件是一種很實用的數學軟件,它易學易用,MATLAB對于許多的通信仿真類問題的解決是很適用的。(2)了解計算機仿真的基本原理及方法,掌握通過仿真去研究通信問題的方法。(3)加深對通信原理課程相關內容的理解。和其他課程的實驗指導書有所不同的是,本實驗教程同時兼作《實驗報告》之用,目的是希望將學生從實驗報告的文字撰寫中解脫出來,從而將主要精力和時間用到對問題的分析、算法的確定和程序的編寫之中。本實驗教程中所給出的全部范例程序,都在MATLAB6.5上運行,且是正確的。由于時間倉促和編者水平有限,本實驗教程在編寫和編輯的過程中,不可避免地存在錯誤和不當之處,懇請老師和同學們批評指正。第3頁二MATLAB初步1.CommandWindow指令窗簡介1.1命令的執行與顯示在Windows中,用鼠標雙擊MATLAB圖標即可啟動MATLABforWindows。MATLAB的命令提示符為“>>”。MATLAB的命令也稱語句或函數。在命令行中,鍵入命令并按回車,就可以執行命令。執行結果或其他與命令執行相關的信息將隨后顯示在屏幕上。如下圖所示:在命令的末尾加上英文輸入法下的分號“;”,表示不顯示函數的返回值或語句的運行結果。一行中可以有多條命令,命令與命令之間應用逗號“,”或分號“;”隔開。以逗號結尾的命令顯示結果,以分號結尾的命令不顯示結果。要注意,在MATLAB中,標識符的大小寫是有區別的。例如:>>a=6a=6>>A???Undefinedfunctionorvariable'A'.可見,由于定義的是變量a,并賦值為6,故可顯示a=6的結果。而其大寫A并沒有定義,所以報錯說沒有定義這個變量。1.2MATLAB基本命令(1)幫助命令helphelp命令是一個非常有用的幫助命令,它用于幫助用戶了解MATLAB命令與函數的用法或者其他相關的內容。如果你忘記了一個命令的用法,只要敲入“help命令”,MATLAB就會顯示有關這個命令的詳細信息。MATLAB命令區分大小寫,但有一些命令不分大小寫,help就是其中的一個。(2)顯示目錄命令whatwhat用于列出目錄中的M、MAT和MEX文件,其中M文件就是MATLAB程序文件。what第4頁命令區分大小寫。(3)尋找函數命令whichwhich命令顯示函數所在文件的位置,給出文件位置的路徑。如果是內部函數則顯示此函數是內部的。>>whichmaxD:\MATLAB\toolbox\matlab\datafun\max.m表明函數max是由M文件max.m定義的,以及該文件存放路徑的位置。(4)路徑顯示命令pathPath顯示MATLAB的搜尋路徑。MATLAB尋找命令或M文件時,先查找當前目錄,如果找不到,則按path設定的搜尋路徑去找。P=path返回一個字符串P,P的內容是搜尋路徑。Path(P)把字符串P所描述的路徑作為當前的搜尋路徑。path(path,P)把P追加到當前搜尋路徑中,P在最后。path(P,path)把P加入當前搜尋路徑中,P在最前。(5)顯示變量命令who,whosWho和whos命令都用于顯示當前變量,但是whos給出的信息更加詳細。(6)清除變量命令clear用clear命令可以把不要的變量從內存中清除。如果要清除所有的變量,只需輸入clear即可。如果只想清除部分變量,則在clear后加上要清除的變量名。(7)改變目錄cd和顯示目錄命令dircd命令用于改變當前的目錄,dir命令用來顯示目錄里的文件。(8)窗口編輯命令clc:清除屏幕上的內容,但并不清除變量。home:移動光標到左上角。Format:設置輸出格式,例如小數點位數等echo:開或關顯示命令。more:控制多頁顯示。2.矩陣、矢量和標量2.1矩陣MATLAB的基本運算對象是矩陣。方括弧“[]”用來定義矩陣。逗號“,”或空格用來分割一行中的不同元素,分號“;”用來分割不同的行。例如:>>a=[123;4,5,6;789]a=147

258

3692.2計算矩陣尺寸命令size函數size(A)返回一個行矢量[n,m],其中n是A的行數,m是A的列數。例如對于剛才定義的矩陣a計算其尺寸:>>size(a)ans=33第5頁2.3矢量只有一行或一列的矩陣就是矢量,分別被稱為行矢量和列矢量。例如:>>b=[1482]b=1482>>c=[1;4;8;2]

%b是一個行矢量%c是一個列矢量c=1482考慮到通信實驗內容的要求,我們主要研究行矢量。2.4計算矢量長度命令lengthLength用于計算矢量的長度,如果x是一個常數,則length(x)返回1;如果x是一個矢量,則length(x)返回矢量的長度;如果x是一個M×N的矩陣,則length(x)返回M、N中較大的一個值。例如計算剛才定義的矢量b的長度的命令為:>>length(b)ans=42.5標量只有一個元素的矢量或矩陣就是標量。例如d=[1]或d=1的意思是把d定義為一個值為1的標量。2.6數據類型(1)實數MATLAB不需要對實數作類型說明,所有的數都按雙精度浮點方式保存。對很大及很小的-18(2)字符串MATLAB也支持字符串變量。字符串由一對單引號給定。字符串在MATLAB中被看作是一個矢量,每個字符構成矢量的元素。例如str=’hello’str=[’h’,’e’,’l’,’l’’,’o’]。(3)復數在MATLAB中如果標識符i或j沒有被定義過,那個一個復數可以簡單地用兩個實數a,b組成:d=a+j*b或d=a+i*b表示復數。許多人編程時習慣用i、j作循環變量,如果你的程序涉及復數運算的話,最好避免使用它們。3.基本運算3.1矢量與標量的加減乘除矢量加(+)、減(-)、乘(*)或除以(/)一個標量時,其結果是該矢量的每一個元素加、減、乘、除以同一標量。例如:>>A=[1:5]+1A=23456第6頁數可采用科學計數法。如1.3e-18表示1.3×10。數可采用科學計數法。如1.3e-18表示1.3×10。>>c=[321]*3+jc=9.0000+1.0000i6.0000+1.0000i3.0000+1.0000i標量加(+)、減(-)或乘以(*)矢量的結果與矢量加(+)、減(-)或乘以(*)標量的結果相同,即矢量與標量的加、減、乘(+、-、*)運算滿足交換律。但請注意:標量除以(/)矢量(a/A)是非法的。3.2矢量與矢量之間的加減兩個相同長度的矢量相加或相減是其對應的元素相加或相減。例如:>>a=[1:3]*5-[6:6:20]/3a=3693.3矢量與矢量之間的點乘“.*”與點除“./”若A與B是兩個長度相同的矢量,則A.*B是A與B的對應元素相乘,A./B是A與B的對應元素相除。注意比較下面的三條指令:>>c=[1:3].*[2,5,5]c=21015>>c=[1:3]*[2,5,5]???Errorusing==>mtimesInnermatrixdimensionsmustagree.>>c=[1:3]*[2;5;5]c=273.4冪“^”與點冪“.^”對于標量a、b,a^b是以a為底,b為指數的冪運算。例如:>>2^3ans=8對于標量x及矢量A,A.^x是對矢量A的每一個元素求以x為指數的冪運算。>>[-149].^0.5ans=0.0000+1.0000i2.00003.0000而x.^A是一個矢量,它的每一個元素是以x為底,以A的對應元素為指數的冪。>>10.^[-2:2]ans=0.01000.10001.000010.0000100.0000對于兩個相同長度的矢量A、B,A.^B的結果是一個與A同長度的矢量,其元素是以A的對應元素為底,以B的對應元素為指數的冪。4.函數MATLAB中函數名稱和變量都是以字母開頭,所有的函數名稱均由小寫字母組成。所有的函數或命令都可借助help菜單或在命令行中鍵入help得到幫助。結合課程實驗的需要,這里介紹一些常用函數。第7頁4.1三角函數三角函數包括正弦sin、余弦cos、正切tan、反正切atan等。例如:>>X=[0:pi/6:pi];Y=sin(X)Y=00.50000.86601.00000.86600.5000

0.00004.2指數類函數指數類函數包括e的指數exp、自然對數log、常用對數log10和平方根sqrt等。在MATLAB中可對負數求對數或求平方根。例如:>>sqrt(-2)ans=0+1.4142i4.3復數類函數復數類函數包括求模abs、角度angle、共軛conj、實部real和虛部imag等。4.4取整函數取整函數包括零方向取整fix、負無窮方向取整floor、正無窮方向取整ceil、四舍無入取整round、取符號sign等。>>x=[-1:0.5:1]*pi;[x;fix(x);floor(x);ceil(x);round(x);sign(x)]ans=-3.1416-1.570801.57083.1416-3.0000-1.000001.00003.0000-4.0000-2.000001.00003.0000-3.0000-1.000002.00004.0000-3.0000-2.000002.00003.0000-1.0000-1.000001.00001.00004.5取余數函數用rem(x,y)可以求得x除以y的余數。4.6矩陣的產生與變換函數(1)全零矩陣zeros及全1矩陣oneszeros(n,m)產生一個尺寸為n×m,元素全為零的矩陣。ones(n,m)產生一個尺寸為n×m,元素全為1的矩陣。若n或m不是整數,則按取整后的結果計算。若n或m中(取整后)有一個為0或負值則返回一個空矩陣。zeros(N)產生一個尺寸為N維全零矩陣。ones(N)產生一個尺寸為N維全1矩陣。zeros(size(A))產生一個尺寸與A相同的全零矩陣。ones(size(A))產生一個尺寸與A相同的全1矩陣。(2)隨機數產生命令rand及正態隨機數產生命令randnrand(n,m)產生一個尺寸為n×m的矩陣,其元素按均勻分布隨機取值于區間[0,1]。randn(n,m)產生一個尺寸為n×m的矩陣,其元素服從標準正態分布。randn(size(A))產生一個尺寸與A相同的正泰分布隨機矩陣。rand(size(A))產生一個尺寸與A相同的均勻分布隨機矩陣。例如:>>a=sign(randn(1,8000));>>b=(a+1)/2;>>c=b+0.1*randn(size(b));b包含8000個取值1、0等概的隨機二進制數。c是b加上方差為0.1的高斯干擾。第8頁(3)元素均勻分隔命令linspace函數linspace(a,b,N)產生一個N維矢量,N個元素均勻分隔區間[a,b],第一個元素是a,最后一個元素是b。(4)矩陣元素重排命令reshapereshape(x,m,n)把矩陣x的元素重新排列成m×n的矩陣形式,按逆時針的方向取數。但矩陣x的元素個數必須等于m×n個,否則會出現錯誤。>>A=[123456],B=reshape(A,3,2)A=123456B=142536>>A=[123456];B=reshape(A,4,1)???Errorusing==>reshapeToRESHAPEthenumberofelementsmustnotchange.4.7數據分析函數數據分析函數包括:最大值max、最小值min、均值mean、標準差std、升序排序sort、求和sum等。4.8繪圖類函數MATLAB提供了豐富的繪圖功能。結合課程實驗的需要,在此簡要介紹二維曲線的繪制方法。如想進一步了解MATLAB繪圖方面的功能,請執行helpgraphics、helpplotxy、helpxyz、helpcolor或者執行MATLAB的演示程序demo。(1)二維繪圖函數plot若X、Y是兩個相同長度的矢量,函數plot(X,Y)將激活一個圖形窗口,并畫出一個以X為橫坐標,以Y為縱坐標的曲線。使用plot(X,Y)函數時,若省略參量X,MATLAB將把Y中元素的順序號作為橫坐標的坐標值,也就是說此時橫坐標參量是X=[1:length(Y)]。使用plot(X,Y)函數時,也可加入另一個參量S:plot(X,Y,S),S用來規定繪圖時使用的顏色及繪制方法。MATLAB規定S是長為1到3個字符的字符串。構成S的字符有兩部分,第一部分是顏色,用一個字符表示;第二部分是繪制方法,用一到兩個字符表示。它們的定義如下表所示。例如:第9頁符號符號顏色符號線型y黃色.點m紫色o圓圈c青色x×標記r紅色+加號g綠色*星號b藍色-實線w白色:點線k黑色-.點劃線--虛線>>x=linspace(0,2*pi,30);>>y=sin(x);>>z=cos(x);>>plot(x,y,'m:',x,z,'r-',x,y,'bo',x,z,'k+')其生成的圖形為:0.20-0.2-0.4-0.6-0.8-1

0

1

2

3

4

5

6

7MATLABforWindows所繪的圖可通過剪貼板直接復制到MicrosoftWord或其他應用程序中。(2)命令hold與clf在缺省狀態下,執行plot時MATLAB先清除圖形窗口再行繪圖。執行holdon后再執行plot時,MATLAB將不清除圖形窗口,這樣就可以在同一圖形窗口內畫多條曲線。例如:>>t=[0:0.01:4*pi];>>holdon;>>plot(t,sin(t+pi/3),'r-')>>plot(t,cos(t-pi/3),'k:')>>plot(t,sin(2*t),'b--')0.20-0.2-0.4-0.6-0.8-1

0

2

4

6

8

10

12第10頁這一段程序在同一圖形窗口繪出了3條曲線,第1條實線是sin(t+π/3),第2條虛線是cos(t-π/3),第3條波折線是sin2t。執行holdoff將使圖形窗口變回原來的狀態。單獨執行hold而不帶參數on或off,將圖形窗口的hold狀態反轉。命令clf則是清除當前的圖形窗口,但它不改變hold的狀態。(3)命令grid與命令axis命令gridon給圖形窗口打上格線,而gridoff則是取消圖形窗口中的格線。單獨執行grid將反轉格線的狀態(有或無)。命令axis(a)設定X軸與Y軸的坐標范圍。通常a是一個包含4個元素的行矢量,例如:a=[Xmin,Xmax,Ymin,Ymax],其元素分別代表X軸與Y軸的最大值與最小值。例如,運行下列程序:>>t=[0:0.01:4*pi];>>holdon;>>plot(t,sin(t),'r-')>>plot(t,sin(2*t),'b:')>>gridon>>axis([0,4,-1.1,+1.1])可得:0.20-0.2-0.4-0.6-0.8-10

0.5

1

1.5

2

2.5

3

3.5

4(4)標簽xlable(str)給X軸加上一個以字符串str為內容的標簽,ylable(str)給Y軸加上一個以字符串str為內容的標簽,title(str)則是給整個圖加上一個標題。例如:>>t=[0:0.01:4*pi];>>plot(t,sin(2*t),'b--')>>axis([0,4,-1.1,+1.1])>>xlabel('時間t');>>ylabel('幅值y');>>title('函數sin2t的波形');可得如下波形:第11頁函數sin2t的波形0.20-0.2-0.4-0.6-0.8-10

0.5

1

1.5

2

2.5

3

3.5

4時間t(5)figure與close如果要在同一個程序中開出多個圖形窗口,可以使用figure命令。單獨執行figure后,MATLAB將創建一個新的圖形窗口,并以此作為當前圖形窗口。執行figure(N)將使第N個圖形窗口成為當前圖形窗口。如果第N個圖形窗口不存在,則figure(N)將創建一個新窗口。新窗口的編號不一定是N,而是按實際已有的窗口序號順序排列。命令close關閉當前圖形窗口;close(N)關閉第N個圖形窗口;closeall關閉所有圖形窗口。(6)創建子圖命令subplotSubplot(m,n,p)命令將當前圖形窗口分割成m*n個繪圖區域,并選擇第p個區域為激活區域。如圖所示,子圖沿頭一行從左至右編號,接著編第2行,依次類推。例如:>>closeall>>x=linspace(0,2*pi,30);>>y=sin(x);z=cos(x);>>a=2*sin(x).*cos(x);>>b=sin(x)./(cos(x)+eps);>>subplot(2,2,1)%選取4個子圖中的左上子圖>>plot(x,y),axis([02*pi-11]),title('1.sin(x)')>>subplot(2,2,2)%選取4個子圖中的右上子圖>>plot(x,z),axis([02*pi-11]),title('2.cos(x)')>>subplot(2,2,3)%選取4個子圖中的左下子圖>>plot(x,a),axis([02*pi-11]),title('3.2sin(x)cos(x)')>>subplot(2,2,4)%選取4個子圖中的右下子圖>>plot(x,b),axis([02*pi-2020]),title('4.2sin(x)/cos(x)')>>gtext('子圖1')>>gtext('子圖2');第12頁幅值y幅值y>>gtext('子圖3');>>gtext('子圖4');可得到如下圖形:10.50-0.5

1.sin(x)

子圖1

10.50-0.5

2.cos(x)子圖2-1

0

2

4

6

-1

0

2

4

610.50-0.5

3.2sin(x)cos(x)子圖3

20100-10

4.2sin(x)/cos(x)子圖4-1

0

2

4

6

-20

0

2

4

65.MATLAB編程5.1M文件用文本編輯器如motepad.exe把MATLAB的命令及語句編輯成一個文本文件,并把文件的擴展名定為.m,這樣的文件叫M文件。在MATLAB命令行中鍵入M文件的文件名(不包括小數點及擴展名“.m”),即可一次性地執行該文件中的所有命令或語句。M文件可以包括所有合法的MATLAB命令或語句,也可以包括其他已經編好的其他M文件名。5.2自定義函數MATLAB中可以編制自己的函數。一個函數對應一個M文件,函數名就是M文件的文件名,自定義函數的M文件第一行必須是如下格式:function[返回值表]=函數名(輸入變量表)在函數內部定義的變量都是本地變量。本地變量同外部變量(調用函數的外部過程所使用的變量)使用不同的內存區,因此即使它們的標識符相同,也不會發生沖突。MATLAB的函數中也可以定義全局變量,格式是:globalabc此句聲明a、b、c是全局變量。Global聲明必須在引用之前。6.其他基本操作(1)命令pause暫停執行M文件,等待敲任意鍵。Pause(n)則將正在執行的M文件暫停n秒。第13頁(2)命令moreon使MATLAB在向屏幕輸出滿屏時,等待用戶敲任意鍵以繼續顯示。more(n)規定每屏顯示的行數。(3)使用組合鍵Ctrl+C可中斷正在執行的命令語句或M文件。(4)在命令行使用上下移動鍵可搜尋以前的命令。敲一個字母后再使用上下移動鍵可搜尋相同字母起頭的命令。第14頁第二部分

實驗指導實驗一

數字基帶傳輸系統的MATLAB仿真一、實驗目的1、熟悉和掌握常用的用于通信原理時域仿真分析的MATLAB函數;2、掌握連續時間和離散時間信號的MATLAB產生;3、牢固掌握沖激函數和階躍函數等函數的概念,掌握卷積表達式及其物理意義,掌握卷積的計算方法、卷積的基本性質;4、掌握利用MATLAB計算卷積的編程方法,并利用所編寫的MATLAB程序驗證卷積的常用基本性質;5、掌握MATLAB描述通信系統中不同波形的常用方法及有關函數,并學會利用MATLAB求解系統功率譜,繪制相應曲線。基本要求:掌握用MATLAB描述連續時間信號和離散時間信號的方法,能夠編寫MATLAB程序,實現各種常用信號的MATLAB實現,并且以圖形的方式再現各種信號的波形。二、實驗內容1、編寫MATLAB程序產生離散隨機信號2、編寫MATLAB程序生成連續時間信號3、編寫MATLAB程序實現常見特殊信號三、實驗原理從通信的角度來看,通信的過程就是消息的交換和傳遞的過程。而從數學的角度來看,信息從一地傳送到另一地的整個過程或者各個環節不外乎是一些碼或信號的交換過程。例如信源壓縮編碼、糾錯編碼、AMI編碼、擾碼等屬于碼層次上的變換,而基帶成形、濾波、調制等則是信號層次上的處理。碼的變換是易于用軟件來仿真的。要仿真信號的變換,必須解決信號與信號系統在軟件中表示的問題。3.1信號及系統在計算機中的表示3.1.1時域取樣及頻域取樣一般來說,任意信號s(t)是定義在時間區間(-∞,+∞)上的連續函數,但所有計算機的CPU都只能按指令周期離散運行,同時計算機也不能處理(-∞,+∞)這樣一個時間段。數為:

,

截短為sT(t),再對sT(t)按時間間隔Δt均勻取樣,得到取樣點Nt

Tt

(3-1)仿真時用這個樣值集合來表示信號s(t)。顯然Δt反映了仿真系統對信號波形的分辨率,Δt越小,則仿真的精確度越高。據通信原理所學,信號被取樣以后,對應的頻譜時頻率的周期函數,其重復周期是

1t

。如果信號的最高頻率為fH,那么必須有fH≤

12t

,才能保證不發生頻域混疊失真。設Bs

12t

(3-2)第15頁為此將把s(t)按區間???TT??22??為此將把s(t)按區間???TT??22??則稱Bs為仿真系統的系統帶寬。如果在仿真程序中設定的采樣間隔是Δt,那么不能用此仿真程序來研究帶寬大于Bs的信號或系統。此外,任意信號s(t)的頻譜S(f)通常來說也是定義在時間區間(-∞,+∞)上的連續函數,所以仿真頻域特性時,也必須把S(f)截短并取樣。考慮到系統帶寬為Bs,便把頻譜的截短區將式(3-2)代入式(3-3)得

Nf

2Bsf

(3-3)NfN

1tf

(3-4)同樣,信號在頻域被離散后,對應到時域也是一個周期信號,其周期為

1f

。如果時域截短時間為T,那么必須T≤1/df才能保證不發生頻域混疊失真。也就是說,如果仿真程序中設定得頻域采樣間隔是Δf,那么就不能仿真截短時間超過域的取樣間隔設計為:

1f

的信號。所以,可以把頻將式(3-5)代入式(3-1)得

f

1T

(3-5)NtN

1tf

(3-6)這樣一來,時域的總取樣點數及頻域的總取樣點數都相等,為N

1tf

。要提高仿真的精度,就必須降低時域取樣間隔Δt及頻域取樣間隔Δf,也就是要加大總取樣點數N。這說明仿真的精度與仿真系統的運算量直接有關。為了處理上的方便,我們今后規定采樣點數N為2的整冪。舉例來說,例如設計要求的系統帶寬為1MHz,頻域最好分辨率為10kHz,那么據此可求得Nf

2Bsf

200,則取N=256。對應的其他參數為Bs=1MHz,f

2BsN

1ft

TN

0.5s。3.1.2頻域分析限于篇幅,在此不介紹MATLAB中關于傅立葉變換的有關函數。為了方便仿真,我們利用MATLAB提供的函數編寫了兩個函數t2f和f2t。t2f的功能是做傅立葉變換,f2t的功能是做傅立葉反變換,它們的引用格式分別為X=t2f(x)及x=f2t(X),其中x是時域信號x(t)j截短并采樣所得的取樣值矢量,X是對x(t)的傅立葉變換X(f)截短并采樣所得的取樣值矢量。第16頁間設計為[-Bs,Bs]然后再按間隔Δf均勻取樣,得到取樣點數為:7.8kHz間設計為[-Bs,Bs]然后再按間隔Δf均勻取樣,得到取樣點數為:7.8kHz,T128s,這兩個函數分別如附錄所示。我們關心的另一個指標是信號的功率譜密度,任意信號s(t)的功率譜的定義是T→∞

S(f)

2

2sT(t)的能量譜,

ST(f)T

2

是sT(t)在截短時間T內的功率譜。對于MATLAB仿真系統,若x是時域取樣值矢量,X是對應的傅立葉變換,那么x的功率譜便為矢量P(X.conj(X))/T。3.2與隨機信號產生相關的指令3.2.1高斯噪聲的產生由于函數randn(1,N)產生N個互不相關的、均值為零、方差為1的高斯隨機數,所以可xn0*Bs*randn(1,N)的總功率為n0*Bs,最高頻率分量為Bs,并且各樣點的值互不相關,故它代表雙邊功率譜密度為

n02

(W/Hz)的白噪聲。3.2.2隨機碼序列的產生語句round(rand(1,M))產生M個取值1、0等概的隨機碼。函數round表示四舍五入。函數rand產生均勻分布于區間[0,1]的隨機數。語句sign(rand(1,M))產生M個取值±1等概的隨機碼。函數sign(x)對矢量x的元素取正負號,而高斯數randn取正負數的概率是相等的。3.2.3產生數字隨機信號的一般方法一般來說,隨機數字信號可以直接或間接表示成PAM信號(請參閱通信原理教材)。PAM信號是指所有形如s(t)

∞i?∞

is故對所有不同的數字信號,都可以用相同的方法來產生。1)

產生隨機序列矢量aa=round(rand(1,M));為了方便起見,一般規定a的長度M是2的整冪。2)

產生沖擊序列信號imp(t)imp=zeros(1,N);imp(1:L:M)=a/dt;矢量imp代表信號imp(t)。第17頁Ps(f)limTT,其中ST(f)Ps(f)limTT,其中ST(f)是s(t)截短后所得信號sT(t)的傅立葉變化,ST(f)是用它來產生高斯白噪聲。設仿真系統的取樣點數是N,系統帶寬為Bs,矢量∑ag(t?iT)的信號。它可以用如下的等效模型來表示:其中,N是imp的矢量長度,M是碼元矢量a中的碼元數,L是每碼元內的采樣點數。現規定M、N都是2的整冪,于是L自然也是2的整冪。3)

產生PAM數字信號s(t)s(t)imp(t)?g(t)g(t)代表脈沖波形,例如,升余弦滾降要求的波形有:g(t)

sint/Tst/Ts

?

cos(at/Ts)1?(2at/Ts)2設g(t)的傅立葉變換為G(f),s(t)的傅立葉變換為S(f),則有:S(f)t2f(imp).*Gs(t)f2t(S(f))

%t2f為傅立葉變換函數%f2t為傅立葉反變換函數設矢量s代表數字信號s(t),矢量g代表脈沖波形g(t),矢量G代表其頻譜G(f)。那么s的產生方法是:s=conv(imp,g);其中,函數conv表示卷積。卷積后s的長度是length(imp)+length(g)-1。扣除延遲時間及拖尾時間后,數字信號為:Ii=find(g=max(g));s=s([1:N]+ii(1));也可用頻域的方法產生數字信號s(t):s=f2t(t2f(imp).*G);注意,此時imp的點數應與g或G相同。若g的寬度小于imp,則應用零補齊。3.3信號的仿真3.3.1連續時間信號的仿真如前所述,MATLAB有很多內部數學函數可以用來產生這樣的數字序列,例如sin()、cos()、exp()等函數可以直接產生一個按照正弦、余弦或指數規律變化的數字序列。例如,運行如下程序%program1_1%Thisprogramisusedtogenerateasinusoidalsignalanddrawitsplotclear,%Clearallvariablescloseall,%Closeallfigurewindowsdt=0.01;%Specifythestepoftimevariablet=-2:dt:2;%Specifytheintervaloftimex=sin(2*pi*t);%Generatethesignalplot(t,x)%Openafigurewindowanddrawtheplotofx(t)title('Sinusoidalsignalx(t)')xlabel('Timet(sec)')在《通信原理》課程中,單位階躍信號u(t)和單位沖激信號δ(t)是二個非常有用的信號。第18頁它們的定義如下:這里分別給出相應的簡單的產生單位沖激信號和單位階躍信號的擴展函數。產生單位沖激信號的擴展函數為:%deltafunctionfunctiony=delta(t)dt=0.01;y=(u(t)-u(t-dt))/dt;產生單位階躍信號的擴展函數為:%Unitstepfunctionfunctiony=u(t)y=(t>=0);%y=1fort>0,elsey=0請將這二個MATLAB函數分別以delta和u為文件名保存在work文件夾中,以后,就可以像教材中的方法使用單位沖激信號δ(t)和單位階躍信號u(t)。3.3.2離散時間信號的仿真程序Program1_2用來產生離散時間信號x[n]=sin(0.2πn)。%Program1_2%Thisprogramisusedtogenerateadiscrete-timesinusoidalsignalanddrawitsplotclear,%Clearallvariablescloseall,%Closeallfigurewindowsn=-10:10;%Specifytheintervaloftimex=sin(0.2*pi*n);%Generatethesignalstem(n,x)%Openafigurewindowanddrawtheplotofx[n]title('Sinusoidalsignalx[n]')xlabel('Timeindexn')請仔細閱讀該程序,比較程序Program1_1和Program1_2中的不同之處,以便自己編程時能夠正確使用這種方法方針連續時間信號和離散時間信號。程序Program1_3用來仿真下面形式的離散時間信號:x[n]={....,0.1,1.1,-1.2,0,1.3,….}↑n=0%Program1_3%Thisprogramisusedtogenerateadiscrete-timesequence%anddrawitsplotclear,%Clearallvariablescloseall,%Closeallfigurewindowsn=-5:5;%Specifytheintervaloftime,thenumberofpointsofnis11.x=[0,0,0,0,0.1,1.1,-1.2,0,1.3,0,0];%Generatethesignalstem(n,x,'.')%Openafigurewindowanddrawtheplotofx[n]第19頁gridon,title('Adiscrete-timesequencex[n]')xlabel('Timeindexn')由于在程序的stem(n,x,'.')語句中加有'.'選項,因此繪制的圖形中每根棒條線的頂端是一個實心點。如果需要在序列的前后補較多的零的話,可以利用函數zeros(),其語法為zeros(1,N):圓括號中的1和N表示該函數將產生一個一行N列的矩陣,矩陣中的所有元素均為零。利用這個矩陣與序列x[n]進行組合,從而得到一個長度與n相等的向量。例如,當x[n]={0.1,1.1,-1.2,0,1.3}時,為了得到程序Program1_3中的序列,↑n=0可以用這個MATLAB語句x=[zeros(1,4)xzeros(1,2)]來實現。用這種方法編寫的程序如下:%Program1_4%Thisprogramisusedtogenerateadiscrete-timesinusoidalsignal%anddrawitsplotclear,%Clearallvariablescloseall,%Closeallfigurewindowsn=-5:5;%Specifytheintervaloftimex=[zeros(1,4),0.1,1.1,-1.2,0,1.3,zeros(1,2)];%Generatethesequencestem(n,x,'filled','r')%Openafigurewindowanddrawtheplotofx[n]gridon,四、實驗步驟(1)分析程序program1_1每條指令的作用,運行該程序,將結果保存,貼在下面的空白處。然后修改程序,將dt改為0.2,并執行修改后的程序,保存圖形,看看所得圖形的效果怎樣。dt=0.01時的信號波形

dt=0.2時的信號波形請問:上述的兩幅圖形有什么區別,哪一副圖形看起來更接近于實際信號波形?為什么會有這種區別?答:第20頁(2)修改program1_1,,存盤程序名為Q1_2,生成實指數信號x(t)=e-2t。要求在圖形中加上網格線,并使用函數axis()控制圖形的時間范圍在0~2秒之間。然后執行該程序,保存所的圖形。修改Program1_1后得到的程序Q1_2如下:

圖形結果如下:(3)將前文中所給的單位沖激信號和單位階躍信號的函數文件在MATLAB文件編輯器中編寫好,并分別以文件名delta和u存入work文件夾中以便于使用。抄寫函數文件delta如下:

抄寫函數文件u如下:(4)修改程序Program1_4,并以Q1_4為文件名存盤,利用axis()函數,將圖形窗口的橫坐標范圍改為-2≤n≤5,縱坐標范圍改為-1.5≤x≤1.5。修改Program1_4后得到的程序Q1_4如下:

信號的波形圖(5)根據示例程序的編寫方法,編寫一個MATLAB程序,以Q1_5文件名存盤,給給定信號-0.5t求信號y(t)=x(1.5t+3),并繪制出x(t)和y(t)的圖形。編寫的程序Q1_5如下:第21頁x(t)=eu(t)x(t)=eu(t)x(t)和y(t)的圖形分別為:五、實驗報告要求1、按要求完整書寫你所編寫的全部MATLAB程序2、詳細記錄實驗過程中的有關信號波形圖(存于自帶的U盤中),圖形要有明確的標題。全部的MATLAB圖形應該用打印機打印,然后貼在本實驗報告中的相應位置,實驗報告必須手寫。3、實事求是地回答相關問題,嚴禁抄襲。本實驗完成時間:年月日第22頁附錄在進行信號時域和頻域特性分析時,經常要求進行函數的傅立葉變換和傅立葉反變換運算,為了編程的方便,可將傅立葉變換和反變換分別自定義為兩個子函數,在編程時直接調用可提高編程的靈活性和方便程度。下面將這兩個常用的子函數定義如下:1.T2F子函數求函數m(t)傅立葉變換的函數T2F有兩個輸入參數,兩個輸出參數。輸入參數t表示輸入數組的時間變量,st存放輸入數組,它的長度由length(t)決定;輸出參數f表示輸出的傅立葉變換對的頻率變量,sf用來存放輸出數組。T2F函數的程序如下:function[f,sf]=T2F(t,st)%ThisisafunctionusingtheFFTfunctiontocalculateasignal'sFourier%Transiation%Inputisthetimeandsignalvectors,thelengthoftimemustgreater%than2%Outputis

溫馨提示

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

評論

0/150

提交評論