MATLAB編程與系統(tǒng)仿真_第1頁
MATLAB編程與系統(tǒng)仿真_第2頁
MATLAB編程與系統(tǒng)仿真_第3頁
MATLAB編程與系統(tǒng)仿真_第4頁
MATLAB編程與系統(tǒng)仿真_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

MATLAB編程與系統(tǒng)仿真第一頁,共52頁。ContentMatlab編程基礎(chǔ)變量及其賦值運(yùn)算符與表達(dá)式程序控制流程自定義函數(shù)基本繪圖方法M文件及其調(diào)試Matlab在信號處理中的應(yīng)用信號及其表示、基本運(yùn)算系統(tǒng)的響應(yīng)傅里葉變換數(shù)字濾波器設(shè)計(jì)通信系統(tǒng)仿真編譯碼模擬調(diào)制與解調(diào)數(shù)字調(diào)制與解調(diào)性能仿真Simulink應(yīng)用基礎(chǔ)第二頁,共52頁。課程考核方式考核方式上機(jī)實(shí)驗(yàn)(實(shí)驗(yàn)報(bào)告)30分平時成績(考勤+作業(yè))10分上機(jī)考試60分上機(jī)考試兩道題:25分+35分上機(jī)考試時間:上機(jī)課中最后一次上機(jī)時間第三頁,共52頁。Matlab編程基礎(chǔ)變量及其賦值標(biāo)識符號與數(shù)據(jù)格式標(biāo)識符號是標(biāo)志變量名、常量名、函數(shù)名和文件名的字符串的總稱。雙精度數(shù)據(jù)格式,64位二進(jìn)制。矩陣及其元素的賦值賦值語句:變量=表達(dá)式(數(shù))Matlab中變量都代表矩陣,其階數(shù)為M×N賦值要求:整個矩陣的值應(yīng)在[]中;同一行中各元素之間以逗號“,”或空格分開;不同行的元素以“;”隔開。例[P15-16]第四頁,共52頁。Matlab編程基礎(chǔ)矩陣元素的索引訪問向量的元素只要使用相應(yīng)元素的索引即可賦值技巧利用冒號“:”給全行的元素賦值例:a=eye(5);a(2,:)=ones(1,5)a利用行、列標(biāo)注構(gòu)成新的矩陣?yán)篵=a([2,3,4],[1,2,3])零矩陣與空矩陣的區(qū)別??第五頁,共52頁。Matlab編程基礎(chǔ)利用小矩陣組成大矩陣?yán)篴=ones(2,3)b=zeros(3,2)c=[a;a;a]d=[b;b]e=[c,d]常用生成矩陣的方法利用生成矩陣的函數(shù)(P17-18)利用“:”運(yùn)算符冒號運(yùn)算符創(chuàng)建了具有10個元素的向量。利用冒號運(yùn)算符創(chuàng)建向量的基本語法如下: X=J:INC:K第六頁,共52頁。Matlab編程基礎(chǔ)Matlab內(nèi)部的特殊變量和常數(shù)例:ans、eps、realmax、realmin、pi、Inf、i、j、NaN復(fù)數(shù)的賦值方式可將矩陣元素逐個賦予復(fù)數(shù);將矩陣的實(shí)部和虛部分別賦值。第七頁,共52頁。Matlab編程基礎(chǔ)運(yùn)算符與數(shù)學(xué)表達(dá)式算術(shù)運(yùn)算符(P20表2.2)矩陣加減:“+”、“-”功能:兩矩陣對應(yīng)元素相加/減。A、B矩陣的階數(shù)必須相等或其中之一為標(biāo)量,標(biāo)量可與任意大小的矩陣相加/減。矩陣相乘:“*”矩陣元素相乘:“.*”功能:矩陣A、B對應(yīng)元素相乘。A、B行列必相同或其中之一為標(biāo)量。第八頁,共52頁。Matlab編程基礎(chǔ)矩陣右除B/A與左除A\C如果A為一非奇異矩陣,則右除:B/A=B*inv(A)如果A為一非奇異矩陣,則左除:A\C=inv(A)*C矩陣元素右除A./B與左除A.\BA,B兩矩陣必同行列,或其中之一為標(biāo)量。矩陣冪“^”及矩陣元素冪“.^”矩陣轉(zhuǎn)置“’”及矩陣非共軛轉(zhuǎn)置“.’”第九頁,共52頁。Matlab編程基礎(chǔ)關(guān)系運(yùn)算符<、<=、>、>=、==、~=Matlab關(guān)系運(yùn)算符用來比較兩個同樣大小的數(shù)組,或用來比較一個數(shù)組和一個標(biāo)量;當(dāng)數(shù)組和標(biāo)量進(jìn)行比較時,結(jié)果與數(shù)組大小一樣;關(guān)系比較的結(jié)果只有兩種可能,即1或0。例:比較下面兩段語句的結(jié)果x=(-3:3)/3x=x+(x==0)*epssin(x)./xsin(x)./x例:統(tǒng)計(jì)數(shù)組A中值大于5.5元素的個數(shù)第十頁,共52頁。Matlab編程基礎(chǔ)邏輯運(yùn)算符&(與)|(或)~(非)真值表(P24)其他邏輯函數(shù)(P25表2.6,2.7)數(shù)學(xué)表達(dá)式的MATLAB描述(P25)不要忽略數(shù)乘不能調(diào)用系統(tǒng)中不存在的函數(shù)第十一頁,共52頁。Matlab編程基礎(chǔ)流程控制if語句格式:格式1If表達(dá)式語句組AEnd例1_1:隨機(jī)生成一個(0,1)之間的數(shù),如果該數(shù)大于等于0.5則輸出該數(shù).第十二頁,共52頁。Matlab編程基礎(chǔ)格式2If表達(dá)式語句組AElse語句組BEnd例1_2:隨機(jī)生成一個(0,1)之間的數(shù),如果該數(shù)大于等于0.5,則將該數(shù)變?yōu)?,否則將該數(shù)變成-1.例1_3:隨機(jī)生成100個(0,1)之間的數(shù),將大于等于0.5的變?yōu)?,小于0.5的變?yōu)?.第十三頁,共52頁。Matlab編程基礎(chǔ)格式3If表達(dá)式1語句組AElseif表達(dá)式2語句組BElse語句組CEnd例1_4:隨機(jī)生成一個(0,1)之間的數(shù),如果該數(shù)所處區(qū)間為(0,0.3)則將該數(shù)變成0,如果該數(shù)所處區(qū)間為(0.3,0.6),則將該數(shù)變成1,否則將該數(shù)變成2.

