一、課題內(nèi)容
基帶傳輸:
欲傳送的01比特流+碼型變換(HDB3碼)+基帶成型網(wǎng)絡(luò)(采用升余弦滾降系統(tǒng))+信道+碼型反變換+01比特流。
二、設(shè)計目的
1.綜合應(yīng)用《Matlab編程與系統(tǒng)仿真》、《信號與系統(tǒng)》、《現(xiàn)代通信原理》等多門課程知識,使學(xué)生建立通信系統(tǒng)的整體概念;
2.培養(yǎng)學(xué)生系統(tǒng)設(shè)計與系統(tǒng)開發(fā)的思想;
3.培養(yǎng)學(xué)生利用軟件進(jìn)行通信仿真的能力;
4.培養(yǎng)學(xué)生獨立動手完成課題設(shè)計項目的能力;
5.培養(yǎng)學(xué)生查找相關(guān)資料的能力。
三、設(shè)計要求
1.每人獨立完成一個題目
2.對通信系統(tǒng)有整體的較深入的理解,深入理解自己仿真部分的原理的基礎(chǔ),畫出對應(yīng)的通信子系統(tǒng)的原理框圖3.提出仿真方案;
4.完成仿真軟件的編制
5.仿真軟件的演示
6.提交詳細(xì)的設(shè)計報告
四、實驗條件
計算機(jī)、Matlab軟件、相關(guān)資料
五、系統(tǒng)設(shè)計
數(shù)字基帶傳輸系統(tǒng)
(1)概念:未經(jīng)調(diào)制的數(shù)字信號所占據(jù)的頻譜是從零頻或者很低頻率開始,稱為數(shù)字基帶信號;
不經(jīng)載波調(diào)制而直接傳輸數(shù)字基帶信號的系統(tǒng),稱為數(shù)字基帶傳輸系統(tǒng);
(2)數(shù)字基帶傳輸?shù)难芯康囊饬x:
第一:在利用對稱電纜構(gòu)成的近程數(shù)據(jù)通信系統(tǒng)中廣泛采用這種傳輸方式;
第二:數(shù)字基帶傳輸方式迅速發(fā)展,不僅應(yīng)用于低速數(shù)據(jù)傳輸,而且還用于告訴數(shù)據(jù)傳輸;
第三:基帶傳輸系統(tǒng)的許多問題也是帶通傳輸系統(tǒng)必須考慮的問題;
第四:任何一個采用線性調(diào)制的帶通傳輸系統(tǒng),可以等效為一個基帶傳輸系統(tǒng)來研究。
(3)基帶傳輸碼型:
在實際的基帶傳輸系統(tǒng)中,對傳輸碼型的要求:
①不含直流分量。且低頻分量盡量少;
②應(yīng)含有豐富的定時信息,以便于從接受碼流中提取定時信號;
③功率譜的主瓣寬度窄,以節(jié)省傳輸頻帶;
④不受信息源統(tǒng)計特性的影響,即能適應(yīng)于信息源的變化;
⑤具有內(nèi)在的檢錯能力,即碼型應(yīng)具有一定的規(guī)律性,以便宏觀監(jiān)測;
⑥編譯碼簡單,已降低通信延時和成本。
基地傳輸常用碼型:AMI碼(傳號交替反轉(zhuǎn)碼)、HDB3碼(三階高密度雙極性碼)、雙相碼、差分雙相碼、密勒碼、CMI碼(傳號反轉(zhuǎn)碼)、塊編碼等。
A. 其中本次設(shè)計采用的HDB3碼,
a.HDB3碼編碼規(guī)則:
①1——交替變換為+1,-1
②0——連0小于等于3,則用0電平表示
連0大于3,則用特定碼組替換B 0 0 V或 0 0 0 V
③任意兩個V之間B的個數(shù)為奇數(shù)
b.示例:
b.HDB3碼的特點:
①有檢錯能力
②解決了連“0”時位定時信息提取困難
③無直流分量
④B碼和V碼各自保持極性交替變化,以確保無直流分量
⑤可能存在誤碼擴(kuò)散的問題
⑥(歐洲系列)PCM一、二、三次群接口碼型
(4)數(shù)字基帶信號傳輸碼系統(tǒng)組成:
①信道形成器:其功能產(chǎn)生適合于信道傳輸?shù)幕鶐盘柌ㄐ?/p>
②信道:是允許基帶信號通過的媒介,通常為有線信道,如雙絞線、同軸電纜等,其傳輸特性一般不滿足無失真?zhèn)鬏敆l件;
③接受濾波器:用來接收信號,盡可能濾除信道噪聲和其他干擾,對信道特性進(jìn)行均衡,使輸出的基帶波形有利于抽樣判決;
④抽樣判決器:則在傳輸特性不理想及噪聲背景下,在規(guī)定時刻對接受器的輸出波形進(jìn)行抽樣判決,以恢復(fù)基帶信號;
⑤同步提?。河脕沓闃拥奈欢〞r脈沖依靠同步提取電路從接受信號中提取,位定時的準(zhǔn)確與否將直接影響判決效果
⑥基帶傳輸總特性:H(w)= Gr(w)C(w)GR(w)
若假設(shè)信道傳輸函數(shù)C(w)=1,于是基帶系統(tǒng)的傳輸特性變?yōu)?/p>
H(w)= Gr(w)GR(w)
(5)無碼間串?dāng)_的傳輸特性的設(shè)計:
①理想低通特性
信號帶寬最小的波形—
理想低通信號的主要缺點
a.工程上難以實現(xiàn);
b.尾部衰減慢(沖激響應(yīng)h(t)波形收斂速度較慢,拖尾以1/t速率衰減,當(dāng)存在定時誤差時會帶來比較大的干擾)
②升余弦滾降特性
升余弦滾降信號的波形與頻譜:
六、詳細(xì)設(shè)計與編碼
1. 設(shè)計方案 (可以畫出編程的流程圖,闡述設(shè)計思路等)
實驗流程:
設(shè)計思路:
(1)信源:
生成欲傳送的01比特流,將個數(shù)N作為函數(shù)的輸入;使用函數(shù)rand(1,N),使得大于某個特定值的數(shù)值為1,反之,小于則為0。
<注>:因本實驗采用HDB3碼作為基帶傳輸碼型,所以使用0.75作為0和1的分界線,這樣可以生成低密度的01比特流,使得在程序運行的時候,只通過連續(xù)的少量bit就可以HDB3的編碼與譯碼的正確性。
(2)碼型編碼:
將生成的01比特流作為碼型轉(zhuǎn)換函數(shù)的輸入,函數(shù)輸出為碼型轉(zhuǎn)換后的HDB3基帶傳輸碼型;
函數(shù)function hdb3NRZ_signal=hdb3NRZ(signal) :
函數(shù)輸入信號signal為信源產(chǎn)生的01比特流,輸出信號hdb3NRZ_signal為產(chǎn)生的不歸零的HDB3碼。初始設(shè)定Last_V=-1、Last_B=-1,count為連0計數(shù)器,遇4連零則置為V,i=1,流程圖如下1:
函數(shù)function hdb3_signal=hdb3(signal,n):
函數(shù)輸入信號signal為函數(shù)hdb3NRZ產(chǎn)生的不歸零的HDB3碼,函數(shù)輸出hdb3_signal為進(jìn)行雙極性的,歸零的HDB3碼,每bit進(jìn)行N=16點抽樣,首先設(shè)定一維數(shù)組a0=zeros(1,N/2),作用是用來填充每個bit抽樣之后的歸零部分。流程圖如下2:
(3)升余弦滾降系統(tǒng):
將HDB3碼作為濾波器的輸入,函數(shù)輸出系統(tǒng)輸出信號;利用濾波器設(shè)計器FDATool設(shè)計Nyquist濾波器,其中參數(shù)設(shè)定:比特傳輸速率Rb=16b/s,每bit抽樣點數(shù)N=16,滾降因子Rolloff=0.5,其中抽樣速率fs=256Hz, Nyquist帶寬Band=8Hz;
(4)抽樣判決:
將系統(tǒng)輸出信號作為判決器函數(shù)的輸入,進(jìn)行抽樣判決;選擇每bit的中心抽樣進(jìn)行抽樣,當(dāng)信號抽樣值>某個特定值,則信號恢復(fù)時函數(shù)為1,若信號抽樣值<-某個特定值,則信號恢復(fù)時信號值設(shè)定為-1,其余恢復(fù)為0.
一般判定值不設(shè)定為0,因為若有噪聲等對信號進(jìn)行干擾,導(dǎo)致系統(tǒng)輸出信號不是理想的。
(5)碼型譯碼:
將抽樣判決后的信號作為函數(shù)的輸入,進(jìn)行碼型反變換,函數(shù)輸出為恢復(fù)了的欲傳送的01比特流。編寫程序時,首先進(jìn)行設(shè)定標(biāo)記Last_V、Last_B(初始設(shè)定默認(rèn)為-1,與碼型編碼相對應(yīng)),設(shè)定輸入信號為signal,碼型譯碼后的信號ssignal,其中N為每bit抽樣點數(shù)
其函數(shù)程序流程圖如下:
2. 編程工具的選擇本次仿真使用Matlab
MATLAB具有以下幾個特點:
(1)友好的工作平臺和編程環(huán)境
(2)簡單易用的程序語言
(3)強(qiáng)大的科學(xué)計算機(jī)數(shù)據(jù)處理能力
(4)出色的圖形處理功能
(5)應(yīng)用廣泛的模塊集合工具箱
(6)實用的程序接口和發(fā)布平臺
(7)應(yīng)用軟件開發(fā)(包括用戶界面)
3. 編碼與測試(寫出源代碼,分析核心代碼的功能)
A,源代碼
(1)主函數(shù):
clc;
clear all;
N=100;%生成的bit個數(shù)
n=16; %每個bit的抽樣點數(shù)
%生成欲傳送的01比特流
signal=signalsource(N);
%碼型變換——HDB3碼
hdb3_signal=hdb3(signal,n);
%濾波——升余弦滾降系統(tǒng)
filtersignal=filter_Nyquist(hdb3_signal);
%抽樣判決
samplesignal=sampling(filtersignal,n);
%碼型反變換
ssignal=reverse_hdb3(samplesignal,n);
%畫圖函數(shù)
draw(N,n,signal,hdb3_signal,filtersignal,samplesignal,ssignal);
(2)信源:
function signal=signalsource(N)
%函數(shù)輸出signal為欲傳送的01比特流
%函數(shù)輸入N為欲生成的01比特流個數(shù)
signal=rand(1,N)>0.75;%生成低密度的個數(shù)為N的01比特流
(3)碼型編碼—HDB3碼
①function hdb3NRZ_signal=hdb3NRZ(signal)
%hdb3NRZ_signal=hdb3NRZ(signal)
%函數(shù)輸入signal為單極性不歸零的01碼
%函數(shù)輸出hdb3RZ_signal不歸零的HDB3碼
last_V=-1;
last_B=-1;
hdb3NRZ_signal=zeros(size(signal));%初始化輸出序列
count=0;%連0計數(shù)器
for i=1:length(signal)
ifsignal(i)==1%遇1則極性反轉(zhuǎn)
hdb3NRZ_signal(i)=-last_B;%與之前的一個1的極性相反
last_B=hdb3NRZ_signal(i);
count=0;
else
count=count+1;
if count==4
count=0;
hdb3half_signal(i)=-last_V;%遇4連零則置為V
last_V=hdb3NRZ_signal(i);
if hdb3NRZ_signal(i)*last_B==-1%V與前一個非零符號極性相同
hdb3NRZ_signal(i-3)=hdb3NRZ_signal(i);%否則置為B
end
last_B=hdb3NRZ_signal(i);
end
end
end
②function hdb3_signal=hdb3(signal,n)
%hdb3_signal=hdb3RZ(signal,n)
%函數(shù)輸出hdb3_signal為碼型轉(zhuǎn)換后的傳輸碼型HDB3碼
%函數(shù)輸入signal為欲傳輸?shù)?/i>01比特流
%函數(shù)輸入n為每bit的抽樣點數(shù)
a=hdb3NRZ(signal);
a0=zeros(1,n/2);
hdb3_signal=[];
for j=1:length(signal);
a1=[];
forjj=1:n/2
a1=[a1,a(j)];
end
hdb3_signal=[hdb3_signal,a1,a0];
end
(4)基帶成型網(wǎng)絡(luò)——升余弦滾降系統(tǒng)
function filtersignal=filter_Nyquist(signal)
%函數(shù)輸入signal為傳輸碼型的HDB3碼
%函數(shù)輸出filtersignal是經(jīng)過升余弦響應(yīng)系統(tǒng)后的信號
load myNyquist; %Rolloff=0.5,fs=256,Band=8
den=1;
filtersignal=filter(mynum,den,signal);
(5)抽樣判決——恢復(fù)為HDB3碼
function samplesignal=sampling(signal,n)
%sampling為抽樣判決函數(shù)
%函數(shù)輸出samplesignal為抽樣判決后恢復(fù)的信息
%函數(shù)輸入signal為濾波器的輸出波形
%函數(shù)輸入n為每個bit的抽樣點數(shù)
samplesignal=[];
for i=n/2:n:length(signal)
ifsignal(i)>0.5
for j=1:n
samplesignal=[samplesignal,1];
end
elseifsignal(i)<-0.5
for j=1:n
samplesignal=[samplesignal,-1];
end
else
for j=1:n
samplesignal=[samplesignal,0];
end
end
end
(6)碼型譯碼——恢復(fù)為欲傳輸?shù)?1比特流
function signal=reverse_hdb3(hdb3_signal,n)
%函數(shù)reverse_hdb3()為碼型反變換函數(shù)
%函數(shù)輸出signal為碼型反變換后的01比特流
%函數(shù)輸入hdb3_signal為經(jīng)過抽樣之后形成的雙極性的不歸零的HDB3碼
%函數(shù)輸入n為每個bit的抽樣點數(shù)
signal=[];
last_B=-1;
last_V=-1;
j=0;
for i=n/2:n:length(hdb3_signal)
j=j+1;
ifhdb3_signal(i)==1|hdb3_signal(i)==-1
signal(j)=1;
if last_B*hdb3_signal(i)==1
signal(j)=0;
if last_V*hdb3_signal(i)==-1
signal(j-3)=0;
end
end
last_B=hdb3_signal(i);
else
signal(j)=0;
end
end
(7)畫圖函數(shù)
functiondraw(N,n,signal,hdb3_signal,filtersignal,samplesignal,ssignal)
%函數(shù)輸入n為每個bit的抽樣點數(shù)
%函數(shù)輸入signal為生成的01bit流
%函數(shù)輸入hdb3_signal為碼型轉(zhuǎn)換后的HDB3碼
%函數(shù)出入filtersignal為經(jīng)過濾波器之后的信號
%函數(shù)輸入samplesignal為抽樣判決之后的信號
%函數(shù)輸入ssginal為碼型反變換還原的01bit流
Rb=16;%bit的傳輸率Rb=16__比特間隔Tb=1/Rb
Ts=1/(Rb*n);%抽樣間隔
%畫原信號
t1=0:1/Rb:(N-1)/Rb;
figure(1)
subplot(3,2,1)
stairs(t1,signal)
axis([0,12/Rb,-1.2,1.2])
grid on
set(gca,'XTick',[0:1/Rb:12/Rb])
title('欲傳送01比特流(1)')
%畫碼型轉(zhuǎn)換的HDB3碼
t2=0:Ts:(N*n-1)*Ts;%T=N*Rb為生成的信號的長度
subplot(3,2,3)
stairs(t2,hdb3_signal)
grid on
axis([0,12/Rb,-1.2,1.2])
set(gca,'XTick',[0:1/Rb:12/Rb])
title('HDB3碼型(2)')
%經(jīng)升余弦滾降系統(tǒng)之后信號
subplot(3,2,5)
plot(t2,filtersignal)
axis([0,12/Rb,-1.2,1.2])
grid on
set(gca,'XTick',[0:1/Rb:12/Rb])
title('經(jīng)升余弦滾降系統(tǒng)之后信號(3)')
subplot(3,2,2)
plot(t2,filtersignal)
axis([0,12/Rb,-1.2,1.2])
grid on
set(gca,'XTick',[0:1/Rb:12/Rb])
title('經(jīng)升余弦滾降系統(tǒng)之后信號(3)')
%畫抽樣判決之后的信號
subplot(3,2,4)
stairs(t2,samplesignal)
grid on
axis([0,12/Rb,-1.2,1.2])
set(gca,'XTick',[0:1/Rb:12/Rb])
title('抽樣判決之后的信號(4)')
%恢復(fù)為欲傳送的01比特流
subplot(3,2,6)
stairs(t1,ssignal)
grid on
axis([0,12/Rb,-1.2,1.2])
set(gca,'XTick',[0:1/Rb:12/Rb])
title('欲傳送的01比特流(5)')
B,編碼與調(diào)試過程:(編程過程中遇到的問題、如何解決)
a,首先編寫碼型編碼的代碼的時候依照理解的HDB3碼的編碼規(guī)則進(jìn)行編寫代碼,但只是完成了雙極性的HDB3碼,是卻不知道怎樣將HDB3碼變成歸零碼。然后問一些沒有進(jìn)行此項設(shè)計項目的同學(xué)詢問方法,知道可以利用bit抽樣的時候?qū)⒚縝it中后1/2的抽樣點設(shè)定為0,才成功調(diào)試了正確的雙極性的,歸零的HDB3碼;
b,在進(jìn)行基帶成型網(wǎng)絡(luò)的設(shè)計時,一開始沒有理解升余弦滾降系統(tǒng)的含義,不知該從何處下手編寫代碼。在仔細(xì)的進(jìn)行學(xué)習(xí)教材關(guān)于此部分的內(nèi)容的理解,也在圖書館尋找了一些資料,才了解了基帶成型網(wǎng)絡(luò)所包含的內(nèi)容。
可是仍不知道該怎樣進(jìn)行編寫此濾波器的代碼,便進(jìn)行查找,在FDATool中找到Nyquist濾波器,于是才將設(shè)計進(jìn)行下去。
c,在進(jìn)行碼型譯碼的時候,發(fā)現(xiàn)每當(dāng)欲傳送的01比特流有連續(xù)的8個0出現(xiàn)的時候,譯出的碼型總是出錯,卻部沒有找出錯誤在什么地方,此時也不敢肯定自己的思想是否正確。于是,在課堂上便向老師講述了一番我的思想,在老師肯定了設(shè)計思想之后,也將錯誤限定在其中的碼型譯碼的函數(shù)范圍內(nèi),于是在依照思想重新編寫了代碼之后,對比之下,發(fā)現(xiàn)時for和if語句的嵌套過多,導(dǎo)致混亂。
5. 運行結(jié)果及分析
a,欲傳送的01比特流:
b,碼型編碼后的HDB 3碼
c,升余弦滾降系統(tǒng)輸出的信號
d,進(jìn)行抽樣判決之后,恢復(fù)的不歸零的HDB3碼
e,碼型譯碼的輸出,恢復(fù)為欲傳送的01bit流
f,基帶后存數(shù)系統(tǒng)合成圖:
g,運行完程序之后的workspace
(N為欲傳送的比特個數(shù),signal為生成的欲傳送的01比特流,n為每bit的抽樣點數(shù),hdb3_signal為碼型編碼之后的HDB3碼,filtersignal為經(jīng)過基帶成型網(wǎng)絡(luò)(升余弦滾降系統(tǒng))之后的信號,samplesignal為進(jìn)行抽樣判決之后的信號,ssginal為碼型譯碼恢復(fù)為欲傳送的01bit流)
七、設(shè)計心得
實驗開始的時候是在準(zhǔn)備MATLAB課程考試那段期間,沒仔細(xì)認(rèn)真的看設(shè)計課題,當(dāng)時在做MATLAB綜合設(shè)計性實驗的時候比較吃力,覺得使用MATLAB編寫程序好難??偸且_好多M—file文件進(jìn)行編寫函數(shù),最麻煩的是寫完一個子函數(shù)在單獨對其進(jìn)行驗證就存在一些函數(shù)輸入的問題。當(dāng)時間過了3天之后,才拿起設(shè)計要求認(rèn)真看起來,想起老師在課堂上進(jìn)行基帶傳輸?shù)闹v解時還是很感興趣的,于是選擇的基帶傳輸系統(tǒng)作為我的本次課程設(shè)計的設(shè)計項目。
對通信系統(tǒng)的理解:因為之前有過課程設(shè)計的經(jīng)驗,于是剛開始的時候沒有急于編寫代碼,而是仔細(xì)認(rèn)真研究書本上的知識,進(jìn)行消化和理解。①定性了分析了整個通信系統(tǒng);②了解了基帶傳輸系統(tǒng)研究的意義;③在進(jìn)行對基帶傳輸碼型的研究后,于是選擇了其中一種應(yīng)用普遍的的碼型—HDB3碼作為本次設(shè)計項目的傳輸碼型,也進(jìn)一步加深對HDB3碼編碼規(guī)則的掌握;④明白基帶成型網(wǎng)絡(luò)的含義,及其傳輸特性方程和波形圖;⑤更進(jìn)一步理解了奈奎斯特準(zhǔn)則——無碼間干擾傳輸。
課程設(shè)計的收獲:本次課程設(shè)計結(jié)束了,受益良多。它帶來不僅是知識上的收獲,而且精神上的收獲也是無盡的。①本次課程設(shè)計是我在大學(xué)寥寥可數(shù)的幾次設(shè)計性實驗之一,是和同學(xué)們一起奮斗的一場經(jīng)歷??吹酵瑢W(xué)們的努力,看到老師的辛勤,自己也都不敢懈怠了。②實驗開始的那一刻,告誡自己沒有失敗,老師既然出了設(shè)計項目,既然已經(jīng)選擇的這個設(shè)計項目,就不許中途退出,這不是游戲,我想那一刻要的是勇氣,是決心吧!③實驗成功的那一刻,收獲的是信心,是對自己本學(xué)期以來學(xué)習(xí)《現(xiàn)代通信原理》的一個肯定,是對以后的學(xué)習(xí)的一種督促,也是對自己的未來大學(xué)校門外的生活的一個鼓勵。④還有就是在設(shè)計肯定會有不甚理解的地方,這就需要我們自己動手查找資料,增加的不僅是查找的資料上面的知識,更多的搜索的能力
編程體會:①在編寫代碼的時候,不急于剛開始就對著電腦編寫程序,一定要理解和整理出來你所想要做什么;②從前都沒有畫流程圖的習(xí)慣,不過此次試驗之前都有仔細(xì)分析,畫流程圖,發(fā)現(xiàn)在代碼編寫的過程中這樣不僅效率高,而且成功率還快;③還有就是因為在程序中過多的嵌套過多for循環(huán)語句和if選擇語句,所以很容易不小心就會導(dǎo)致代碼錯誤,所以程序中應(yīng)盡量避免。④還有就是一定要仔細(xì),仔細(xì),再仔細(xì)。
本次設(shè)計的改進(jìn):①實驗的碼型譯碼部分,當(dāng)時想的比較復(fù)雜,方式是編碼的逆運算,知道剛才進(jìn)行分析時,才恍然大悟,就是當(dāng)signal(j)與Last_B為同極性的,此時直接確定其signal(j-3)為0,而不是源代碼中的要確定此時的signal(j)與Last_V為不同極性是才返回改動signal(j-3)=0,這樣可以減少if語句的嵌套;②基帶成型網(wǎng)絡(luò)采用的是FDATool中進(jìn)行設(shè)計的Nyquist濾波器,可以考慮使用部分響應(yīng)進(jìn)行替換。③本次試驗可以進(jìn)行眼圖的觀察,也便能更深的理解基帶傳輸系統(tǒng).
八、參考文獻(xiàn)
[1]樊昌信等. 通信原理(第6版)[M]. 國防工業(yè)出版社,2008.3
[2]John G. proakis等著, 劉樹棠譯.現(xiàn)代通信系統(tǒng)(Matlab版)(第1版)[M], 西安交通大學(xué)出版社,
[3]唐向宏等著.MATLAB及在電子信息類課程中的應(yīng)用,電子工業(yè)出版社,2008年6月
愛華網(wǎng)



