作者:肖應權
數(shù)字帶通傳輸系統(tǒng)為了進行長距離傳輸,克服傳輸失真,傳輸損耗,同時保證帶內特性。必須對數(shù)字信號進行載波調制,將信號頻譜搬移到高頻段才能在信道中傳輸,因而現(xiàn)代通信系統(tǒng)采取數(shù)字調制技術。通過數(shù)字基帶信號對載波某些參量進行控制,使之隨機帶信號的變化而變化。根據(jù)控制載波參量大的不同,數(shù)字調制有調幅(ASK),調頻(FSK),調相(PSK) 三種基本形式。Matlab用于仿真,分析和修改,還可以應用圖形界面功能GUI能為仿真系統(tǒng)生成一個人機交互界面,便于仿真系統(tǒng)的操作,因此采用matlab對數(shù)字系統(tǒng)進行仿真。通過對系統(tǒng)的仿真,我們可以更加直觀的了解數(shù)字調制系統(tǒng)的性能及影響性能的因素,從而便于改進系統(tǒng),獲得更佳的傳輸性能。
1. 二進制數(shù)字調制技術原理
數(shù)字信號的傳輸方式分為基帶傳輸和帶通傳輸,在實際應用中,大多數(shù)信道具有帶通特性而不能直接傳輸基帶信號。為了使數(shù)字信號在帶通信道中傳輸,必須使用數(shù)字基帶信號對載波進行調制,以使信號與信道的特性相匹配。這種用數(shù)字基帶信號控制載波,把數(shù)字基帶信號變換為數(shù)字帶通信號的過程稱為數(shù)字調制。通常使用鍵控法來實現(xiàn)數(shù)字調制,比如對載波的振幅、頻率和相位進行鍵控。
2. 2ASK
2ASK信號的產(chǎn)生方法通常有兩種:模擬調制和鍵控法。解調有相干解調和非相干解調。P=1時f(t)=Acoswt;p=0時f(t)=0;其功率譜密度是基帶信號功率譜的線性搬移。2ASK時域表示及波形,2ASK是利用代表數(shù)字信息("0"或"1")的基帶矩形脈沖去鍵控一個連續(xù)的正弦型載波的振幅,使載波時斷時續(xù)地輸出。有載波輸出時表示發(fā)送"1",無載波輸出時表示發(fā)送"0"。
數(shù)字基帶信號如式(1)
式中g(t)是寬度為Ts、高度為A的矩形脈沖。a n為數(shù)字序列{a n}的第n個碼元的電平值。顯然,上式給出的表達是單極性不歸零碼。載波 c(t)=COS(ωct+ 0 ), 初始相位 0 =0。
對應的波形如圖2:
特點:"1"碼期間有等幅正弦波輸出,相當于開關開通;"0"碼期間無輸出,相當于開關切斷。因此,數(shù)字調幅又稱為開關鍵控(通斷鍵控),記作OOK(On Off Keying)。
兩種調制方法如圖3:
圖3 2ASK的兩種調制方法
2ASK在matlab下的仿真如下:
clear all
close all
i=10;
j=5000;
t=linspace(0,5,j);%取0,0.001,0.002,。。。5 共5001個點
fc=10;
fm=i/5;
B=2*fc; %產(chǎn)生基帶信號
a=round(rand(1,i));%隨機序列
figure(2)
plot(rand(1,i))
st=t;
for n=1:10
if a(n)<1;
for m=j/i*(n-1)+1:j/i*n %一個信號取500個點
st(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
st(m)=1;
end
end
end
figure(1);
subplot(421);
plot(t,st);
axis([0,5,-1,2]);
title('基帶信號');
s1=cos(2*pi*fc*t); %載波
subplot(422);
plot(s1);
title('載波信號');
e_2ask=st.*s1; %調制
subplot(423);
plot(t,e_2ask);
title('已調信號');
noise =rand(1,j);
e_2ask=e_2ask+noise;%加入噪聲
subplot(424);
plot(t,e_2ask);
title('加入噪聲的信號');
at=e_2ask.*cos(2*pi*fc*t); %相干解調
at=at-mean(at);
subplot(425);
plot(t,at);
title('相乘后信號');
[f,af] = T2F(t,at);%通過低通濾波器
[t,at] = lpf(f,af,2*fm);
subplot(426);
plot(t,at);
title('解調后波形');
for m=0:i-1; %抽樣判決
if at(1,m*500+250)+0.5<0.5;
for j=m*500+1:(m+1)*500;
at(1,j)=0;
end
else
for j=m*500+1:(m+1)*500;
at(1,j)=1;
end
end
end
subplot(427);
plot(t,at);
axis([0,5,-1,2]);
title('抽樣判決后波形')
3. 2FSK
一個FSK信號可以看成是兩個不同載波的2ASK信號的疊加。其解調和解調方法和ASK差不多。2FSK信號的頻譜可以看成是f1和f2的兩個2ASK頻譜的組合。
公式如下:
clear all
close all
i=10;%基帶信號碼元數(shù)
j=5000;
a=round(rand(1,i));%產(chǎn)生隨機序列
t=linspace(0,5,j);
f1=10;%載波1頻率
f2=5;%載波2頻率
fm=i/5;%基帶信號頻率
B1=2*f1;%載波1帶寬
B2=2*f2;%載波2帶寬
st1=t; %產(chǎn)生基帶信號
for n=1:10
if a(n)<1;
for m=j/i*(n-1)+1:j/i*n
st1(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
st1(m)=1;
end
end
end
st2=t;
for n=1:j; %基帶信號求反
if st1(n)>=1;
st2(n)=0;
else
st2(n)=1;
end
end;
figure(1);
subplot(411);
plot(t,st1);
title('基帶信號');
axis([0,5,-1,2]);
subplot(412);
plot(t,st2);
title('基帶信號反碼');
axis([0,5,-1,2]);
s1=cos(2*pi*f1*t) %載波信號
s2=cos(2*pi*f2*t)
subplot(413),plot(s1);
title('載波信號1');
subplot(414),plot(s2);
title('載波信號2'); %調制
F1=st1.*s1;%加入載波1
F2=st2.*s2;%加入載波2
figure(2);
subplot(411);
plot(t,F1);
title('s1*st1');
subplot(412);
plot(t,F2);
title('s2*st2');
e_fsk=F1+F2;
subplot(413);
plot(t,e_fsk);
title('2FSK信號')
nosie=rand(1,j);
fsk=e_fsk+nosie;
subplot(414);
plot(t,fsk);
title('加噪聲信號') %相干解調
st1=fsk.*s1;%與載波1相乘
[f,sf1] = T2F(t,st1);%通過低通濾波器
[t,st1] = lpf(f,sf1,2*fm);
figure(3);
subplot(311);
plot(t,st1);
title('與載波1相乘后波形');
st2=fsk.*s2;%與載波2相
[f,sf2] = T2F(t,st2);%通過低通濾波器
[t,st2] = lpf(f,sf2,2*fm);
subplot(312);
plot(t,st2);
title('與載波2相乘后波形');
for m=0:i-1; %抽樣判決
if st1(1,m*500+250)<0.25;
for j=m*500+1:(m+1)*500;
at(1,j)=0;
end
else
for j=m*500+1:(m+1)*500;
at(1,j)=1;
end
end
end;
subplot(313);
plot(t,at);
axis([0,5,-1,2]);
title('抽樣判決后波形')
4. 2PSK
2PSK以載波的相位變化作為參考基準的,當基帶信號為0時相位相對于初始相位為0,當基帶信號為1時相 對于初始相位為180°。
clear all
close all
i=10;
j=5000;
fc=4;
fm=i/5;
B=2*fm;
t=linspace(0,5,j); %產(chǎn)生基帶信號
a=round(rand(1,i));
st1=t;
for n=1:10
if a(n)<1;
for m=j/i*(n-1)+1:j/i*n
st1(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
st1(m)=1;
end
end
end
subplot(321);
plot(t,st1);
title('基帶信號');
axis([0,5,-1,2]);
st2=t; %基帶信號求反
for k=1:j;
if st1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end
end;
subplot(322);
plot(t,st2);
title('基帶信號反碼');
axis([0,5,-1,2]); %載波信號
s1=sin(2*pi*fc*t);
s2=sin(2*pi*fc*t+pi);
subplot(323);
plot(s1);
title('載波信號'); %調制
p1=st1.*s1;
p2=st2.*s2;
subplot(324);
plot(t,p1);
title('st1*s1');
subplot(325);
plot(t,p2);
title('st2*s2');
e_psk=p1+p2;
subplot(326);
plot(t,e_psk);
title('e_2psk');
noise=rand(1,j);
psk=e_psk+noise;%加入噪聲
figure(2);
subplot(411);
plot(t,psk);
title('加噪后波形'); %相干解調
psk=psk.*s1;%與載波相乘
subplot(412);
plot(t,psk);
title('與載波相乘后波');
[f,af] = T2F(t,psk);%通過低通濾波器
[t,psk] = lpf(f,af,B);
subplot(413);
plot(t,psk);
title('通過低通濾波器波形'); %抽樣判決
for m=0:i-1;
if psk(1,m*500+250)<0;
for j=m*500+1:(m+1)*500;
psk(1,j)=0;
end
else
for j=m*500+1:(m+1)*500;
psk(1,j)=1;
end
end
end
subplot(414);
plot(t,psk);
axis([0,5,-1,2]);
title('抽樣判決后波形')
通過以上的仿真分析,我們可以知道,在誤碼率相同的情況下,所需要的信噪比2ASK比2FSK高3dB,2fsk比2psk高3db,2ask比2psk高6db。也就是說,若信噪比r一定,2psk系統(tǒng)的誤碼率比2fsk的小,2fsk系統(tǒng)的誤碼率比2ask的小,由此看來,在抗加性高斯白噪聲方面,想干2psk性能最好,2fsk次之,2ask最差。當然,后面還有DPSK,等等改進型的。(如果你對本文的代碼和仿真圖像有任何疑問可聯(lián)系本文作者QQ:1529620855)
(審核編輯: 小王子)
分享