1、江西农业大学课程设计报告 江西农业大学 通信原理课程设计报告 课题名称基于Matlab的相移键控仿真设计 班 级信工1301 学 号 20133332 姓名权俊男 2O16 年 6 月 基于Matlab的2PSK,2DPSK仿真 摘要:现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制技术 一直是研究的一个重要方向。本设计主要叙述了数字信号的调制方式,介绍了2PSK数字调制方式的 基本原理,功率谱密度,并运用MATLAB软件对数字调制方式2PSK进
2、行了编程仿真实现,在MATLAB平 台上建立2PSK和2DPSK调制技术的仿真模型.进一步学习了MATLAB编程软件,将MATLAB与通信系统 中数字调制知识联系起来,为以后在通信领域学习和研究打下了基础在计算机上,运用MATLAB软件 来实现对数字信号调制技术的仿真。 关键词:数字调制与解调;MATLAB;2PSK;2DPSK; 第1章 绪论 1。1 调制方式 数字通信系统, 按调制方式可以分为基带传输和带通传输.数字基带信号的功率一般处于从零开始到某一频率(如0~6M)低频段,因而在很多实际的通信(如无线信道)中就不能直接进行传输,需要借助载波调制进行频谱搬移,将数字基带信号
3、变换成适合信道传输的数字频带信号进行传输,这种传输方式,称为数字信号的频带传输或调制传输、载波传输。所谓调制,是用基带信号对载波波形的某参量进行控制,使该参量随基带信号的规律变化从而携带消息。对数字信号进行调制可以便于信号的传输;实现信道复用;改变信号占据的带宽;改善系统的性能. 数字基带通信系统中四种基本的调制方式分别称为振幅键控(ASK,Amplitude—Shift keying)、移频键控( FSK,Frequency—Shift keying)、移相键控(PSK,Phase—Shift keying )和差分移相键(DPSK,Different Phase—Shift keying
4、本次课程设计对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。1 2PSK原理 2.1.1 2PSK基本原理 二进制移相键控,简记为2PSK或BPSK。2PSK信号码元的“0”和“1"分别用两个不同的初始相
5、位“0”和“"来表示,而其振幅和频率保持不变。因此,2PSK信号的时域表达式为: (t)=Acost+) 其中,表示第n个符号的绝对相位: = 因此,上式可以改写为: 这种以载波的不同相位直接表示相应二进制数字信号的调制方式,称为二进制移相键控方式.二进制移相键控信号的典型时间波形如图2-1。 图2-1 二进制相移键控信号的时间波形 2。1。2 2PSK调制原理 在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。2PSK信号调制有两种方法,即模拟调制法和键控法.通常用已调信号载波的 0°和 180°分别表示二进制数字
6、基带信号的 1 和 0,模拟调制法用两个反相的载波信号进行调制。2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。 键控法,是用载波的相位来携带二进制信息的调制方式。通常用0°和180°来分别代表0和1.其时域表达式为: 其中,2PSK的调制中an必须为双极性码。两种方法原理图分别如图2—2和图2—3所示. 图2—2 模拟调制原理图 图 2—3 键控法原理图 2。1。3 2PSK解调原理 由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在
7、进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图2—4所示,各点的波形如图2-5所示. 由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1"变成“0"吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒π"现象或“反相工作". 图 2-4 2PSK的相干解调原理图 图 2—5 相干解调中各点波形图 2。2 2DPSK原理 2。2。1 2DPSK基本原理 二进制差
8、分相移键控常简称为二相相对调相,记为2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是只本码元初相与前一码元初相之差。 传输系统中要保证信息的有效传输就必须要有较高的传输速率和很低的误码率。在传输信号中,2PSK信号和2ASK及2FSK信号相比,具有较好的误码率性能,但是,在2PSK信号传输系统中存在相位不确定性,并将造成接收码元“0”和“1"的颠倒,产生误码.为了保证2PSK的优点,又不会产生误码,将2PSK体制改进为二进制差分相移键控(2DPSK),及相对相移键控。 2DPSK方式即是利用前后相邻码元的相对相位值去表示数
9、字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码.则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图见图2—6. 图2—6 2DPSK信号波形图 2.2。2 2DPSK调制原理 二进制差分相移键控。2DPSK方式是用前后相邻码元的载波相对相位变化来表示数字信息。假设前后相邻码元的载波相位差为,可定义一种数字信息与之间的关系为: 为前一码元的相位。 实现二进制差分相移键控的最常用的方法是:先对二进制数字基带信号进行差分编
10、码,然后对变换出的差分码进行绝对调相即可。2DPSK调制原理图如图2—7所示。 图2-7 2DPSK调制原理框图 2。2.3 2DPSK解调原理 2DPSK信号解调有相干解调方式和差分相干解调。用差分相干解调这种方法解调时不需要恢复本地载波,只要将DPSK信号精确地延迟一个码元时间间隔,然后与DPSK信号相乘,相乘的结果就反映了前后码元的相对相位关系,经低通滤波后直接抽样判决即可恢复出原始的数字信息,而不需要在进行差分解码。 相干解调码变换法及相干解调法的解调原理是,先对2DPSK信号进行相干解调,恢复出相对码,再通过码反变换器变换为绝对码,从而恢复出发送的二进制数字信息. 在解调过
11、程中,若相干载波产生相位模糊,解调出的相对码将产生倒置现象,但是经过码反变换器后,输出的绝对码不会发生任何倒置现象,从而解决了载波相位模糊的问题。本次设计采用相干解调.两种解调方式的原理图如图2-8和图2—9所示。 2DPSK相干解调各点波形图如图 2-10所示。 图 2—8 2DPSK差分相干解调原理图 图 2-9 2DPSK相干解调原理图 第3章 实验过程 3.1 2PSK仿真部分 3.1。1 2PSK仿真图 用MATLAB搭建好的2PSK仿真图如下: 图3-12PSK仿真图 3。1。2 2PSK模块的参数设置: 1)相乘模块 图3-2 相乘器参数设置 2)低通滤波
12、器模块 图3-3 滤波器其参数设置 3)抽样判决模块 图3-4 pulse generator 参数设置 3。2 2DPSK仿真部分 3。2.1 2DPSK仿真图 用MATLAB搭建好的2DPSK仿真图如下: 图3—5 2DPSK仿真图 2。2。2 2DPSK模块的参数设置: 载波模块 图3—6 载波参数设置 2)乘法器模块 图3—7 乘法器参数设置 3)基带模块 图3-8 基带信号参数设置 4)Unipolar to Bipolar Converte模块 图3—9 Unipolar to Bipolar Converter参数设置 5)码变换模块 图3
13、10 Logical Operator参数设置 图3—11 Unit Delay参数设置 图3—12 Data Type Conversion参数设置 6)滤波器模块 图3—13 带通滤波器参数设置 图3—14 低通滤波器参数设置 第4章 仿真结果 4。1 2PSK仿真结果 图4-1 2PSK电路仿真波形 4。2 2DPSK仿真结果 图4—2 2DPSK电路仿真波形 附录: 通过编写M文件程序:2PSK调制解调程序及注释clear allclose alli=10;j=5000;fc=4; %载波频率fm=i/5;
14、 %码元速率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 endendfigure(1); subplot(411); plot(t,st1);
15、 title(’基带信号st1’); axis([0,5,—1,2]); %由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码 st2=t; for k=1:j; if st1(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); plo
16、t(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。
17、*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(’低通滤波后波形’); for m=0:i—1; if psk(1,m*500+250)<0; for j=m*500+1:(m+1)*500; psk(1,j)=0;
18、 end else for j=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 allclose alli=10;j=5000;fc=4; %载波频率fm=i/5; %码元速率B=2*fm;t=linspace(0,5,j);a=
19、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 endendfigure(1);subplot(321);plot(t,st1);title(’绝对码');axis([0,5,—1,2]);b=zeros(1,i);
20、 %全零矩阵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); endendst1=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
21、 st1(m)=1; end endendsubplot(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; endend;subplot(324);plot(t,st2);title(’相对码反码st2’);axis([0,5,—1,2]);s1=sin(2*pi*fc*t);subplot(325);plot(s1);title('载波信号s1’);
22、s2=sin(2*pi*fc*t+pi);subplot(326);plot(s2); title(’低通滤波后波形'); st=zeros(1,i); %全零矩阵 for m=0:i—1; if dpsk(1,m*500+250)〈0; st(m+1)=0; for j=m*500+1:(m+1)*500; dpsk(1,j)=0; end else for j=m*500+1:(m+1)*500;
23、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); for n=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; for n=1:10 if dt(n)〈1; for m=j/i*(n—1)+1:j/i*n st(m)=0; end else for m=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('码反变换后波形’) 7






