1、天津理工大学计算机与通信工程学院通信工程专业设计阐明书基于Matlab/Simulink QPSK调制解调仿真设计与研究 姓 名 韩双年 学 号 2226 班 级 09通信3班 指引教师 白媛 日 期 -12-16 目录摘 要2第一章 前 言21.1 专业设计任务及规定2 1.2 Matlab简介2 1.3 Matlab下simulink简介3 1.4 通信系统模型3第二章 QPSK调制4 2.1 QPSK简介4 2.2 QPSK调制原理42.2.1 相乘法42.2.2 选取法52.3 QPSK调制原理框图6 2.4 QPSK调制方式Matlab仿真6 2.5 QPSK调制方式Matlab-s
2、imulink仿真7 2.5.1 simulink调制建模72.5.2 simulink调制仿真成果8第三章 QPSK解调13 3.1QPSK解调原理133.2 QPSK解调原理框图13 3.3QPSK解调方式Matlab仿真13 3.4QPSK解调方式Matlab-simulink仿真14 3.4.1 QPSK解调建模143.4.2 传播信道163.4.3 仿真成果163.5 仿真成果分析18第四章 QPSK通信系统性能分析19第五章 结论19参照文献20附 录20摘 要正交相移键控(QPSK),是一种数字调制方式。QPSK技术具备抗干扰能力好、误码率低、频谱运用效率高等一系列长处。论文重要
3、简介了正交相移键控(QPSK)概况,以及正交相移键控QPSK调制解调概念和原理,运用Matlab中M文献和Simulink模块对QPSK调制解调系统进行了仿真,对QPSK在高斯白噪声信道中性能进行了,分析理解Simulink中涉及到QPSK各种模块功能。【核心词】Matlab QPSK Simulnk 仿真第一章 前 言1.1 专业设计任务及规定1理解并掌握QPSK调制与解调基本原理;2在通信原理课程基本上设计与分析简朴通信系统;3学会运用MATLAB7.0编写程序进行仿真,依照实验成果能分析所设计系统性能。4学习MATLAB基本知识,熟悉MATLAB集成环境下Simulink仿真平台。5运用
4、通信原理有关知识在仿真平台中设计QPSK调制与解调仿真系统并用示波器观测解调后波形6在指引教师指引下,独立完毕课程设计所有内容,能对的阐述和分析设计和实验成果。1.2 Matlab简介 MATLAB是MATrix LABoratory缩写,是一款由美国Math Works公司出品商业数学软件。MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算高档技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等惯用功能外,MATLAB还可以用来创立顾客界面及与调用其他语言(涉及C,C+和FORTRAN)编写程序。尽管MATLAB重要用于数值计算,但是由于大量额外工具箱它也适合于不同领
5、域应用,如控制系统设计与分析、图像解决和信号解决和通信、金融建模和分析等。除了一种完整Simulink包,提供了一种可视化开发环境,通惯用于系统仿真、动态/嵌入式系统开发等。1.3 Matlab下simulink简介Simulink是MATLAB最重要组件之一,它提供一种动态系统建模、仿真和综合分析集成环境。在该环境中只要通过简朴鼠标操作,就可以构造出复杂系统。Simulink提供了一种建立模型方块图图形顾客接口,这个创立过程只需单击和拖动鼠标操作就能完毕,它提供了一种更快捷、直接明了方式,并且顾客可以及时看到系统仿真成果。Simulink具备适应面广、构造和流程清晰及仿真精细、效率高、贴近实
6、际、等长处,基于以上长处Simulink已被广泛应用于控制理论和数字信号解决复杂仿真和设计。同步有大量第三方软件和硬件应用于Simulink。1.4 通信系统模型通信系统就是传递信息所需要一切技术设备和传播媒质总和,涉及信息源、发送设备、信道、接受设备和信宿(受信者) ,它普通模型如图1.4.1所示。 图1.4.1 通信系统普通模型模仿通信系统是运用模仿信号来传递消息通信系统,其模型如图1.4.2所示。 图1.4.2 模仿通信系统模型第二章 QPSK调制2.1 QPSK简介 Quadrature Phase Shift Keying通过使用载波四个各不相似相位差来表达输入信息,是具备四进制相移
7、键控。QPSK是在M=4时数字调相技术,它通过商定四种载波相位,分别为45,135,225,275,输入数据为二进制数字序列,由于载波相位是四进制,所有咱们需要把二进制数据变为四进制,即把二进制序列中每两个比特提成一组,四种排列组合,即00,01,10,11,双比特码元即为一组。每两位二进制信息比特构成每一组,它们分别表达着着四个符号中某一种符号。2.2 QPSK调制原理QPSK调制有两种产生办法相乘电路法和选取法。2.2.1 相乘法输入信号是二进制不归零双极性码元,它通过“串并变换”电路变成了两路码元。变成并行码元后,每个码元持续时间是输入码元两倍。用两路正交载波去调制并行码元。图2.2.1
8、选取法QPSK调制中,QPSK信号可以当作是两个载波正交2PSK信号调制器构成。原理分析如下:基本原理和系统构造QPSK与二进制PSK同样,传播信号包括信息都存在于相位中。个别载波相位取四个等间隔值之一,如/4、3/4、5/4、7/4。相应,可将发射信号定义为:其中,i1,2,3,4;E是发射信号每个符号能量,T为符号持续时间,载波频率f等于nc/T,nc为固定整数。每一种也许相位值相应于一种特定二位组。下面简介QPSK信号产生和检测。如图为典型QPSK发射机框图。输入二进制数据序列一方面被不归零(NRZ)电平编码转换器转换为极性形式,即负号1和0分别用和-表达。该二进制波形被分接器提成两个分
9、别由输入序列奇数位偶数位构成彼此独立二进制波形,这两个二进制波形分别用a1(t)和a2(t)表达。此时,在任何一信号时间间隔内a1(t),和a2(t)幅度正好分别等于Si1和 Si2,即由发送二位组决定。这两个二进制波形a1(t)和a2(t)被用来调制一对正交载波:,。这样就得到一对二进制PSK信号。和正交性使这两个信号可以被独立地检测。最后,将这两个二进制PSK信号相加,从而得盼望QPSK。2.2.2 选取法输入基带信号通过串并变换后用于控制一种相位选取电路,按照当时输入双比特ab,决定选取哪个相位载波输出。图2.2.2选取法2.3 QPSK调制原理框图 图2.3 调制原理框图2.4 QPS
10、K调制方式Matlab仿真I 路信号是用余弦载波,由2进制数据流奇数序列构成;Q路信号用正弦载波,由2进制数据流偶数序列构成。下面a是Idata,b就是Qdata,它们分布与各自载波相乘分别输出 I 路信号和 Q 路信号。I 路信号加上Q路信号就是QPSK输出信号。当 I 路载波信号是0相位时为1,是180相位时为0;当Q路载波信号是0相位时为1,是180相位时为0。2.4 matlab调制仿真图2.5 QPSK调制方式Matlab-simulink仿真2.5.1 simulink调制建模 图2.5.1调制框图(1)产生需要信号源在搭建QPSK调制解调系统中使用伯努力信号发生器产生随机01比特
11、序列,每两比特代表就一种符号。Bernoulli Binary Generator模块运用伯努利分布原理,相应得到参数为p伯努利分布。伯努利分布均值1 - p和方差p(1 p)。一种零概率参数指定p。本次实验中p设立为0.5,即0和1等概。采样时间可依照需要进行设立,例如测误码率时采样时间设为0.01s。图2.5.2信号源参数设立(2)串并变换咱们先通过使用buffer 这个模块来实现将信号源信号转变为两路信号。Buffer 模块可以重新分派缓冲区块输入样本,用到了Demux,可以将一种复合输入转化为各种单一输出,即可以输出各种采样率较低帧信号。但会产生与缓冲区容量相似时延。因此,咱们可以设立
12、buffer参数容量为2。图2.5.3 Buffer参数设立(3)单极性信号转化为双极性信号由于QPSK调制信号规定是双极性信号,因此用伯努利随机生成二进制Generator模块产生信号必要通过转化才可以被使用。运用加法模块和常数产生模块将1和0序列各自减去1/2,再运用比例运算模块乘以2,就得到了1和-1 双极性序列。(4)调制模块分别将两路信号乘以相位相差 / 2载波,然后相加。载波由正弦信号发生器产生。正弦波模块参数设立为可基于时间模式,时间设为使用仿真时间,咱们设载波信号幅度为1,载波频率可依照需要来进行设立,两路载波同频正交,相位相差 / 2。咱们设上支路相位为0,下支路相位为 /
13、2。图2.5.4上支路载波参数图2.5.5下支路载波参数2.5.2 simulink调制仿真成果图2.5.6信号源和转变后双极性信号图2.5.7上支路载波图2.5.8 下支路载波图2.5.9调制信号第三章 QPSK解调3.1 QPSK解调原理QPSK接受机由一对共输入地有关器构成。这两个有关器分别提供本地产生地相干参照信号和。有关器接受信号x(t),有关器输出地x1和x2被用来与门限值0进行比较。如果x10,则判决同相信道地输出为符号1;如果x1=-1 & t(i)=5& t(i)=0 & t1(i)=4& t1(i)0 %20点为同一种值,20点数据叠加后与阈值0比较 data_recove
14、r_a(i:i+19)=1;%data_recover_a是并/串转换后0点 bit_recover=bit_recover 1;%bit_recover是1000点数据 else data_recover_a(i:i+19)=-1; bit_recover=bit_recover -1; endenderror=0;dd = -2*bit_in+1;% 将bit_in中1变成-1,0变成1ddd=dd; %ddd是1表达0,-1表达1原始序列,1000个点ddd1=repmat(ddd,20,1);%ddd1是20*1000矩阵for i=1:2e4 ddd2(i)=ddd1(i);%将dd
15、d1拉直为1*0行向量ddd2endfor i=1:1e3 if bit_recover(i)=ddd(i) error=error+1; endendp=error/1000;figure(1)subplot(4,1,1);plot(t2,ddd2);axis(0 100 -2 2);title(原序列);subplot(4,1,2);plot(t1,I_demo);axis(0 100 -2 2);title(I 支路解调);subplot(4,1,3);plot(t1,Q_demo);axis(0 100 -2 2);title(Q 支路解调);subplot(4,1,4);plot(t2,data_recover_a);axis(0 100 -2 2);title(解调后序列);