Matlab通信原理設(shè)計(jì)報(bào)告new_第1頁
Matlab通信原理設(shè)計(jì)報(bào)告new_第2頁
Matlab通信原理設(shè)計(jì)報(bào)告new_第3頁
Matlab通信原理設(shè)計(jì)報(bào)告new_第4頁
Matlab通信原理設(shè)計(jì)報(bào)告new_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Matlab通信原理 課程設(shè)計(jì)目錄一 問題描述-3二 實(shí)驗(yàn)原理-4三 源程序-6四 數(shù)據(jù)測試-16五 調(diào)試分析-22六 用戶使用手冊-23七 心得體會-24一、問題描述1. 使用matlab編程完成HDB3的編碼與解碼。2. 課程設(shè)計(jì)需要運(yùn)用MATLAB編程實(shí)現(xiàn)2ASK,2FSK,2PSK,2DPSK調(diào)制解調(diào)過程,并且輸出其源碼,調(diào)制后碼元以及解調(diào)后碼元的波形。二、實(shí)驗(yàn)原理1.HDB3編碼解碼原理HDB3碼:三階高密度雙極性碼。 HDB3碼與二進(jìn)制序列的關(guān)系: (1)二進(jìn)制信號序列中的“0”碼在HDB3碼中仍編為“0”碼,二進(jìn)制信號中“1”碼,在HDB3碼中應(yīng)交替地成+1和-1碼,但序列中出現(xiàn)

2、四個連“0”碼時應(yīng)按特殊規(guī)律編碼(引入傳號交替反轉(zhuǎn)碼的“破壞點(diǎn)”V碼); (2)二進(jìn)制序列中四個連“0”按以下規(guī)則編碼:信碼中出現(xiàn)四個連“0”碼時,要將這四個連“0”碼用000V或B00V取代節(jié)來代替(B和V也是“1”碼,可正、可負(fù))。這兩個取代節(jié)選取原則是,使任意兩個相鄰v脈沖間的傳號數(shù)為奇數(shù)時選用000V取代節(jié),偶數(shù)時則選用B00V取代節(jié)。2.二進(jìn)制數(shù)字調(diào)制技術(shù)原理數(shù)字信號的傳輸方式分為基帶傳輸和帶通傳輸,在實(shí)際應(yīng)用中,大多數(shù)信道具有帶通特性而不能直接傳輸基帶信號。為了使數(shù)字信號在帶通信道中傳輸,必須使用數(shù)字基帶信號對載波進(jìn)行調(diào)制,以使信號與信道的特性相匹配。這種用數(shù)字基帶信號控制載波,把

3、數(shù)字基帶信號變換為數(shù)字帶通信號的過程稱為數(shù)字調(diào)制。通常使用鍵控法來實(shí)現(xiàn)數(shù)字調(diào)制,比如對載波的振幅、頻率和相位進(jìn)行鍵控。(1)2ASK信號的產(chǎn)生方法通常有兩種:模擬調(diào)制和鍵控法。解調(diào)有相干解調(diào)和非相干解調(diào)。P=1時f(t)=Acoswt;p=0時f(t)=0;其功率譜密度是基帶信號功率譜的線性搬移(2) 一個2FSK信號可以看成是兩個不同載波的2ASK信號的疊加。其解調(diào)和解調(diào)方法和ASK差不多。2FSK信號的頻譜可以看成是f1和f2的兩個2ASK頻譜的組合。(3) 2PSK以載波的相位變化作為參考基準(zhǔn)的,當(dāng)基帶信號為0時相位相對于初始相位為0, 當(dāng)基帶信號為1時相對于初始相位為180。(4) 2

4、DPSK調(diào)制原理方框圖如下圖。S(t) 載波移相p碼變換 A(t) 間接法信號調(diào)制器原理方框圖2DPSK信號的解調(diào),主要有兩種方法,即相位比較法和相干解調(diào)法。相干解調(diào)法原理方框圖如下圖: 帶通濾波相乘低通濾波抽樣判決逆碼變換本地載波 提取相干解調(diào)法原理方框圖三、源程序clearclca=20; %a表示元素個數(shù),可以修改碼元為任意個數(shù)如1024r=unidrnd(2,1,a-1); %隨機(jī)產(chǎn)生離散均勻二值分布(1,2),共a-1個rn=r-1; %每個元素減1變?yōu)椋?,1)二值隨機(jī)數(shù)列rn=1,rn; %跟書上一致,從1開始隨機(jī)產(chǎn)生離散均勻二值分布(1,2),共a個ori=rn; %將原序列保