第十四頁,共52頁。Matlab編程基礎(chǔ)Switch語句Switch語句稱為條件選擇語句,其中關(guān)鍵字包括:switch,case,otherwise以及end.主要用于有選擇性的程序設(shè)計(jì),實(shí)現(xiàn)程序的多分支選擇.格式:Switch選擇表達(dá)式case情況表達(dá)式1語句組1case情況表達(dá)式2語句組2……otherwise語句組nend例1_5:隨機(jī)生成一個1到12之間的整數(shù),按如下規(guī)則進(jìn)行轉(zhuǎn)換:如果該數(shù)在1~4之間,轉(zhuǎn)換成-1;如果該數(shù)在5~8之間,轉(zhuǎn)換成0;如果該數(shù)在9~12之間,轉(zhuǎn)換成1。第十五頁,共52頁。Matlab編程基礎(chǔ)While語句While語句為條件循環(huán)語句,循環(huán)次數(shù)不確定,取決于邏輯表達(dá)式。格式:While表達(dá)式語句組AEnd例1_6:生成一個具有100個元素的1,-1隨機(jī)序列。例1_7:生成一個具有100個元素的1,0隨機(jī)序列。例1_8:輸入一個N值,求1+2+3+……+N的值。例1_9:輸入若干個同學(xué)的成績,求大于等于平均成績的同學(xué)人數(shù)。第十六頁,共52頁。Matlab編程基礎(chǔ)For語句是一種循環(huán)次數(shù)確定的循環(huán)語句。格式:forV=初值:增量:終值語句組Aend功能:將語句組A循環(huán)執(zhí)行N次,其中:N=1+(終值-初值)/增量第十七頁,共52頁。Matlab編程基礎(chǔ)For循環(huán)注意事項(xiàng)不能通過在循環(huán)體內(nèi)重新賦值給循環(huán)變量來終止FOR循環(huán),只能使用Break語句;例:第十八頁,共52頁。Matlab編程基礎(chǔ)循環(huán)被執(zhí)行前,應(yīng)預(yù)先分配數(shù)組;當(dāng)有一個等效的數(shù)組方法來解答給定的問題時,應(yīng)避免使用循環(huán);循環(huán)可按需要進(jìn)行嵌套;例:(前面while循環(huán)的例子)第十九頁,共52頁。Matlab編程基礎(chǔ)例:隨機(jī)生成0—1000之間的隨機(jī)數(shù)100個,并按從小到大的順序輸出.例:隨機(jī)生成51—100之間的隨機(jī)數(shù)50個,請輸出序列中不存在的51—100之間的數(shù).例:請驗(yàn)證兩個正交的復(fù)噪聲信號之和的包絡(luò)服從Rayleigh分布第二十頁,共52頁。Matlab編程基礎(chǔ)數(shù)據(jù)的輸入/輸出及文件的讀寫(P31)save,load命令基本數(shù)學(xué)函數(shù)(P42)基本繪圖方法圖形窗口控制命令figure[(N)]功能:新創(chuàng)建一個圖形窗口,并自動[/N編號]圖形窗口內(nèi)容保持命令holdon(off)功能:保持當(dāng)前圖形窗口的內(nèi)容,或取消holdon功能,恢復(fù)系統(tǒng)默認(rèn)狀態(tài).圖形窗口劃分命令格式:sumplot(m,n,p)功能:將圖形窗口分成n*m個子圖形窗口,并選擇第p個子圖形窗口作為當(dāng)前圖形窗口,供繪圖函數(shù)作圖使用.第二十一頁,共52頁。Matlab編程基礎(chǔ)二維圖形的繪制二維圖形繪制命令plot格式一:plot(y)功能:輸入一個數(shù)據(jù)的情況.如果y是一個數(shù)組,函數(shù)plot(y)給出笛卡兒坐標(biāo)下的二維圖.以y中元素的下標(biāo)為X坐標(biāo),以y中元素值為Y坐標(biāo).例:給出一個周期的sin(x)的圖形格式二:plot(x,y)功能:以x數(shù)組中元素值為橫坐標(biāo),以y元素值為縱坐標(biāo)作圖.例1_10:給出一個從(-pi,pi)的cos(x)圖形第二十二頁,共52頁。Matlab編程基礎(chǔ)線型,標(biāo)記符及顏色的設(shè)置(P50)格式一:plot(y,’字符串’)格式二:plot(x,y,’字符串’)其中:字符串中是關(guān)于線形,顏色及標(biāo)記符號的說明圖形的標(biāo)注、網(wǎng)格及圖例說明(1)添加圖形標(biāo)題命令title格式:title(‘string’)功能:在當(dāng)前坐標(biāo)系的頂部加一個文本串string,作為該圖的標(biāo)題.(2)添加坐標(biāo)軸標(biāo)志函數(shù)xlabel,ylabel,zlabel格式:xlabel(‘string’)ylabel(‘string’)zlabel(‘string’)第二十三頁,共52頁。Matlab編程基礎(chǔ)(3)設(shè)置網(wǎng)格線命令grid格式:gridon(off)功能:對當(dāng)前坐標(biāo)圖加上網(wǎng)格式或撤銷網(wǎng)格線.(4)圖形標(biāo)注函數(shù)legend格式:legend(string1,string2,string3,….)功能:在當(dāng)前圖中添加圖例.坐標(biāo)軸刻度設(shè)置格式:axis([xmin,xmax,ymin,ymax,…])功能:對x,y,…,等坐標(biāo)軸進(jìn)行標(biāo)定.第二十四頁,共52頁。Matlab編程基礎(chǔ)多條曲線的繪制格式:plot(x1,y1,x2,y2,x3,y3,…)功能:為每一對X-Y繪制一條圖線.可以在每個xi,yi后加線形,標(biāo)記和顏色控制.例1_11:在一張圖中畫出sin(t),cos(t),sin(t)+cos(t)的圖形第二十五頁,共52頁。Matlab編程基礎(chǔ)M文件命令語句構(gòu)成的程序文件,可分為兩種:主程序文件由用戶為解決特定問題,而將命令語句序列放到m文件中而形成的文件主程序文件結(jié)構(gòu)有關(guān)程序的功能,使用方法等內(nèi)容的注釋部分以”%”開始直至行末的部分為注釋部分程序主體由若干條命令語句組成,實(shí)現(xiàn)程序設(shè)計(jì)功能,通常用clear,closeall開始主程的運(yùn)行方式[例1_12]編寫程序畫出sin(6pix),cos(2pix)以及兩函數(shù)之各的曲線.第二十六頁,共52頁。Matlab編程基礎(chǔ)函數(shù)文件結(jié)構(gòu)函數(shù)定義行function[變量列表]=函數(shù)名(參數(shù))H1行注釋行,主要說明該函數(shù)的功能,可以在help命令中顯示.函數(shù)幫助文本注釋行,用來比較詳細(xì)地說明函數(shù)的相關(guān)信息,可在help命令中顯示函數(shù)體用來完成函數(shù)功能的語句序列,并以end語句為結(jié)束標(biāo)志.[例1_13]生成四個長度為64的序列,分別為s1,s2,s3,s4,對每個序列乘上[1,-1,j,-j]中的任意一個因子后求和.求所有可能的和序列中峰均功率比最低的序列及相應(yīng)的因子.第二十七頁,共52頁。系統(tǒng)仿真基礎(chǔ)通信系統(tǒng)仿真發(fā)射機(jī)接收機(jī)信道干擾第二十八頁,共52頁。發(fā)射機(jī)抽樣量化編碼信源編碼信道編碼調(diào)制信源線性分組碼循環(huán)碼BCHRS卷積碼TurboASKFSKPSKMSKGMSKQAM第二十九頁,共52頁。信源編碼抽樣量化編碼信源編碼信源functionsignal=informationSource(t)functionsampleSignal=sampling()functionquantizeData=quantizing(sampleSingal)functionbitstream=sourceCoding(quantizeData)第三十頁,共52頁。信源functionsignal=informationSource(t)signal=sin(2*pi*t)+cos(4*pi*t);end

