根据matlab的相移键控系统仿真.docx
《根据matlab的相移键控系统仿真.docx》由会员分享,可在线阅读,更多相关《根据matlab的相移键控系统仿真.docx(24页珍藏版)》请在冰豆网上搜索。
根据matlab的相移键控系统仿真
江西农业大学
通信原理课程设计报告
课题名称基于Matlab的相移键控仿真设计
班级信工1301
学号201*****
姓名权俊男
2O16年6月
基于Matlab的2PSK,2DPSK仿真
摘要:
现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制技术
一直是研究的一个重要方向。
本设计主要叙述了数字信号的调制方式,介绍了2PSK数字调制方式的
基本原理,功率谱密度,并运用MATLAB软件对数字调制方式2PSK进行了编程仿真实现,在MATLAB平
台上建立2PSK和2DPSK调制技术的仿真模型。
进一步学习了MATLAB编程软件,将MATLAB与通信系统
中数字调制知识联系起来,为以后在通信领域学习和研究打下了基础在计算机上,运用MATLAB软件
来实现对数字信号调制技术的仿真。
关键词:
数字调制与解调;MATLAB;2PSK;2DPSK;
第1章绪论
1.1调制方式
数字通信系统,按调制方式可以分为基带传输和带通传输。
数字基带信号的功率一般处于从零开始到某一频率(如0~6M)低频段,因而在很多实际的通信(如无线信道)中就不能直接进行传输,需要借助载波调制进行频谱搬移,将数字基带信号变换成适合信道传输的数字频带信号进行传输,这种传输方式,称为数字信号的频带传输或调制传输、载波传输。
所谓调制,是用基带信号对载波波形的某参量进行控制,使该参量随基带信号的规律变化从而携带消息。
对数字信号进行调制可以便于信号的传输;实现信道复用;改变信号占据的带宽;改善系统的性能。
数字基带通信系统中四种基本的调制方式分别称为振幅键控(ASK,Amplitude-Shiftkeying)、移频键控(FSK,Frequency-Shiftkeying)、移相键控(PSK,Phase-Shiftkeying)和差分移相键(DPSK,DifferentPhase-Shiftkeying)。
本次课程设计对PSK,DPSK这两种调制方式进行了仿真。
1.2设计要求
1.2.1设计内容
用MATLAB完成对2PSK、2DPSK的调制与解调仿真电路设计,并对仿真结果进行分析,可编写程序,也可硬件设计框图
1.2.2设计参数(参数可以自行设置)
1、传输基带数字信号(15位)码元周期T=0.01S
2、载波频率:
15KHz
1.2.3设计仪器
计算机和MATLAB软件
第2章2PSK,2DPSK原理
2.12PSK原理
2.1.12PSK基本原理
二进制移相键控,简记为2PSK或BPSK。
2PSK信号码元的“0”和“1”分别用两个不同的初始相位“0”和“
”来表示,而其振幅和频率保持不变.因此,2PSK信号的时域表达式为:
(t)=Acos
t+
)
其中,
表示第n个符号的绝对相位:
=
因此,上式可以改写为:
这种以载波的不同相位直接表示相应二进制数字信号的调制方式,称为二进制移相键控方式。
二进制移相键控信号的典型时间波形如图2-1。
图2-1二进制相移键控信号的时间波形
2.1.22PSK调制原理
在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。
2PSK信号调制有两种方法,即模拟调制法和键控法。
通常用已调信号载波的0°和180°分别表示二进制数字基带信号的1和0,模拟调制法用两个反相的载波信号进行调制。
2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。
键控法,是用载波的相位来携带二进制信息的调制方式。
通常用0°和180°来分别代表0和1。
其时域表达式为:
其中,2PSK的调制中an必须为双极性码。
两种方法原理图分别如图2-2和图2-3所示。
图2-2模拟调制原理图
图2-3键控法原理图
2.1.32PSK解调原理
由于2PSK的幅度是恒定的,必须进行相干解调。
经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。
判决器是按极性来判决的。
即正抽样值判为1,负抽样值判为0。
2PSK信号的相干解调原理图如图2-4所示,各点的波形如图2-5所示。
由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。
这种现象称为2PSK方式的“倒π”现象或“反相工作”。
图2-42PSK的相干解调原理图
图2-5相干解调中各点波形图
2.22DPSK原理
2.2.12DPSK基本原理
二进制差分相移键控常简称为二相相对调相,记为2DPSK。
它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。
所谓相对载波相位是只本码元初相与前一码元初相之差。
传输系统中要保证信息的有效传输就必须要有较高的传输速率和很低的误码率。
在传输信号中,2PSK信号和2ASK及2FSK信号相比,具有较好的误码率性能,但是,在2PSK信号传输系统中存在相位不确定性,并将造成接收码元“0”和“1”的颠倒,产生误码。
为了保证2PSK的优点,又不会产生误码,将2PSK体制改进为二进制差分相移键控(2DPSK),及相对相移键控。
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。
现假设用Φ表示本码元初相与前一码元初相之差,并规定:
Φ=0表示0码,Φ=π表示1码。
则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图见图2-6。
图2-62DPSK信号波形图
2.2.22DPSK调制原理
二进制差分相移键控。
2DPSK方式是用前后相邻码元的载波相对相位变化来表示数字信息。
假设前后相邻码元的载波相位差为
,可定义一种数字信息与
之间的关系为:
为前一码元的相位。
实现二进制差分相移键控的最常用的方法是:
先对二进制数字基带信号进行差分编码,然后对变换出的差分码进行绝对调相即可。
2DPSK调制原理图如图2-7所示。
图2-72DPSK调制原理框图
2.2.32DPSK解调原理
2DPSK信号解调有相干解调方式和差分相干解调。
用差分相干解调这种方法解调时不需要恢复本地载波,只要将DPSK信号精确地延迟一个码元时间间隔,然后与DPSK信号相乘,相乘的结果就反映了前后码元的相对相位关系,经低通滤波后直接抽样判决即可恢复出原始的数字信息,而不需要在进行差分解码。
相干解调码变换法及相干解调法的解调原理是,先对2DPSK信号进行相干解调,恢复出相对码,再通过码反变换器变换为绝对码,从而恢复出发送的二进制数字信息。
在解调过程中,若相干载波产生
相位模糊,解调出的相对码将产生倒置现象,但是经过码反变换器后,输出的绝对码不会发生任何倒置现象,从而解决了载波相位模糊的问题。
本次设计采用相干解调。
两种解调方式的原理图如图2-8和图2-9所示。
2DPSK相干解调各点波形图如图2-10所示。
图2-82DPSK差分相干解调原理图
图2-92DPSK相干解调原理图
第3章实验过程
3.12PSK仿真部分
3.1.12PSK仿真图
用MATLAB搭建好的2PSK仿真图如下:
图3-12PSK仿真图
3.1.22PSK模块的参数设置:
1)相乘模块
图3-2相乘器参数设置
2)低通滤波器模块
图3-3滤波器其参数设置
3)抽样判决模块
图3-4pulsegenerator参数设置
3.22DPSK仿真部分
3.2.12DPSK仿真图
用MATLAB搭建好的2DPSK仿真图如下:
图3-52DPSK仿真图
2.2.22DPSK模块的参数设置:
载波模块
图3-6载波参数设置
2)乘法器模块
图3-7乘法器参数设置
3)基带模块
图3-8基带信号参数设置
4)UnipolartoBipolarConverte模块
图3-9UnipolartoBipolarConverter参数设置
5)码变换模块
图3-10LogicalOperator参数设置
图3-11UnitDelay参数设置
图3-12DataTypeConversion参数设置
6)滤波器模块
图3-13带通滤波器参数设置
图3-14低通滤波器参数设置
第4章仿真结果
4.12PSK仿真结果
图4-12PSK电路仿真波形
4.22DPSK仿真结果
图4-22DPSK电路仿真波形
附录:
通过编写M文件程序:
2PSK调制解调程序及注释
clear all
close all
i=10;
j=5000;
fc=4; %载波频率
fm=i/5; %码元速率
B=2*fm;
t=linspace(0,5,j);
a=round(rand(1,i)); %随机序列,基带信号
figure(3);
stem(a);
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
figure
(1);
subplot(411);
plot(t,st1);
title('基带信号st1');
axis([0,5,-1,2]);
%由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码
st2=t;
fork=1:
j;
ifst1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end
end;
subplot(412);
plot(t,st2);
title('基带信号反码st2');
axis([0,5,-1,2]);
st3=st1-st2;
subplot(413);
plot(t,st3);
title('双极性基带信号st3');
axis([0,5,-2,2]);
s1=sin(2*pi*fc*t);
subplot(414);
plot(s1);
title('载波信号s1');
e_psk=st3.*s1;
figure
(2);
subplot(511);
plot(t,e_psk);
title('e_2psk');
noise=rand(1,j);
psk=e_psk+noise;%加入噪声
subplot(512);
plot(t,psk);
title('加噪后波形');
psk=psk.*s1;%与载波相乘
subplot(513);
plot(t,psk);
title('与载波s1相乘后波形');
[f,af]=T2F(t,psk);%通过低通滤波器
[t,psk]=lpf(f,af,B);
subplot(514);
plot(t,psk);
title('低通滤波后波形');
form=0:
i-1;
ifpsk(1,m*500+250)<0;
forj=m*500+1:
(m+1)*500;
psk(1,j)=0;
end
else
forj=m*500+1:
(m+1)*500;
psk(1,j)=1;
end
end
end
subplot(515);
plot(t,psk);
axis([0,5,-1,2]);
title('抽样判决后波形')
2DPSK调制解调程序及注释
clear all
close all
i=10;
j=5000;
fc=4; %载波频率
fm=i/5; %码元速率
B=2*fm;
t=linspace(0,5,j);
a=round(rand(1,i));
figure(4);
stem(a);
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
figure
(1);
subplot(321);
plot(t,st1);
title('绝对码');
axis([0,5,-1,2]);
b=zeros(1,i); %全零矩阵
b
(1)=a
(1);
for n=2:
10
if a(n)>=1;
if b(n-1)>=1
b(n)=0;
else
b(n)=1;
end
else
b(n)=b(n-1);
end
end
st1=t;
for n=1:
10
if b(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(323);
plot(t,st1);
title('相对码st1');
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(324);
plot(t,st2);
title('相对码反码st2');
axis([0,5,-1,2]);
s1=sin(2*pi*fc*t);
subplot(325);
plot(s1);
title('载波信号s1');
s2=sin(2*pi*fc*t+pi);
subplot(326);
plot(s2);
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(413);
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(414);
plot(t,st);
axis([0,5,-1,2]);
title('码反变换后波形')