5、存起來,便于后面解碼后比較oril=1; for k=1:a-3 if abs(rn(k)=1 m=rn(k); %m記錄可能存在的連續(xù)4個0前面非零碼元的符號 end if rn(k)=0 if rn(k+1)=0 if rn(k+2)=0 if rn(k+3)=0 %檢測是否連續(xù)4個碼元都是0 rn(k+3)=2*m; %用2表示書上的V end end end endendrn ; %插入V(2)后 checked l=1; %l=1表示兩個V之間有偶數(shù)個非零碼,0是偶數(shù),所以初始為1,l=-1表示兩個V之間有奇數(shù)個非零碼for s=1:a if abs(rn(s)=2 for d=s+

6、1:a if abs(rn(d)=1 %V之間的非零碼只有+1,-1遇到一個一使l變一次號,表示偶數(shù)或奇數(shù) l=-l; end if abs(rn(d)=2 if l=1 l=1; %不需要插入B時若檢測到V也應(yīng)把計(jì)數(shù)器清零 %最初版本的升級處1 else %檢測到下一個V時,若為偶數(shù)個,則插入B rn(d-3)=3*(-(rn(d-4)/(abs(rn(d-4); %3代表B,插入不帶符號的B rn(d:a)=-rn(d:a); end %V后的符號再交替 end end endendrn %到此處完成了插入不帶符號的B%for s=1:a % if abs(rn(s)=3 %找到B %rn

7、(s)=rn(s)*(-(rn(s-1)/(abs(rn(s-1); %B(3)與前一個位置的帶符號的歸一值相乘再取反,實(shí)現(xiàn)符號B(3)的極性與前一非符號的相反 %B后面第三個就是接下來的V,從它開始非零碼正負(fù)號交替變化 %end%end HDB=rn; %給B(3)添加了符號,并且實(shí)現(xiàn)了V后的符號再交替HDB %以上便實(shí)現(xiàn)了HDB3的編碼 %下面進(jìn)行解碼for k=1:a if abs(rn(k)=2 rn(k-3)=0;rn(k)=0; %每個V(2)都變成0,V前面第三個有可能是B(3)有可能是0也恢復(fù)為0 end if abs(rn(k)=1 rn(k)=1; endendrn %解碼

8、后的恢復(fù)序列rn-ori %解碼與原碼比較全為0則解碼正確 s=menu(通信原理,2ASK,2PSK,2FSK,2DPSK)switch s case 1,scolor=2ASK;n=8;N=100;K=4;a=randint(1,n);bita=;sl=;bitRate=1e3;fc=1e3;%載頻1KHZt=linspace(0,1/bitRate,N);for i=1:length(a) if a(i)=0 bit1=zeros(1,N); else bit1=ones(1,N); end bita=bita,bit1; c=sin(2*pi*t*fc); sl=sl c;endfig

9、ure(1);subplot(K,1,1);plot(bita,LineWidth,1.5),title(基帶信號),grid on;axis(0,N*length(a),-2.5,2.5);tz=bita*6.*sl;subplot(K,1,2);plot(tz,LineWidth,1.5);title(ASK調(diào)制后信號);grid on;signal=awgn(tz,80,measured);subplot(K,1,3);plot(signal,LineWidth,1.5),grid on;title(信號+噪聲)Fs=3e3;b,a=ellip(4,0.1,40,999.9,1000.1

10、*2/Fs);%設(shè)計(jì)IIR帶通濾波器,階數(shù)為4,通帶紋波0.1,阻帶衰減40DBsf=filter(b,a,signal);%信號通過該濾波器figure(2);K1=4;subplot(K1,1,1);plot(sf,LineWidth,1.5),grid on;title(BPF)signal2=abs(sf); %乘同頻同相sinsubplot(K1,1,2);plot(signal2,LineWidth,1.5),grid on;title(全波整流器); Fs=3e3;%抽樣頻率400HZb,a=ellip(4,0.1,40,50*2/Fs);%設(shè)計(jì)IIR低通濾波器sf1=filte

11、r(b,a,signal2);%信號通過該濾波器,輸出信號sfsubplot(K1,1,3);plot(sf1,LineWidth,1.5),grid on;title(LPF); sf2=;LL=fc/bitRate*N;i=LL/2;bitb=;while (i=0.001; i=i+LL; end for i=1:length(sf2) if sf2(i)=0 bit1=zeros(1,N); else bit1=ones(1,N); end bitb=bitb,bit1;endfigure(1);subplot(K,1,4); plot(bitb,LineWidth,1.5),grid

12、 on;title(解調(diào)后信號); axis(0,N*length(sf2),-2.5,2.5); case 2,scolor=2PSK; l=linspace(0,pi,50);% 數(shù)據(jù)初始化t=linspace(0,9*pi,450);b=1:1:9;out=1:1:450;f=1:1:450;g=1:1:450;w1=2 %正弦波f1的頻率,可以根據(jù)自己想要的頻率在此改寫 %正弦波f2的頻率,可以根據(jù)自己想要的頻率在此改寫f1=sin(w1*l);figure(1);f2=sin(w1*l+pi);figure(1);subplot(2,1,1),plot(l,f1),axis(0 pi

13、 -1.2 1.2),xlabel(t),ylabel(f1);%畫出f1信號波形subplot(2,1,2),plot(l,f2),axis(0 pi -1.2 1.2),xlabel(t),ylabel(f2);%畫出f2信號波形a=0 1 0 0 0 1 1 0 1for i=1:9 %2pSK編碼 if a(i)=0 for k=1:50 %如果二進(jìn)制原碼為0則輸出f1波形 out(k+50*(i-1)=f1(k); end else for j=1:50 out(j+50*(i-1)=f2(j); %r如果二進(jìn)制原碼為1則輸出f2波形 end endendfor i=1:9 %2PS

14、K解碼 n=0;m=0; for j=1:50 if out(j+50*(i-1)-f1(j)=0 n=n+1; else if out(j+50*(i-1)-f2(j)=0 m=m+1; end end end if nm b(i)=0; else b(i)=1; endend bfor i=1:9 %畫出解碼后的波形 ,包括原碼和解碼出的碼,進(jìn)行對比 for j=1+50*(i-1):50*i f(j)=a(i); g(j)=b(i); endendfigure(2);subplot(3,1,1),plot(t,f),axis(0 9*pi -0.2 1.2),xlabel(t),ylab

15、el(數(shù)字基帶調(diào)制原碼);subplot(3,1,2),plot(t,out),axis(0 9*pi -1.2 1.2),xlabel(t),ylabel(調(diào)制好的波形);subplot(3,1,3),plot(t,g),axis(0 9*pi -0.2 1.2),xlabel(t),ylabel(解碼得到的碼);Num,Rat=biterr(f,g) case 3,scolor=2FSK;%=生成隨機(jī)碼元、基帶信號、調(diào)制=%n=8;%隨機(jī)碼元個數(shù)N=100;%模擬一個碼元的點(diǎn)數(shù)K=4;%figure1畫四個小圖a=randint(1,n)%碼元生成bita=;%定義空數(shù)組,存放基帶信號fo

16、r i=1:length(a) if a(i)=0 bit1=zeros(1,N); else bit1=ones(1,N); end bita=bita,bit1;%基帶信號endfigure(1);subplot(K,1,1);plot(bita,LineWidth,1.5),title(基帶信號),grid on;axis(0,N*length(a),-2.5,2.5);bitRate=1e3;%每一個碼元中采樣點(diǎn)的間隔寬度0.001sfc=1e3;%載頻1KHZt=linspace(0,1/bitRate,N);tz=; c1=sin(2*pi*t*fc);%載波 c2=sin(2*p

17、i*t*fc*2);%載波 for i=1:length(a) if a(i)=1 tz=tz,c1; else tz=tz,c2; end endsubplot(K,1,2);plot(tz,LineWidth,1.5);title(2FSK已調(diào)信號);grid on;signal=awgn(tz,20,measured);%加噪subplot(K,1,3);plot(signal,LineWidth,1.5),grid on;title(信號+噪聲)%=解調(diào)=%Fs=5e3;%采樣頻率b1,a1=ellip(4,0.1,40,999.9,1000.1*2/Fs);%設(shè)計(jì)IIR帶通濾波器,階

18、數(shù)為4,通帶紋波0.1,阻帶衰減40DBb2,a2=ellip(4,0.1,40,1999.9,2000.1*2/Fs);sa=filter(b1,a1,signal);%信號通過該濾波器sb=filter(b2,a2,signal);figure(2);K1=3;%figure2畫(3*2)幅圖表示解調(diào)過程subplot(K1,2,1);plot(sa,LineWidth,1.5),grid on;title(BPF)subplot(K1,2,2);plot(sb,LineWidth,1.5),grid on;title(BPF)%=相乘器=%t=linspace(0,1/bitRate,N

19、);c1=sin(2*pi*t*fc);c2=sin(2*pi*t*fc*2);sia=;sib=; for i=1:n sia=sia,c1; sib=sib,c2; end siga=sa.*sia;%乘同頻同相sia sigb=sb.*sib;%乘同頻同相sibsubplot(K1,2,3);plot(siga,LineWidth,1.5),grid on;title(相乘器); subplot(K1,2,4);plot(sigb,LineWidth,1.5),grid on;title(相乘器); %=LPF=%Fs=5e3;%抽樣頻率400HZb1,a1=ellip(4,0.1,40

20、,50*2/Fs);%設(shè)計(jì)IIR低通濾波器b2,a2=ellip(4,0.1,40,50*2/Fs);%設(shè)計(jì)IIR低通濾波器sfa=filter(b1,a1,siga);%信號通過該濾波器,輸出信號sfasfb=filter(b2,a2,sigb);%信號通過該濾波器,輸出信號sfbsubplot(K1,2,5);plot(sfa,LineWidth,1.5),grid on;title(LPF); subplot(K1,2,6);plot(sfb,LineWidth,1.5),grid on;title(LPF);%=抽樣判決=%s2a=;s2b=;LL=fc/bitRate*N;i1=LL

21、/2;i2=LL;bitb=;while (i1=0; i1=i1+LL;endwhile (i2=length(sfb) s2b=s2b,sfb(i2)s2b(i) bit1=zeros(1,N); else bit1=ones(1,N); end bitb=bitb,bit1;endfigure(1);subplot(K,1,4); plot(bitb,LineWidth,1.5),grid on;title(解調(diào)后信號); axis(0,length(bitb),-2.5,2.5); case 4,scolor=2DPSK; %- 2DPSK 調(diào)制與解調(diào)%-%Initial_Part%-

22、fs = 30000;Time_Hold_On = 0.1;Num_Unit = fs * Time_Hold_On;High_Level = ones ( 1, Num_Unit );Low_Level = zeros ( 1, Num_Unit );w = 300;A = 1;%-%Initial_The_Signal%-Sign_Set = 0,1,1,0,1,0,0,1Lenth_Of_Sign = length ( Sign_Set );st = zeros ( 1, Num_Unit * Lenth_Of_Sign );sign_orign = zeros ( 1, Num_Uni

23、t * Lenth_Of_Sign );sign_result = zeros ( 1, Num_Unit * Lenth_Of_Sign );t = 0 : 1/fs : Time_Hold_On * Lenth_Of_Sign - 1/fs;%-%產(chǎn)生基帶信號%-for I = 1 : Lenth_Of_Sign if Sign_Set(I) = 1 sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level; else sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level;

24、 endend%-%調(diào)制部分%-for I = 1 : Lenth_Of_Sign if Sign_Set(I) = 1 st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) + ( pi / 2 ) ); else st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) ); endendfiguresubpl

25、ot ( 2,1,1 )plot(t, sign_orign);axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - (A / 2), A + (A / 2) );title ( 原始信號 );gridsubplot ( 2, 1, 2 );plot ( t, st );axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title ( 調(diào)制后的信號 );grid%-%相乘%-dt = st .* cos ( 2 * pi * w * t );figureplot

26、 ( t, dt );axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title ( 相乘后的波形 );grid%-%低通濾波部分%-N,Wn = buttord( 2*pi*50, 2*pi*150,3,25,s); %臨界頻率采用角頻率表示b,a=butter(N,Wn,s);bz,az=impinvar(b,a,fs); %映射為數(shù)字的dt = filter(bz,az,dt);figureplot ( t, dt );axis( 0 , Time_Hold_On *( Lenth_Of_Sig

27、n + 1), - 3*(A / 2), 3*(A / 2) );title ( 低通濾波后的波形 );grid%-%抽樣判決 & 逆碼變換部分%-for I = 1 : Lenth_Of_Sign if dt(2*I-1)*Num_Unit/2) 0.25 sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level; else sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level; endendfigureplot ( t, sign_result );axis( 0 ,

28、Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title ( 解調(diào)后信號 );grid end四、測試數(shù)據(jù)運(yùn)行程序命令窗口會顯示隨進(jìn)產(chǎn)生的二進(jìn)制碼,對此二進(jìn)制碼進(jìn)行HDB3編碼之后得碼元,解碼之后得碼元以及解碼之后得碼元與原基帶碼進(jìn)行比較得結(jié)果 如下圖:還會出現(xiàn)調(diào)制解調(diào)得選擇窗口,來進(jìn)行選擇調(diào)制解調(diào)方式 如下在選擇窗口中可以看到有四種調(diào)制解調(diào)方式選擇2ASK進(jìn)行調(diào)制解調(diào)可以看到隨機(jī)得基帶信號,2ASK調(diào)制后的信號以及2ASK解調(diào)后的信號進(jìn)入菜單 從新選擇2PSK可以看到隨機(jī)產(chǎn)生得2PSK基帶信號,2PSK調(diào)制后的信號以

29、及2PSK解調(diào)后的信號進(jìn)入菜單欄重新選擇2FSK調(diào)制解調(diào)可以看到隨機(jī)產(chǎn)生得基帶信號,使用2FSK調(diào)制后的信號以及使用2FSK解調(diào)后的信號進(jìn)入菜單欄從新選擇2DPSK調(diào)制解調(diào)以上為隨機(jī)產(chǎn)生得二進(jìn)制原始信號以及2DPSK調(diào)制之后得信號使用2DPSK解調(diào)之后的信號五、調(diào)試分析1、調(diào)試方法:運(yùn)行程序,按要求測試各功能能否實(shí)現(xiàn),如果不能實(shí)現(xiàn),則尋找問題原因,修改程序后再次運(yùn)行,再次測試功能能否實(shí)現(xiàn),直到成功實(shí)現(xiàn)所有功能。2、問題分析與解決措施.在調(diào)試過程中遇到了(1)輸出數(shù)據(jù)出錯.錯誤:有時運(yùn)行程序,在產(chǎn)生隨機(jī)二進(jìn)制碼時由于程序的不穩(wěn)定,在產(chǎn)生1的時候卻產(chǎn)生了2,進(jìn)行程序修改之后是之變得穩(wěn)定。(2)輸出

30、提示語句未顯示錯誤:提示語與程序中設(shè)置顯示語言發(fā)生沖突。(3)使用menu模塊時未能成功連接錯誤:連接語使用不一致六、用戶使用手冊通信原理(第六版) 樊昌信 曹麗娜編國防工業(yè)出版社MATLAB程序設(shè)計(jì)與應(yīng)用(第二版)劉衛(wèi)國主編高等教育出版社七、心得體會通過這兩周的通信原理課程設(shè)計(jì)實(shí)踐,我復(fù)習(xí)了MATLAB編程語言的基本概念、語法、語義和數(shù)據(jù)類型的使用特點(diǎn),加深了對課堂所學(xué)理論知識的理解,掌握了運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的基本思想和方法,更重要的是培養(yǎng)了自己的自學(xué)能力。因?yàn)檫@是我們第二次接觸MATLAB編程語言,在編寫程序以及調(diào)試的過程中遇到了很多困難,但是我通過去圖書館查找資料,請教同學(xué)老師,再自己一點(diǎn)點(diǎn)改善程序,最終編寫出一個比較完善的程序,實(shí)現(xiàn)了所有要求功能,這是最值得我欣慰的一點(diǎn)。 以下是我的幾點(diǎn)切身感受: (一)編寫程序需要一個清醒的頭腦,明確的思路,同時也要有耐心毅力

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論