第三十一頁,共52頁。抽樣functionsampleSignal=sampling()t=0:0.01:1sampleSignal=informationSource(t)end第三十二頁,共52頁。量化functionquantizeData=quantizing(sampleSingal)dv=2*a/(M-1);quantizeData=sign(sampleSignal).*fix(abs(sampleSignal+dv/2)/dv)*dv;end第三十三頁,共52頁。編碼functionbitstream=sourceCoding(quantizeData,dv,M)N=length(quantizeData);bitstream=[];N1=fix(log2(M));fori=1:NNData=fix(abs(quantizeData(i))/dv);bindata=convert2bin(NData,N1);if(quantizeData(i)>=0)bindata(1)=0;elsebindata(1)=1;endbitstream=[bitstream,bindata];endend找到量化電平編號將該編碼轉(zhuǎn)換成二進(jìn)制加上符號位處理下一個量化電平第三十四頁,共52頁。編碼將一個整數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)functionbindata=convert2bin(NData,N)bindata=zeros(1,N);i=N;while(NData~=0)bindata(i)=rem(NData,2);NData=fix(NData/2);i=i-1;endif(NData(1)==1)NData=[0,ones(1,N-1)];endend第三十五頁,共52頁。信道編碼信道編碼線性分組碼循環(huán)碼BCHRS卷積碼Turbo為方便,使用奇偶校驗(yàn)碼將原比特流,每7位一組,添加校驗(yàn)位1位.采用偶校驗(yàn).該碼不具糾錯功能,但具檢一位錯的功能.第三十六頁,共52頁。信道編碼functiondatastream=channelcodingEV(bitstream)N=fix(length(bitstream)/7);datastream=[];fori=1:Ntemp=bitstream((i-1)*7+1:i*7);datastream=[datastream,temp,rem(sum(temp),2)];endend第三十七頁,共52頁。調(diào)制調(diào)制ASKFSKPSKMSKGMSKQAM本例采用2ASK調(diào)制方式,其它調(diào)制方式可以類似進(jìn)行仿真.Bit速率為1000bps;載波頻率為10000Hz;由每一位bit占用時間:1/1000=1ms;載波的一個周期所占用時間:1/10000=0.1ms因此,一個bit位有10個完整的載波周期.載波的一個周期以16點(diǎn)抽樣.即t=2*pi/16:2*pi/16:2*pi;carrier=cos(t);調(diào)制時:1)如果某位為1,則復(fù)制10次carrier;2)如果某位為0,則復(fù)制10*16個0.第三十八頁,共52頁。調(diào)制functiontransmittedSignal=BAskModu(signal,bitRate,carrierFrequency,N1)M=carrierFrequency/bitRate;t=(2*pi/N1):(2*pi/N1):2*pi;carrier=[];forj=1:Mcarrier=[carrier,cos(t)];endtransmittedSignal=[];fori=1:length(signal)if(signal(i)==1)transmittedSignal=[transmittedSignal,carrier];elsetransmittedSignal=[transmittedSignal,zeros(1,length(carrier))];endendend第三十九頁,共52頁。發(fā)射機(jī)TransmitterfunctiontransmittedSignal=transmitter()sampleSignal=sampling()a=2;M=256;[quantizeData,dv]=quantizing(sampleSignal,a,M);bitstream=sourceCoding(quantizeData,dv,M);datastream=channelcodingEV(bitstream)bitRate=1000;carrierFrequency=10000;N1=16;transmittedSignal=BAskModu(datastream,bitRate,carrierFrequency,N1);end信源編碼信道編碼調(diào)制第四十頁,共52頁。信道仿真本例使用加性高斯白噪聲直接疊加平均功率為sig的噪聲信號如:signalnoise=sqrt(sig2)*1/sqrt(2)*randn(1,length(signal));signal=signal+noise;利用awgn函數(shù)signal=sqrt(2)*signal;signal=awgn(signal,20,0)第四十一頁,共52頁。信道仿真functionsignal=gussianChannel(transmittedSignal,sig)N=length(transmittedSignal);noise=sqrt(sig)*1/sqrt(2)*randn(1,N);signal=transmittedSignal+noise;end第四十二頁,共52頁。接收機(jī)設(shè)計(jì)譯碼反量化解調(diào)信道譯碼信源譯碼再現(xiàn)線性分組碼譯碼循環(huán)碼譯碼BCH譯碼RS譯碼卷積碼譯碼Turbo譯碼ASK解調(diào)FSK解調(diào)PSK解調(diào)MSK解調(diào)GMSK解調(diào)QAM解調(diào)bitstream=demoASK(receivedSignal,bitRate,carrierFrequency,N);datastream=deEVChannelCoding(bitstream);restoreOriginalSignal=D2A(datastream,dv);第四十三頁,共52頁。ASK解調(diào)在仿真時假設(shè)能精確同步!!第四十四頁,共52頁。ASK解調(diào)BPF整流LPF抽樣判決數(shù)據(jù)速率=1000bps;載波頻率=10000Hz;抽樣頻率=載波頻率*16;信號0點(diǎn)帶寬(單邊)=2π/τ=2π/(1/1000)=1000Hz信號的通帶=[9000Hz,11000Hz]根據(jù)信號速率可得:基帶信號的帶寬=[0,1000Hz]假設(shè)所有同步有能精確同步!!第四十五頁,共52頁。濾波器設(shè)計(jì)幾個基本概念通帶、通帶截止頻率、通帶容限阻帶、阻帶容限、阻帶截止頻率過渡帶通帶最大衰減阻帶最小衰減第四十六頁,共52頁。濾波器設(shè)計(jì)方法FDAToolIIR(MATLAB直接設(shè)計(jì))利用IIR濾波器階次估計(jì)函數(shù)求最小階數(shù)和截止頻率(P162,P163)FIR(MATLAB直接設(shè)計(jì))fir1fir2第四十七頁,共52頁。ASK解調(diào)functionbitstream=demoASK(receivedSignal,bitRate,carrierFrequency,N)loadmypassden=1;signal1=filter(bandpassNum,den,receivedSignal);signal1=abs(signal1);signal1=filter(lowpassNum,den,signal1);IN=fix(length(lowpassNum)/2);bitstream=[];LL=carrierFrequency/bitRate*N;i=IN+LL/2;while(i<=length(signal1))bitstream=[bitstream,signal1(i)>=0.5];i=i+LL;end

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論