第一篇:通信原理課程設計報告
課 題 學 院 專 業 學生姓名學 號 班級 指導教師
通信原理 課程設計報告
基于MATLAB的2FSK仿真 電子信息工程學院 通信工程
二〇一五年一月
基于MATLAB的基帶傳輸系統的研究與仿真
—— 碼型變換
摘 要
HDB3碼編碼規則
首先將消息代碼變換成AMI碼;然后檢查AMI碼中的連0情況,當無4個或4個以上的連0串時,則保持AMI的形式不變;若出現4個或4個以上連0串時,則將1后的第4個0變為與前一非0符號(+1或-1)同極性的符號,用V表示(+1記為+V,-1記為-V);最后檢查相鄰V符號間的非0符號的個數是否為偶數,若為偶數,則再將當前的V符號的前一非0符號后的第1個0變為+B或-B符號,且B的極性與前一非0符號的極性相反,并使后面的非0符號從V符號開始再交替變化
關鍵詞: HDB3碼 MATLAB編碼原則 V碼 B碼
目
一、背景知識
二、MATLAB仿真軟件介紹
三、仿真的系統的模型框圖
四、使用MATLAB編程(m文件)完成系統的仿真
五、仿真結果
六、結果分析
七、心得、參考文獻
錄
正文部分
一、背景知識
在實際的傳輸系統中,并不是所有的代碼電氣波形都可以信道中傳輸。含有直流分量和較豐富的單極性基帶波形就不適宜在低頻傳輸特性差的信道中傳輸,因為它有可能造成信號的嚴重的畸變。
在傳輸碼(或稱線路嗎)的結構將取決于實際信道特性和系統的工作條件。通常,傳輸碼的結構應具有以下的特性:
(1)相應的基帶信號無直流分理,且低頻分量少(2)便于從信號中提取定時信息
(3)信號中高頻分應盡量少以節省傳輸頻帶并減少碼間串擾(4)不受信號源統計特性影響,即能適應于信息源變化
(5)具有內在的檢錯能力,傳輸的碼型應具有一定的規律性,以便利用這一規律性進行宏觀監測
(6)編譯碼設備要盡可能簡單
滿足以上特性的傳輸碼型種類繁多,這里使用HDB3。
要了解HDB3碼的編碼規則,首先要知道AMI碼的構成規則,AMI碼就是把單極性脈沖序列中相鄰的“1”碼(即正脈沖)變為極性交替的正、負脈沖。將“0”碼保持不變,把“1”碼變為+
1、-1交替的脈沖。如: NRZ碼:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 AMI碼:-1 0 0 0 0 +1 0 0 0 0-1 +1 0 0 0 0-1 +1 HBD3碼(3nd Order High Density Bipolar)的全稱是三階高密度雙極性碼,它是AMI碼的一種改進型,改進目的是為了保持AMI碼的優點而克服其缺點,使連“0”個數不超過3個。其編碼規則:
(1)檢查消息碼中連“0”的個數。當連“0”數目小于等于3時,HBD3碼與AMI碼一樣(“1”交替的變換為“+1”和“-1”,“0”保持不變)。
(2)當連“0”數目超過3時,將每4個連“0”化作一小節,定義為“B00V"稱為破壞節,其中V稱為破壞脈沖,而B稱為調節脈沖;
(3)V與前一個相鄰的非“0”脈沖的極性相同(這破壞了極性交替的規則,所以V稱破壞脈沖),并且要求相鄰的V碼之間極性必須交替。V的取值為“+1”或“-1”;
(4)B的取值可選0、+1或-1,以使V同時滿足(3)中的兩個要求;(5)V碼后面的傳號碼極性也要交替。例如:
消息碼: 1 000 0 1 000 0 1 1 000 0 000 0 1 1 AMI碼:-1 000 0 +1 000 0-1+1 000 0 000 0-1+1 HDB3碼:-1 000-V +1 000+V-1+1-B00-V +B00+V-1+1 其中的±B脈沖和±V脈沖與±1脈沖波形相同,用V或B表示的目的是為了示意其中的該非“0”碼是由原信碼的“0”變換而來的。
當相鄰兩個V碼之間有奇數個“1”碼時,能保證V碼滿足(3)的要求,B取“0”;當相鄰兩個V碼之間有偶數個“1”碼時,不能保證V碼極性交替,B取“+1”或“-1”,B碼的符號與前相鄰“1”相反,而其后面的V碼與B碼極性相同。
二、MATLAB簡介
美國MATHWORK公司于1967年推出了“Matrix Laboratory”(縮寫為MATLAB)軟件包,不斷更新和擴充。它是一種功能強、效率高便于進行科學和工程計算的交互式軟件包。其中包括:一般數值分析、矩陣運算、數字信號處理、建模和系統控制和優化等應用程序。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多。在新的版本中也加入了對C,FORTRAN,c++,JAVA的支持??梢灾苯诱{用,用戶也可以將自己編寫的實用程序導入到MATLAB函數庫中方便自己以后調用,此外許多的MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用,非常的方便。
MATLAB的基礎是矩陣計算,但是由于他的開放性,并且mathwork也吸收了像maple等軟件的優點,使MATLAB成為一個強大的數學軟件。
當前流行的MATLAB 6.5/7.0包括擁有數百個內部函數的主包和三十幾種工具包(Toolbox)。工具包又可以分為功能性工具包和學科工具包。功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能。學科工具包是專業性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類。
開放性使MATLAB廣受用戶歡迎。除內部函數外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包。
Matlab的優勢和特點:
(1)友好的工作平臺和編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
(2)簡單易用的程序語言
Matlab一個高級的距陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C++語言基礎上的,因此語法特征與C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利于非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。
(3)強大的科學計算機數據處理能力
MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的算法都是科研和工程計算中的最新研究成果,而前經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如距陣,特征向量、快速傅立葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態仿真等。
(4)出色的圖形處理功能
MATLAB自產生之日起就具有方便的數據可視化功能,以將向量和距陣用圖形表現出來,并且可以對圖形進行標注和打印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖??捎糜诳茖W計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使他不僅在一般數據可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對于一些其他軟件所沒有的功能(例如圖形的光照處理、色度處理以及四維數據的表現等),MATLAB同樣表現了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數,保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。
(5)應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發了功能強大的模塊集和工具箱。一般來說,他們都是由特定領域的專家開發的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數據采集、數據庫接口、概率統計、樣條擬合、優化算法、偏微分方程求解、神經網絡、小波分析、信號處理、圖像處理、系統辨識、控制系統設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理仿真、嵌入式系統開發、定點仿真、DSP與通訊、電力系統仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)實用的程序接口和發布平臺
新版本的MATLAB可以利用MATLAB編譯器和C/C++數學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立于MATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數學和圖形程序。
MATLAB的一個重要特色就是他有一套程序擴展系統和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數的子程序庫,每一個工具箱都是為某一類學科專業和應用而定制的,主要包括信號處理、控制系統、神經網絡、模糊邏輯、小波分析和系統仿真等方面的應用。
(7)應用軟件開發(包括用戶界面)
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5。
三、仿真的系統的模型框圖
(1)實驗編碼原理框圖如下所示 :
(2)以下是V碼以及B碼產生的框圖:
(3)V碼產生單元的工作流程圖
(4)B碼產生單元的工作流程圖 譯碼規則: 在接收端,將接收到的HDB3碼序列恢復為原輸入二進制數字信息序列的過程稱為譯碼。
對HDB3碼而言,譯碼就是找到編碼時插入的特殊序列并將它恢復為0000。根據編碼原則,HDB3的譯碼可分為三個步驟:
(1)根據“V”的極性特點,找出特殊序列。由于編碼時,每個“V”的極性 都與其前一個“1”碼的極性相同,所以,在接收序列中一旦出現連續兩個同極性碼時,兩個同極性碼的后一個即為“V”,此“V”與其前的三位碼就是一個特殊序列;
(2)將所有的特殊序列都恢復為“0000”;
(3)將正、負脈沖都恢復為“1”碼,零電平恢復為“0”碼。下圖是譯碼的框圖:
四、使用MATLAB編程(m文件)完成系統的仿真
程序源代碼
global dt df t f N close all
N=2^13;
%采樣點數
L=8;
%每碼元的采樣點數
M=N/L;
%碼元數
Rb=2;Ts=0.5;
%碼元寬度是0.5us dt=Ts/L;
df=1/(N*dt);
%MHz RT=0.5;
%占空比 T=N*dt;
%截短
Bs=N*df/2;
%系統帶寬
t=[-T/2+dt/2:dt:T/2];
%時域橫坐標
f=[-Bs+df/2:df:Bs];
%頻域橫坐標 figure(1)
set(1,'Position',[10,50,300,200])
%設定窗口位置及大小
figure(2)
set(2,'Position',[350,50,300,200])
%設定窗口位置及大小
EPAMI=zeros(size(f));EPHDB=zeros(size(f));for ii=1:8 ami=zeros(1,M);hdb=zeros(1,M);a=round(rand(1,M));
b=3;
%表示0000之間循環個數
c=-1;
%記載相鄰V之間的1元素個數
sign1=-1;
%標志前一個信號
sign2=-1;
%標志前一個信號
for ii=1:M
if a(ii)==1
sign1=0-sign1;ami(ii)=sign1;
end End for ii=1:M
if b==3
%表示非0000
if a(ii)==1
sign2=0-sign2;hdb(ii)=sign2;
if c>=0
%表示不是第一個0000
c=c+1;
%用來計算相鄰v之間的非0元素個數
end
elseif ii<=M-3 & a(ii)+a(ii+1)+a(ii+2)+a(ii+3)==0
if mod(c,2)==1
%000V hdb(ii+3)=sign2;
else
%B00V
sign2=0-sign2;hdb(ii)=sign2;
hdb(ii+3)=sign2;
end
c=0;
b=0;
end
elseif b<3
%對0000的循環
b=b+1;
End end
for i=[1:L] ami1(i+[0:M-1]*L)=ami;hdb1(i+[0:M-1]*L)=hdb;end
AMI=T2F*(ami1);
PAMI=AMI.*conj(AMI)/T;HDB=T2F*(hdb1);
PHDB=HDB.*conj(HDB)/T;EPAMI=(EPAMI*(ii-1)+PAMI)/ii;EPHDB=(EPHDB*(ii-1)+PHDB)/ii;figure(1)
aa=30+10*log10(EPAMI+eps);
%加eps以避免除以零
bb=30+10*log10(EPHDB+eps);plot(f,aa,'g');grid
axis([-8,+8,-80,80])xlabel('f(MHz)')
ylabel('AMIPs(f)
(dBm/MHz)')figure(2)plot(f,bb,'b');grid
axis([-8,+8,-80,80])xlabel('f(MHz)')
ylabel('HDBPs(f)
(dBm/MHz)')figure(3)subplot(3,1,1)tt=[1:40];
stem(tt,a(1:40),'g')title('原始RNZ信號')s ubplot(3,1,2)
stem(tt,ami(1:40),'g')title('AMI信號')subplot(3,1,3)
stem(tt,hdb(1:40),'g')title('HDB碼')end
%將下面的代碼保存在t2f.m文件中
function X=t2f(x)global dt df N t f T
%X=t2f(x)
%x為時域的取樣值矢量 %X為x的傅氏變換
%X與x長度相同,并為2的整冪。
%本函數需要一個全局變量dt(時域取樣間隔)H=fft(x);
X=[H(N/2+1:N),H(1:N/2)]*dt;end
五、仿真結果
六、結果分析和心得
HDB3(High DensityBinary-3)碼的全稱是3階高密度雙極性碼。它是AMI碼的一種改進型,主要是為了克服AMI碼中連“0”時所帶來的提取定時信息的困難。HDB3編碼規則是:先把消息代碼中的“1”交替變成“+1”和“-1”,“0”仍然保持“0”不變的AMI碼,然后去檢查AMI碼的連“0”的情況 ,當沒有4個和4個以上連“0”串時 ,這樣的AMI碼就是HDB3碼 ;當出現4個和4個以上連“0”串時,則將每4個連“0”的小段的第4個“0”變換成與其前一個非零符號相同極型的符號,并用“+V”和“-V”表示.若此“V”使后面的序列破壞了“極性交替反轉” 的原則,則將出現直流分量。故需要保證相鄰“V”的符號也是極性相反,所以,當不滿足V也極性相反時,將這個連“0” 碼無串的等一個“0” 變成“-B”和“+B”?!癇”的符號與前一個非“0”碼的符號相反,并且讓后面的非“0” 碼元符號從“V” 碼開始再交替變化。
HDB3碼譯碼比較容易,從收到的符號序列中可以容易地找到破壞點V,于是也斷定V符號及其前面3 個符號必是連0 符號,從而恢復4個連0碼,再將所有的-1變成+1后便得到原消息代碼。
下面用例題來進一步說明編碼與譯碼的原理: 例:求序列***000對應的HDB3碼。編碼譯碼步驟如下: 找出四連0序列;用特殊序列代替連0序列,第一個特殊序列可任意選擇如選擇100V。
將“1”和“V”標上極性“+1”或“-1”。輸入數據中的“1”和特殊序列中的“1”作為一個整體極性交替,第一個“1”的極性可任意選擇如選擇“-1”。第一個特殊序列中的“V“與其前第一個“1”的極性相同,后面的“V”依次極性交替。
根據上面步驟列出系列各式以及畫圖,實現HDB3碼的編碼。
通過譯碼原理可知:V碼與B碼的極性相同,我們可以對這個輸出碼從后開始譯碼,自然而然的可以得到原輸入的序列,此時,編碼與譯碼就完成了。
另外說明:1.由于第一個特殊序和第一個“1”的極性均可任意選擇,所以同一數字信息序列的HDB3可有四種不同的形式。2.當編碼的序列足夠長時,我們的編碼與譯碼過程中更容易得到規律。
以上的程序便是綜合了HDB3的編碼譯碼以及對于其仿真的全部過程,此是經過了本組成員的反復修改最終制作而成,對于HDB3的編譯碼有了更加深入的了解。
七、參考文獻
1.郭文彬,桑林編著,通信原理-基于Matlab的計算機仿真,北京郵電大學出版社,2006 2.曹志剛,錢亞生,現代通信原理,清華大學出版社,2002年
3.郭仕劍等,《MATLAB 7.x數字信號處理》,人民郵電出版社,2006年
4.樊昌信,曹麗娜編著,通信原理學習指導,西安電子科技大學,2003
第二篇:通信原理課程設計報告
通信原理課程設計報告
電信0802 3080503031 王婉婉
題一:QPSK誤碼率性能研究以及QPSK和DQPSK調制信號性能的比較
(一):QPSK誤碼率性能
1:目的:本題是設計一個QPSK仿真模型,以衡量QPSK在高斯白噪聲信道中的性能。
2:原理圖解析 圖中Bernoulli binary generator產生一個二進制向量,向量的長度等于2,分別代表QPSK Modulator baseband的兩個輸入信號。QPSK調制器產生的調制信號首先經過一個AWGN Channel然后進入QPSK Dodulator baseband進行解調;由于貝努力二進制序列產生器的輸出信號是長度為2的二進制向量,而QPSK基帶解調器模塊的輸出信號則是一個二進制序列,因此在對它們進行比較之前首先通過兩個數值轉換模塊(Bit to integer Converter和Bit to integer Converter1),把它們轉化成四進制數;最后兩個數值轉換的輸出信號進入一個誤碼率統計模塊(Error Rate Calculation),以統計QPSK解調信號的誤碼率。QPSK調制解調原理圖如下圖所示:
3:為了得到QPSK調制信號誤碼率與信號的信噪比之間的關系,所需m文件代碼如下:
xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;x=0:10;y=x;hold off;for index=1:4 xSamplesPerSymbol=index;switch index case 1 xReceiveDelay=0;color='r';case 2 xReceiveDelay=1;color='g';case 3 xReceiveDelay=1;color='b';case 4 xReceiveDelay=1;color='m';end for i=1:length(x)xSNR=x(i);sim('QPSK');y(i)=xErrorRate(1);end semilogy(x,y,color);hold on;end
4:將仿真截止時間設為0.1秒,可得如下圖示仿真結果:
圖中:4條曲線分別表示當QPSK調制器和解調器的Samples per symbol參數等于1,2,3,4時QPSK信號的誤碼率性能從圖中可以看出Samples per symbol參數的設置在很大程度上影響著QPSK信號的解調性能。
(二)DQPSK和QPSK調制信號性能的比較
1:在DQPSK調制的仿真模型中,Bernoulli binary generator產生一個二進制向量,向量的長度等于2,分別代表DQPSK兩個支路的輸入信號。我們采用DQPSK Modulator baseband對這個信號進行調制產生DQPSK基帶調制信號;
基帶調制信號首先經過一個AWGN Channel然后進入DPSK Dodulator baseband進行解調;由于貝努力二進制序列產生器的輸出信號在通過Bit to integer Converter轉換成整數后,與DPSK解調信號一起進入一個誤碼率統計模塊(Error Rate Calculation),以統計DPSK的誤碼率。DQPSK 調制解調原理圖如下圖所示:
2:將DQPSK和QPSK的誤碼率性能曲線繪出的m文件如下所示:
xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;xSamplesPerSymbol=1;xReceiveDelay=0;x=0:10;y1=x;y2=x;for i=1:length(x)xSNR=x(i);sim('DQPSK');y1(i)=xErrorRate(1);sim('QPSK');y2(i)=xErrorRate(1);end semilogy(x,y1,'r');gtext('DQPSK');hold on;semilogy(x,y2,'g');gtext('QPSK');
3:將仿真截止時間設為2秒,可得如下圖示仿真結果:
圖中紫紅色曲線表示DQPSK調制信號的誤碼率,而綠色曲線表示QPSK調制信號的誤碼率,從圖中可見在相同條件下(相同的數據源、相同的信噪比以及相同的調制信號抽樣數),QPSK調制信號的性能優于DQPSK。
題二:SSB信號的調制與解調
1:其調制解調原理圖如下圖所示:
單邊帶調制系統中,發送端只傳輸頻帶幅度調制信號的上邊帶或下邊帶,它使用的帶寬只是雙邊帶調制信號的一半,因此具有更高的頻帶利用率,下圖中,將輸入信號進行SSB調制,然后將其解調回復原波形。圖中示波器用以觀察信號調制解調各個階段的波形。
2:仿真結果如下所示:
示波器顯示結果
注:第一個和第六個是輸入信號波形,第二個是下邊帶調制信號,第三個是已調制是的信號波形,第四個是已解調的信號波形,第五個是下邊帶信號波形。
三:參考資料
【1】MATLAB通信仿真及應用實例詳解 鄧華等編著 人民郵電出版社
【2】MATLAB仿真在通信與電子工程中的應用 徐明遠 邵玉斌編著 西安電子科技大學出版社
第三篇:通信原理課程設計報告
通信系統課程設計報告
單邊帶電臺仿真
院(系): 專業年級(班): 學 生: 學 號: 指 導 教 師: 完 成 時 間:
摘 要
這篇文章介紹了使用MATLAB軟件編制程序,以實現單邊帶信號的調制和解調。首先,利用相移法從語音信號的雙邊帶信號得到單邊帶信號,再編寫MATLAB程序,使單邊帶信號得到調制和調解。分析調制前后的時域和頻域波形圖,以更加深入理解單邊帶信號的調制和解調的原理。
關鍵詞:單邊帶;調制和解調;MATLAB
Single sideband radio simulation
Abstract:
This article introduces the way to modulate and demodulate the single side band with the soft program from MATLAB.First, get the single side band signal from the speech signal`s couple sides band , then wright the MATLAB program to modulate and demodulate the signal.Analyze the pictures ,and understand the theory furtherly.Keywords:single side band , modulation and demodulation , MATLAB
目錄
一.設計任務與要求............................................................................................................二.開發環境........................................................................................................................三.電臺設計原理及方案................................................3.1發送模塊的設計方案.......................................................3.2信道模塊的設計方案.......................................................3.3接收模塊的設計方案.......................................................四.電臺詳細設計......................................................4.1對音頻輸入與調制的仿真...................................................4.2對指定信噪比信道的仿真...................................................4.3話音信號的解調...........................................................4.3.1 載頻9.8KHz解調...................................................4.3.2 載頻9.9KHz解調...................................................4.3.3 載頻10KHz解調....................................................4.4 原信號和解調后的信號對比................................................4.4.1 原信號和解調后信號波形對比........................................4.4.2 原信號和解調后信號頻率對比........................................五.設計總結..........................................................參考文獻:............................................................附錄:...............................................................一.設計任務與要求
一.設計任務與要求
這個仿真以真實的音頻信號作為輸入,設計一個單邊帶發信機。將基帶信號調制為SSB信號后送入帶通型高斯噪聲信道,加入給定功率的噪聲之后,再送入單邊帶接收機。單邊帶接收機將型號解調下來,通過計算機聲卡將解調信號播放出來試聽效果,從而對信道信噪比與解調音質之間的關系進行主觀測試。現設計一個單邊帶發信機、帶通信道和相應的接收機,參數定位如下值。
1.輸入信號為一個話音信號,采樣率為 8000Hz。話音輸入后首先進行預濾波,濾波器是一個頻率范圍在[300, 3400]Hz的帶通濾波器,其目的是將話音頻頻譜限制在3400Hz以下。單邊帶調制的載波頻率設計為 10kHz,調制輸出上邊帶。要求觀測單邊帶調制前后的信號功率譜。
2.信道是一個帶限高斯噪聲信道,其通帶頻率范圍是[10000, 13500]Hz。能夠根據信噪比 SNR 的要求加入高斯噪聲。
3.接收機采用相干解調方式。為了模擬載波頻率誤差對解調話音音質的影響,相干解調,設本地載波頻率分別為為 9.8kHz,9.9kHz,10kHz。解調濾波器設計為 300~3400Hz的帶通濾波器。
二.開發環境
操作系統:Microsoft Windows 7 Ultimate(64位)交互工具:鍵盤/鼠標 開發工具:MATLAB2010a
三.電臺設計原理及方案
3.1發送模塊的設計方案
有限語音信號可以采用直接用程序讀取,當讀取一次之后,可以把音頻文件保存起來,當用到沒有麥克風的電腦時可以備用,發送的語音信號首先進行希爾比特變化,然后用函數可以進行單邊帶調制,保存單邊帶語音信號。3.2信道模塊的設計方案
單邊帶電臺仿真
讀取發送模塊保存的語音信號,然后加入高斯白噪聲,然后改變信噪比,通常情況下加入的信噪比為20,然后濾波,模擬現實當中的信道傳輸,并保存得到的語音信號。
3.3接收模塊的設計方案
首先讀取信道傳輸過來的語音信號,加入不同頻率的載波,然后解調,并觀察分析不同載波解調出來的語音信號和原語音信號的區別,分析失真度。
四.電臺詳細設計
4.1對音頻輸入與調制的仿真
根據設置的參數,系統中信號最高頻率約為 14kHz。為了較好地顯示調制波形,系統仿真采樣率設為 50kHz,滿足取樣定理。由于話音信號的采樣率為 8000Hz,與系統仿真采樣率不等,因此,在進行信號處理之前,必須將話音的采樣率提高到 50kHz,用插值函數來做這一任務。
先編寫程序將基帶音頻信號讀入,進行[300,3400]Hz的帶通濾波,并將信號采樣率提高到 50kHz,進行單邊帶調制之后,將調制輸出結果保存為 wav 文件,文件名為 SSB_OUT.wav。
圖1 基帶信號和SSB的波形、功率譜
分析調制前后的波形頻率,可以得到SSB調制只是把原來波形搬移到10KHz位置,并
四.電臺詳細設計錯誤!未指定書簽。
沒有改變原來波形的形狀和頻率范圍,說明調制的效果很好。4.2對指定信噪比信道的仿真
信道是一個帶限高斯噪聲信道,其帶通頻率范圍是[10000,13500]Hz.,目前輸入的信噪比SNR為20。仿真指定信噪比信道計算信噪比為20dB時的信道輸出,將結果保存為 Chanel_out.wav 文件。方便以后的實用。
運行結束:計算出的信噪比結果SNR_dB=19.9126
4.3話音信號的解調
4.3.1 載頻9.8KHz解調
接收機采用想干解調方式。為了模擬載波頻率誤差對解調話音音質的影響,社本地載波的頻率為9.8KHz,與發信機載波頻率相差200Hz。解調濾波器設計為300Hz到3400Hz。
圖2 9.8KHz解調后波形和功率譜
解調輸出信號被保存為音頻文件 SSBDemo_OUT9.8KHz.wav,并由 sound 函數播放。聆聽播放解調輸出信號的聲音可知,在20dB信道信噪比條件下,即使解調本地載波頻
四.電臺詳細設計錯誤!未指定書簽。
圖4 9.9KHz解調后波形和功率譜
解調輸出信號被保存為音頻文件 SSBDemo_OUT9.9KHz.wav,并由 sound 函數播放。聆聽播放解調輸出信號的聲音可知,在20dB信道信噪比條件下,即使解調本地載波頻率誤差達到 100Hz,聲音仍然是清晰可懂的。
四.電臺詳細設計錯誤!未指定書簽。
圖7 10KHz解調后波形和功率譜
解調輸出信號被保存為音頻文件 SSBDemo_OUT10KHz.wav,并由 sound 函數播放。聆聽播放解調輸出信號的聲音可知,在解調波和載波頻率相同,10dB信道信噪比條件下,聲音是很清晰的,并且和信噪比為20dB基本沒有差別,耳朵幾乎分辨不出。4.4 原信號和解調后的信號對比 4.4.1 原信號和解調后信號波形對比
單邊帶電臺仿真
圖8 原信號波形與解調后信號波形對比
從波形上來看,三個頻率解調出來的音頻信號波形整體差別不大,要是要仔細看,在低頻部分最后一個頻率解調出來的波形效果最好。4.4.2 原信號和解調后信號頻率對比
圖9 原信號波形與解調后信號頻譜對比
從頻率上來看,三個頻率解調出來的音頻信號波形整體差別不大,在細微處還是有差別的,尤其是在高頻和低頻處,有部分的失真,但是對音頻的整體效果影響不大,最后一個借條出來的頻譜和原信號的頻譜最接近,因此也是最好的解調頻率。
五.設計總結
通過這門實驗使我學習掌握了許多知識。首先是對matlab有了一個全新的認識,其次是對matlab的更多操作和命令的使用有了更高的掌握,最重要的事對matlab的處理能力有了一個更高的飛躍尤其是對相關函數的使用及相關問題的處理。
就對matlab相關的命令操作而言,通過這次實驗的親身操作和實踐,學習掌握了
參考文獻:錯誤!未指定書簽。
許多原本不知道的或者不太熟悉的命令。比如說相關m文件的建立,畫圖用到的標注,配色,坐標控制,同一張圖里畫幾幅不同的圖像,相關參數的設置以及相關函數的調用格式等等。就拿建立一個數學方程而言,通過設置不同的參數達到所需要的要求和結果,而且還可以在不同的窗口建立不同的函數而達到相同的效果。而自己對于矩陣及閉環傳遞函數的建立原本所掌握的知識幾乎為零,而通過這次實驗使我徹底的掌握了相關的命令操作和處理的方法,在這里我們不僅可以通過建立函數和參數來達到目標效果,而且還可以通過可視化的編程達到更快更方便,更簡潔的效果。就拿可視化編程而言原本根本就只是聽說而已罷了,從來就沒有親身去嘗試過,然而現在自己卻可以和容易的通過搭建不同功能木塊來實現相關的函數及功能。這些在原本根本就不敢相信,然而通過學習和實驗親身操作這些原本看似不可能的操作在此就變的輕而易舉的事了。
通過對同一個模塊分析其對應的不同的參數分析圖的建立去分析和解釋其對應的相關功能和技術指標和性能分析是非常重要的,我們不可能只需要建立相關的模塊和功能就說自己掌握了所有的相關知識和技術,真正的技術和知識是怎么去分析和解釋相關的技術指標和功能參數才是重中之重。就此而言,我坦誠的說自己所掌握的還是十分的有限的,但是老師給我們介紹的相關方法和技巧還是十分有效果的,如果自己真的想在這方面有什么建樹對自己以后的要求還是需要更改的要求的,萬不可以就此止步不前,自命不凡,我們還需掌握和了解還有許多許多,我們真正所掌握的只是皮毛,要想取得更大的成績就得不斷的去努力學習和汲取相關的知識和技巧。萬不可自以為傲,裹足不前,matlab真的是個非常強大和有用的工具我們真正的能把它學懂學透的話還是需要下非常大的功夫和努力的。
參考文獻:
[1]張渭濱,陳方,蘇武潯等.Chen-Mobius多路數字通信系統的Matlab仿真[J].系統仿真學報,2007,19(8):1886-1889.DOI:10.3969/j.issn.1004-731X.2007.08.058.[2]劉素心,王汝芳,張廣森等.基于Matlab的通信系統的實驗仿真設計[J].實驗室科學,2008,(3):101-103,105.DOI:10.3969/j.issn.1672-4305.2008.03.043.[3]王峰,丁金林.基于MATLAB/GUI的數字通信系統虛擬實驗平臺的設計[J].南通職業大學學報,2013,27(1):96-100.DOI:10.3969/j.issn.1008-5327.2013.01.026.[4]陳蕾,姚遠程,秦明偉等.自適應抗干擾通信系統中頻譜感知技術研究[J].電視技術,2014,38(5):101-104.單邊帶電臺仿真
[5]梅志紅,鄧文華.基于Matlab與VB集成技術的通信系統仿真軟件的開發[J].計算機仿真,2004,21(6):195-199.DOI:10.3969/j.issn.1006-9348.2004.06.056.[6]范偉,翟傳潤,戰興群等.基于MATLAB的擴頻通信系統仿真研究[J].微計算機信息,2006,22(19):242-244.DOI:10.3969/j.issn.1008-0570.2006.19.086.[7]周曉蘭,張杰.MATLAB在通信系統仿真中的應用[J].計算機技術與發展,2006,16(9):166-168.DOI:10.3969/j.issn.1673-629X.2006.09.057.[8]解偉俊,胡修林,張蘊玉等.基于MATLAB的仿真通信語音庫實現[J].華中理工大學學報,2000,28(2):77-79.DOI:10.3321/j.issn:1671-4512.2000.02.027.附錄:
%FileName:ForSSB.m clc;clear all;%功能,采樣點數40000,采樣率為8000
%jilu = wavrecord(5*8000, 8000, 'double');%wavwrite(jilu, 'GDGvoice8000.wav');[wav, fs] = wavread('GDGvoice8000.wav');%計算聲音時間長度
t_end = 1/fs * length(wav);%仿真系統采樣時間點 Fs = 50000;t = 1/Fs:1/Fs:t_end;%設計300~3400hz的帶通濾波器
[fenzi, fenmu] = butter(3, [300 3400]/(fs/2));%對音頻信號進行濾波
wav = filter(fenzi, fenmu, wav);%輸出濾波后的聲音
wavwrite(wav, 'LVBO_OUT.wav');%利用插值函數將音頻的采樣率提升為50khz
wav = interp1([1/fs:1/fs:t_end], wav, t, 'spline');%音頻信號的希爾伯特變換
wav_hilbert = imag(hilbert(wav));%載波頻率 fc = 10000;%單邊帶調制
附錄:錯誤!未指定書簽。
SSB_OUT = wav.*cos(2*pi*fc*t)10000;% 噪聲功率譜密度值 W/Hz NO = Power_of_noise/bandwidth;Gause_noise = sqrt(NO*Fs/2).* randn(size(in));% 噪聲通道 10~13.5kHz
[num, den] = butter(4, [10000 13500]/(Fs/2));signal_of_filter_out = filter(num, den, in);noise_of_filter_out = filter(num, den, Gause_noise);
單邊帶電臺仿真
SNR_dB = 10*log10(var(signal_of_filter_out)/var(noise_of_filter_out));% 測量得出信噪比 % 信道輸出
out = signal_of_filter_out + noise_of_filter_out;SNR_dB
% FileName:Forjietiao 9.8K.m % clear;Fs=50000;% 讀入信道輸出信號數據
[recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地載波頻率
fc_local1 = 10000-200;% fc_local = 10000-100;% fc_local = 10000;% 本地載波
local_carrier1 = cos(2*pi*fc_local1.*t);% 相干解調
xianggan_out1 = recvsignal.*local_carrier1;% 設計 300~3400Hz 的帶通濾波器
[fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out1 = filter(fenzi, fenmu, xianggan_out1);%sound(demod_out1/max(demod_out1), Fs);
wavwrite(demod_out1, Fs, 'SSBDemod_OUT_9.8k.wav');figure(2);subplot(1, 2, 1);plot(5*demod_out1(53550:53750));axis([0 200-0.3 0.3]);title('解調信號波形');xlabel('時間(樣值數)');subplot(1, 2, 2);psd(5*demod_out1, 10000, Fs);axis([0 2500-20 10]);title('解調信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');
%FileName:Forjietiao 9.9K.m %clear;Fs=50000;% 讀入信道輸出信號數據
[recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地載波頻率
%fc_local = 10000-200;fc_local2 = 10000-100;
附錄:錯誤!未指定書簽。
%fc_local = 10000;% 本地載波
local_carrier2 = cos(2*pi*fc_local2.*t);% 相干解調
xianggan_out2 = recvsignal.*local_carrier2;% 設計 300~3400Hz 的帶通濾波器
[fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out2 = filter(fenzi, fenmu, xianggan_out2);%sound(demod_out2/max(demod_out2), Fs);
wavwrite(demod_out2, Fs, 'SSBDemod_OUT_9.9k.wav');figure(3);subplot(1, 2, 1);plot(5*demod_out2(53550:53750));axis([0 200-0.3 0.3]);title('解調信號波形');xlabel('時間(樣值數)');subplot(1, 2, 2);psd(5*demod_out2, 10000, Fs);axis([0 2500-20 10]);title('解調信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');
%FileName:Forjietiao 10K.m %clear;Fs=50000;% 讀入信道輸出信號數據
[recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地載波頻率
%fc_local = 10000-200;%fc_local = 10000-100;fc_local3 = 10000;% 本地載波
local_carrier3 = cos(2*pi*fc_local3.*t);% 相干解調
xianggan_out3 = recvsignal.*local_carrier3;% 設計 300~3400Hz 的帶通濾波器
[fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out3 = filter(fenzi, fenmu, xianggan_out3);%sound(demod_out/max(demod_out), Fs);
wavwrite(demod_out3, Fs, 'SSBDemod_OUT_10k.wav');figure(4);subplot(1, 2, 1);plot(5*demod_out3(53550:53750));axis([0 200-0.3 0.3]);title('解調信號波形');xlabel('時間(樣值數)');subplot(1, 2, 2);psd(5*demod_out3, 10000, Fs);axis([0 2500-20 10]);title('解調信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');
單邊帶電臺仿真
%插值函數interp1的用法 hours=1:12;temps=[5 8 9 15 25 29 31 30 22 25 27 24];h=1:0.1:12;t=interp1(hours,temps,h,'spline');%(直接輸出將是很多的,spline三次樣條插值)plot(hours,temps,'+',h,t,hours,temps,'r');%作圖 xlabel('hour'),ylabel('degrees celsius');
%filename:Forduibi.m
%將原來信號的頻譜和三次解調出來的頻譜結果作對比,并分析結果 figure(5);subplot(2, 2, 1);psd(wav, 10000, Fs);axis([0 2500-20 10]);title('基帶信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');subplot(2, 2, 2);psd(5*demod_out1, 10000, Fs);axis([0 2500-20 10]);title('9.8KHz解調信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');subplot(2, 2, 3);psd(5*demod_out2, 10000, Fs);axis([0 2500-20 10]);title('9.9KHz解調信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');subplot(2, 2, 4);psd(5*demod_out3, 10000, Fs);axis([0 2500-20 10]);title('10KHz解調信號功率譜');xlabel('頻率/Hz');ylabel('功率譜/(dB)');%將原來信號的波形和三次解調出來的信號波形結果作對比,并分析結果 figure(6);subplot(2, 2, 1);plot(wav(53550:53750));axis([0 200-0.3 0.3]);title('基帶信號波形');xlabel('時間(樣值數)');subplot(2, 2, 2);plot(5*demod_out1(53550:53750));axis([0 200-0.3 0.3]);title('9.8KHz解調信號波形');xlabel('時間(樣值數)');subplot(2, 2, 3);plot(5*demod_out2(53550:53750));axis([0 200-0.3 0.3]);title('9.9KHz解調信號波形');xlabel('時間(樣值數)');subplot(2, 2, 4);plot(5*demod_out3(53550:53750));axis([0 200-0.3 0.3]);title('10KHz解調信號波形');xlabel('時間(樣值數)');
第四篇:通信原理課程設計報告
《通信原理》 課程設計報告
題目:AM超外差收音機的設計及仿真
班 級: 姓 名: 學 號: 指導老師:
2011年6月 引言
課程設計目的 綜合運用信號與系統、數字信號處理的理論知識進行頻譜分析和濾波器設計,通過理論推導得出相應結論,再利用MATLAB作為編程工具進行計算機實現從而加深對所學知識的理解,建立概念。系統介紹(本部分包括對系統的分析,系統仿真結構等)3 系統仿真(本部分包括系統仿真的各種圖形分析,波形,功率譜圖形等分析)系統各模塊的參數及調整參數后的各波形對比 5 心得體會 6 參考文獻引言
超外差式是與直放式相對而言的一種接收方式,超外差式收音機能把接收到的頻率不同的電臺信號都變成固定的中頻信號(465kHz),再由放大器對這個固定的中頻信號進行放大。它的優點是靈敏度高,選擇性好,音質好(通頻帶寬)工作穩定(不容易自激),它的缺點是鏡像干擾(比接收頻率高兩個中頻的干擾信號)較大,存在假響應(變頻電路的非線性),但這并不影響它的廣泛應用,現在大部分的收音機都是超外差的。
2系統介紹
無線廣播的接收儀器為收音機。在晶體管收音機中,多采用磁性天線作為接收信號的天線。某臺載頻電磁波在LC回路中產生并聯諧振,次級線圈中感生出高頻調幅信號,收到信號,磁性天線回路,作用是選臺,并將信號通過繞在磁棒上的次級線圈耦合到變頻級,收音機原理框圖:
收音機的原理框圖
超外差式收音機利用混頻電路使本機振蕩信號與接收到的電臺信號進行非線性混頻,使二者的差值始終為465KHZ,這樣就降低了放大電路的信號頻率,可以有效克服直接放大式收音機的缺點。由于本機振蕩信號的頻率始終比接收到的電臺信號頻率超出465KHZ,故把這種收音機叫做超外差式收音機。電路如圖
超外差接收機原理圖 AM超外差收音機系統的設計框圖及仿真
廣播發射端使用三不同的掃頻信號源,分別用925KHZ,965KHZ,1005KHZ的載波進行AM
調制本振頻率為1430KHZ時,可將965KHz載波信號解調,經過處理可以還原出原始信號。
它包括了AM調制部分,三路AM調制信號的混合,混頻部分,中放部分,解調檢波部分。仿真結果頻譜圖:
.(1)中頻信號頻譜圖如圖
心得體會
通過這次課程設計,我更加深刻地學會了用仿真軟件systemview仿真一般的簡單的通信電路,掌握了初步的電路分析技巧及波形分析能力。通過仿真通信電路,我學習到的理論知識得到了一次切實的應用,也更加深層次的了解了這些通信電路的產生原理及過程,我的學習熱情也也得到了提
高。
參考文獻
1《通信原理》(2006年第6版)樊昌信、曹麗娜編著 2《數字信號處理教程》(2006年第3版)程佩青
第五篇:通信原理課程設計報告
目錄
一、摘要 ????????????????????3
二、課程設計的目的與要求 ????????????4(1)課程設計的目的(2)課程設計的要求
三、FM調制解調系統的設計 ???????????4(1)FM調制模型的建立(2)調制過程的分析
(3)高斯白噪聲信道統計特性(4)FM解調模型的建立(5)解調過程的分析
(6)調頻系統的抗噪聲性能分析
四、系統的仿真實現 ???????????????14
(1)程序源代碼(2)仿真圖
五、總結及心得體會 ???????????????18
六、參考文獻 ??????????????????18
七、評分表 ???????????????????19
一、摘要
我們習慣上用 FM 來指一般的調頻廣播(76~108MHz,在我國87.5~108MHz、日本為76~90MHz),事實上 FM 也是一種調制方式,即使在短波范圍的 27~30MHz 之間,做為業余電臺、太空、人造衛星通訊應用的波段,也有采用調頻(FM)方式的。FM的頻率單位是 MHz(百萬赫茲),FM廣播的頻率較高,能量較大。
頻率調制(FM)在電子音樂合成技術中,是最有效的合成技術之一,它最早由美國斯坦福大學約翰.卓寧(JohnChowning)博士提出。20世紀60年代,卓寧在斯坦福大學開始嘗試使用不同類型的顫音,他發現當調制信號的頻率增加并超過某個點的時候,顫音效果就在調制過的聲音里消失了,取而代之的是一個新的更復雜的聲音。
今天看來,卓寧當時只是在完成無線電廣播發射中最常用的調頻技術(也就是FM廣播)。但卓寧的偶然發現,卻使這種傳統的調頻技術在聲音合成方面有了新的用武之地。當卓寧領悟了FM調制的基本原理后,他立即開始著手研究FM理論合成技術,并在1966年成為使用FM技術制作音樂的第一人。
基本原理
音頻信號的改變往往是周期性的,一個最容易理解音頻調制技術的范例是小提琴和揉弦,揉弦通過手指和手腕在琴弦上快速顫動,使琴弦的長度發生快速變化,從而最終影響小提琴聲音的柔和度。與“FM無線電波”相同,“FM合成理論”同樣也有著發音體(載體)和調制體兩個元素。發音體或稱載波體,是實際發出聲音的頻率振蕩器;調制體或稱調制器,負責調整變化載波所產生出來的聲音。載波頻率、調制體頻率以及調制數值大小,是影響FM合成理論的重要因素。
最基本的FMinstrument包括兩個正弦曲線振蕩器,一個是穩定不變的載波頻率fc(CarrierFrequnecy)振蕩器;一個是調制頻率fm(ModulationFrequency)振蕩器。載波頻率被加在調制振蕩器的輸出上。載波振蕩器是一個帶有fc頻率的簡單的正弦波頻率,當調制器發生時,來自調制振蕩器的信號,即帶有fm頻率的正弦波,驅使載波振蕩器的頻率向上或向下變動,比如,一個250Hz正弦波的調制波,調制一個1000Hz正弦波的載波,那么意味著載波所產生的1000Hz的頻率,每秒要接受250次的影響產生的調制。制體和載波體都是有頻率、振幅、波形的周期性或準周期性振蕩器。
在頻率調制技術中,調制體的振幅同樣對頻率調制起關關鍵作用,調制體振幅影響著載波頻率調制后變化的深度,假如調制信號的振幅是0,就不會出現任何調制,因此說,就像在振幅調制(AM)中,調制體的頻率對載波體的振幅有影響一樣,在頻率調制(FM)中,載波的頻率變化同樣受調制體振幅大小變化的影響。
因此,在頻率調制過程中,我們可以發現:1.調制體的頻率影響載波體的頻率的速度變化。2.調制體的振幅影響載波頻率的深度變化。3.調制體的波形(或音色)影響載波頻率的波形變化。4.載波體的振幅在頻率調制過程中保持不變。
二、課程設計的目的與要求
(1)課程設計的目的
通過本課程設計的開展,使學生能夠掌握通信原理中模擬信號的調制和解調、數字基帶信號的傳輸、數字信號的調制和解調,模擬信號的抽樣、量化和編碼與信號的最佳接收等原理。
(2)課程設計的要求
要求能夠熟練地用matlab語言編寫基本的通信系統的的應用程序,進行模擬調制系統,數字基帶信號的傳輸系統的建模、設計與仿真。
所有的仿真用matlab程序實現(即只能用代碼的形式,不能用simulink實現)系統經過的信道都假設為高斯白噪聲信道。模擬調制要求用程序畫出調制信號,載波,已調信號、解調信號的波形。
三、FM調制解調系統的設計
(1)FM調制模型的建立
圖1 調制模型
其中,m(t)為基帶調制信號,設調制信號為
m(t)?Acos(2?fmt)
設正弦載波為
c(t)?cos(2?fct)
信號傳輸信道為高斯白噪聲信道,其功率為?2。
(2)調制過程的分析
所謂頻率調制(FM),是指瞬時頻率偏移隨調制信號m(t)成比例變化,即
d?(t)?Kfm(t)dt式中,Kf為調頻靈敏度(rad)。
(s?V)這時相位偏移為
?(t)?Kf?m(?)d?
將之帶入 Sm(t)=Acos[ωc+ψ(t)] 則可得到調頻信號為
?sFM(t)?Acos???ct?Kf?m(?)d??
%*********產生調制信號(已調信號)的M文件************ clear %初始化 close all %****************************************************************** dt=0.001;%設定時間步長 t=0:dt:1;%產生時間向量 am=5;%設定調制信號幅度 fm=5;%設定調制信號頻率 mt=am*cos(2*pi*fm*t);%生成調制信號 fc=50;%設定載波頻率 ct=cos(2*pi*fc*t);%生成載波 kf=10;%設定調頻指數 int_mt(1)=0;for i=1:length(t)-1 int_mt(i+1)=int_mt(i)+mt(i)*dt;end %調制,產生已調信號 sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);%****************************************************************** sn=20;%設定信躁比
db=am^2/(2*(10^(sn/10)));%計算對應的高斯白躁聲的方差
n=sqrt(db)*randn(size(t));%生成高斯白躁聲 nsfm=n+sfm;%生成含高斯白躁聲的已調信號(信號通過信道傳輸)
%****************************************************************** for i=1:length(t)-1 %接受信號通過微
分器處理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;end diff_nsfmn = abs(hilbert(diff_nsfm));%hilbert變換,求絕對值得到瞬時幅度(包絡檢波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn-zero;
%******************************************************************
disp('按任意鍵可以看到原調制信號.載波信號和已調信號的時域圖')pause
figure(1)
subplot(3,1,1);plot(t,mt);
%繪制調制信號的時圖
xlabel('時間t');title('調制信號的時域圖');subplot(3,1,2);plot(t,ct);
%繪制載波的時域圖
xlabel('時間t');title('載波的時域圖');subplot(3,1,3);plot(t,sfm);
%繪制已調信號的時域圖
xlabel('時間t');title('已調信號的時域圖');5
調制信號的時域圖50-500.10.20.30.40.50.6時間t載波的時域圖0.70.80.9110-100.10.20.30.50.6時間t已調信號的時域圖0.40.70.80.9150-500.10.20.30.40.5時間t0.60.70.80.9
1圖2 調制信號、載波、已調信號的時域圖
(3)高斯白噪聲信道統計特性
在老師的指導下,了解了MATLAB本身自帶了標準高斯分布的內部函數randn。randn函數產生的隨機序列服從均值為m?0,方差?2?1的高斯分布。
因此,利用randn函數可以非常簡單快捷地產生出服從高斯分布的隨機序列 %**********用于統計高斯白噪聲的M文件************* t=1:100000;%時間向量 y=randn(1,100000);%產生高斯白噪聲 ymax=max(y);%得到噪聲的最大值 ymin=min(y);%得到噪聲的最小值 dt=(ymax-ymin)/100;%生成統計區間 count=zeros(1,100);%產生計數矩陣
for i=1:1000 %循環實現對高斯白噪聲的統計 for b=0:99999 if y(i)>=ymin+b*dt&y(i)<=ymin+(b+1)*dt count(b+1)=count(b+1)+1;end end
end subplot(2,1,1);plot(t,y);
%繪制高斯白噪聲時域圖 title('標準高斯分布的噪聲信號');subplot(2,1,2);plot(1:length(count),count)%繪制高斯白噪聲的統計特征 title('標準高斯分布的噪聲信號統計特征');
標準高斯分布的噪聲信號50-5012345678910x 104標準高斯分布的噪聲信號統計特征***05060708090100圖
3高斯白噪聲信號及其統計特征
由于課程設計要求中假設了系統經過的信道都假設為高斯白噪聲信道。所以可以設正弦波通過加性高斯白噪聲信道后的信號為
r(t)?Acos(?ct??)?n(t)
其中,白噪聲n(t)的取值的概率分布服從高斯分布。故其有用信號功率為
A2S?
2噪聲功率為
N??2
信噪比SN滿足公式 B?10log10(SN)則可得到公式
A22?10
B10??2
我們可以通過這個公式方便的設置高斯白噪聲的方差。
在本課程設計與仿真的過程中,我選擇了B=20db和40db兩種不同信噪比以示區別,其時域圖如圖4和圖5。
含小信噪比高斯白噪聲已調信號的時域圖***00-1000-2000-3000-***00500時間t***0圖4 含小信噪比高斯白噪聲已調信號的時域圖
含大信噪比高斯白噪聲已調信號的時域圖***00-1000-2000-3000-***00500時間t***0
圖5 含大信噪比高斯白噪聲已調信號的時域圖
(4)FM解調模型的建立
圖6 調頻信號的非相干解調
(5)解調過程的分析
調制信號的解調分為相干解調和非相干解調兩種。相干解調僅僅適用于窄帶調頻信號,且需同步信號,故應用范圍受限;而非相干解調不需同步信號,且對于NBFM信號和WBFM信號均適用,因此是FM系統的主要解調方式。在本課程設計與仿真的過程中我們選擇用非相干解調方法進行解調。
非相干解調器由限幅器、鑒頻器和低通濾波器等組成,其方框圖如圖6所示。限幅器的作用是消除信道中噪聲和其他原因引起的調頻波的幅度起伏,帶通濾波器(BDF)是讓調頻信號順利通過,同時濾除帶外噪聲及高次諧波分量。微分器的作用是把幅度恒定的調頻波SFM(t)變成幅度和頻率都隨調制信號m(t)變化的調幅調頻波Sd(t).具體過程如下:
設輸入調頻信號為
St(t)?SFM(t)?Acos(?ct?Kf?m(?)d?)
??t微分器的作用是把調頻信號變成調幅調頻波。微分器輸出為
dSi(t)dSFM(t)Sd(t)??dtdt
????c?Kfm(t)?sin(?ct?Kf?m(?)d?)??t包絡檢波的作用是從輸出信號的幅度變化中檢出調制信號。包絡檢波器輸出為
So(t)?Kd??c?Kmf(t)??Kd?c?KdKmf(t)
Kd稱為鑒頻靈敏度(VHz),是已調信號單位頻偏對應的調制信號的幅度,經低通濾波器后加隔直流電容,隔除無用的直流,得
mo(t)?KdKfm(t)
%*********微分器通過程序實現************** for i=1:length(t)-1 %接受信號通過微分器處理 diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;end diff_nsfmn = abs(hilbert(diff_nsfm));%hilbert變換,求絕對值得到瞬時幅度(包絡檢波)
注:針對hilbert變化,在開始的時候我一直不知道怎樣去做解調的最后1個步驟,在老師的指導下,查閱了相關資料以后,了解了hilbert變化的性質如下:90度的相移而幅頻響應為“1”的一個相應函數在通信中應用很廣泛如正交調制(數字)如果我把hilbert變換記為H[]
那么 H[cos(x)]=-sin(x)這就是很基本的hilbert變換 //同樣可得H[sin(x)]=cos(x)// 在數字通信時代,hilbert變換也存在數字hilbert變換
簡單的說就是在頻域上正頻率部分作負九十度相移,而負頻率作正九十度相移。時域表達式是一個積分形式.通過M文件繪制出兩種不同信噪比解調的輸出波形如下:
含小信噪比高斯白噪聲解調信號的時域圖543210-1-2-3-4-500.10.20.30.40.5時間t0.60.70.80.91圖7 含小信噪比高斯白噪聲解調信號的時域圖
含大信噪比高斯白噪聲解調信號的時域圖43210-1-2-3-4-500.10.20.30.40.5時間t0.60.70.80.91
圖8 含大信噪比高斯白噪聲解調信號的時域圖
(6)調頻系統的抗噪聲性能分析
如前所述,調頻信號的解調有相干解調和非相干解調兩種。相干解調僅適用于窄帶調頻信號,且需同步信號;而非相干解調適用于窄帶和寬帶調頻信號,而且不需同步信號,因而是FM系統的主要解調方式,所以這里僅僅討論非相干解調系統的抗噪聲性能,其分析模型如圖9所示。
圖9 調頻系統抗噪聲性能分析模型
圖中,n(t)是均值為零,單邊功率譜密度為n0的高斯白噪聲,經過帶通濾波器后變為窄帶高斯噪聲ni(t)。限幅器是為了消除接收信號在幅度上可能出現的畸變,帶通濾波器的作用是抑制信號帶寬以外的噪聲。先來計算解調器的輸入信噪比,設輸入調頻信號為
SFM(t)?Acos(?ct?Kf?m(?)d?)
??t故其輸入信號功率為
A2Si?
2輸入噪聲功率為
Ni?noBFM
式中:BFM 為調頻信號的帶寬,即帶通濾波器(BDF)帶寬。
則輸入信噪比為
SiA2? Ni2BFM在輸入信噪比足夠大的條件下,信號和噪聲的相互作用可以忽略,這時可以把信號和噪聲分開來算,這里,我們可以得到FM非相干解調器輸出端的輸出信噪比為
222So3AKfm(t)? 3No8?2nofm上式中,A為載波的振幅,Kf為調頻器靈敏度,fm為調制信號m(t)的最高
頻率,no為噪聲單邊功率譜密度。
我們如若考慮m(t)為單一頻率余弦波時的情況,可得到解調器的制度增益為
3GFM?No?m2fSi2nofmNi
考慮在帶寬調頻時,信號帶寬為
2SoA2BFM?2(mf?1)fm?2(?f?fm)
則可以得到
GFM?3m2)f(mf?1
在調幅制中,由于信號帶寬是固定的,無法進行帶寬與信噪比的互換,這也正是在抗噪聲性能方面調頻系統優于調幅系統的重要原因。由此我們得到如下結論:在大信噪比情況下,調頻系統的抗噪聲性能將比調幅系統優越,且其優越程度將隨傳輸帶寬的增加而提高。
但是,FM系統以帶寬換取輸出信噪比改善并不是無止境的。隨著傳輸帶寬的增加,輸出噪聲功率增大,在輸入信號功率不變的條件下,輸入信噪比下降,當輸入信噪比降到一定程度時就會出現門限效應,輸出信噪比將急劇惡化。
四、系統的仿真實現
(1)程序源代碼
clear %初始化 close all %****************************************************************** dt=0.001;%設定時間步長 t=0:dt:1;%產生時間向量 am=5;%設定調制信號幅度 fm=5;%設定調制信號頻率 mt=am*cos(2*pi*fm*t);%生成調制信號 fc=50;%設定載波頻率 ct=cos(2*pi*fc*t);%生成載波 kf=10;%設定調頻指數 int_mt(1)=0;for i=1:length(t)-1 int_mt(i+1)=int_mt(i)+mt(i)*dt;end %調制,產生已調信號 sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);%****************************************************************** sn=20;%設定信躁比
db=am^2/(2*(10^(sn/10)));%計算對應的高斯白躁聲的方差
n=sqrt(db)*randn(size(t));%生成高斯白躁聲 nsfm=n+sfm;%生成含高斯白躁聲的已調信號(信號通過信道傳輸)
%****************************************************************** for i=1:length(t)-1 %接受信號通過微分器處理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;end diff_nsfmn = abs(hilbert(diff_nsfm));%hilbert變換,求絕對值得到瞬時幅度(包絡檢波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn-zero;%******************************************************************
disp('按任意鍵可以看到原調制信號.載波信號和已調信號的時域圖')pause
figure(1)
subplot(3,1,1);plot(t,mt);
%繪制調制信號的
時圖
xlabel('時間t');title('調制信號的時域圖');subplot(3,1,2);plot(t,ct);
%繪制載波的時域圖
xlabel('時間t');title('載波的時域圖');subplot(3,1,3);plot(t,sfm);
%繪制已調信號的時域圖
xlabel('時間t');title('已調信號的時域圖');
%******************************************************************
disp('按任意鍵可以看到已調信號和含小信噪比高斯白噪聲的已調信號和解調信號的時域圖')pause
figure(2)
subplot(3,1,1);plot(t,sfm);
%繪制已調信號的時域圖
xlabel('時間t');title('已調信號的時域圖');
subplot(3,1,2);plot(1:length(diff_nsfm),diff_nsfm);%繪制含小信噪比高斯白噪聲已調信號的時域圖 xlabel('時間t');title('含小信噪比高斯白噪聲已調信號的時域圖');subplot(3,1,3);plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');xlabel('時間t');%繪制含小信噪比高斯白噪聲解調信號的時域圖
title('含小信噪比高斯白噪聲解調信號的時域圖');
%******************************************************************
disp('按任意鍵可以看到載波信號.已調信號和含大信噪比高斯白噪聲的已調信號和解調信號的曲線的時域圖')pause
figure(3)
sn1=40;%設定信躁比
db1=am^2/(2*(10^(sn1/10)));%計算對應的高斯白躁聲的方差
n1=sqrt(db1)*randn(size(t));%生成高斯白躁聲 nsfm1=n1+sfm;%生成含高斯白躁聲的已調信號(信號通過信道傳輸)
%****************************************************************** for i=1:length(t)-1 %接受信號通過微分器處理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;end diff_nsfmn1 = abs(hilbert(diff_nsfm1));%hilbert變換,求絕對值得到瞬時幅度(包絡檢波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn1-zero;%****************************************************************** subplot(4,1,1);plot(t,ct);
%繪制載波的時域圖
xlabel('時間t');title('載波的時域圖');subplot(4,1,2);plot(t,sfm);
%繪制已調信號的時域圖
xlabel('時間t');title('已調信號的時域圖');subplot(4,1,3);plot(1:length(diff_nsfm1),diff_nsfm1);%繪制含大信噪比高斯白噪聲已調信號的時域圖 xlabel('時間t');title('含大信噪比高斯白噪聲已調信號的時域圖');subplot(4,1,4);plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');xlabel('時間t');%繪制含大信噪比高斯白噪聲解調信號的時域圖
title('含大信噪比高斯白噪聲解調信號的時域圖');
(2)仿真圖
Figure(1)
調制信號的時域圖50-500.10.20.30.40.50.6時間t載波的時域圖0.70.80.9110-100.10.20.30.50.6時間t已調信號的時域圖0.40.70.80.9150-500.10.20.30.40.5時間t0.60.70.80.91Figure(2)
已調信號的時域圖50-5
00.10.50.60.70.8時間t含小信噪比高斯白噪聲已調信號的時域圖0.20.30.40.9150000-***00800時間t含小信噪比高斯白噪聲解調信號的時域圖***0100-1000.10.20.30.40.5時間t0.60.70.80.91
Figure(3)
載波的時域圖10-100.10.20.30.50.6時間t已調信號的時域圖0.40.70.80.9150-500.10.50.60.70.8時間t含大信噪比高斯白噪聲已調信號的時域圖0.20.30.40.9150000-***00800時間t含大信噪比高斯白噪聲解調信號的時域圖***0100-1000.10.20.30.40.5時間t0.60.70.80.91
五、總結及心得體會
這次課程設計歷時一個星期五天的課程,在整個設計過程中,遇到了很多意想不到的困難,其主要原因是對各個部分要實現的功能考慮不夠周全,還好,在老師的幫助,解決了一些我不懂的問題,比如:如何用代碼而非函數實現積分過程以及微分過程,如何實現對高斯白噪聲的特性進行統計,如何實現包絡檢波的過程,以及hilbert變換等等問題,最終通過與陳老師積極溝通,以及查閱網上和書本資料把這些問題都一一解決了。通過本次課程設計一定程度上提高了我對MATLAB軟件的使用能力,對通信原理這一門課程也有了比較深刻的了解。最后,由于所學知識不夠全面,課程設計在很多方面還有待完善,在以后的學習過程中,會掌握更多知識,力求做到更好。
六、參考文獻
1、樊昌信等 通信原理(第六版)。北京:國防工業出版社;
2、羅軍輝等 MATLAB7.0在數字信號處理中的應用。北京:機械工業出版社;
3、劉衛國等 MATLAB程序設計教程 北京:中國水利水電出版社;
4、達新宇等 通信原理實驗與課程設計 北京:郵電大學出版社。