2DPSK载波调制信号的调制解调与性能分析.docx
《2DPSK载波调制信号的调制解调与性能分析.docx》由会员分享,可在线阅读,更多相关《2DPSK载波调制信号的调制解调与性能分析.docx(26页珍藏版)》请在冰豆网上搜索。
2DPSK载波调制信号的调制解调与性能分析
*****************
实践教学
*******************
兰州理工大学
计算机与通信学院
2013年春季学期
通信系统仿真训练课程设计
题目:
2DPSK载波调制信号的调制解调与性能分析
专业班级:
通信工程四班
******
学号:
********
*******
成绩:
摘要
本课程设计是利用MATLAB集成环境下的仿真平台,设计一个2DPSK调制与解调通信系统,并把运行仿真结果输入显示器,根据显示结果分析所设计的系统性能。
本课程设计主要是通过对基带信号进行调制解调后再还原成原来的基带信号,用示波器观察调制前后波形,并在电路中加入频谱分析模块,观察调制前后信号频谱的变换,并在调制与解调过程中加入噪声源后分析接受信号的性能。
电路通过运行后,基本达到本课程设计的要求。
关键词:
MATLAB;2DPSK;相干解调
一设计任务及要求
(1)掌握二进制差分相移键控(2DPSK)调制与解调的原理以及实现方法;
(2)根据DPSK系统原理给出DPSK信号的调制和解调原理框图。
(3)利用MATLAB7.0仿真实现2DPSK信号的调制与解调,并仿真2DPSK载波调制信号在高斯白噪声信道下的误码率及误比特率性能,要求给出调制信号,载波信号及已调信号的波形图和频谱图。
(4)在高斯白噪声下,讨论2DPSK误码率及误比特率性能,得出仿真结果,并与理论值相比较。
二基本原理
2.12DPSK基础知识
2DPSK即二进制差分相移键控(2DPSK)二进制差分相移键控常简称为二相相对调相,记作2DPSK。
它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。
所谓相对载波相位是指本码元初相与前一码元初相之差。
∆Φ=0→数字信息“0”;
∆Φ=π→数字信息“1”。
则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:
数字信息:
1011011101
DPSK信号相位:
π00π00π0ππ0
或:
0ππ0ππ0π00π
2.22DPSK的调制原理
一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。
2DPSK信号的的模拟调制法框图如图1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。
图1模拟调制法
2DPSK信号的的键控调制法框图如图2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。
选相开关作用为当输入为数字信息“0”时接相位0,当输入数字信息为“1”时接pi。
图2键控调制
2.32DPSK的解调原理
2DPSK信号最常用的解调方法有两种,一种是极性比较法,另一种是差分相干法。
差分相干法:
2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。
它的原理框图如图
图3差分相干法法
极性比较法:
2DPSK信号经过带通滤波器,滤掉信道中产生的噪声,再与本地载波相乘,经过低通滤波器,得到包含基带信号的低频信号,将其送入抽样判决器得到相对码,再经过码(反)变换器得到基带信号。
原理图如下所示
图4极性比较法法
三仿真程序设计
3.1调制系统设计
1)产生基带信号
本例中使用matlab中的rand函数随机产生10个随机数,并采用就近取整的办法使其值为0、1.此过程产生的码为绝对码。
并且,每个值需要分配一定的长度。
代码如下:
clearall
closeall
i=10;%码元的个数
j=5000;
fc=4;
fm=i/5;
B=2*fm;
t=linspace(0,5,j);%将0-5区间平均分为j份
%%%%%%%%%%%%%产生基带信号%%%%%%%%%%%%%%%%
a=round(rand(1,i));%产生10个随机码,记为a
st1=t;
forn=1:
10
ifa(n)<1;
form=j/i*(n-1)+1:
j/i*n%j/i为每个码元的
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
2)相对码产生
根据相对码的原理,源码中1的值对应相位改变π,源码中0的值对应相位不改变。
将π变为1,0仍为0,则形成相对码。
代码如下
b=zeros(1,i);
b
(1)=a
(1);
forn=2:
10
ifa(n)>=1;
ifb(n-1)>=1
b(n)=0;
else
b(n)=1;
end
else
b(n)=b(n-1);
end
end
st1=t;
forn=1:
10
ifb(n)<1;
form=j/i*(n-1)+1:
j/i*n
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
subplot(412);
plot(t,st1);
title('相对码');
axis([0,5,-1,2]);
st2=t;
fork=1:
j;
ifst1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end
end;
st1即为相对码,st2为相对码的反码,在调制中使用。
3)产生载波信号
代码:
s1=sin(2*pi*fc*t);
4)调制
按图一中所示,相对码及其反码分别和载波相乘再相加,即得到调制信号。
d1=st1.*s1;
d2=st2.*(-s1);%相移180
figure
(2);
subplot(4,1,1);
plot(t,d1);
title('st1*s1');
subplot(4,1,2);
plot(t,d2);
title('st2*s2');
e_dpsk=d1+d2;
图5码元产生
图6调制信号
3.2传输系统设计
传输系统设计比较简答,只需加入信道噪声即可。
代码:
noise=rand(1,j);
dpsk=e_dpsk+0.5*noise;%加入噪声
效果如图6所示
3.3解调系统设计
解调系统中,极性比较法和差分相干法有很多部分相同,可以用相同设计。
带通滤波器。
乘法器,由于是仿真,可直接相乘。
低通滤波器设计为只允许基频信号通过。
代码:
[f,af]=T2F(t,dpsk);
[t,dpsk]=lpf(f,af,B);
所用函数代码:
T2F子函数
function[f,sf]=T2F(t,st)
%ThisisafunctionusingtheFFTfunctiontocalculateasignal'sFourier
%Translation
%Inputisthetimeandthesignalvectors,thelengthoftimemustgreater
%than2
%Outputisthefrequencyandthesignalspectrum
dt=t
(2)-t
(1);
T=t(end);
df=1/T;
N=length(st);
Lpf子函数
f=-N/2*df:
df:
N/2*df-df;
sf=fft(st);
sf=T/N*fftshift(sf);
function[t,st]=lpf(f,sf,B)
%Thisfunctionfilteraninputdatausingalowpassfilter
%Inputs:
f:
frequencysamples
%sf:
inputdataspectrumsamples
%B:
lowpass'sbandwidthwitharectanglelowpass
%Outputs:
t:
timesamples
%st:
outputdata'stimesamples
df=f
(2)-f
(1);
T=1/df;
hf=zeros(1,length(f));
bf=[-floor(B/df):
floor(B/df)]+floor(length(f)/2);
hf(bf)=1;
yf=hf.*sf;
[t,st]=F2T(f,yf);
st=real(st);
抽样判决器
抽样判决器就是过零检测。
代码:
st=zeros(1,i);
form=0:
i-1;
ifdpsk(1,m*500+250)<0;
st(m+1)=0;
forj=m*500+1:
(m+1)*500;
dpsk(1,j)=0;
end
else
forj=m*500+1:
(m+1)*500;
st(m+1)=1;
dpsk(1,j)=1;
end
end
End
两种解调方式不同之处在于延迟单元和码(反)变换器。
延迟单元
延迟一个码元长度,第一个码元长度的内容根据编码规则,抽样判决。
代码:
ifdpsk(65)<0
dpsk_delay(1:
j/i)=dpsk(1:
j/i);
else
dpsk_delay(1:
j/i)=-dpsk(1:
j/i)
end
dpsk_delay(j/i+1:
j)=dpsk(1:
j-j/i);
码(反)变换器
将相对码变换为绝对码,与编码器正好相反。
代码:
dt=zeros(1,i);
dt
(1)=st
(1);
forn=2:
10;
if(st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;
dt(n)=0;
else
dt(n)=1;
end
end
st=t;
forn=1:
10
ifdt(n)<1;
form=j/i*(n-1)+1:
j/i*n
st(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st(m)=1;
end
end
end
3.4极性比较法解调结果结果
如图7、8所示,可见解调结果与源码完全一致。
图7极性比较法解调结果
图8源码
3.5差分相干法解调结果分析
如图9、10所示,解调结果与源码完全一致。
图9差分相干法解调结果
图10源码
附录
1极性比较法
clearall
closeall
i=10;%码元的个数
j=5000;
fc=4;
fm=i/5;
B=2*fm;
t=linspace(0,5,j);%将0-5区间平均分为j份
%%%%%%%%%%%%%产生基带信号%%%%%%%%%%%%%%%%
a=round(rand(1,i));%产生10个随机码,记为a
st1=t;
forn=1:
10
ifa(n)<1;
form=j/i*(n-1)+1:
j/i*n%j/i为每个码元的
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
figure
(1);
subplot(411);
plot(t,st1);
title('绝对码');
axis([0,5,-1,2]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%差分变换
b=zeros(1,i);
b
(1)=a
(1);
forn=2:
10
ifa(n)>=1;
ifb(n-1)>=1
b(n)=0;
else
b(n)=1;
end
else
b(n)=b(n-1);
end
end
st1=t;
forn=1:
10
ifb(n)<1;
form=j/i*(n-1)+1:
j/i*n
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
subplot(412);
plot(t,st1);
title('相对码');
axis([0,5,-1,2]);
st2=t;
fork=1:
j;
ifst1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end
end;
subplot(413)
plot(t,st2)
title('相对码的反码')
axis([05-12])
%%%%%%%%%%%%载波信号%%%%%%%%%%%%%%%%%
s1=sin(2*pi*fc*t);
subplot(414);
plot(s1);
title('载波信号');
%%%%%%%%%%%%%%调制%%%%%%%%%%%%%%%%%%%%%%
d1=st1.*s1;
d2=st2.*(-s1);%相移180
figure
(2);
subplot(4,1,1);
plot(t,d1);
title('st1*s1');
subplot(4,1,2);
plot(t,d2);
title('st2*s2');
e_dpsk=d1+d2;
subplot(4,1,3);
plot(t,e_dpsk);
title('调制后波形');
noise=rand(1,j);
dpsk=e_dpsk+0.5*noise;%加入噪声
subplot(4,1,4);
plot(t,dpsk);
title('加噪声信号');
%%%%%%%%%%%%%与载波相乘%%%%%%%%%%%%%%%%%%%%%
dpsk=dpsk.*sin(2*pi*fc*t);%与载波相乘
figure
subplot(4,1,1);
plot(t,dpsk);
title('与载波相乘后波');
%%%%%%%%%%%%%低通滤波%%%%%%%%%%%%%%%%%%%%%%%%
[f,af]=T2F(t,dpsk);%通过低通滤波器
[t,dpsk]=lpf(f,af,B);
subplot(4,1,2);
plot(t,dpsk);
title('通过低通滤波器波形');
%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%%%%%%%%%%%
st=zeros(1,i);
form=0:
i-1;
ifdpsk(1,m*500+250)<0;
st(m+1)=0;
forj=m*500+1:
(m+1)*500;
dpsk(1,j)=0;
end
else
forj=m*500+1:
(m+1)*500;
st(m+1)=1;
dpsk(1,j)=1;
end
end
end
subplot(4,1,3);
plot(t,dpsk);
axis([0,5,-1,2]);
title('抽样判决后波形')
%%%%%%%%%%%%%%码反变换%%%%%%%%%%%%%%%%%%
dt=zeros(1,i);
dt
(1)=st
(1);
forn=2:
10;
if(st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;
dt(n)=0;
else
dt(n)=1;
end
end
st=t;
forn=1:
10
ifdt(n)<1;
form=j/i*(n-1)+1:
j/i*n
st(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st(m)=1;
end
end
end
subplot(4,1,4);
plot(t,st);
title('码反变换后波形');
axis([0,5,-1,2]);
2差分相干法
clearall
closeall
i=10;%码元的个数
j=5000;
fc=4;
fm=i/5;
B=2*fm;
t=linspace(0,5,j);%将0-5区间平均分为j份
%%%%%%%%%%%%%产生基带信号%%%%%%%%%%%%%%%%
a=round(rand(1,i));%产生10个随机码,记为a
st1=t;
forn=1:
10
ifa(n)<1;
form=j/i*(n-1)+1:
j/i*n%j/i为每个码元的
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
figure
(1);
subplot(411);
plot(t,st1);
title('绝对码');
axis([0,5,-1,2]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%差分变换
b=zeros(1,i);
b
(1)=a
(1);
forn=2:
10
ifa(n)>=1;
ifb(n-1)>=1
b(n)=0;
else
b(n)=1;
end
else
b(n)=b(n-1);
end
end
st1=t;
forn=1:
10
ifb(n)<1;
form=j/i*(n-1)+1:
j/i*n
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
subplot(412);
plot(t,st1);
title('相对码');
axis([0,5,-1,2]);
st2=t;
fork=1:
j;
ifst1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end
end;
subplot(413)
plot(t,st2)
title('相对码的反码')
axis([05-12])
%%%%%%%%%%%%载波信号%%%%%%%%%%%%%%%%%
s1=sin(2*pi*fc*t);
subplot(414);
plot(s1);
title('载波信号');
%%%%%%%%%%%%%%调制%%%%%%%%%%%%%%%%%%%%%%
d1=st1.*s1;
d2=st2.*(-s1);%相移180
figure
(2);
subplot(4,1,1);
plot(t,d1);
title('st1*s1');
subplot(4,1,2);
plot(t,d2);
title('st2*s2');
e_dpsk=d1+d2;
subplot(4,1,3);
plot(t,e_dpsk);
title('调制后波形');
noise=rand(1,j);
dpsk=e_dpsk+0.5*noise;%加入噪声
subplot(4,1,4);
plot(t,dpsk);
title('加噪声信号');
%%%%%%%%%%%%延迟单元%%%%%%%%%%%%%%%%%%%%
ifdpsk(65)<0
dpsk_delay(1:
j/i)=dpsk(1:
j/i);
else
dpsk_delay(1:
j/i)=-dpsk(1:
j/i)
end
dpsk_delay(j/i+1:
j)=dpsk(1:
j-j/i);
%%%%%%%%%%%%与未延迟信号相乘%%%%%%%%%%%%%%
dpsk=dpsk.*dpsk_delay;
figure
subplot(3,1,1)
plot(t,dpsk);
title('延迟相乘后波形');
%%%%%%%%%%%%%低通滤波%%%%%%%%%%%%%%%%%%%%%%%%
[f,af]=T2F(t,dpsk);%通过低通滤波器
[t,dpsk]=lpf(f,af,B);
subplot(3,1,2);
plot(t,dpsk);
title('通过低通滤波器波形');
%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%%%%%%%%%%%
st=zeros(1,i);
form=0:
i-1;
ifdpsk(1,m*500+250)<0;
st(m+1)=0;
forj=m*500+1:
(m+1)*500;
dpsk(1,j)=1;
end
else
forj=m*500+1:
(m+1)*500;
st(m+1)=1;
dpsk(1,j)=0;
end
end
end
subplot(3,1,3);
plot(t,dpsk);
axis([0,5,-1,2]);
title('抽样判决后波形')
总结
在利用Matlab完成的2DPSK调制解调系统仿真设计中,由于信道中引入了适当的高斯白噪声,还有接收端带通滤波器的参数设置问题,它使解调后的输出波形与信号源产生的波形相比有一定的畸变和时延。
为了更好地改善系统的传输性能,在设置每个模块的参数时都须经过严密计算得出确切的值。
此外,同步也是该通信系统中一个重要的研究问题。
本设计中采用了差分相干解调的设计方式,接收端需要提供一个与发射端调制载波同频同相的相干载波,这样才能保证载波同步。
解调出的基带信号要经过抽样判决器。
抽样判决的时刻应位于每个码元的终止时刻,因此,在接收端必须产生一个用作抽样判决的定时脉冲序列,它和码元接收的终止时刻应对齐,还应与系统输入的时钟信号相一致,这样就保证了系统的位同步。
解决了以上几点问题后,系统的输出波形得以改善,误码率降低,信息传输的质量更为可靠,基本达到的设计要求。
参考文献
[1]孙青卉,董廷山.通信技术基础[M].北京:
人民邮电出版社,2008.
[2]JohnG.Proakis.通信系统工程(第二版)[M].北京:
电子工业出版社,2007.
[3]樊昌信,张甫翊,徐炳祥,吴成柯.通信原理(第五版)[M].北京:
国防工业出版社,2007.
[4]达新宇,陈树新,王瑜,林家薇.通信原理教程[M].北京:
北京邮电大学出版社,2005.