第一篇:通信原理數字頻帶傳輸系統課程設計
目 錄
1技術要求..................................................................1 2基本原理..................................................................1 2.1 數字基帶傳輸系統的組成..............................................1 2.2 基帶傳輸的常用碼型..................................................2 2.3 無碼間串擾的基帶傳輸特性............................................3 2.3.1 無碼間串擾的條件...............................................3 2.3.2 余弦滾降特性...................................................3 2.4 眼圖................................................................4 3 使用Matlab建立模型描述...................................................5 3.1 Simulink簡介........................................................5 3.2 設計思路............................................................6 3.2.1 信源模塊.......................................................6 3.2.2 收發濾波器和信道模塊...........................................7 3.2.3 抽樣判決模塊...................................................9 3.2.4 誤碼率計算模塊.................................................9 3.2.5 整體設計電路圖................................................10 4 使用System View建立模型描述.............................................10 4.1 System View簡介....................................................10 4.2 設計思路...........................................................11 5 模塊功能分析.............................................................12 5.1 用Simulink設計系統.................................................12 5.2 用System View設計系統..............................................13 6 調試過程及結論...........................................................15 6.1 Simulink調試.......................................................15 6.1.1 Simulink調試結果..............................................15 6.1.2 Simulink調試結論..............................................17 6.2 System View調試....................................................17 6.2.1 System View調試結果...........................................17
武漢理工大學《通信原理》課程設計說明書
6.2.2 System View調試結論...........................................18 6.3 兩種方案性能對比...................................................19 7 心得體會.................................................錯誤!未定義書簽。8 參考文獻.................................................................19
武漢理工大學《通信原理》課程設計說明書
數字基帶通信系統的設計
1技術要求
設計一個數字基帶傳輸系統,要求:(1)設計一個數字基帶傳輸系統的結構;
(2)根據通信原理,設計出各個模塊的參數(例如碼速率,濾波器的截止頻率等);(3)用Matlab或SystemView 實現該數字基帶通信系統;(4)觀察仿真并進行波形分析;(5)系統的性能評價。
2基本原理
2.1 數字基帶傳輸系統的組成
在數字傳輸系統中,其傳輸的對象通常是二進制數字信號,它可能是來自計算機、電傳打字機或其它數字設備的各種數字脈沖,也可能是來自數字電話終端的脈沖編碼調制(PCM)信號。這些二進制數字信號的頻帶范圍通常從直流和低頻開始,直到某一頻率 m f,我們稱這種信號為數字基帶信號。在某些有線信道中,特別是在傳輸距離不太遠的情況下,數字基帶信號可以不經過調制和解調過程在信道中直接傳送,這種不使用調制和解調設備而直接傳輸基帶信號的通信系統,我們稱它為基帶傳輸系統。而在另外一些信道,特別是無線信道和光信道中,數字基帶信號則必須經過調制過程,將信號頻譜搬移到高頻處才能在信道中傳輸,相應地,在接收端必須經過解調過程,才能恢復數字基帶信號。我們把這種包括了調制和解調過程的傳輸系統稱為數字載波傳輸系統。
系統基帶波形被脈沖變換器變換成適應信道傳輸的碼型后,就送入信道,一方面受到信道特性的影響,使信號產生畸變;另一方面信號被信道中的加性噪聲所疊加,造成信號的隨即畸變。因此,在接收端必須有一個接收濾波器,使噪聲盡可能受到抑制,為了提高系統的可靠性,在安排一個有限整形器和抽樣判決器組成的識別電路,進一步排除噪聲干擾和提取有用信號。對于抽樣判決,必須有同步信號提取電路。在基帶傳輸中,主要采用位同步。同步信號的提取方式采用自同步方式(直接法)。同步系統性能的好壞將直接影
武漢理工大學《通信原理》課程設計說明書
響通信質量的好壞,甚至會影響通信能否正常進行。
數字基帶傳輸系統主要由信道信號形成器、信道、接收濾波器和抽樣判決器組成,其模型如圖1所示。
圖1 數字基帶傳輸系統方框圖
信道信號形成器:基帶傳輸系統的輸入是由終端設備或編碼器產生的脈沖序列,它不一定適合直接在信道中傳輸。信道信號形成器的作用就是把原始基帶信號變換成適合于信道傳輸的基帶信號,這種變換主要是通過碼型變換和波形變換來實現的,其目的是與信道匹配,便于傳輸,減小碼間串擾,利于同步提取和抽樣判決。
信道:允許基帶信號通過的媒質。信道的傳輸特性通常不滿足無失真傳輸條件,恒參信道如(明線、同軸電纜、對稱電纜、光纖通道、無線電視距中繼、衛星中繼信道)對信號傳輸的影響主要是線形畸變;隨參信道如(短波電離層反射、對流層散射信道等)對信號傳輸的影響主要有頻率彌散現象(多徑傳播)、頻率的選擇性衰落。信道的線性噪聲和加性噪聲的影響。在通信系統的分析中,常常把噪聲n(t)等效,集中在信道中引入。
接收濾波器:主要作用是濾除帶外噪聲,對信道特性均衡,使輸出的基帶波形有利于抽樣判決。
抽樣判決器:它是在傳輸特性不理想及噪聲背景下,在由位定時脈沖控制的特殊點對接收濾波器的輸出波形進行抽樣判決,以恢復或再生基帶信號。
自同步法的同步提取電路:有兩部分組成,包括非線型變換處理電路和窄帶濾波器或鎖相環。非線型變換處理電路的作用是使接收信號或解調后的數字基帶信號經過非線型變換處理電路后含有位同步分量或位同步信息。窄帶濾波器或鎖相環的作用是濾除噪聲和其他頻譜分量,提取純凈的位同步信號。
2.2 基帶傳輸的常用碼型
為了在傳輸信道中獲得優良的傳輸特性,一般要將信碼信號變化為適合于信道傳輸特性的傳輸碼,即進行適當的碼型變換。
武漢理工大學《通信原理》課程設計說明書
對傳輸碼型的要求如下:
(1)傳輸信號的頻譜中不應有直流分量,低頻分量和高頻分量也要小;(2)碼型中應包含定時信息,有利于定時信息的提取,盡量減小定時抖動;(3)功率譜主瓣寬度窄,以節省傳輸頻帶;
(4)不受信息源統計特性的影響,即能適應于信息源的變化;
(5)具有內在檢錯能力,即碼型應具有一定規律性,以便于利用這一規律性進行宏觀監測;
(6)編譯碼簡單,以降低通信延時和成本。
常用的碼型有AMI碼、HDB3碼、曼徹斯特雙相碼、差分雙相碼、密勒碼、CMI碼等。2.3 無碼間串擾的基帶傳輸特性
所謂碼間串擾是由于系統傳輸總特性(包括收、發濾波器和信道的特性)不理想,導致前后碼元的波形畸變、展寬,并使前面波形出現很長的拖尾,蔓延到當前碼元的抽樣時刻上,從而對當前碼元的判決造成干擾。
2.3.1 無碼間串擾的條件
無碼間串擾的時域條件為:h(t)的抽樣值除了在t=0時不為零外,在其他所有的抽樣點上均為零,就是不存在碼間串擾。表達式如下:
h(kTs)?
1k=0
h(kTs)?0
k為其他整數
(1)
無碼間串擾的頻域條件為:
Heq(ω)?∑H(ω?2π i RB)?常數
(2)
2.3.2 余弦滾降特性
升余弦滾降傳輸特性H(ω)可表示為
H(?)?H0(?)?H1(?)
(3)
H(ω)是對截止頻率ωb的理想低通特性H0(ω)按H1(ω)的滾降特性進行“圓滑”得到的,H1(ω)對于ωb具有奇對稱的幅度特性,其上、下截止角頻率分別為ωb+ω
1、ωb-ω1。它的選取可根據需要選擇,升余弦滾降傳輸特性H1(ω)采用余弦函數,此時H(ω)為
武漢理工大學《通信原理》課程設計說明書
升余弦滾降函數: h?t??sin?pi*T/Tb?cos(2*pi*T/Tb)
(5)*2pi*T/Tb1?(2*?T/Tb)(4)
其中α為滾降系數。α值越大,h(t)的拖尾衰減越快,對定位精度要求越低。但是滾降系數使帶寬增大,所以頻帶利用率低。
2.4 眼圖
眼圖是指利用實驗的方法估計和改善(通過調整)傳輸系統性能時在示波器上觀察到的一種圖形。觀察眼圖的方法是:用一個示波器跨接在接收濾波器的輸出端,然后調整示波器掃描周期,使示波器水平掃描周期與接收碼元的周期同步,這時示波器屏幕上看到的圖形像人的眼睛,故稱為“眼圖”。從“眼圖”上可以觀察出碼間串擾和噪聲的影響,從而估計系統優劣程度。另外也可以用此圖形對接收濾波器的特性加以調整,以減小碼間串擾和改善系統的傳輸性能。眼圖的“眼睛”張開的大小反映著碼間串擾的強弱。“眼睛”張的越大,且眼圖越端正,表示碼間串擾越小;反之表示碼間串擾越大。當存在噪聲時,噪聲將疊加在信號上,觀察到的眼圖的線跡會變得模糊不清。若同時存在碼間串擾,“眼睛”將張開得更小。與無碼間串擾時的眼圖相比,原來清晰端正的細線跡,變成了比較模糊的帶狀線,而且不很端正。噪聲越大,線跡越寬,越模糊;碼間串擾越大,眼圖越不端正。眼圖對于展示數字信號傳輸系統的性能提供了很多有用的信息:可以從中看出碼間串擾的大小和噪聲的強弱,有助于直觀地了解碼間串擾和噪聲的影響,評價一個基帶系統的性能優劣;可以指示接收濾波器的調整,以減小碼間串擾。
眼圖的一般描述如圖2所示。
圖2 眼圖的一般描述
武漢理工大學《通信原理》課程設計說明書
對于該圖可獲得以下信息:
(1)最佳抽樣時刻應在“眼睛”張開最大的時刻。
(2)對定時誤差的靈敏度可由眼圖斜邊的斜率決定。斜率越大,對定時誤差就越靈敏。
(3)在抽樣時刻上,眼圖上下兩分支陰影區的垂直高度,表示最大信號畸變。(4)眼圖中央的橫軸位置應對應判決門限電平。
(5)在抽樣時刻上,上下兩分支離門限最近的一根線跡至門限的距離表示各相應電平的噪聲容限,噪聲瞬時值超過它就可能發生錯誤判決。
(6)對于利用信號過零點取平均來得到定時信息的接收系統,眼圖傾斜分支與橫軸相交的區域的大小,表示零點位置的變動范圍,這個變動范圍的大小對提取定時信息有重要的影響。使用Matlab建立模型描述
3.1 Simulink簡介
Simulink是Matlab最重要的組件之一,它提供一個動態系統建模、仿真和綜合分析的集成環境。在該環境中,無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出復雜的系統。Simulink具有適應面廣、結構和流程清晰及仿真精細、貼近實際、效率高、靈活等優點,并基于以上優點Simulink已被廣泛應用于控制理論和數字信號處理的復雜仿真和設計。
Simulink是用于動態系統和嵌入式系統的多領域仿真和基于模型的設計工具。對各種時變系統,包括通訊、控制、信號處理、視頻處理和圖像處理系統,Simulink提供了交互式圖形化環境和可定制模塊庫來對其進行設計、仿真、執行和測試。
Simulink模塊庫按功能進行分類,包括以下8類子庫:Continuous(連續模塊)、Discrete(離散模塊)、Function&Tables(函數和平臺模塊)、Math(數學模塊)、Nonlinear(非線性模塊)、Signals&Systems(信號和系統模塊)、Sinks(接收器模塊)、Sources(輸入源模塊)。
啟動Simulink只需在Matlab窗口中輸入指令Simulink即可打開。
武漢理工大學《通信原理》課程設計說明書
3.2 設計思路
根據數字基帶傳輸系統方框圖,在設計時整個系統可分為信源模塊、收發濾波器和信道模塊、抽樣判決輸出模塊、誤碼率計算模塊這四個模塊,下面介紹每個模塊的設計思路。
3.2.1 信源模塊
常見的基帶信號波形有:單極性波形、雙極性波形、單極性歸零波形和雙極性歸零波形。雙極性波形可用正負電平的脈沖分別表示二進制碼“0”和“1”,故當“1”和“0”等概率出現時無直流分量,有利于在信道中傳輸,且在接收端恢復信號的判決電平為0,抗干擾能力較強。故單極性波形的極性單一,雖然易于用TTL,CMOS電路產生,但直流分量大,要求傳輸線路具有直流傳輸能力,不利于信道傳輸。歸零信號的占空比小于1,即:電脈沖寬度小于碼元寬度,每個有電脈沖在小于碼元長度內總要回到零電平,這樣的波形有利于同步脈沖的提取。
基于以上考慮,本次課程設計我采用的碼型為曼徹斯特雙相碼,其編碼規則為:將二進制碼“1”編成“10”,將二進制碼“0”編成“01”。在這里采用了二進制雙極性碼,則將“1”編成“+1-1”碼,將“0”編成“-1+1”碼。采用Simulink中的Bernoulli Binary Generator(不歸零二進制碼生成器)、Unipolar to Bipolar Converter(單極性向雙極性轉換器)、Pulse Generator(脈沖生成器)、Constant(常數源模塊)、Add(加法器)、Product(乘法器)、Scope(示波器)構成曼徹斯特碼生成電路。模塊連接圖如圖3所示。
圖3 信源模塊連接圖
武漢理工大學《通信原理》課程設計說明書
Bernoulli Binary Generator用于產生“1”和“0”的隨機信號,經過Unipolar to Bipolar Converter變為雙極性信號;Pulse Generator用于產生占空比為1/2的單極性歸零脈沖(2020),經過Add加法器減一后成為雙極性脈沖(+1-1+1-1)。兩路雙極性信號作為乘法器的輸入,相乘后結果為:第1路不歸零碼的1碼與第2路(+1-1)相乘得到(+1-1),第1路-1碼與第2路(+1-1)相乘得到(-1+1)碼,形成了曼徹斯特碼。
該模塊參數設置:原信號頻率設置為1000Hz,抽樣脈沖信號頻率為2000Hz。因為由前面的原理可知在原信號的一個碼元寬度對應抽樣的兩個碼元寬度。具體參數設計如圖4所示。Bernoulli Binary Generator設置(左),Pulse Generator設置(右)。
圖4 參數設置1
3.2.2 收發濾波器和信道模塊
本模塊由發送濾波器、傳輸信道、接受濾波器組成。1)發送、接受濾波器的設計
基帶系統設計的核心問題是濾波器的選取,為了使系統沖激響應h(t)拖尾收斂速度加快,減小抽樣時刻偏差造成的碼間干擾問題,要求發送濾波器應具有升余弦滾降特性;要得到最大輸出信噪比,就要使接受濾波器特性與其輸入信號的頻譜滿足共軛匹配式如下:
GR(w)?GT(w)e^(?jwt0)(6)
?GT(w)(7)同時系統函數滿足H(w)?GT(w)GR(w)考慮在t0時刻取樣,上述方程改寫為:
GR(w)于是有:
GR(w)?GT(w)?[H(w)]*(8)
因此,在構造系統時收發濾波器均采用平方根升余弦濾波器。
武漢理工大學《通信原理》課程設計說明書
2)信道的設計
信道是允許基帶信號通過的媒介,通常為有線信道。信道的傳輸特性通常不滿足無失真傳輸條件,且含有加性噪聲。因此本次系統設計采用高斯白噪聲信道。
為了減小碼間干擾,在最大輸出信噪比時刻輸出信號,減小噪聲干擾,傳輸模塊由Upsample(內插函數)、Discrete Filter(根升余弦發送濾波器)、AWGN Channel(高斯信道)、Discrete Filter(根升余弦接收濾波器)組成。
信號通過Upsample升采樣在相同的采樣時間內將頻率變為原來的10倍,再依次通過發送濾波器、信道、接受濾波器傳輸信號。
整個模塊的連接圖如圖5所示。
圖5 收發濾波器和信道模塊連接圖
該模塊參數設置:根升余弦滾降收、發濾波器的參數為rcosine(2,10,'fir/sqrt',0.5,10);參數的含義為rcosine(Fd,Fs,type_flag,r,delay),其中Fd/2為截止頻率,fir/sqrt為均方根FIR濾波器,delay為延時時間。信道采用高斯信道,噪聲大小為50dB,此數值為最佳噪聲大小。具體參數設置如圖6所示。左為濾波器參數,右為信道參數。
圖6 參數設置2
武漢理工大學《通信原理》課程設計說明書
3.2.3 抽樣判決模塊
由于采用的為雙極性碼,所以抽樣電平為“0”,抽樣判決規則為:大于“0”判“1”,小于“0”判“-1”。
利用Pulse Generator(脈沖生成器)、Product(乘法器)、Relay(滯環比較器)、Triggered Subsystem(觸發子系統)、Downsample(內插函數)構成抽樣判決電路,并通過Pulse Generator(脈沖生成器)、Constant(常數)、Add(加法器)、Product(乘法器)對接收到的曼徹斯特碼進行解碼。整個抽樣判決模塊電路圖如圖7所示。
圖7 抽樣判決模塊電路圖
如圖可知本模塊的設計思路:將接收到的信號與脈沖信號相乘,相當于進行了采樣,之后通過Relay比較器進行判決,大于“0”判“1”,小于“0”判“-1”;之后通過Triggered Subsystem(觸發子系統)進行時機采集,每段時間內只采集一次,最后通過內插函數恢復到原來的頻率上。此時得到的為曼徹斯特碼,要得到原來的雙極性碼必須經過解碼電路,即圖中所示:按照曼徹斯特碼的編寫過程對其進行反變換,應為+1與-1本身極性相反所以逆變換的過程就是其編碼的過程。
該模塊參數設置:脈沖信號頻率為20000Hz,因為采樣點頻率需要遠大于信號頻率;Delay判決門限電平為“0”,大于“0”判“+1”,小于“0”判“-1”。參數設置在此不再截圖。
3.2.4 誤碼率計算模塊
為了計算整個系統的性能,在最后加了一個誤碼率計算的模塊,因為測試下來最后的解碼相對于原碼有一定的延遲,所以對原碼加上一個延遲函數再對于解碼做誤碼率的計
武漢理工大學《通信原理》課程設計說明書
算。模塊電路圖如圖8所示。
圖8 誤碼率計算模塊
3.2.5 整體設計電路圖
綜合了以上的四個模塊,并在相應的地方添加示波器以便于波形的觀察,在接受濾波器后添加眼圖來觀察系統是否存在碼間串擾和噪聲,用以判別系統的整體性能。系統整體設計電路圖如圖9所示。
圖9 系統整體設計電路圖 使用System View建立模型描述
4.1 System View簡介
System View 是一個用于現代工程與科學系統設計及仿真的動態系統分析平臺。從濾
武漢理工大學《通信原理》課程設計說明書
波器設計、信號處理、完整通信系統的設計與仿真,直到一般的系統數學模型建立等各個領域,System View 在友好而且功能齊全的窗口環境下,為用戶提供了一個精密的嵌入式分析工具。
利用System View,可以構造各種復雜的模擬、數字、數模混合系統和各種多速率系統,因此,它可用于各種線性或非線性控制系統的設計和仿真。用戶在進行系統設計時,只需從System View配置的圖標庫中調出有關圖標并進行參數設置,完成圖標間的連線,然后運行仿真操作,最終以時域波形、眼圖、功率譜等形式給出系統的仿真分析結果。
4.2 設計思路
System View整個系統框圖較為簡單,信號直接通過與隨機噪聲相加的信道,再通過巴特沃斯濾波器,再經過抽樣判決輸出。整個系統框圖如圖10所示。
圖10 System View整個系統框圖
參數設置如下:
Token0:Source――Noise/PN――Pn Seg(幅度1V,頻率10HZ,電平數2,偏移0V,產生單極性不歸零碼,隨機產生)
Token1:在專業庫中選擇Comm——Processors——P shape(Select pulse Shape= Rectangular,Time offset=0,Width=0.01s,產生矩形脈沖基帶信號)
Token3:Source――Noise/PN――Gauss Noise(均值為0,均方差為0.1的高斯白噪聲)Token4:Operator――Filters/systems――Liner Sys Filters(Analog,Butterworth,階數5,截止頻率10Hz)
Token5:Operator――Sample/Hold――Sample(Sample rate=10HZ,用于對濾波后的波 形進行抽樣,抽樣速率等于碼元速率)
Token6:Operator――Sample/Hold――Hold(Hold Value=Last Sample,Gain=1,對抽 樣后的值延時一段時間,得到恢復后的數字基帶信號)
武漢理工大學《通信原理》課程設計說明書
Token7:Operator——Logic——Compare(Select comparison:a>=b True Output=1V,False Output=-1V,對抽樣值進行判決比較,得到輸出碼元波形)
Token8:產生正弦信號,作為比較器的另一個比較輸入(振幅=0V,頻率=10Hz)這里采用的濾波器為巴特沃斯數字濾波器,其特性也具有尾部收斂速度較快的特點,只要設置相應的階數和頻率,就可以消除信道中的噪聲和碼間串擾,但依舊會有延時產生,但延時較小,可以忽略。在System View中依舊可以采用眼圖來觀察系統的性能設計是否滿足傳輸條件。整個系統的設計思想跟Simulink基本一致,只是在System View中運用的較為直白,這里不再敘述。模塊功能分析
5.1 用Simulink設計系統
模塊的分類以及功能設計已在第3部分中加以說明,下面結合每部分的波形來對相應模塊進行分析。
1)信源模塊:調試點波形如圖11所示。
圖11 信源模塊調試點波形
由波形可知該模塊可產生曼徹斯特雙相碼。
2)收發濾波器和信道模塊:本模塊包含了兩個濾波器和一個信道,為了展現個部分功能,共引入了4路信號波形,用來觀察信號從發送到接收的整個狀態,包括延時、波形轉換,同時可以觀察到濾波器和信道的性能是否滿足設計要求。這四個信號波形分別為發送濾波器前的發送信號
1、經過發送濾波器的信號
2、經過信道的信號
3、經過接收濾波器的信號4。調試點波形如圖12所示。
武漢理工大學《通信原理》課程設計說明書
圖12 收發濾波器和信道模塊調試點波形
通過各點波形可以看出發送接收濾波器相比較前一個波形均有延時,經過高斯信道后波形明顯增加了噪聲,有一些雜波,在經過接受濾波器后被消除。該模塊大大減弱了信號傳輸過程中所會遇到的碼間串擾和噪聲問題的影響。這一性能可通過眼圖觀察出來。
3)抽樣判決模塊:將信道接收到的信號通過抽樣判決輸出,各點波形如圖13所示。
圖13 抽樣判決模塊調試點波形
通過各點的波形可以看出在接收到的信號經過判決門限判決后需要經過不止一次的分時分頻,為了結果的更精確,需進行多次采集,最后可判決出正確的波形。
5.2 用System View設計系統
采用此種方法的中間點波形如圖14所示。
武漢理工大學《通信原理》課程設計說明書
圖14 System View各點調試波形圖
通過各個調試點的波形可以看出其對應的功能,因為前面基本介紹,這里不再述說。通過波形可以發現,信號在通過巴特沃斯濾波器后產生了一些延時,這可能是由濾波器本身的特性而導致的。而通過采樣后的波形可以看出明顯的門限電平為“0”,可以判別出信號的原始碼型。
武漢理工大學《通信原理》課程設計說明書 調試過程及結論
6.1 Simulink調試
6.1.1 Simulink調試結果
系統最終解碼與原碼波形如圖15所示。
圖15 最終調試波形1
在原碼后添加一個10ms的延時函數器件,輸出波形如圖16所示。
圖16 最終調試波形2
武漢理工大學《通信原理》課程設計說明書
用眼圖來觀察信道傳輸后的性能,在接收濾波器后添加眼圖,視圖如圖17所示。
圖17 眼圖示意圖
最后輸出信號的頻譜圖如圖18所示。
圖18 輸出信號頻譜圖
誤碼率的計算值如圖19所示,此時高斯噪聲的大小約為50dB。
武漢理工大學《通信原理》課程設計說明書
圖19 誤碼率計算
6.1.2 Simulink調試結論
通過波形比較、眼圖以及信號頻譜圖可以得出以下結論:
1)系統解碼相對原碼延時了10ms的時長,延時主要受兩個升余弦濾波器的影響; 2)在信道傳輸信號后,眼圖的眼睛張開較大,沒有過零點失真,噪聲也基本沒有,說明信道模塊設計性能基本滿足要求;
3)系統的誤碼率為0.004498,在2001個碼元中有9個錯碼,誤碼率很小但不為零,說明在解碼的過程中受到了系統噪聲的干擾,由于誤碼率較小,基本可認為達到了設計要求。
6.2 System View調試
6.2.1 System View調試結果
系統最后輸出的解碼與原碼波形如圖20所示。
圖20 最終調試波形
武漢理工大學《通信原理》課程設計說明書
在濾波器后觀察眼圖,視圖如圖21所示。
圖21 眼圖示意圖
輸出信號頻譜圖如圖22所示。
圖22 輸出信號頻譜圖
6.2.2 System View調試結論
通過波形和眼圖,可以得出以下結論:
1)系統解碼相對原碼有延時,但時長很短,為10e-3級別,延時主要受巴特沃斯濾波器的影響;
2)通過對眼圖的觀察,可以發現眼圖張開較大,但有少部分雜亂的線,說明存在噪聲,但通過波形來看,幾乎沒有失真。
3)整個系統性能調節達到設計要求。
武漢理工大學《通信原理》課程設計說明書
6.3 兩種方案性能對比
通過調試觀察波形、眼圖以及頻譜圖,對比兩個方案的總體系統性能,可以發現,在Simulink中設計的系統性能較為良好,我認為原因在于濾波器的設計,在Simulink中采用的是升余弦濾波器,更有助于實現無碼間串擾傳輸,巴特沃斯濾波器雖然尾部收斂也比較快,但是對于數字基帶傳輸的性能不如升余弦濾波器。參考文獻
[1] 樊昌信,曹麗娜.《通信原理(第6版)》.北京:國防工業出版社,2008.[2] 陳星,劉斌.SystemView通信原理實驗指導.北京航空航天大學電子工程系內部講義,1997.
第二篇:基于FPGA的頻帶傳輸系統設計
通信系統EDA設計
基于FPGA(cyclone系列EP1C6Q240C)的時分多路頻帶傳輸系統設計
(VHDL語言描述)
指導教師:陳德宏老師
班級:通信072 姓名:汪雙承
學號:079064305 同組人員:肖慧,吳敏根
陳飛,冉彪
設計時間:二零一零年六月底
目錄
一、課題背景…………………………
二、任務要求…………………………
三、原理說明…………………………
四、程序與仿真………………………
五、心得體會…………………………
一、課題背景
FPGA是現場可編程門陣列的簡稱,FPGA的應用領域最初
為通信領域,特別是在無線通信領域里,由于具有極強的實時性,使使其對話音進行實時處理成為可能;由于它是通過面向芯片結構指令的軟件編程來實現其功能的,因而僅修改軟件而不需改硬件平臺就可以改進系統原有設計方案或原有功能,因而具有極大的靈活性;又由于FPGA芯片并非專門為某種功能設計的,因而使用范圍廣、產量大、價格可以降到很低。但目前,隨著信息產業和微電子技術的發展,可編程邏輯嵌入式系統設計技術已經成為信息產業最熱門的技術之一,應用范圍遍及航空航天、醫療、通訊、網絡通訊、安防、廣播、汽車電子、工業、消費類市場、測量測試等多個熱門領域。并隨著工藝的進步和技術的發展,向更多、更廣泛的應用領域擴展。越來越多的設計也開始以ASIC轉向FPGA,FPGA正以各種電子產品的形式進入了我們日常生活的各個角落。
在完成了通信原理和vhdl語言的學習后,為了理論聯系實際,為了緊跟時代的步伐,作為通信專業的學生就有責任去學習和掌握FPGA技術在通信領域的應用。故開展了這次通信系統EDA課程設計。
二、任務要求
1、項目名稱:時分多路數字電話頻帶傳輸系統的設計與開發
(基于FPGA cyclone系列EP1C6Q240C)
2、系統設計指標:
(A)64KB/S的A律PCM數字話音編譯碼器的開發設計
(B)PCM 30/32一次群時分復接與分接器的開發設計(C)正交相對四相移相鍵控QDPSK調制器的開發設計
3、系統框圖:
4、各功能模塊技術要求 A、PCM編譯碼器參數指標
(1)符合ITU-T G.711建議
(2)PCM編碼器輸入信號為:
一個13位邏輯矢量的均勻量化值:D0,D1…D12 其中:D0為極性位,取值范圍在-4096~+4096之間; 一個占空比為1/32的8K/S的取樣時鐘信號; 一個占空比為50%的2.048KB/S的合路時鐘信號;
(3)PCM編碼器輸出信號為:
一個8位邏輯矢量的13折線非均勻量化值:C0,C1…C7 其中:C0為極性位.C0=1為正,C0=0為負; 一個占空比為1/32的8K/S的取樣時鐘信號; 一個占空比為50%的2.048KB/S的合路時鐘信號;
(4)PCM譯碼器輸入信號為:
一個8位邏輯矢量的13折線非均勻量化值:C0,C1…C7 其中:C0為極性位.C0=1為正,C0=0為負; 一個占空比為1/32的8K/S的取樣時鐘信號; 一個占空比為50%的2.048KB/S的合路時鐘信號;(5)PCM譯碼器輸出信號為:
一個13位邏輯矢量的均勻量化值:D0,D1…D12 其中:D0為極性位,取值范圍在-4096~+4096之間; 一個占空比為1/32的8K/S的取樣時鐘信號; 一個占空比為50%的2.048KB/S的合路時鐘信號;
B、時分多路參數指標:
(1)符合 ITU-T G.704 建議
(2)
16幀,2.0 ms復幀結構F0F1F2F3F4F5F6F7F8F9F10F11F12F13F14F1532路時隙,256 bit,125 ?s幀結構TS***2******262728293031幀同步時隙偶幀TS0×0011011話路時隙(CH1 ~ CH15)信令時隙00001A211話路時隙(CH16 ~CH29)CH30幀同步信號488 ns復幀同步信號F1abcda備用比特bcd3.91 ?s奇幀TS0×1A111111CH1CH
1(3)時分復接器輸入信號為:
一個8位數據總線D7~D0(即30路PCM話音并行數據
公用總線 ;
一個一次群串行位同步時鐘2.048MB/S信號;(4)時分分接器輸出信號為:
一個一次群串行合路數據流2.048MB/S信號;
一個30位邏輯矢量時隙脈沖信號(每位對應一路時隙脈
沖);
一個一次群串行位同步時鐘2.048MB/S信號; C、QDPSK解調器參數指標:
(1)QDPSK輸入信號為:
一位2.048Mb/s串行合路數據;
一位8.192Mb/s輸出時鐘CLK(2)QDPSK輸出信號為:
一個17位邏輯矢量載波抽樣值輸出;
一位8.192Mb/s輸出時鐘CLK
(3)提示:載波頻率設為8.192MHz,每個載波周期8個樣點
Cos:
07fffH,06d40H,03fffH,012bfH,0000H,012bfH,03fffH,06d40H
sin: 03fffH,06d40H, 07fffH,06d40H,03fffH,012bfH,0000H,012bfH-cos: 0000H,012bfH,03fffH,06d40H,07fffH,06d40H,03fffH,012bfH-sin:
03fffH,012bfH,0000H,012bfH,03fffH,06d40H, 07fffH,06d40H
三、原理說明
A、A律PCM編譯碼規則
說明:由表可知,編碼由十位信號可知最高位為符號位,其他最先出現1的高位決定了編碼的段落碼,緊接著這個高位的后四位即段落碼。譯碼時亦有此規律而來。
B、一次群時分復、分接器原理
C、QDPSK調制器原理(1)原理框圖
說明:將QDPSK看成兩路2DPSK分別調制,最后合成(2)差分編碼
a、b到c、d滿足差分編碼關系
四、程序與仿真
--PCM編碼,符合ITU-T G.711建議
--一個輸入為13位邏輯矢量的均勻量化值,一個8000HZ占空比為1/32的取樣脈沖--輸出為八位邏輯矢量的A律PCM編碼,和一個8000HZ的時鐘
--雖然設計要求輸入輸出2.048MB/S時鐘,個人覺得用不上,故舍去了--quartus軟件是以下標大的位為高位,所以十三位輸入采用D(12)為符號位
library ieee;--程序調用的庫是IEEE庫
use ieee.std_logic_1164.all;--定義了std_logic,std_logic_vector類型
entity PCMencode is
port(clkin :in std_logic;--輸入時鐘8000HZ
D
:in std_logic_vector(12 downto 0);--std_logic_vector全拼standard_logic標準邏輯矢量
C
:out std_logic_vector(7 downto 0);
clkout:out std_logic);end PCMencode;
architecture behavior of PCMencode is begin
process(clkin,D)begin if clkin'event and clkin='1' then
if D(11)='1' then C<=D(12)&'1'&'1'&'1'&D(10)&D(9)&D(8)&D(7);
elsif D(10)='1' then C<=D(12)&'1'&'1'&'0'&D(9)&D(8)&D(7)&D(6);
elsif D(9)='1' then C<=D(12)&'1'&'0'&'1'&D(8)&D(7)&D(6)&D(5);
elsif D(8)='1' then C<=D(12)&'1'&'0'&'0'&D(7)&D(6)&D(5)&D(4);
elsif D(7)='1' then C<=D(12)&'0'&'1'&'1'&D(6)&D(5)&D(4)&D(3);
elsif D(6)='1' then C<=D(12)&'0'&'1'&'0'&D(5)&D(4)&D(3)&D(2);
elsif D(5)='1' then C<=D(12)&'0'&'0'&'1'&D(4)&D(3)&D(2)&D(1);
else C<=D(12)&'0'&'0'&'0'&D(4)&D(3)&D(2)&D(1);
end if;end if;end process;clkout<=clkin;end behavior;
--PCM譯碼
--輸入A律八位PCM編碼,占空比為1/32的8000HZ的去取樣時鐘
--輸出為十三位邏輯矢量均勻量化值,占空比為1/32的8000HZ的去取樣時鐘 library ieee;use ieee.std_logic_1164.all;entity PCMdecode is port(clkin:in std_logic;
C:in std_logic_vector(7 downto 0);
D:out std_logic_vector(12 downto 0);
clkout:out std_logic);
end PCMdecode;architecture behavior of PCMdecode is signal temp:std_logic_vector(2 downto 0);begin
temp <= C(6 downto 4);
process(clkin)
begin
if clkin'event and clkin='1' then
case temp is
when “111”=>D<=C(7)&“1”&C(3 downto 0)&“1000000”;
when “011”=>D<=C(7)&“01”&C(3 downto 0)&“100000”;
when “101”=>D<=C(7)&“001”&C(3 downto 0)&“10000”;
when “001”=>D<=C(7)&“0001”&C(3 downto 0)&“1000”;
when “110”=>D<=C(7)&“00001”&C(3 downto 0)&“100”;
when “010”=>D<=C(7)&“000001”&C(3 downto 0)&“10”;
when “100”=>D<=C(7)&“0000001”&C(3 downto 0)&“1”;
when “000”=>D<=C(7)&“0000000”&C(3 downto 0)&“1”;
when others=>D<=null;
end case;
end if;end process;clkout<=clkin;end behavior;
--時分復接器
--輸入一個8位數據總線(即30路PCM話音并行數據共用總線),--輸入一個一次群串行位同步時鐘2.048MB/S信號
--輸出一個一次群串行合路數據流2.048MB/S信號;一個一次群串行位同步時鐘2.048MB/S信號
--一個5位時隙地址總線信號(即30路PCM話音并行地址總線)--(其說明當前輸入的數據總線上是哪個時隙數據)
--此程序要特別注意器件的選擇,該程序選擇cyclone系列EP1C6Q240C8時得到所期望的結果
--若選用其他器件譬如Stratix II系列的器件會丟失第一路信息
library ieee;--程序所調用的庫是IEEE庫
use ieee.std_logic_1164.all;--定義了std_logic,std_logic_vector類型
use ieee.std_logic_unsigned.all;--用到基于std_logic,std_logic_vector類型的--無符號的算術運算 entity fujieqi is port(clkin: in std_logic;
datain: in std_logic_vector(7 downto 0);--30路語音信號輸入
dataout:out std_logic;
--輸出串行數據流
ads:out std_logic_vector(4 downto 0);--五位時隙總線信號
clkout:out std_logic);--輸出時鐘
end fujieqi;architecture behav of fujieqi is shared variable tscount:std_logic_vector(8 downto 0);--時隙計數器 shared variable bitcount:std_logic_vector(2 downto 0);--位計數器 begin p1:process(clkin)--位時鐘和時隙計數 begin if clkin'event and clkin='1' then
if bitcount=“111” then
bitcount:=“000”;
tscount:=tscount+'1';
else bitcount:=bitcount+'1';
end if;end if;end process p1;p2:process(clkin)variable regester:std_logic_vector(7 downto 0);--定義一個內部的寄存器,--用于寄存輸入的八位數據
variable temp:std_logic_vector(7 downto 0);--定義一個中間變量,用于數據的串行輸出 begin if clkin'event and clkin='1' then
ads<=tscount(4 downto 0);--記錄當前輸出的是第幾路信號
if bitcount=“000” then
if tscount(5 downto 0)=“000000” then
regester:=“10011011”;
--雙幀計數為0時傳幀同碼
elsif tscount(5 downto 0)=“100000” then
regester:=“11111111”;
--雙幀計數為32時傳勤務信息
elsif tscount=“000010000” then
regester:=“00001111”;
--復幀計數為16時傳復幀同步碼
elsif tscount(4 downto 0)=“10000” then
regester:=“11111111”;
--除F0幀外,每幀的第16時隙都傳信令信息
else regester:=datain;
--不滿足以上條件時傳語音信號
end if;
temp:=regester;
--并串轉換
dataout<=temp(7);--時隙的第一個時鐘上升沿輸出最高位
else
temp(7 downto 1):=temp(6 downto 0);--右移
dataout<=temp(7);--接著發其他位
end if;end if;clkout<=clkin;--輸出時鐘 end process p2;end behav;
--QDPSK調制器,這里采用把一路QDPSK信號分為正交的兩路2PSK分別調制,最后合成--輸入一位2.048MB/S合路數據流,一位8.192MB/S輸入時鐘,內部進程所需時鐘由分頻而得
--輸出一位8.192MB/S時鐘,一個17位邏輯矢量載波抽樣值輸出
--由于FPGA器件適合做乘法運算,所以相干載波由八個樣點表示,那么乘法運算轉為適合 FPGA--器件加法運算
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;--定義了有符號與無符號類型,及基于這些類型上的算術運算 use ieee.std_logic_unsigned.all;entity qdpsk is port(clkin8192: in std_logic;
datain:in std_logic;
clkout8192:out std_logic;
dataout: out std_logic_vector(16 downto 0));end qdpsk;architecture behavior of qdpsk is signal clk1024: std_logic;signal clk2048: std_logic;shared variable a,b,c,d: std_logic;signal n:std_logic_vector(2 downto 0);--n為一個三位的計數器,用于控制八個樣點的輸出 signal q:std_logic_vector(1 downto 0);--c&d結合狀態
signal count:std_logic_vector(2 downto 0);--對輸入時鐘計數,利用該三位計數器分頻得到1.024mb/s的時鐘
begin p1:process(clk1024)--串并轉換
variable tem:std_logic_vector(2 downto 0);begin if(clk2048'event and clk2048='1')then if tem(0)='0' then
a:=tem(1);--偶數位
b:=tem(2);--奇數位
tem:=datain&“01”;else tem:=datain&tem(2 downto 1);end if;end if;end process p1;
--p1:process(clk1024)--p1進程也可以這么寫,這樣少一個分頻,更加簡潔--variable xx:std_logic_vector(1 downto 0);--begin--if clk1024'event and clk1024='1' then--
xx(1):=din;--elsif(clk1024'event and clk1024='0')then--
xx(0):=din;--
b<=xx(0);a<=xx(1);--end if;--end process p1;
p2:process(clk1024)--差分編碼 variable temp:std_logic;begin temp:=(c xor d);if clk1024'event and clk1024='1' then
if temp='0' then
c:=not(b xor c);
d:=a xor d;
else
c:=a xor c;
d:=not(b xor d);
end if;
end if;end process p2;p3:process(clkin8192)--計數和分頻并根據c&d的狀態輸出已調信號 begin
if clkin8192'event and clkin8192='1' then
count<=count+'1';
clk1024<=count(2);
clk2048<=count(1);
if count=“000”then
n<=“000”;q<=c&d;
else n<=n+'1';q<=q;
end if;end if;if clkin8192'event and clkin8192='1' then if q=“00” then case n is when “000” => dataout<=“***10”;when “001” => dataout<=“***00”;when “010” => dataout<=“***10”;when “011” => dataout<=“***11”;when “100” => dataout<=“***11”;when “101” => dataout<=“***10”;when “110” => dataout<=“***11”;when “111” => dataout<=“***11”;when others=>null;end case;elsif q=“01” then case n is when “000” => dataout<=“***10”;when “001” => dataout<=“***11”;when “010” => dataout<=“***11”;when “011” => dataout<=“***10”;when “100” => dataout<=“***11”;when “101” => dataout<=“***11”;when “110” => dataout<=“***10”;when “111” => dataout<=“***00”;when others=>null;end case;elsif q=“10” then case n is when “000” => dataout<=“***11”;when “001” => dataout<=“***11”;when “010” => dataout<=“***10”;when “011” => dataout<=“***00”;when “100” => dataout<=“***10”;when “101” => dataout<=“***11”;when “110” => dataout<=“***11”;when “111” =>dataout<=“***10”;when others=>null;end case;elsif q=“11” then case n is when “000” => dataout<=“***11”;when “001” => dataout<=“***10”;when “010” => dataout<=“***11”;when “011” => dataout<=“***11”;when “100” => dataout<=“***10”;when “101” => dataout<=“***00”;when “110” => dataout<=“***10”;when “111” => dataout<=“***11”;when others=>null;end case;end if;end if;end process p3;clkout8192<=clkin8192;end behavior;
--時分分接程序
--同步碼捕獲三次后方確認同步完成,若失步三次后重新捕獲
--輸入一個一次群串行合路數據流2.048MB/S信號,一個一次群串行位同步時鐘2.048MB/S信號
--輸出一個一次群串行合路數據流2.048MB/S信號,一個30位邏輯矢量時隙脈沖信號(每位對應一路時隙脈沖)--一個一次群串行位同步時鐘2.048MB/S信號
--輸出串行數據流分別于A1……A31相與即可得到各路話音信號
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity fenjieqi is port(datain,clkin:in std_logic;--輸入2.048MB/S的合路數據流,輸入--串行位同步時鐘2.048MB/S
A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A17,A18, A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31:out std_logic;--輸出30位邏輯矢量時隙脈沖信號,與dataout相與的結果就是所選擇的一路語音--輸出
clkout,dataout:out std_logic);--輸出串行數據流和輸出時鐘 end fenjieqi;
architecture behave of fenjieqi is signal regester,singlecount:std_logic_vector(7 downto 0):=“00000000”;--regester為八位移位寄存器用于捕獲同步碼,singlecount為單幀計數器
signal doublecount:std_logic_vector(8 downto 0):=“000000000”;--雙幀計數器以位為單位 signal catch:std_logic:='0';--同步碼捕捉狀態標志0表捕捉態,1表示同步態
signal syncount,lostcount:std_logic_vector(1 downto 0):=“00”;--同步計數器以位為單位--與失步計數器
begin
P1:process(clkin)--利用移位寄存器暫存當前輸入碼,敏感信號為時鐘上升沿--即當時鐘上升沿到達時該進程執行一次
begin if clkin'event and clkin='1' then--時鐘上升沿有效暫存輸入數據
regester<=regester(6 downto 0)&datain;end if;end process P1;
P2:process(clkin)--同步碼捕捉,同步保持比較
begin if clkin'event and clkin='0' then--時鐘下降沿有效驗證是否為同步碼
--及驗證落后于暫存剛好半個時鐘周期,敏感信號為時鐘下降沿,即時鐘下降沿到達一次程序執行一次
doublecount<=doublecount+1;singlecount<=doublecount(7 downto 0)+1;--借用雙幀第八位單幀計數
if catch='0' then
--catch為0時為捕捉態
if syncount=“00” then
if regester=“10011011” then
syncount<=syncount+1;doublecount<=“000000111”;
--表示第一次捕捉到同步碼,將其次數加一,并且讓輸出變為第八位
end if;
elsif doublecount=“000000110” then--已捕捉到同步碼的同時驗證捕獲
if regester=“10011011” then
if syncount=“10” then catch<='1';syncount<=“00”;
--驗證同步次數達到3次時轉為同步狀態
else syncount<=syncount+1;
end if;
else syncount<=“00”;--驗證不是同步碼時轉為重新捕獲狀態
end if;
end if;
else
--catch為1,同步態時,同步保持比較
if doublecount=“000000110” and regester/=“10011011” then
--表示同步時驗證不是同步碼
if lostcount=“10” then catch<='0';lostcount<=“00”;
--驗證失步次數達到三次時轉為捕捉狀態
else lostcount<=lostcount+1;
end if;
end if;
end if;end if;end process P2;
P3:process(clkin,singlecount,catch)--時鐘上升沿有效,譯碼輸出 begin if clkin'event and clkin='1' then
if catch='1' then
dataout<=datain;
if singlecount>=“00000111”and singlecount<=“00001110”then A1<='1';else A1<='0';end if;
if singlecount>=“00001111”and singlecount<=“00010110”then A2<='1';else A2<='0';end if;
if singlecount>=“00010111”and singlecount<=“00011110”then A3<='1';else A3<='0';end if;
if singlecount>=“00011111”and singlecount<=“00100110”then A4<='1';else A4<='0';end if;
if singlecount>=“00100111”and singlecount<=“00101110”then A5<='1';else A5<='0';end if;
if singlecount>=“00101111”and singlecount<=“00110110”then A6<='1';else A6<='0';end if;
if singlecount>=“00110111”and singlecount<=“00111110”then A7<='1';else A7<='0';end if;
if singlecount>=“00111111”and singlecount<=“01000110”then A8<='1';else A8<='0';end if;
if singlecount>=“01000111”and singlecount<=“01001110”then A9<='1';else A9<='0';end if;
if singlecount>=“01001111”and A10<='0';end if;
if singlecount>=“01010111”and A11<='0';end if;
if singlecount>=“01011111”and A12<='0';end if;
if singlecount>=“01100111”and A13<='0';end if;
if singlecount>=“01101111”and A14<='0';end if;
if singlecount>=“01110111”and A15<='0';end if;
if singlecount>=“10000111”and A17<='0';end if;
if singlecount>=“10001111”and A18<='0';end if;
if singlecount>=“10010111”and A19<='0';end if;
if singlecount>=“10011111”and A20<='0';end if;
if singlecount>=“10100111”and A21<='0';end if;
if singlecount>=“10101111”and A22<='0';end if;
if singlecount>=“10110111”and A23<='0';end if;
if singlecount>=“10111111”and A24<='0';end if;
if singlecount>=“11000111”and A25<='0';end if;
if singlecount>=“11001111”and A26<='0';end if;
if singlecount>=“11010111”and A27<='0';end if;
if singlecount>=“11011111”and A28<='0';end if;
if singlecount>=“11100111”and A29<='0';end if;
if singlecount>=“11101111”and
singlecount<=“01010110”then singlecount<=“01011110”then singlecount<=“01100110”then
singlecount<=“01101110”then singlecount<=“01110110”then singlecount<=“01111110”then singlecount<=“10001110”then singlecount<=“10010110”then singlecount<=“10011110”then singlecount<=“10100110”then singlecount<=“10101110”then singlecount<=“10110110”then singlecount<=“10111110”then singlecount<=“11000110”then singlecount<=“11001110”then singlecount<=“11010110”then singlecount<=“11011110”then singlecount<=“11100110”then singlecount<=“11101110”then singlecount<=“11110110”then
A10<='1';else A11<='1';else A12<='1';else
A13<='1';else A14<='1';else A15<='1';else A17<='1';else A18<='1';else A19<='1';else A20<='1';else A21<='1';else A22<='1';else A23<='1';else A24<='1';else A25<='1';else A26<='1';else A27<='1';else A28<='1';else A29<='1';else A30<='1';else A30<='0';end if;
if singlecount>=“11110111”and A31<='0';end if;
end if;end if;end process P3;clkout<=clkin;end behave;
singlecount<=“11111110”then
A31<='1';else
+
五、心得體會
這次課程設計老師十三周布置任務,我是我所在小組的組長。那時通信原理的書還有好幾章沒怎么看,VHDL語言我自己又沒選,所以一開始壓力就很大。雖然十二周就已經把vhdl語言看了些,但quartus平臺還是不熟悉。十三周期中考試,十四周從網上下了些fpga的開發教程,熟悉了quartus軟件,熟悉了一些小的經典程序的編寫。雖然做了這些前期準備,自己真正開始課程設計的時候還是遇到了不少的困難。通信原理的書上的原理基本理解,但把它運用到課程設計中去,還是有困難。譬如說pcm編碼書上用的是逐次逼近法編碼,但所使用的fpga器件的編程與這個有很大不同,顯的更加簡單。再如QDPSK調制,雖然基本原理和書上一樣,但由于是FPGA器件,把載波相乘轉化成了載波抽樣。讓我認識到理論到實踐還有很長的路要走。當作做完課程設計回頭看書,反而更加清晰了。學工科就是如此,實踐往往能讓自己理解的更深刻,前期的倫理理解也很重要,不然不知如何下手。編程是實在的,我一直有種畏懼感,因為實踐的機會少,也沒什么頭緒,這次編程,通過團隊的合作,通過資料的參考,反復的調試仿真,讓我找到可編程的一種激情,雖然程序編的不是很好,還有很多毛病,但我了解的這個流程,我比以前更加喜歡編程,也有了努力地方向。編程看再多的程序不如自己編個小程序,這才是提高編程能力的方法,要有個小項目,要盡量自己寫程序。團隊成員的幫助也相當重要,能發現你不能發現的問題。總之,這次課程設計收獲頗多。自己的編程能力亟待加強!
第三篇:通信原理課程設計---2FSK數字調制系統仿真和分析
課
程
設
課程設計名稱:
專 業 班 級 : 學 生 姓 名 : 學
號 :
指 導 教 師 : 課程設計時間:
計
需求分析
二進制頻移鍵控(2FSK)數字調制系統:
1、主要功能:對信號編碼形成的0、1序列通過兩種不同頻率的波表達出來。經過信道有噪聲的加入,在這里我們模擬為高斯白噪聲,在接收端收到信號后通過分離、濾波、判決,進而還原信號。
2、主要內容:對二進制數字信源進行數字調制(2FSK),畫出信號波形及功率譜,并分析其性能。概要設計
整個設計包括三個部分:
1、信源部分:在這里要求2FSK信號的形成,根據公式
s=cos(2*pi*(F+m*f).*t)(m=0或1)生成信源信號,設置F=20HZ,m=a(ceil(t+0.0005)),f=100HZ,t=0:0.0005:9.9995。生成的s為一維數列,有兩萬組數據。
2、信道部分:在信道部分有噪聲的加入,這里用如下函數
n=0.01*randn(1,20000);
z=s+n;此處n為噪聲函數,randn函數用于生成隨機分布的一維數列,z為加入了噪聲的合成信號。
3、信宿部分:在這一部分,要求接收到的信號z經過濾波函數filter后,再過判決,得到原信號。運行環境
硬件環境:
cpu、內存、硬盤、CD-ROM驅動器和鼠標
軟件環境:
Windows 98/NT/2000、Window XP或Win7 2 4 開發工具和編程語言
MATLAB開發實驗箱 MATLAB匯編語言 詳細設計
第一部分:生成原信號
clear all;clc;
%設置時間參數、主頻、偏頻、抽樣頻率 t=0:0.0005:9.9995;F=20;f=100;FS=1:500;
%產生二進制信號和模擬信號 a=randint(1,10,2);m=a(ceil(t+0.0005));s=cos(2*pi*(F+m*f).*t);%求信號的頻譜和功率譜 S=fft(s);
pss=S.*conj(S)/512;for j=1:2000
Pss(j)=pss(10*j);end
%畫出二進制信號、模擬信號、功率譜的圖像 figure(1);subplot(311);plot(t,m);
axis([0,10,0,1.2]);title('二進制信源波形');xlabel('時間');ylabel('幅度');subplot(312);plot(t,s);
title('模擬信源波形');xlabel('時間');ylabel('幅度');subplot(313);
plot(FS,Pss(1:500));title('原信號功率譜');xlabel('頻率');ylabel('幅度');
第二部分:經過信道加入噪聲
%生成噪聲信號與合成信號
n=0.01*randn(1,length(t));z=s+n;
%畫出噪聲信號圖形、合成信號圖形、原信號圖形 figure(2);subplot(311);plot(t,n);title('噪聲波形');xlabel('時間');ylabel('幅度');subplot(312);plot(t,z);
title('合成信號波形');xlabel('時間');ylabel('幅度');subplot(313);plot(t,s);
title('原信號波形');xlabel('時間');ylabel('幅度');
%對合成信號做快速傅立葉變換 %并畫出其功率譜及原信號功率譜 Z=fft(z);
pzz=Z.*conj(Z)/512;for j=1:2000
Pzz(j)=pss(10*j);end
figure(3);subplot(211);
plot(FS,Pss(1:500));title('原信號功率譜');xlabel('頻率');ylabel('幅度');subplot(212);
plot(FS,Pzz(1:500));title('合成信號功率譜');xlabel('頻率');ylabel('幅度');第三部分:對接收到的信號濾波、判決,進而得到原信號
%求濾波器參數、并將信號通過濾波器 %分出兩個不同頻率的信號
b1=fir1(101,[15/1000,25/1000]);b2=fir1(101,[115/1000,125/1000]);h1=filter(b1,1,z);h2=filter(b2,1,z);
%作出兩個不同頻率信號及原信號的圖形 figure(4);subplot(311);plot(t,h1);
title('經通過頻率為20HZ的濾波器后的波形');xlabel('時間');ylabel('幅度');subplot(312);plot(t,h2);
title('經通過頻率為120HZ的濾波器后的波形');xlabel('時間');ylabel('幅度');subplot(313);plot(t,s);
title('原信號波形');xlabel('時間');ylabel('幅度');
%將信號與自身相乘并作出圖形 sw1=h1.*h1;sw2=h2.*h2;figure(5);subplot(211);plot(t,sw1);
title('頻率為20HZ信號相乘后的波形');xlabel('時間');ylabel('幅度');subplot(212);plot(t,sw2);
title('頻率為120HZ信號相乘后的波形');xlabel('時間');ylabel('幅度');
%對信號進行低通濾波并畫出圖形
b3=fir1(101,[2/1000,10/1000]);st1=filter(b3,1,sw1);st2=filter(b3,1,sw2);figure(6);subplot(211);plot(t,st1);
title('20HZ信號低通濾波后的波形');xlabel('時間');ylabel('幅度');subplot(212);plot(t,st2);
title('120HZ信號經低通濾波后的波形');xlabel('時間');ylabel('幅度');%對兩路信號抽樣判決 for i=1:length(t)
if(st1(i)>=st2(i))st(i)=0;
else
st(i)=1;end end
%畫出經抽樣判決后信號波形 figure(7);subplot(211);plot(t,st);
axis([0,10,0,1.2]);
title('抽樣判決后二進制波形');xlabel('時間');ylabel('幅度');subplot(212);plot(t,m);
axis([0,10,0,1.2]);title('原二進制信號波形');xlabel('時間');ylabel('幅度');調試分析
第一部分:要求注意在進行運算時運算符號的正確性,特別是數組的運算。還有就是在繪圖時要求注意繪圖函數的參數要具有一致性,即要有相同個數的數組。
第二部分:在生成噪音數組時,要注意其幅值。要求噪音的幅值與信源數組的幅值比例合適,即要求有合適的信噪比。
第三部分:這里要特別注意的是濾波參數的設置,不能正確的設置濾波參數 6 就不能得到較好的信號,就不能還原出原信號。測試結果
第一部分:
二進制信源波形1幅度0.50012356時間模擬信源波形4789101幅度0-1012356時間原信號功率譜4789104000幅度***00250頻率***
第二部分:
噪聲波形0.05幅度0-0.05012356時間合成信號波形4789102幅度0-20123456時間原信號波形789101幅度0-1012345時間678910 7 第三部分:
原信號功率譜30002000幅度***50300頻率合成信號功率譜***30002000幅度***00250頻率***
經通過頻率為20HZ的濾波器后的波形2幅度0-20125678時間經通過頻率為120HZ的濾波器后的波形349102幅度0-20123456時間原信號波形789101幅度0-1012345時間678910
頻率為20HZ信號相乘后的波形1.51幅度0.50012567時間頻率為120HZ信號相乘后的波形3489101.51幅度0.50012345時間678910
20HZ信號低通濾波后的波形0.80.6幅度0.40.20012567時間120HZ信號經低通濾波后的波形3489100.80.6幅度0.40.20012345時間678910
抽樣判決后二進制波形1幅度0.50012356時間原二進制信號波形4789101幅度0.50012345時間678910 參考文獻
[1] 管愛紅,MATLAB應用及其應用教程,北京:電子工業出版社,2009.8 [2] 樊昌信,通信原理,北京:國防工業出版社,2007.8 [3] Ssnjit K.Mitra,數字信號處理,北京:清華大學出版社,心得體會
通過對該課程的學習,我對通信原理有了更進一步的理解;通過對該二進制數字信源進行數字調制(2FSK)的設計,我也了解了二進制數字信源進行數字調制(2FSK)的基本結構和基本特性,而且還掌握了基本的撰寫論文的形式和思路。作為一個電子信息工程專業的學生,數字信號處理是我們的重要專業課程,是我們將來從事通信事業的基本保障。通過對作為該論文的重要部分—MATLAB的運用,大大提高了我們對集計算,編程與繪圖于一體的該應用軟件的運用能力。MATLAB包含的幾十個工具箱,覆蓋了通信,自動控制,信號處理,圖象處理,財經,化工,生命科學等科學技術領域,汲取了當今世界這些領域的最新研究成果,已經成為從事科學研究和工程設計不可缺少的工具軟件。該課程設計將數字信號處理的有關教學內容和MATLAB語言緊密,有機地結合起來,使我們在學習基礎理論知識的同時學會了應用MATLAB,在學習應用MATLAB的同時,加深了對基本知識的理解,增強了我們的計算機應用能力,提高了學習效果。總之,無論是從教學知識掌握出發,還是從對MATLAB的應用出發,通過這次學習,我不但掌握了二進制數字信源進行數字調制(2FSK)設計的基本知識及其實際應用的技巧,還提高了自己的編程和寫報告的能力,收獲不小,也鞏固了所學知識。
第四篇:通信原理實驗 FSK傳輸系統系統試驗
通信原理實驗
專
業:通信工程 班
級: 姓
名:
指導老師:
日
期:2014.6.9
實驗一 FSK傳輸系統系統試驗
一.實驗目的
1.熟悉 FSK 調制和解調基本工作原理; 2.掌握 FSK 數據傳輸過程;
3.掌握 FSK 正交調制的基本工作原理與實現方法; 4.掌握 FSK 性能的測試;
5.了解 FSK 在噪聲下的基本性能。
二.實驗儀器
1.JH5001通信原理綜合實驗系統 2.20MHz雙蹤示波器
三.實驗內容
測試前檢查:首先將通信原理綜合實驗系統調制方式設置成“FSK 傳輸系統”;用示波器測量TPMZ07 測試點的信號,發現有脈沖波形,則說明實驗系統已正常工作。
(一)FSK調制 1.FSK基帶信號觀測
(1).TPi03 是基帶FSK 波形(D/A 模塊內)。通過菜單選擇為1 碼輸入數據信號,觀測TPi03 信號波形,測量其基帶信號周期。如圖1.1.1所示。
(2).通過菜單選擇為0 碼輸入數據信號,觀測TPi03 信號波形,測量其基帶信號周期。如圖1.1.2所示。將測量結果與1 碼比較。
圖1.1.1 全1碼的基帶信號
圖1.1.2 全0碼的基帶信號 分析:由圖可知,輸入全1碼時的基帶信號周期約為27us,輸入全0碼時的基帶信號周期約為54us,則輸入全0碼時的基帶信號周期約為全1碼時的2倍。
2.發端同相支路和正交支路信號時域波形觀測
TPi03和TPi04分別是基帶FSK 輸出信號的同相支路和正交支路信號。測量兩信號的時域信號波形時將輸入全0 碼,測量其兩信號是否滿足正交關系。波形如圖1.1.3所示。
圖1.1.3 TPi03 和TPi04波形
分析:由圖可以看出TPi03 和TPi04的波形相位相差π,滿足正交關系。思考:產生兩個正交信號去調制的目的是防止碼間串擾。
3.發端同相支路和正交支路信號的李沙育波形觀測
將示波器設置在(x-y)方式,可從相平面上觀察TPi03和TPi04的正交性,其李沙育應為一個圓。通過菜單選擇在不同的輸入碼型下進行測量。輸入碼型為全0碼、全1碼、0/1碼和特殊碼是的李沙育波形分別如圖1.1.4、圖1.1.5、圖1.1.6和圖1.1.7所示。
圖1.1.4 全0碼
圖1.1.5 全1碼
圖1.1.6 0/1碼
圖1.1.7 特殊碼
分析:輸入各種不同的碼序列得到的李沙育圖形都呈現出圓形。
4.連續相位FSK調制基帶信號觀測
TPM02是發送數據信號(DSP+FPGA模塊左下腳),TPi03是基帶FSK 波形。測量時,通過菜單選擇為0/1碼輸入數據信號,并以TPM02作為同步信號。觀測TPM02與TPi03點波形應有明確的信號對應關系。并且,在碼元的切換點發送波形的相位連續。如圖1.1.8所示。通過菜單選擇為特殊序列碼輸入數據信號,重復上述測量步驟。記錄測量結果,如圖1.1.9所示。
圖1.1.8 0/1碼
圖1.1.9 特殊碼
思考:圖中,觀測兩重疊波形,TPM02為高時,TPi03的頻率高,TPM02為低時,TPi03的頻率低,但TPi03的波形連續,即非連續相位FSK調制在碼元切換點的相位是連續的。
5.FSK調制中頻信號波形觀測
(1).選擇0/1碼輸入數據信號,以TPM02作為同步信號,觀測TPM02與TPK03點波形有明確的信號對應關系,如圖1.1.10所示。
(2).選擇特殊序列碼輸入數據信號,重復上述測量步驟,如圖1.1.11所示。(3).斷開跳線器Ki01或Ki02,重復上述測量步驟。觀測信號波形的變化,分析變化原因,如圖1.1.12和圖1.1.13所示。
圖1.1.10 0/1碼
圖1.1.11 特殊碼
圖1.1.12 0/1碼
圖1.1.13 特殊碼
分析:將正交調制輸入信號中的一路基帶調制信號斷開后,由圖可知,波形總體上不變,但頻率分量有所增加。這是因為在FSK正交方式調制中,如果只采用一路同向FSK信號進行調制,會產生兩個FSK頻譜信號,使頻率分量增加。
(二)FSK解調 1.解調基帶FSK信號觀測
用中頻電纜連結KO02和JL02,測量解調基帶信號測試點TPJ05,用TPM02作同步。
(1).選擇1碼,觀測TPJ05測量其信號周期,如圖1.2.1所示;
(2).選擇為0/1碼,觀測TPJ05,如圖1.2.2所示。根據觀測結果,分析解調端的基帶信號與發送端基帶波形(TPi03)不同的原因。
圖1.2.1 全1碼
圖1.2.2 0/1碼
分析:全1碼輸入時,TPJ05的輸出波形的頻率不變;0/1碼輸入時,高電平處TPJ05的頻率高,低電平處TPJ05的頻率低。
思考:解調端的基帶信號與發送端基帶波形(TPi03)不同的原因是:存在噪聲的影響且信道特性不穩定,存在著衰落。
2.解調基帶信號的李沙育(x-y)波形觀測
將示波器設置在(x-y)方式,觀察TPJ05和TPJ06的波形。(1).選擇1碼,仔細觀測其李沙育信號波形,如圖1.2.3所示;(2).選擇為0/1碼,仔細觀測李沙育信號波形,如圖1.2.4所示;
圖1.2.3 全1碼
圖1.2.4 0/1碼
分析:全1碼時,李沙育信號波形近似為一個圓環,更接近橢圓;0/1碼時,李沙育信號波形同樣近似為一個圓環,且環形粗一點。
思考:接收端與發送端李沙育波形不同的原因:存在噪聲的影響且信道特性不穩定,存在著衰落。
3.接收位同步信號相位抖動觀測
用發送時鐘TPM01信號作同步,選擇不同的測試序列測量接收時鐘TPMZ07的抖動情況。輸入碼型為全1碼和全0碼,其波形分別如圖1.2.5和1.2.6所示:
圖1.2.5 全1碼
圖1.2.6 全0碼
分析:方波高電平初始端存在脈沖。
思考:全0或全1碼下觀察不到位定時的抖動是因為:在全1碼和全0碼的情況下,所有的輸入碼元均相同,無電平跳變,不存在相位的變化,因此觀察不到相位抖動。
4.解調器位定時恢復與最佳抽樣點波形觀測
TPMZ07為接收端DSP調整之后的最佳抽樣時刻輸入m序列,觀察TPMZ07(以此信號作同步)和TPN04波形的之間的相位關系,如圖1.2.7所示。
圖1.2.7 解調器位定時恢復與最佳抽樣點波形
分析:最佳抽樣時刻位于抽樣判決點的中間時刻,也即具有最大能量處。
5.位定時鎖存和位定時調整觀測
(1).輸入為m序列時,觀察TPM01(以此信號作同步)和TPMZ07(收端最佳判決時刻)之間的相位關系,如圖1.2.8所示;
(2).不斷按確認鍵,觀察TPMZ07的調整過程和鎖定后的相位關系,如圖1.2.9所示;
(3).輸入全1重復該實驗,解釋原因。按確認鍵前后波形如圖1.2.10和圖1.2.11所示;
(4).斷開JL02接收中頻環路,觀測TPM01和TPMZ07之間的相位關系,并解釋測量結果的原因。
圖1.2.8 m序列確認前
圖1.2.9 m序列確認后
圖1.2.10 全1碼確認前
圖1.2.11 全1碼確認后
分析:
(1)輸入為m序列時,方波高電平初始端存在脈沖,發端時鐘和最佳判決時刻之間的相位同步。
(2)不斷按確認鍵,波形總體上保持不變。
(3)輸入為全1碼時,按確認鍵調整過程中脈沖位置發生了變化,即發端時鐘和最佳判決時刻之間的相位發生了變化,原因是全1碼時,輸入波形沒有變化,位定時失步;斷開中頻環路,按確認鍵,則脈沖位置發生變化,原因是斷開中頻環路后,無法正確判斷出碼元的起止。
6.觀察在各種輸入碼字下FSK的輸入/輸出數據
通過菜單選擇為不同碼型輸入數據信號,觀測TPM04點輸出數據信號是否正確。觀測時用TPM02點信號同步。輸入碼型分別為特殊碼、全1碼和0/1碼是波形分別如圖1.2.12、圖1.2.13和圖1.2.14所示:
圖1.2.12 特殊碼
圖1.2.13 全1碼
圖1.2.14 0/1碼
分析:可以看出特殊碼和0/1碼輸出波形與輸入波形基本一致,只是相位上有一定的偏移,全1碼為直線。
四.實驗思考題
1.FSK 正交調制方式與傳統的一般FSK 調制方式有什么區別? 其有哪些特點?
答:兩者區別:一般FSK調制方式產生FSK信號的方法是根據輸入的數據比特是0還是1,在兩個獨立的振蕩器中切換。采用這種方法產生的波形在切換的時刻相位是不連續的,因此這種FSK信號稱為不連續FSK信號。而FSK正交調制方式產生FSK信號的方法是,首先產生FSK基帶信號,利用基帶信號對單一載波振蕩器進行頻率調制。FSK正交調制方式可以消除各個頻率間的相互干擾,從而消除由于頻率干擾造成的誤碼。若頻率不正交,在抽樣時刻各支路信號波形是相關的,一條支路的誤碼必然導致判決結果的錯誤,從而增大了誤碼率。
FSK正交調制方式的特點:隨著FSK碼長的增加,FSK信號的帶寬增加,頻帶利用率降低。即以增加信號頻帶來換取誤碼率的降低。
2.TPi03 和TPi04 兩信號具有何關系?
答:TPi03和TPi04分別為同向支路和正交支路,兩信號為正交關系。
五.心得體會
因為是第一個實驗,一開始對找JH5001通信原理綜合實驗系統上的模塊以及測試點有點生疏,并且與雙蹤示波器有一根導線接觸不良,但是實驗總體完成的還是相對比較順利的。通過實驗,加深了對FSK調制和解調的基本工作原理、FSK數據傳輸、FSK正交調制的基本工作原理與實現方法以及FSK性能測試的理解。并且增強了我們的動手與合作能力。
第五篇:通信原理課程設計[范文]
通
題目:
信 原 理課程設計
基于MATLAB的系統的2ASK仿真
五、設計心得和體會???????????????????????
1、心得和體會……………………………………………………………
2、致謝……………………………………………………………………
參考文獻????????????????????????????????
一、2ASK通信系統發展背景
隨著通信技術日新月異的發展,尤其是數字通信的快速發展越來越普及,研究人員對其相關技術投入了極大的興趣。為使數字信號能在帶通信道中傳輸,必須用數字信號對載波進行調制,其調制方式與模擬信號調制相類似。根據數字信號控制載波的參量不同也分為調幅、調頻和調相三種方式。因數字信號對載波參數的調制通常采用數字信號的離散值對載波進行鍵控,故這三種數字調制方式被稱為幅移鍵控(ASK)、頻移鍵控(FSK)和相移鍵控(PSK)。經調制后的信號,通過信道傳輸,在接收端解調后恢復成數字信號。因此,調制解調技術是實現現代通信的重要手段,促進通信的快速發展。
現代通信系統要求通信距離遠、通信容量大、傳輸質量好。作為其關鍵技術之一的調制解調技術一直是人們研究的一個重要方向。從最早的模擬調幅調頻技術的日臻完善,到現在數字調制技術的廣泛運用,使得信息的傳輸更為有效和可靠。二進制數字振幅鍵控是一種古老的調制方式,也是各種數字調制的基礎。
二、仿真設計原理 1、2ASK信號的調制
2ASK技術是通過改變載波信號的幅值變化來表示二進制0或1的。載波0,1信息只改變其振幅,而頻率和相位保持不變。通常使用其最大值Acos(?t??)和0分別表示1和0.有一種常用的幅值鍵控技術是開關鍵控(OOK)在OOK中,把一個幅度取為0,另一個幅度取為非0,其優點是傳輸信息所需的能量下降了,且調制方法簡單.OOK的產生原理如圖2、2ASK信號的解調
接收端接收信號傳來的2ASK信號,首先經過帶通濾波器濾掉傳輸過程中產生的噪聲干擾,再從中回復原始數據信號。常用的解調方法有兩種:包絡解調法和相干解調法。
相干解調法
相干解調也叫同步解調,就是利用相干波和接收到的2ASK信號相乘分離出包含原始信號的低頻信號,再進行抽樣判決恢復數字序列。相干波必須是與發送端同頻同相的正弦信號。Z(t)=y(t)cos(?t)=m(t)cos2(?t)=111m(t)[1+cos(2?t)]=m(t)+m(t)cos(2?t).式中1/2m(t)是基帶信號,2221/2m(t)cos(2?t)是頻率為2?的高頻信號,利用低通濾波器可檢測出基帶信號,再經過抽樣判決,即可恢復出原始數字信號序列{an},2ASK信號帶寬為碼元速率的2倍,即:B2ASK=2Rb.式中Rb為信息速率。
相干解調的原理圖如下
三、直接用MATLAB編程仿真
1、實驗框圖
在數字基帶傳輸系統中,為了使數字基帶信號能夠在信道中傳輸,要求信道應具有低通形式的傳輸特性。然而,在實際信道中,大多數信道具有帶通傳輸特性,數字基帶信號不能直接在這種帶通傳輸特性的信道中傳輸。必須用數字基帶信號對載波進行調制,產生
元速率Rb=1000Band,載波頻率為f=4kHZ.以下是仿真程序及注釋。例子中采用OOK鍵控方式實現2ASK調制。第一行為數字序列波***1的單極性不歸零碼,碼元寬度Tb=1/Rb=0.001s,第二行為載波波形,在一個碼元寬度,有4個周期的正玄波載波信號f=1/4Tb=4kHz;第三行為調整之后的波形,碼元1對應的調制后波形對應正玄波,0對應的調制后波形為0,結果滿足要求.。
%數字信號的ASK調制
3、使用MATLAB編程
Clear;
%清空空間變量 m=[1 1 1 0 0 0 1 0 1 1 0 1];
%數字信號序列 Lm=length(m);
%序列的長度
F=200;
%數字信號的帶寬
f=800;
%正弦載波信號的頻率 A=1;
%載波的幅度
Q=f/F;
%頻率比,即一個碼元寬度中的正弦周期個數,為適配下面的濾波器參數選取,Q>=1/3 M=500;
%一個正弦周期內的采樣點數 t=(0:M-1)/M/f;
%一個正弦信號周期內的時間
carry1=repmat(A*sin(2*pi*f*t),1,Q);%一個碼元寬度內的正弦載波信號 Lcarry1=length(carry1);
%一個碼元寬度內的信號長度 carry2=kron(ones(size(m)),carry1);%載波信號
ask=kron(m,carry1);
%調制后的信號 N=length(ask);
%長度 tau=(0:N-1)/(M-1)/f;
%時間 Tmin=min(tau);
%最小時刻 Tmax=max(tau);
%最大時刻 T=ones(size(carry1));
%一個數字信號1 dsig=kron(m,T);
%數字信號波形 subplot(3,1,1);
%子圖分割 plot(tau,dsig)
%畫出載波波形 grid on
%添加網 axis([Tmin Tmax-0.2 1.2])
%設置坐標范圍 subplot(3,1,2)
%子圖分割 plot(tau,carry2)
%畫出載波波形 grid on
%添加網絡
axis([Tmin Tmax-1.2*A 1.2*A]);%設置坐標范圍 subplot(3,1,3)
%子圖分割 plot(tau,ask)
%畫出調制后的波形 grid on
%添加網絡
axis([Tmin Tmax-1.2*A 1.2*A])%設置坐標范圍
y=(x(t_judge));
%抽樣判決時刻的信號值 y_judge=1*(y>=th)+0*(y<=th);
%抽樣判決信號的0階保持 y_value=kron(y_judge,ones(size(carry1)));
%抽樣判決后的數字信號波形 n_tau=tau+0.5/F;
%抽樣判決后的信號對應時間 subplot(4,1,3)
plot(n_tau,y_value)
axis([min(n_tau)max(n_tau)grid on subplot(4,1,4)plot(tau,dsig)
axis([Tmin Tmax-0.2 1.2])grid on
1、圖示
%子圖分割
%畫出抽樣判決后的數字信號波形-0.2 1.2])
%畫出原始信號波形與解調后信號作對比
四、仿真結果
011
為使仿真過程清晰,忽略了信道的傳輸延時等,僅考慮了抽樣判決點選取時的延時0.5Tb,因碼元波特率RB=1000Band,碼元寬度Tb=1/Rb=0.001s 故0.5Tb=0.0005s,從圖中標注可以看出,信號的起始點為0.0005s。
五、設計心得和體會
1、心得和體會
通過本次課程設計,我們主解了要了2ASK調制與解調原理,特別是2ASK調制解調電路的MATLAB實現與調制性能分析,把本學期學的通信原理等通信類科目的內容應用到本課程設計中來,進一步鞏固復習通信原理,MATLAB等課程,以達到融會貫通的目的。
通過對通信系統原理和MATLAB的學習,在通過硬件實現時會時不時地會出現一些問題,諸如:某個芯片的用法、其適用范圍、其典型應用時會出現的問題、濾波器的設計、模擬電路中反饋電阻與控制增益器件的調節等等,都需要理論知識和實踐經驗結合才能解決。在此期間,首先,通過查閱相關書籍、文獻,搞清楚原理框圖,為今后的實驗及論文寫作奠定比較扎實的理論;其次,在原理圖的基礎之上,設計具體的硬件實現流程圖,利用將一個大而復雜的系統分解轉化為多個小而簡單的模塊的思想,在進行整合、連接,將復雜的問題簡單化。了解了更多關于通信的知識,對以后的學習和工作又了莫大的幫助。通過本次課程設計,加強了對通信系統原理的理解,學會查尋資料、方案比較,以及設計計算及仿真等環節,進一步提高了分析解決實際問題的能力。在學習通信原理理論后進行一次電子設計與制作,鍛煉了分析、解決電子電路問題的實際本領。為進一步學習計算機網絡,數據通信,多媒體技術等課程打下堅實的基礎。運用學習成果把課堂上學的系統化的理論知識,嘗試性的應用于實際設計工作,并從理論的高度對設計工作的現代化提高一些有真惰性的建議和設想,檢驗學習成果,看一看課堂學習與實際工作到底有多大差距,并通過綜合分析,找出學習中存在的不足,以便為完善學習計劃,更邊學習內容提供實踐依據。
2、致謝
在此,首先要感謝蔡老師對我們一直以來的關心和照顧,細心給我們解答疑惑,幫助我們更好的學習,同時還要謝謝同學們熱情的幫助。最后,祝老師新年快樂!笑口常開!
參考文獻
[1]《通信原理》(第2版)樊昌信 等編著
國防工業出版社 北京
2012年 [2]《MATLAB信息工程工具箱技術手冊》魏巍 主編 國防工業出版社 北京 2004年 [3]《MATLAB通信仿真開發手冊》孫屹 主編 李妍 編著國防工業出版社 北京2004年