版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章
通信系統(tǒng)仿真
6.1通信工具箱函數(shù)6.2信息的度量和編碼6.3差錯(cuò)控制編/譯碼方法6.4模擬調(diào)制和解調(diào)6.5數(shù)字調(diào)制和解調(diào)6.6通信系統(tǒng)的性能仿真6.1通信工具箱的函數(shù)在MWORKS.Syslab的通信工具箱中提供了許多仿真函數(shù)和模塊,用于對通信系統(tǒng)進(jìn)行仿真和分析。主要包括四部分內(nèi)容:物理層組件、射頻元件建模、傳播和信道模型、測試和測量。?物理層功能包括波形生成、信源編碼、誤差控制編碼、調(diào)制、MIMO、空時(shí)編碼、濾波、均衡和同步,對物理層(PHY)處理鏈中的組件進(jìn)行建模,使用這些功能可以構(gòu)建和表征通信系統(tǒng)鏈路;?射頻元件建模主要涉及射頻無線電建模與損傷校正;?傳播和信道模型主要涉及站點(diǎn)和地形可視化、規(guī)范傳播模型(包括LongleyRice)、信號強(qiáng)度、信號覆蓋圖以及靜態(tài)和衰落信道模型;?測試和測量主要涉及波形生成、可視化和性能分析。在通信工具箱中包含了對通信系統(tǒng)進(jìn)行設(shè)計(jì)、分析和仿真時(shí)最常用的函數(shù),用戶只需擊【幫助?】圖標(biāo),就可打開通信工具箱中的函數(shù)名稱和內(nèi)容列表(如表6.1所示),其內(nèi)容包含信號源函數(shù)、信號分析函數(shù)、信源編碼、差錯(cuò)控制編碼函數(shù)、調(diào)制/解調(diào)函數(shù)、特殊濾波器設(shè)計(jì)函數(shù)、信道函數(shù)、有限域估計(jì)函數(shù),以及實(shí)用工具函數(shù)。6.2信息的量度與編碼信源熵的輸出可以用隨機(jī)過程來表達(dá)。對于一個(gè)離散無記憶平穩(wěn)隨機(jī)過程,其信息量(熵)定義為:其中,X表示信源取值集合,p(x)是信源取值x的概率。6.2.1Huffman編/譯碼函數(shù)信源編碼可分為兩類:無失真編碼、限失真編碼。Huffman編碼的基本原理就是為概率較小的信源輸出分配較長的碼字,而對那些出現(xiàn)可能性較大的信源輸出分配較短的碼字。1、Huffman編碼算法及步驟①將信源消息按照概率大小順序排隊(duì)。②按照一定的規(guī)則,從最小概率的兩個(gè)消息開始編碼。③
將經(jīng)過編碼的兩個(gè)消息的概率合并,并重新按照概率大小排序,重復(fù)步驟②。④重復(fù)上面步驟③,一直到合并的概率達(dá)到1時(shí)停止。這樣便可以得到編碼樹狀圖。⑤按照后出先編碼的方式編程,即從數(shù)的根部開始,將0和1分別放到合并成同一節(jié)點(diǎn)的任意兩個(gè)支路上,這樣就產(chǎn)生了這組Huffman碼。2、MWORKS.Syslab提供的Huffman編/譯碼函數(shù)(1)Huffman編碼函數(shù)huffmanenco格式:code=huffmanenco(sig,dict)功能:使用由輸入代碼字典dict描述的哈夫曼代碼對輸入信號sig進(jìn)行編碼。sig可以具有向量、單元數(shù)組或字母數(shù)字單元數(shù)組的形式。(2)Huffman譯碼函數(shù)huffmandeco格式:sig=huffmandeco(code,dict)功能:通過使用輸入代碼字典dict描述的哈夫曼代碼來譯碼數(shù)字哈夫曼代碼向量code。(3)Huffman編碼字典生成函數(shù)huffmandict格式一:dict,avglen=huffmandict(symbols,prob)功能:使用最大方差法為源符號生成二進(jìn)制哈夫曼代碼字典dict。輸入prob指定每個(gè)輸入符號的出現(xiàn)概率。prob的長度必須等于符號的長度。該函數(shù)還返回字典的平均碼字長度avglen,根據(jù)輸入prob中的概率進(jìn)行加權(quán)。格式二:dict,avglen=huffmandict(symbols,prob,N)功能:使用最大方差法生成N元哈夫曼代碼字典。N不得超過源符號的數(shù)量。格式三:dict,avglen=huffmandict(symbols,prob,N,variance)功能:生成具有指定方差的N元哈夫曼代碼字典?!纠?-2】
試用
huffmandict函數(shù),對例6-1重新生成Huffman編碼字典。MWORKS.Syslab源程序?yàn)?symbols=[1,2,3,4,5,6];
#信源的字符集prob=[0.30,0.25,0.21,0.10,0.09,0.05];
#字符集中各字符的概率dict=huffmandict(symbols,prob)[2];
#生成編碼字典avglen=huffmandict(symbols,prob)[3];
#求平均碼長print("平均碼長:L=",avglen);print("\n字典:\n");dict程序運(yùn)行所得字典為:平均碼長:L=2.38字典:6×2Matrix{Union{Integer,AbstractVector}}:1Any[0,0]2Any[0,1]3Any[1,1]4Any[1,0,1]5Any[1,0,0,0]6Any[1,0,0,1]6.2.2MWORKS.Syslab信源編/譯碼方法
大多數(shù)信源(比如語音、圖像)最開始都是模擬信號,為了將信源輸出數(shù)字化,信源必須量化為確定數(shù)目的級數(shù)。量化方案可劃分為標(biāo)量量化和矢量量化兩種。在標(biāo)量量化中每個(gè)信源輸出都分別被量化,標(biāo)量量化可進(jìn)一步分為均勻量化和非均勻量化。在均勻量化中量化區(qū)域是等長的;在非均勻量化中量化區(qū)域可以是不等長的。矢量量化是對信源輸出組合進(jìn)行整體量化。在標(biāo)量量化中,隨機(jī)標(biāo)量X的定義域被劃分成N個(gè)互不重疊的區(qū)域Ri,1≤i≤<N,Ri被稱為量化間隔,且在每個(gè)區(qū)域內(nèi)選擇一個(gè)點(diǎn)作量化級數(shù)。這樣落在區(qū)域Ri內(nèi)的隨機(jī)變量的所有值都被量化為第i個(gè)量化級數(shù),用
來表示。這就意味著:易見,這類量化引入了失真,其均方誤差為:其中f(x)是信源隨機(jī)變量的概率密度函數(shù)。信號量化噪聲比(SQNR)為:
在MWORKS.Syslab通信工具箱中提供了兩種信源編譯碼的方法:標(biāo)量量化和預(yù)測量化。
1、標(biāo)量量化(1)信源編碼中的
μ律或
A律壓擴(kuò)計(jì)算函數(shù)compand格式一:out=compand(in,param,V)功能:
對輸入數(shù)據(jù)序列實(shí)現(xiàn)μ-律壓擴(kuò),其中param為
μ-律壓縮值,必須設(shè)置為μ-律壓縮計(jì)算的μ值(在實(shí)際中使用的μ-律值為255);V表示輸入數(shù)據(jù)序列的峰值幅值。(2)產(chǎn)生量化索引和量化輸出值的函數(shù)quantiz
格式一:indx,=quantiz(sig,partition)
功能:根據(jù)判斷向量partition,對輸入信號sig產(chǎn)生量化索引indx,indx的長度與sig矢量的長度相同。(3)采用訓(xùn)練序列和Lloyd算法優(yōu)化標(biāo)量算法的函數(shù)lloyds
格式一:parition,codebook=lloyds(training_set,ini_codebook)功能:使用勞埃德(Lloyds)算法,用訓(xùn)練集矢量training_set優(yōu)化標(biāo)量量化參數(shù)partition和碼本codebook?!纠?-4】
用訓(xùn)練序列和勞埃德(Lloyd)算法,對一個(gè)正弦信號數(shù)據(jù)進(jìn)行標(biāo)量量化。MWORKS.Syslab源程序如下:N=2^3;
#以3比特傳輸信道t=[0:100...]*pi/20;u=cos.(t);#正弦信號p,c=lloyds(u,N);
#生成分界點(diǎn)矢量和編碼手冊index,quant,distor=quantiz(u,p,c);#量化信號plot(t,u,t,quant,"*");grid();legend("量化前","量化后");該程序運(yùn)行結(jié)果如圖6.3所示。圖6.3
標(biāo)量化前、后信號的比較2、預(yù)測量化
根據(jù)過去發(fā)送的信號來估計(jì)下一個(gè)將要發(fā)送的信號值。(1)差分脈沖調(diào)制編碼函數(shù)dpcmenco格式:indx,quant=dpcmenco(sig,codebook,partition,predictor)功能:返回DPCM編碼的編碼索引indx。其中參數(shù)sig為輸入信號,predictor為預(yù)測器傳遞函數(shù),其形式為[0,t1,…,tm]。預(yù)測誤差的量化參數(shù)由partition和predictor指定。(2)信源編碼中的DPCM解碼函數(shù)dpcmdeco格式:sig,quanterror=dpcmdeco(indx,codebook,predictor)功能:根據(jù)DPCM信號編碼索引indx進(jìn)行解碼,同時(shí)輸出量化參數(shù)的預(yù)測誤差quanterror。(3)用訓(xùn)練數(shù)據(jù)優(yōu)化差分脈沖調(diào)制參數(shù)的函數(shù)dpcmopt格式一:predictor=dpcmopt(training_set,ord)功能:對給定訓(xùn)練集的預(yù)測器進(jìn)行估計(jì),訓(xùn)練集及其順序由training_set和階數(shù)ord指定,預(yù)測器由predictor輸出,predictor是一個(gè)長度為ord+1的行向量?!纠?-5】
用訓(xùn)練數(shù)據(jù)優(yōu)化DPCM方法,對一個(gè)余弦信號數(shù)據(jù)進(jìn)行標(biāo)量量化。MWORKS.Syslab源程序如下:N=2^3;
#以3比特傳輸信道t=[0:100...]*pi/20;u=cos.(t);
#生成余弦信號predictor,codebook,partition=dpcmopt(u,1,N); #優(yōu)化的預(yù)測傳遞函數(shù)index,quant=dpcmenco(u,codebook,partition,vec(predictor));
#使用DPCM編碼sig,equant=dpcmdeco(index,codebook,vec(predictor));
#使用DPCM解碼plot(t,u,t,equant,"*");grid();legend("量化前","量化后");該程序運(yùn)行后所得圖形如圖6.4所示。
圖6.4DPCM預(yù)測量化誤差6.3差錯(cuò)控制編/譯碼在通信系統(tǒng)中,差錯(cuò)控制編/譯碼技術(shù)被廣泛地用于檢查和糾正信息在傳遞過程中發(fā)生的錯(cuò)誤。在發(fā)送端,差錯(cuò)控制編碼添加了一定的冗余碼元到信源序列;接收時(shí)就利用這些冗余信息來檢測和糾正錯(cuò)誤。糾錯(cuò)編碼主要有分組碼和卷積碼兩種類型。MWORKS.Syslab通信工具箱提供了一系列函數(shù)用于有限域計(jì)算。概率解碼中最常用的是Viterbi解碼,用于卷積碼解碼。常用的糾錯(cuò)編碼方法包括線性分組碼、海明碼、循環(huán)碼、BCH碼、Reed-Solomon碼和卷積碼,如表6.4所示。1、分組編碼函數(shù)block_encode格式一:code=block_encode(msg,n,k)功能:使用漢明(Hamming)編碼對消息msg進(jìn)行編碼,碼字長度為n,消息長度為k,n的值必須計(jì)算為一個(gè)整數(shù)m,使m≥2。n和k的值分別計(jì)算為2m-1和n-m
。code的格式與msg的格式相匹配,當(dāng)msg為一L列矩陣時(shí),輸出code為一L列矩陣。輸出碼字code的值和尺寸取決于msg的值和尺寸以及輸入信息格式,如表6.5所示。2、分組解碼函數(shù)block_decode格式一:msg=block_decode(code,n,k,"hamming/fmt",prim_poly)功能:使用漢明(Hamming)方法解碼代碼。對于大于或等于3的整數(shù)m,n必須具有2m-1的形式,且k必須等于n-m。prim_poly是一個(gè)多項(xiàng)式字符向量或行向量,它按照升序給出編碼過程中使用的GF(2m)的本原多項(xiàng)式的二進(jìn)制系數(shù)。prim_poly的默認(rèn)值為gfprimdf(m)。函數(shù)用于糾正每個(gè)碼字中的單個(gè)錯(cuò)誤的解碼表是syntable(hammgen(m))。3、卷積糾錯(cuò)編碼函數(shù)convenc格式一:code,final_state=convenc(msg,trellis)功能:利用poly2trellis函數(shù)定義的格型trellis結(jié)構(gòu),對二進(jìn)制矢量信息msg進(jìn)行卷積編碼code,同時(shí)返回編碼器的最終狀態(tài)
final_state。編碼器的初始狀態(tài)為零狀態(tài)。輸入消息包含一個(gè)或多個(gè)符號,每個(gè)符號由log2(trellis.numInputSymbols)位組成。編碼輸出codedout包含一個(gè)或多個(gè)符號,每個(gè)符號由log2(trellis.numOutputSymbols)位組成。4、將卷積編碼多項(xiàng)式轉(zhuǎn)換成格型(trellis)結(jié)構(gòu)函數(shù)poly2trellis格式一:trellis=poly2trellis(constrainlength,codegenerator)功能:將前向反饋卷積編碼器的多項(xiàng)式轉(zhuǎn)換成一格型(trellis)結(jié)構(gòu)。注意:當(dāng)與反饋多項(xiàng)式一起使用時(shí),poly2trellis
與
trellis
的輸入建立反饋連接。trellis的結(jié)構(gòu)如表6.7所示?!纠?-7】
利用convenc函數(shù)對一個(gè)信號進(jìn)行卷積編碼。
MWORKS.Syslab源程序如下:t=poly2trellis([33],[457;742]);
#3×3格型結(jié)構(gòu)msg=[1,1,0,1,0,0,1,1,1,0,0,1];
#消息codeA,stateA=convenc(msg,t);code1,state1=convenc(msg[1:Int(end/2),1],t);
#前半部分編碼code2,state2=convenc(msg[Int(end/2)+1:end,1],t,state1);
#后半部分編碼,但利用了state1[code1;code2]==codeA
#兩種編碼結(jié)果的比較該程序運(yùn)行結(jié)果:true這表明[code1;code2]與codeA等效。5、利用Viterbi算法譯卷積碼函數(shù)vitdec格式一:decodedout=vitdec(code,trellis,tblen,opmode,dectype)功能:利用Viterbi算法譯卷積碼code。code為poly2trellis函數(shù)或istrellis函數(shù)定義的格型trellis結(jié)構(gòu)的卷積碼。參數(shù)tblen取正整數(shù),表示記憶(traceback)深度。參數(shù)opmode代表解碼操作模型如下:"trunc"、"term"、"cont"、"unquant"、"hard"。6、BCH編碼函數(shù)bchenc格式一:code=
bchenc(msg,N,K)功能:使用狹義生成多項(xiàng)式的(N,K)BCH編碼器對輸入消息msg進(jìn)行編碼。要編碼的消息,指定為GF(2)上的Galois符號數(shù)組。msg的每一行k元素代表一個(gè)消息字,最左邊的符號是最重要的符號。例如,msgTx=GF1.(randi([01],10,5)),其中msgTx是一個(gè)10×5的GF數(shù)組。7、BCH解碼函數(shù)bchdec格式一:decoded
=bchdec(code,
N,
K)功能:使用具有狹義生成多項(xiàng)式的(N,K)BCH解碼器以代碼形式解碼所接收的信號。奇偶校驗(yàn)符號位于末尾,最左邊的符號是最重要的符號。在解碼的Galois字段數(shù)組中,每一行表示對代碼中的對應(yīng)行進(jìn)行解碼的嘗試。8、Reed-Solomon編碼函數(shù)rsenc格式:code=rsenc(msg,n,k)功能:使用帶有狹義生成多項(xiàng)式的[n,k]里德-所羅門(Reed-Solomon)碼對msg中的消息進(jìn)行編碼。msg是一個(gè)符號的Galois組,每個(gè)符號有m位。msg的每個(gè)k元素行代表一個(gè)消息詞,其中最左邊的符號是最重要的符號。n最大為2m-1
。如果n不完全是2m-1,則
rsenc使用縮短的Reed-Solomon碼。奇偶符號位于輸出Galois數(shù)組代碼中每個(gè)字的末尾。9、Reed-Solomon解碼函數(shù)rsdec格式一:decoded=rsdec(code,n,k)功能:使用[n,k]里德-所羅門(Reed-Solomon)解碼配合狹義發(fā)生器多項(xiàng)式解碼code中的接收信號。code是一個(gè)伽羅瓦符號數(shù)組,每個(gè)符號有m位。每一行n個(gè)元素的code表示一個(gè)損壞的系統(tǒng)碼字,其中奇偶校驗(yàn)符號位于末尾,最左邊的符號是最高有效符號。10、Turbo乘積碼編碼函數(shù)tpcenc格式一:code=tpcenc(msg,
N,
K)功能:使用由碼字長度N和消息長度K指定的兩個(gè)線性塊代碼對輸入消息執(zhí)行2-DTPC編碼。格式二:code=tpcenc(msg,
N,
K,
S)功能:使用由碼字長度(N–K+S)和消息長度S指定的2-DTPC編碼器對長度為S的縮短輸入消息執(zhí)行2-DTPC編碼。11、Turbo乘積碼解碼函數(shù)tpcdec格式一:decoded,
actualnumiter=tpcdec(llr,
N,
K)功能:使用由碼字長度N和消息長度
K指定的兩個(gè)線性塊代碼,對輸入對數(shù)似然比llr執(zhí)行2-DTPC解碼,返回實(shí)際解碼迭代次數(shù)actualnumiter?!纠?-11】
利用tpcdec函數(shù)對一個(gè)信號進(jìn)行Turbo乘積碼編/譯碼的例子。MWORKS.Syslab源程序如下:N=[32;16];K=[21;11];
#設(shè)置相關(guān)參數(shù)rng=MT19937ar(1234);msg=rand(0:1,prod(K),1);#產(chǎn)生消息code=tpcenc(msg,N,K);
#Turbo編碼iterations=3;
#迭代次數(shù)decoded,=tpcdec(code,N,K,[],iterations);
#Turbo解碼numerr,=biterr(msg,decoded)
#比較print("numerr=",numerr);該程序運(yùn)行結(jié)果:numerr=06.4模擬調(diào)制與解調(diào)根據(jù)調(diào)制信號的不同,可將調(diào)制分為模擬調(diào)制和數(shù)字調(diào)制。模擬調(diào)制的輸入信號為連續(xù)變化的模擬量,數(shù)字調(diào)制的調(diào)制信號是離散的數(shù)字量。對調(diào)制進(jìn)行仿真模擬有兩種選擇:帶通仿真、基帶仿真。帶通仿真的載波信號包含于傳輸模型中。由于載波信號的頻率遠(yuǎn)高于輸入信號,根據(jù)采樣定理,采樣頻率必須至少大于兩倍的載波頻率才能正確地恢復(fù)信號,因此對高頻信號的模擬仿真效率低、速度慢。為了加速模擬仿真,一般使用基帶仿真,也稱為低通對等方法。基帶仿真使用帶通信號的復(fù)包絡(luò)。在利用MWORKS.Syslab進(jìn)行調(diào)制/仿真時(shí),既可以采用自定義函數(shù)進(jìn)行調(diào)制/仿真,也可以調(diào)用MWORKS.Syslab所提供的函數(shù)進(jìn)行仿真。6.4.1帶通模擬調(diào)制/解調(diào)
模擬調(diào)制通常分為:幅度調(diào)制(AM)、頻率調(diào)制(FM)和相位調(diào)制(PM)。幅度調(diào)制又可分為常規(guī)幅度調(diào)制(AM)、抑制雙邊帶幅度調(diào)制(DSB-AM)、抑制單邊帶幅度調(diào)制(SSB-AM)和正交幅度調(diào)制(QAM)等。解調(diào)就是從調(diào)制信號中提取消息信號。解調(diào)過程與利用何種解調(diào)方式有關(guān)。在模擬調(diào)制的仿真中包含兩個(gè)頻率:載波頻率
fc和仿真的采樣頻率
fs。1、雙邊幅度調(diào)制(DSB-AM)與解調(diào)在DSB-AM中,已調(diào)信號的時(shí)域表示如下式:其中m(t)是消息信號,
為載波,
是載波的頻率(單位赫茲Hz),
是初始相位。
對u(t)作傅立葉變換,即可得到信號的頻域表示:傳輸帶寬BT
是消息信號帶寬的兩倍,即:
DSB-AM調(diào)制信號的解調(diào)過程如圖6.7所示。調(diào)制信號與接收機(jī)本地振蕩器所產(chǎn)生的正弦信號相乘可得混頻器輸出:圖6.7DSB-AM調(diào)制信號的解調(diào)
然后利用低通濾波器對低通分量進(jìn)行濾波即可恢復(fù)被調(diào)信號。
圖6.5
信號調(diào)制前后比較圖6.6DSB-AM調(diào)幅前后頻譜【例6-12】圖6.10未調(diào)制信號與解調(diào)信號的頻譜比較
【例6-13】圖6.9
未調(diào)制信號與解調(diào)信號比較2、單邊帶幅度調(diào)制(SSB-AM)與解調(diào)去掉DSB-AM的一邊就得到SSB-AM。依據(jù)所保留的邊帶是上邊,還是下邊,可以分為USSA和LSSB兩種不同的方式,此時(shí)信號的時(shí)域表示為:在頻域表示為:其中
是m(t)的希爾特變換,定義為
:,在頻域中為:
單邊SSB幅度調(diào)制占有DSB-AM的一半的帶寬,即等于信號帶寬:
SSB-AM調(diào)制信號的解調(diào)過程基本上與DSB-AM調(diào)制信號的解調(diào)過程是相同的,即調(diào)制信號與本地振蕩器的輸出進(jìn)行混頻得:
然后利用低通濾波器對低通分量進(jìn)行濾波即可恢復(fù)被調(diào)信號。
圖6.11SSB-AM上、下邊帶調(diào)制信
圖6.12SSB-AM上、下邊帶調(diào)制信號的頻譜【例6-14】
圖6.13未調(diào)制信號、解調(diào)信號及其相應(yīng)的頻譜比較
【例6-15】
在常規(guī)AM中,調(diào)制信號的時(shí)域表示為:3、常規(guī)幅度調(diào)制(AM)
常規(guī)幅度調(diào)制(AM)在很多方面與雙邊幅度調(diào)制類型。不同的是,用1+amn(t)
代替m(t),這里
a是調(diào)制指數(shù),mn(t)是經(jīng)過歸一化處理的消息信號。對u(t)作傅里葉變換,即可得到信號的頻域表示:
常規(guī)幅度調(diào)制(AM)信號的解調(diào),可采用包絡(luò)檢波器來實(shí)現(xiàn)。包絡(luò)檢波器可得到AM調(diào)制信號的包絡(luò)為:式中mn(t)與被調(diào)信號m(t)成比例,1對應(yīng)于可由直流電路分離出來的載波分量。
傳輸帶寬BT仍然是消息信號帶寬的兩倍,即:BT=2W圖6.14常規(guī)幅度調(diào)制的調(diào)制信號及頻譜
【例6-16】圖6.15常規(guī)幅度調(diào)制信號【例6-17】4、正交幅度調(diào)制(QAM)
正交幅度調(diào)制(QAM)調(diào)制信號為:其中
mI(t)為同相信號,mQ(t)為正交信號,fc是載波頻率(單位赫茲Hz),是初始相位。正交幅度調(diào)制過程如圖6.16所示。對應(yīng)的解調(diào)過程如圖6.17所示。圖6.16正交幅度調(diào)制框圖
圖6.17正交幅度調(diào)制的解調(diào)框圖
圖6.18信號正交幅度調(diào)制解調(diào)前后對比【例6-18】5、頻率調(diào)制(FM)
頻率調(diào)制亦稱為等振幅調(diào)制。在頻率調(diào)制過程中,輸入信號控制載波的頻率,使已調(diào)信號u(t)的頻率按輸入信號的規(guī)律變化。調(diào)制公式為:其中u(t)是調(diào)制后的信號,fc是載波的頻率(單位赫茲Hz),
是初始相位,是瞬時(shí)相位,隨著輸入信號的振幅變化。
的計(jì)算公式為:其中為比例常數(shù)。頻率調(diào)制的解調(diào)過程使用鎖相環(huán)方法,如圖6.19所示。
圖6.19FM解調(diào)框圖
其中為比例常數(shù),稱為調(diào)制器的靈敏度。6、相位調(diào)制(PM)
相位調(diào)制則是利用輸入信號
m(t)控制已調(diào)信號
u(t)的相位,控制規(guī)律為:其中
u(t)是調(diào)制后的信號,fc是載波的頻率(單位赫茲Hz),
是初始相位,是瞬時(shí)相位,隨著輸入信號的振幅變化。
的計(jì)算公式為:圖6.20PM解調(diào)框圖
相位調(diào)制的解調(diào)過程如圖6.20所示。7、帶通模擬調(diào)制/解調(diào)函數(shù)在MWORKS.Syslab通信工具箱中,為用戶提供了模擬調(diào)制和解調(diào)函數(shù),如表6.8所示。(1)調(diào)幅函數(shù)ammod格式一:y=ammod(x,Fc,Fs)功能:用載波為Fc(Hz)的信號來調(diào)制模擬信號x,采樣頻率為Fs(Hz)。變量Fs為載波信號和
x
的采樣頻率。調(diào)制信號具有0初始相位和0載波幅度,因此結(jié)果是抑制載波調(diào)制(DSB-AM)。根據(jù)采樣定理,采樣頻率Fs必須大于或等于調(diào)制頻率Fc加信號x帶寬BW的兩倍,
即Fs>2(Fc+BW)。
(2)調(diào)幅解調(diào)函數(shù)amdemod格式一:z
=amdemod(y,
Fc,
Fs)功能:返回解調(diào)信號z,給定輸入幅度調(diào)制(AM)信號
y,其中載波信號的頻率為
Fc。載波信號和
y
具有采樣頻率
Fs。調(diào)制信號
y
具有零初始相位和零載波幅度,這是由抑制載波調(diào)制產(chǎn)生的。Fs
的值必須滿足
Fs≥2Fc。(3)單邊帶調(diào)制函數(shù)ssbmod格式一:y
=ssbmod(x,
Fc,
Fs)功能:使用單邊帶調(diào)制的方式將信號x調(diào)制到頻率為Fc的載波上,默認(rèn)為下邊帶調(diào)制。生成的輸出y是抑制載波的單邊帶信號,載波信號和輸入信號x的采樣頻率為Fs(Hz),調(diào)制信號的初始相位默認(rèn)為零。(4)單邊帶調(diào)制函數(shù)ssbdemod格式一:z
=
ssbdemod(y,
Fc,
Fs)功能:將單邊帶調(diào)制信號y從頻率為Fc的載波上解調(diào)出來,載波信號和y的采樣頻率為Fs(Hz),調(diào)制信號的初始相位默認(rèn)為為零。解調(diào)過程中使用了通過指定的低通濾波器[num,den]=
butter(5,Fc*2/Fs)。(5)頻率調(diào)制函數(shù)fmmod格式一:y
=
fmmod(x,
Fc,
Fs,
freqdev)功能:返回調(diào)頻(FM)信號
y,給定輸入消息信號x。其中載波信號的頻率為Fc(Hz),載波信號和信號
x
的采樣頻率為Fs(Hz),調(diào)頻信號的頻率偏移為freqdev。Fs的值必須滿足Fs≥2Fc。
freqdev(Hz)的值必須滿足freqdev<Fc。調(diào)頻信號y以標(biāo)量、向量、矩陣或3維數(shù)組形式返回。已調(diào)信號的頻率為min(x)+Fc~max(x)+Fc。(6)頻率解制函數(shù)fmdemod格式一:z
=
fmdemod(y,
Fc,
Fs,
freqdev)功能:返回解調(diào)信號z,其中y為頻率調(diào)制信號,F(xiàn)c為載波信號的頻率,F(xiàn)s為載波信號的采樣頻率,調(diào)頻信號的頻率偏移為
freqdev。Fs的值必須滿足Fs≥2Fc。
freqdev的值必須滿足freqdev<Fc。(7)相位調(diào)制函數(shù)pmmod格式一:y
=
pmmod(x,
Fc,
Fs,
Phasedev)功能:使用相位偏移Phasedev(rad)對信號
x進(jìn)行相位調(diào)制,返回調(diào)頻(PM)信號
y。其中,載波信號的頻率為Fc(Hz),載波信號和信號
x
的采樣頻率為Fs(Hz)。調(diào)相信號y以標(biāo)量、向量、矩陣或3維數(shù)組形式返回。(8)相位解調(diào)制函數(shù)pmdemod格式一:z
=
pmdemod(y,
Fc,
Fs,
Phasedev)功能:使用相位解調(diào)的方式對調(diào)相信號
y
進(jìn)行解調(diào)。圖6.24PM調(diào)相與解調(diào)圖6.23FM調(diào)頻與解調(diào)【例6-21】【例6-20】6.4.2基帶模擬調(diào)制/解調(diào)基帶仿真,也稱低通對等方法,使用帶通信號的復(fù)包絡(luò)作為輸入信號。設(shè)B為原始信號帶寬,基帶仿真要求仿真抽樣率大于或等于2B
,而一般的有
B<<fc?;鶐д{(diào)制器的輸出為復(fù)數(shù)信號,作為基帶解調(diào)器的輸入。1、FM基帶調(diào)制函數(shù)comm_FMModulator利用comm_FMModulator函數(shù)對信號進(jìn)行基帶頻率調(diào)制的基本步驟為:創(chuàng)建comm_FMDemodulator對象并設(shè)置其屬性、使用step調(diào)用對象以及輸入?yún)?shù)。首先,要利用comm_FMModulator函數(shù)創(chuàng)建一個(gè)comm_FMModulator對象并設(shè)置其屬性,創(chuàng)建調(diào)用格式如下:格式一:fmmodulator
=
comm_FMModulator()功能:創(chuàng)建FM調(diào)制器系統(tǒng)對象。
然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù)實(shí)現(xiàn)調(diào)制。格式:
outsig
=
step(fmmodulator,insig)功能:調(diào)制輸入消息信號insig并輸出基帶調(diào)頻信號outsig。調(diào)制的基帶調(diào)頻信號,作為帶復(fù)值的標(biāo)量或列向量返回。輸出信號與輸入信號具有相同的數(shù)據(jù)類型和大小。目前,MWORKS.Syslab2023b版本中,只提供了對模擬信號進(jìn)行基帶FM調(diào)制/解調(diào)函數(shù)comm_FMModulator函數(shù)和comm_FMDemodulator函數(shù),用于動(dòng)態(tài)系統(tǒng)仿真。2、FM基帶解調(diào)函數(shù)comm_FMDemodulator首先,利用comm_FMDemodulator函數(shù)創(chuàng)建一個(gè)comm_FMDemodulator對象并設(shè)置其屬性,創(chuàng)建調(diào)用格式如下:格式一:fmdemodulator
=
comm_FMDemodulator()
功能:創(chuàng)建FM解調(diào)器系統(tǒng)對象。然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù)實(shí)現(xiàn)解調(diào)。格式:
y=step(fskdemodulator,x)功能:用FSK方法解調(diào)輸入信號。輸出是解調(diào)后的FSK基帶信號。已調(diào)制的輸入信號x的長度必須是SamplesPerSymbol屬性值的整數(shù)倍?!纠?-22】
利用FM基帶調(diào)制/解調(diào)函數(shù)調(diào)制和解調(diào)正弦信號,繪制解調(diào)后的信號并與原始信號進(jìn)行比較。MWORKS.Syslab源程序如下:[fs=100;ts=1/fs;
fd=25
#采樣率、采樣周期和頻率偏移t=collect(0:ts:(0.5-ts));x=sin.(2*pi*4*t);
#創(chuàng)建一正弦信號#設(shè)置采樣率和頻率偏移,創(chuàng)建FM調(diào)制器系統(tǒng)對象。fmmodulator=comm_FMModulator(;SampleRate=fs,FrequencyDeviation=fd);#使用FM調(diào)制器配置設(shè)置解調(diào)器屬性,創(chuàng)建FM解調(diào)器系統(tǒng)對象。fmdemodulator=comm_FMDemodulator(fmmodulator)y=step(fmmodulator,x);
#生成FM基帶調(diào)制信號figure(1);plot(t,x,"b-",t,real(y),"--k");
#繪制原信號和基帶調(diào)制信號的實(shí)分量圖xlabel("Time(seconds)");ylabel("Amplitude");legend(["原始信號","調(diào)制信號(實(shí)分量)"])z=step(fmdemodulator,y);
#解調(diào)FM基帶調(diào)制信號figure(2);plot(t,x,"r",t,z,"ks");
#繪制原始信號和解調(diào)信號legend(["原始信號","解調(diào)信號"]);xlabel("Time(s)");ylabel("Amplitude");該程序運(yùn)行結(jié)果如圖6.26所示。圖6.26FM基帶調(diào)制解調(diào)信號比較6.5數(shù)字調(diào)制與解調(diào)1、M元幅度鍵控調(diào)制(M-ASK)M元幅度鍵控調(diào)制包含兩部分,M-ASK映射和模擬幅度調(diào)制。M-ASK映射將輸入的數(shù)字碼符映射到區(qū)間[-x,x],數(shù)字碼符取值范圍是[0,M-1]區(qū)間內(nèi)的整數(shù)。輸出信號的幅值分別為[-x,x]的M-1等分點(diǎn)。
按數(shù)字調(diào)制的方法分類可以分為多進(jìn)制幅度鍵控(M-ASK)、正交幅度鍵控(QASK)、多進(jìn)制頻率鍵控(M-FSK)以及多進(jìn)制相位鍵控(M-PSK)。數(shù)字調(diào)制包括數(shù)模轉(zhuǎn)換和模擬調(diào)制兩部分,如圖6.27所示。
圖6.27數(shù)字調(diào)制過程
6.5.1數(shù)字信號的調(diào)制/解調(diào)圖6.282、4和8點(diǎn)集M-ASK映射3、M元頻率鍵控調(diào)制(M-FSK)M元頻率鍵控調(diào)制是通過使用輸入信號控制輸出信號的頻率來實(shí)現(xiàn)對數(shù)字信號的調(diào)制。M-FSK調(diào)制過程分成兩部分,即映射和模擬調(diào)制。映射過程將輸入信號反映成載波頻率變化,模擬調(diào)制即FM。M-FSK的解調(diào)有兩種方法,即相干法和非相干法。相干方法要求事先知道已調(diào)信號的相位,而非相干方法則不要求相位信息,它可以在解調(diào)過程中恢復(fù)已調(diào)信號的相位信息。2、M元正交鍵控調(diào)制(M-QASK)M-QASK是數(shù)字調(diào)制使用得最多的一種方法。它一般將輸入的數(shù)字碼符映射成為同相和正交的兩個(gè)獨(dú)立分量,然后用模擬QAM法對它們進(jìn)行調(diào)制;在接收方,接收的信號被解調(diào)為同相和正交信號,從它們映射過程中恢復(fù)原始信號。有許多種方法可將輸入信號映射成同相和正交分量。通信工具箱為M-QASK提供三種方案,即平面直角點(diǎn)集、圓點(diǎn)集和用戶定義任意點(diǎn)集。4、M元相位鍵控調(diào)制(M-PSK)M-PSK通過改變已調(diào)信號的相位信息來實(shí)現(xiàn)對數(shù)字信號的調(diào)制。M-PSK設(shè)置不同的初相移位以區(qū)別不同的數(shù)字碼符。M-PSK調(diào)制器輸入信號的取值區(qū)間[0,M-1],數(shù)字k對應(yīng)的相位位移為2πk/M。6.5.2常規(guī)仿真的數(shù)字調(diào)制/解調(diào)函數(shù)MWORKS.Syslab為用戶提供了如表6.9所示的兩大類數(shù)字調(diào)制解調(diào)函數(shù)。一類是常規(guī)腳本(程序)仿真的調(diào)制/解調(diào)函數(shù)(簡稱常規(guī)仿真函數(shù))。在使用此類函數(shù)時(shí),用戶只需按函數(shù)調(diào)用格式要求,直接輸入相關(guān)參數(shù)就可實(shí)現(xiàn)對信號進(jìn)行調(diào)制解調(diào);另一類為動(dòng)態(tài)系統(tǒng)仿真的調(diào)制/解調(diào)函數(shù)(簡稱動(dòng)態(tài)仿真函數(shù)),這類函數(shù)都帶有“comm_”的前輟名。在調(diào)用此類函數(shù)時(shí),用戶首先要?jiǎng)?chuàng)建調(diào)制解調(diào)對象結(jié)構(gòu)屬性,然后利用step函數(shù)調(diào)用對象以及參數(shù)輸入,才能完成信號的調(diào)制解調(diào)。1、脈沖幅度調(diào)制(PAM)函數(shù)pammod格式一:y
=
pammod(x,
M)功能:返回使用PAM對輸入消息信號x進(jìn)行調(diào)制的基帶。調(diào)制元數(shù)M為2的冪,輸入信號x為[0,M–1]范圍內(nèi)的整數(shù)向量或矩陣。PAM調(diào)制信號y為復(fù)基帶表示,以復(fù)數(shù)值的向量或矩陣形式返回。調(diào)制信號的最小歐幾里得距離為2。y的列代表獨(dú)立信道。2、脈沖幅度解調(diào)函數(shù)pamdemod格式一:z
=
pamdemod(y,M)功能:解調(diào)脈沖幅度調(diào)制信號的復(fù)包絡(luò)y。M是調(diào)制元數(shù)。理想調(diào)制信號的最小歐幾里得距離應(yīng)為2。
(a)PAM星座圖(b)格雷和自然二進(jìn)制編碼星座圖圖6.31
星座圖
【例6-25】利用脈沖幅度調(diào)制/解調(diào)函數(shù),實(shí)現(xiàn)調(diào)制元數(shù)M=8的數(shù)字信號的調(diào)制與解調(diào),并繪制出相應(yīng)的星座圖。
4、正交幅度解調(diào)函數(shù)qamdemod格式一:z
=
qamdemod(y,
M)功能:返回解調(diào)后的信號z,給定調(diào)制元數(shù)為M的正交幅度調(diào)制(QAM)信號y。解調(diào)輸出信號z以標(biāo)量、向量、矩陣或3-D數(shù)組形式返回。數(shù)據(jù)類型與輸入信號y相同?!纠?-26】
利用正交幅度調(diào)制解調(diào)函數(shù),通過使用16-QAM與WLAN符號映射對隨機(jī)數(shù)據(jù)進(jìn)行調(diào)制和解調(diào)。驗(yàn)證輸入的數(shù)據(jù)符號是否與解調(diào)后的符號相符。MWORKS.Syslab源程序如下:3、正交幅度調(diào)制函數(shù)qammod格式一:y
=
qammod(x,
M)功能:使用具有指定調(diào)制元數(shù)M的QAM調(diào)制輸入信號
x。輸出y為調(diào)制信號,以數(shù)值的復(fù)數(shù)標(biāo)量、向量、矩陣或3-D維數(shù)組形式返回。對于整數(shù)輸入,輸出y與輸入信號x具有相同的維度。對于位輸入,y中的行數(shù)為
x中的行數(shù)除以log2(M)。輸入信號x可為標(biāo)量、向量、矩陣或3維數(shù)組。x的元素必須是范圍從0到(M–1)的二進(jìn)制值或整數(shù)。調(diào)制元數(shù)M為2次冪整數(shù),指定了信號星座中的點(diǎn)數(shù)。rng=MT19937ar(1234);x=randi((0,15),20,4,2);
#生成一個(gè)隨機(jī)符號的三維數(shù)組wlanSymMap=[2,3,1,0,6,7,5,4,14,15,13,12,10,11,9,8];
#根據(jù)WLAN標(biāo)準(zhǔn)創(chuàng)建16-QAM星座圖#對數(shù)據(jù)進(jìn)行調(diào)制,并將星座圖設(shè)置為具有單位平均信號功率,同時(shí)繪制出星座圖。y=qammod(x,16,wlanSymMap,UnitAveragePower=true,PlotConstellation=true);z=qamdemod(y,16,wlanSymMap,UnitAveragePower=true);
#對收到的信號進(jìn)行解調(diào)。isequal(x,z)
#驗(yàn)證解調(diào)后的信號是否與原始數(shù)據(jù)相等
該程序運(yùn)行繪制的星座圖如圖6.32所示,解調(diào)序列與原序列對比結(jié)果:true圖6.32
WLAN符號映射星座圖6、通用正交幅度解調(diào)函數(shù)genqamdemod格式:z
=
genqamdemod(y,
const)功能:使用const指定的信號映射對正交調(diào)幅信號的復(fù)包絡(luò)y進(jìn)行解調(diào)?!纠?-27】
利用通用正交幅度調(diào)制解調(diào)函數(shù)實(shí)現(xiàn)一信號的調(diào)制。MWORKS.Syslab源程序如下:5、通用正交幅度調(diào)制函數(shù)genqammod格式:y
=
genqammod(x,
const)功能:返回消息信號
x
的QAM復(fù)包絡(luò)y。const指定調(diào)制的信號映射。消息信號,指定為數(shù)值的標(biāo)量、向量、矩陣或3-D數(shù)組。消息信號由0和length(const)–1之間的整數(shù)組成。如果x是具有多行的矩陣,則該函數(shù)獨(dú)立處理各列。信號映射const指定為復(fù)數(shù)向量。復(fù)包絡(luò)y以數(shù)值的標(biāo)量、向量、矩陣或3-D數(shù)組形式返回。y的長度與輸入x的長度相同。x=[3,8,5,10,7,12,13,15,11]
#消息inphase=[1/2,1,1,1/2,1/2,2,2,5/2];quadr=[0,1,-1,2,-2,1,-1,0]
#構(gòu)建信號映射星座constinphase=[inphase;-inphase];quadr=[quadr;quadr];cons=inphase.+1im.*quadr;y=genqammod(x,cons);
#調(diào)制z=genqamdemod(y,cons);
#解調(diào)scatterplot(y);
#繪制映射星座圖isequal(Float64.(x'),z')
#驗(yàn)證解調(diào)后的信號是否與原始數(shù)據(jù)相等該程序運(yùn)行繪制的星座圖如圖6.33所示,解調(diào)序列與原序列對比結(jié)果:true圖6.33映射星座圖7、幅度相移鍵控(APSK)調(diào)制函數(shù)apskmod格式一:y
=
apskmod(x,
M,
radius)功能:根據(jù)每個(gè)PSK環(huán)指定的星座點(diǎn)數(shù)M和每個(gè)PSK環(huán)的半徑radius,對輸入數(shù)據(jù)x進(jìn)行APSK調(diào)制。8.幅度相移鍵控(APSK)解調(diào)函數(shù)apskdemod格式一:z
=
apskdemod(y,
M,
radii)功能:對輸入信號
y
進(jìn)行APSK解調(diào),根據(jù)每個(gè)PSK環(huán)指定的星座點(diǎn)數(shù)M和每個(gè)PSK環(huán)的半徑radius。9、最小移位鍵控調(diào)制函數(shù)mskmod格式一:y,=mskmod(x,nsamp)功能:輸出使用差分編碼最小移位鍵控(MSK)調(diào)制消息信號x產(chǎn)生的復(fù)包絡(luò)信號y。x的元素必須為0或1。如果x是具有多個(gè)行和多列的矩陣,則該函數(shù)將列視為獨(dú)立的通道并獨(dú)立處理它們。nsamp用于表示每個(gè)y里面的元素的樣本數(shù),并且必須是正整數(shù)。MSK調(diào)制器的初始相位為0。10、最小移位鍵控解調(diào)函數(shù)mskdemod格式一:z,=mskdemod(y,nsamp)功能:利用差分編碼最小移位鍵控(MSK)方法解調(diào)信號的復(fù)包絡(luò)y。nsamp表示每個(gè)符號的樣本數(shù),必須是一個(gè)正整數(shù)。解調(diào)器的初始相位為0?!纠?-29】
利用最小移位鍵控調(diào)制解調(diào)函數(shù),實(shí)現(xiàn)某二進(jìn)制信號的調(diào)制,并繪制眼圖。MWORKS.Syslab源程序如下:rng=MT19937ar(1234);x=randi([01],100,1);#生成信號y,=mskmod(x,8,[],pi/2);
#對數(shù)據(jù)MSK調(diào)制z=awgn(y,30,"measured");
#對調(diào)制信號加噪eyediagram(z,16);
#繪制眼圖r,=mskdemod(z,8,[],pi/2);
#對加噪調(diào)制信號解調(diào)isequal(x,r);
#解調(diào)數(shù)據(jù)與原始數(shù)據(jù)比較該程序運(yùn)行繪制的眼圖如圖6.35所示,解調(diào)序列與原始序列對比結(jié)果:ans=true圖6.35
眼圖11、頻移鍵控調(diào)制函數(shù)fskmod格式一:y
=
fskmod(x,
M,
freq_sep,
nsamp)功能:輸出采用頻移鍵控調(diào)制技術(shù)對信號x調(diào)制后的復(fù)包絡(luò)y。輸入信號,指定為一個(gè)正整數(shù)向量或矩陣。x的元素的值必須在[0,M-1]的范圍內(nèi)。如果x是一個(gè)矩陣,fskmod獨(dú)立處理其列。12、頻移鍵控解調(diào)函數(shù)fskdemod格式一:z
=
skdemod(y,
M,
freq_sep,
nsamp)功能:對用頻移鍵控調(diào)制的復(fù)包絡(luò)y信號進(jìn)行非相干解調(diào)。13、相移鍵控調(diào)制函數(shù)pskmod格式一:y
=
pskmod(x,
M)功能:使用調(diào)制元數(shù)為
M
的相移鍵控(PSK)調(diào)制輸入信號x。輸入信號x為正整數(shù)的向量或矩陣,其元素值必須在[0,M–1]范圍內(nèi)。調(diào)制元數(shù)M為2的整數(shù)冪。PSK調(diào)制信號y的復(fù)數(shù)基帶表示,以復(fù)數(shù)值的向量形式返回。14、相移鍵控解調(diào)函數(shù)pskdemod格式一:z
=
pskdemod(y,
M)功能:解調(diào)調(diào)制元數(shù)為M的PSK調(diào)制信號的復(fù)包絡(luò)
y。15、差分相移鍵控調(diào)制函數(shù)dpskmod格式一:y
=
dpskmod(x,
M)功能:用差分相移鍵控(DPSK)調(diào)制M元輸入信號。輸入信號x為正整數(shù)的向量或矩陣,其元素值必須在[0,M-1]的范圍內(nèi)。調(diào)制元數(shù)M為2的整數(shù)次冪。16、差分相移鍵控解調(diào)函數(shù)dpskdemod格式一:z
=
dpskdemod(y,M)功能:解調(diào)具有調(diào)制元數(shù)M的DPSK調(diào)制信號的復(fù)包絡(luò)y。17、正交頻分復(fù)用調(diào)制函數(shù)ofdmmod格式一:ofdmSig
=
ofdmmod(inSym,
nfft,
cplen)功能:使用由nfft指定的FFT大小和由cplen指定的循環(huán)前綴長度,對頻域輸入數(shù)據(jù)子載波inSym執(zhí)行OFDM調(diào)制。輸入數(shù)據(jù)子載波inSym為
Nd-by-Nsym-by-Nt
符號數(shù)組。數(shù)據(jù)子載波數(shù)Nd必須等于nfft–length(nullidx)–length(pilotidx)。
Nsym是每個(gè)發(fā)射天線的OFDM符號數(shù),Nt是發(fā)射天線的數(shù)量。18、正交頻分復(fù)用調(diào)制解調(diào)函數(shù)ofdmdemod格式一:outSym
=
ofdmdemod(ofdmSig,
nfft,
cplen)功能:使用由
nfft
指定的FFT大小和由cplen指定的循環(huán)前綴長度,對ofdmSig中指定的輸入時(shí)域信號執(zhí)行OFDM解調(diào)
?!纠?-35】利用MWORKS.Syslab進(jìn)行數(shù)字調(diào)制/解調(diào)—16元正交幅度鍵控調(diào)制。MWORKS.Syslab源程序如下:M=16;Fs=50;
#設(shè)置M的數(shù)目及采樣頻率x=randi(M-1,100,1);
#生成隨機(jī)信號y=qammod(x,M,PlotConstellation=true);
#16-QASK調(diào)制并繪星座ynoisy=y#+0.01*randn(100,1);
#調(diào)制信號添加高斯噪聲z=qamdemod(ynoisy,M,PlotConstellation=true);
#16-QASK解調(diào)信號并繪星座s,=symerr(x,z);
#計(jì)算符號誤差率t=0.1:0.1:10;figure(3);subplot(2,1,1);plot(t,x');title("原信號");
#繪制原信號subplot(2,1,2);plot(t,z');title("解調(diào)的信號");
#
繪制解調(diào)信號該程序運(yùn)行結(jié)果如圖6.36所示,所得到符號誤差率:s=0(b)解調(diào)星座圖2(a)調(diào)制星座圖1(c)調(diào)制/解調(diào)前、后的信號圖6.3616-QASK調(diào)制6.5.3動(dòng)態(tài)仿真的數(shù)字調(diào)制/解調(diào)函數(shù)在MWORKS.Syslab通信工具箱中,用于動(dòng)態(tài)系統(tǒng)仿真的數(shù)字調(diào)制/解調(diào)函數(shù)都是以“comm_”作前輟的函數(shù)命令,比如使用BPSK方法進(jìn)行調(diào)制的函數(shù)為comm_BPSKModulator,如表6.9所示。1、BPSK調(diào)制函數(shù)comm_BPSKModulator首先,利用comm_BPSKModulator函數(shù)創(chuàng)建一個(gè)comm_BPSKModulator對象并設(shè)置其屬性:
格式一:myBPSK
=
comm_BPSKModulator()功能:創(chuàng)建comm_BPSKDemodulator調(diào)制器系統(tǒng)對象。然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù)實(shí)現(xiàn)調(diào)制。格式:
waveform
=
step(myBPSK,data)功能:將信號data按comm_BPSKDemodulator函數(shù)下定義的結(jié)構(gòu)體進(jìn)行調(diào)制,返回BPSK調(diào)制信號waveform。調(diào)制的基帶信號waveform與輸入信號具有相同的數(shù)據(jù)類型和大小。2、BPSK解調(diào)函數(shù)comm_BPSKDemodulator首先,利用comm_BPSKDemodulator函數(shù)創(chuàng)建一個(gè)comm_BPSKDemodulator對象并設(shè)置其屬性:
格式一:bpskdem
=
comm_BPSKDemodulator()
功能:創(chuàng)建FM解調(diào)器系統(tǒng)對象。然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù)實(shí)現(xiàn)調(diào)制。格式:y=step(bpskdem,waveform)功能:用BPSK方法解調(diào)輸入信號。輸出是解調(diào)后的BPSK基帶信號y為與輸入信號大小相同的向量。3、M元差分相移鍵控調(diào)制函數(shù)comm_DPSKModulator首先,利用comm_DPSKModulator函數(shù)創(chuàng)建一個(gè)comm_DPSKModulator對象并設(shè)置其屬性:
格式一:H
=
comm_DPSKModulator()
功能:創(chuàng)建調(diào)制器系統(tǒng)對象H,該對象使用M進(jìn)制差分相移鍵控(M-DPSK)方法調(diào)制輸入信號。然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù)實(shí)現(xiàn)調(diào)制。格式:
y
=
step(H,x)功能:用M-DPSK方法實(shí)現(xiàn)對信號x的調(diào)制,返回的y是調(diào)制信號的基帶表示。4、M元差分相移鍵控解調(diào)函數(shù)comm_DPSKDemodulator首先,利用comm_DPSKDemodulator函數(shù)創(chuàng)建一個(gè)對象并設(shè)置其屬性:
格式一:H
=
comm_DPSKDemodulator()
功能:
創(chuàng)建解調(diào)器系統(tǒng)對象H,該對象使用M進(jìn)制差分相移鍵控M-DPSK)方法解調(diào)輸入信號。然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù)實(shí)現(xiàn)調(diào)制。格式:y
=
step(H,x)功能:用M-DPSK方法實(shí)現(xiàn)對調(diào)制信號x的解調(diào)。【例6-37】
對隨機(jī)信源進(jìn)行M-DPSK調(diào)制,通過AWGN信道后解調(diào),對比誤碼率。MWORKS.Syslab源程序如下:rng=MT19937ar(1234);txData=randi([01],15000,1);dpskm=comm_DPSKModulator(;ModulationOrder=8,PhaseRotation=pi/8,BitInput=true);dpskd=comm_DPSKDemodulator(;ModulationOrder=8,PhaseRotation=pi/8,BitOutput=true);channel=comm_AWGNChannel(;EbNo=10,BitsPerSymbol=3,RandomStream="mt19937arwithseed",Seed=1234);errorRate=comm_ErrorRate(;ComputationDelay=1);modSig=step(dpskm,txData);rxSig=step(channel,modSig);rxData=step(dpskd,rxSig);errorStats=step(errorRate,txData,rxData)該程序運(yùn)行后得到符號誤差率、錯(cuò)誤數(shù)和計(jì)算次數(shù)分別為:RateErr=0.0111NumErr=167Count=14999總之,無論是模擬信號的調(diào)制/解調(diào),還是數(shù)字信號的調(diào)制/解調(diào)函數(shù),選擇的調(diào)制方式必須相同,否則不容易正確恢復(fù)出原信號。6.6通信系統(tǒng)的性能仿真6.6.1信道函數(shù)
1、AWGN信道函數(shù)awgn格式一:y
=
awgn(x,snr)功能:向功率為0dB的信號x添加高斯白噪聲,輸出信號y的信噪比SNR為參數(shù)snr(單位dB)。如果信號x為復(fù)信號,該函數(shù)添加復(fù)高斯白噪聲。格式二:y
=
awgn(x,snr,signalpower)功能:當(dāng)參數(shù)signalpower為具體數(shù)值時(shí),它代表信號的功率大?。╠B)。當(dāng)signalpower="measured"時(shí),該函數(shù)先對信號的功率進(jìn)行測試,然后再添加高斯噪聲;當(dāng)signalpower為標(biāo)量時(shí),該值作為輸入信號的信號電平,根據(jù)
snr
的值確定合適的噪聲電平?!纠?-38】對功率為0dB的信號,設(shè)置RANDN產(chǎn)生器的狀態(tài)為1234狀態(tài),添加高斯噪聲使其信噪比為10dB。在MWORKS.Syslab命令窗口中可通過以下命令完成:julia>x=sqrt(2)*sin.(0:pi/8:6*pi);#生成信號julia>y=awgn(x,10,0,1234);
#加噪2、動(dòng)態(tài)AWGN信道函數(shù)comm_AWGNChannel首先,創(chuàng)建結(jié)構(gòu)體
comm_AWGNChannel
并設(shè)置其屬性。格式一:awgnchan
=
comm_AWGNChannel()功能:構(gòu)造一個(gè)加性高斯白噪聲信道(AWGN)對象awgnchan。然后該對象將高斯白噪聲添加到實(shí)或復(fù)輸入信號中。然后,使用step函數(shù)調(diào)用對象以及輸入?yún)?shù),實(shí)現(xiàn)將高斯白噪聲添加到輸入信號中。格式一:outsignal
=
step(awgnchan,insignal)功能:在輸入信號中加入由awgnchan指定的高斯白噪聲。結(jié)果以輸出信號的形式返回?!纠?-40】
調(diào)制一個(gè)8-PSK雙通道信號,添加高斯白噪聲,并繪制信號以可視化噪聲的影響。MWORKS.Syslab源程序如下:channel=comm_AWGNChannel(;RandomStream="mt19937arwithseed",Seed=1234)channel.EbNo=[1020];
#每比特能量與噪聲功率譜密度的比值data2=randi([07],2000,2);
#生成雙通道隨機(jī)數(shù)據(jù)modData2=pskmod(data2,8,pi/4);
#8-PSK調(diào)制rxSig3=step(channel,modData2);
#調(diào)制數(shù)據(jù)通過AWGN信道。figure(1);scatterplot(rxSig3[:,1]);title("FirstChannel");#繪制1通道散射圖figure(2);scatterplot(rxSig3[:,2]);title("SecondChannel");#繪制2通道散射圖該程序運(yùn)行結(jié)果如圖6.37所示。(a)Eb/No=10
(b)Eb/No=20圖6.37
雙通道信號通過AWGN信道的散射圖6.6.2眼圖/散射圖
1、眼圖格式一:h
=
eyediagram(x,N)功能:繪制信號x的眼圖,在每條記錄道中繪制N個(gè)樣本。圖表水平軸范圍介于-1/2和1/2之間。該函數(shù)假定信號的第一個(gè)值和其后的每N個(gè)值以整數(shù)倍出現(xiàn)。返回圖形窗口對象h。【例6-41】
試?yán)L制QASK調(diào)制信號的眼圖。MWORKS.Syslab源程序如下:rng=MT19937ar(1234);x=randi(rng,[01],100,1);
#生成信號y,=mskmod(x,8,[],pi/2);
#對數(shù)據(jù)MSK調(diào)制z=awgn(rng,y,30,"measured");
#對調(diào)制信號加噪figure(1);eyediagram(z,16);
#繪制眼圖,描周期1、偏移量0figure(2);eyediagram(z,16,4,2);
#繪制眼圖,描周期4,偏移量2該程序運(yùn)行結(jié)果如圖6.38所示。(a)無偏移、描周期1
(b)偏移2個(gè)單位、描周期4圖6.38
眼圖2、散射圖格式一:h
=
scatterplot(x)功能:為信號
x
創(chuàng)建散點(diǎn)圖。返回圖形窗口對象
h。x可為實(shí)向量,也可為復(fù)向量,或只有兩列的矩陣,第一列為信號的實(shí)部,第二列為信號的虛部。【例6-42】試?yán)L制QASK調(diào)制信號的散射圖。MWORKS.Syslab源程序如下:M=16;Pd=200;msg_d=randi(M-1,Pd,1);
#生成隨機(jī)信號msg_a=qammod(msg_d,M);
#采用QASK調(diào)制方式figure(1);scatterplot(msg_a);
#繪制散射圖figure(2);scatterplot(msg_a,5,10);#N=5,offset=10該程序運(yùn)行結(jié)果如圖6.39所示。(a)N=1、offset=1
(b)N=5、offset=15圖6.39
散射圖6.6.3通信系統(tǒng)的誤碼率仿真
通信系統(tǒng)誤碼率的大小用于衡量通信系統(tǒng)性能的好壞。無論是仿真帶通系統(tǒng)還是基帶通信系統(tǒng),通信系統(tǒng)模型的誤碼率的計(jì)算過程主要由設(shè)置相關(guān)參數(shù)、創(chuàng)建信號及信源編碼、調(diào)制、對調(diào)制信號添加高斯噪聲、解調(diào)、計(jì)算系統(tǒng)的誤碼率等步驟組成。
【例6-43】
【例6-44】圖6.40QPSK的BER和SER圖6.41QAM的BER第7章
MWORKS.Sysplorer的應(yīng)用
7.1MWORKS.Sysplorer工作平臺的啟動(dòng)
7.2MWORKS.Sysplorer仿真原理7.3MWORKS.Sysplorer模塊庫7.4仿真模型的建立和模塊參數(shù)及屬性的設(shè)置7.1MWORKS.Sysplorer工作平臺的啟動(dòng)1、MWORKS.Sysplorer特點(diǎn)MWORKS.Sysplorer是MWORKS提供一個(gè)基于Modelica語言開發(fā)的建模與仿真工作平臺,采用模塊組合的方法來創(chuàng)建動(dòng)態(tài)系統(tǒng)的計(jì)算機(jī)模型,用于模擬線性與非線性系統(tǒng),連續(xù)與非連續(xù)系統(tǒng),或它們的混合系統(tǒng)。除此之外,它還提供圖形動(dòng)畫處理方法,以方便用戶觀察系統(tǒng)仿真的整個(gè)過程。其主要特點(diǎn)是快速、準(zhǔn)確。2、MWORKS.Sysplorer的基本功能?系統(tǒng)建模環(huán)境?編譯分析環(huán)境?求解計(jì)算環(huán)境?后處理環(huán)境?實(shí)時(shí)代碼生成?擴(kuò)展接口(1)進(jìn)入【MWORKS.Sysplorer】安裝向?qū)?;?)點(diǎn)擊【用用戶許可協(xié)議】,閱讀許可證協(xié)議;(3)選擇安裝文件夾。系統(tǒng)缺省設(shè)為C:\ProgramFiles\MWORKS.Sysplorer2022\,如果要安裝在其他目錄,點(diǎn)擊【瀏覽(B)】選擇文件夾。建議MWORKS.Sysplorer所在磁盤的空間不少于2G。(4)選擇安裝內(nèi)容。用戶既可根據(jù)個(gè)人需求選擇安裝內(nèi)容,節(jié)省不必要的安裝時(shí)間和磁盤空間。則也可按系統(tǒng)默認(rèn)的安裝內(nèi)容安裝。(5)勾選【我同意許可條款和條件】,點(diǎn)擊【安裝】后系統(tǒng)開始安裝。(6)選擇需要關(guān)聯(lián)到MWORKS.Sysplorer的文件格式。支持四種文件格式與MWORKS.Sysplorer關(guān)聯(lián):.mo文件、.mef文件、.mol文件和.moc文件。7.1.1MWORKS.Sysplorer安裝若系統(tǒng)安裝成功,將在桌面生成“MWORKS.Sysplore(x64)”應(yīng)用圖標(biāo),如圖7.1所示。否則表明系統(tǒng)未安裝成功,需重新安裝。圖7.1
MWORKS.Sysplorer
應(yīng)用圖標(biāo)啟動(dòng)MWORKS.Sysplorer,通常有兩種方法:方法一:直接點(diǎn)擊應(yīng)用圖標(biāo)啟動(dòng)。MWORKS.Sysplorer仿真平臺如圖7.2(a)所示。7.1.2MWORKS.Sysplorer啟動(dòng)方法二:從MWORKS.Syslabl界面啟動(dòng)。MWORKS.Sysplorer仿真平臺如圖7.2(b)所示。1、兩種方法建立MWORKS.Sysplorer仿真平臺的區(qū)別方法二啟動(dòng)的MWORKS.Sysplorer在MWORKS.Sysplorer界面多了“SyslabWorkspace”模塊庫選項(xiàng)??赏ㄟ^“SyslabWorkspace”模塊庫中的模塊,實(shí)現(xiàn)與MWORKS.Syslab系統(tǒng)的互動(dòng)。2、MWORKS.Sysplorer界面組成?
第一行為快捷工具欄由(打開文件)、(保存文件)、(撒銷操作)、(恢復(fù)操作)、(翻譯)、(仿真)、(自定義快捷工具欄)等圖標(biāo)按鈕組成。?
第二行為菜單欄由【文件】、【建?!?、【編輯】、【仿真】、【圖表】、【工具】、【幫助】、【窗口】、(MWORKS幫助中心)、(最小化Ribbon工具欄)等菜單項(xiàng)構(gòu)成。?
第三行為菜單導(dǎo)航工具欄當(dāng)點(diǎn)擊第二行菜單欄中除【文件】外的任一菜單項(xiàng),系統(tǒng)將在第三行彈出對應(yīng)的工具欄。對于MWORKS.Sysplorer主界面,第三行顯示的菜單導(dǎo)航工具欄是【建模】菜單導(dǎo)航工具欄(默認(rèn)),如圖7.3所示。圖7.3MWORKS.Sysplorer主界面結(jié)構(gòu)組成3、設(shè)置License文件MWORKS.Sysplorer采用License文件方式進(jìn)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年仁懷市大壩鎮(zhèn)衛(wèi)生院公開招聘鄉(xiāng)村醫(yī)生工作備考題庫參考答案詳解
- 2026年關(guān)于中共勐??h委社會(huì)工作部編外人員的招聘備考題庫及答案詳解一套
- 2026年建寧縣實(shí)驗(yàn)幼兒園頂崗教師招聘備考題庫及一套完整答案詳解
- 2026年大連理工大學(xué)醫(yī)學(xué)部公共服務(wù)實(shí)驗(yàn)技術(shù)人員招聘備考題庫及一套參考答案詳解
- 2026年【就業(yè)】上海復(fù)醫(yī)天健醫(yī)療服務(wù)產(chǎn)業(yè)股份有限公司招聘清潔工備考題庫及完整答案詳解一套
- 2026年中國電信股份有限公司黎川分公司備考題庫含答案詳解
- 2026年云南建投第一水利水電建設(shè)有限公司招聘備考題庫完整答案詳解
- 航空公司內(nèi)控制度
- 如何加強(qiáng)財(cái)務(wù)內(nèi)控制度
- 學(xué)校采購管理內(nèi)控制度
- 福建省泉州市2022-2023學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測化學(xué)試題(含答案)
- 材料樣品確認(rèn)單
- 初中班會(huì)主題課件科學(xué)的復(fù)習(xí)事半功倍(共23張PPT)
- 英語book report簡單范文(通用4篇)
- PCB封裝設(shè)計(jì)規(guī)范
- 船舶建造 監(jiān)理
- YY/T 1447-2016外科植入物植入材料磷灰石形成能力的體外評估
- GB/T 9349-2002聚氯乙烯、相關(guān)含氯均聚物和共聚物及其共混物熱穩(wěn)定性的測定變色法
- GB/T 8331-2008離子交換樹脂濕視密度測定方法
- 美英報(bào)刊閱讀教程課件
- 幼兒園繪本故事:《十二生肖》 課件
評論
0/150
提交評論