基于MatlabSimulink-的QDPSK调制解调仿真设计与研究_第1页
基于MatlabSimulink-的QDPSK调制解调仿真设计与研究_第2页
基于MatlabSimulink-的QDPSK调制解调仿真设计与研究_第3页
基于MatlabSimulink-的QDPSK调制解调仿真设计与研究_第4页
基于MatlabSimulink-的QDPSK调制解调仿真设计与研究_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1天津理工大学通信工程专业设计报告题目:基于Matlab/Simulink的QDPSK调制解调仿真设计与研究学生姓名路真远报告提交日期QDPSK是现代数字通信系统常用的两种调制方式之一。QDPSK是四相相对相移键控,是一种宽带和功率相对高效率的信道调制技术。它具有一系列独特的有点,目前已广泛应用于无线通信中。本次设计在了解理论的同时,通过MATLAB平台对QDPSK信号通过高斯信道和瑞利信道的系统进行仿真,并比较在SNR=10dB,20dB,30dB的情况下传输误码率情况。关键词:QDPSK;瑞利信道;Matlab;Simulink;仿真第一章前言 11.1现代通信的发展 11.2QDPSK在通信中的运用 1第二章QDPSK的基本原理和设计 32.1QDPSK通信系统的性能指标 3 32.1.2性能分析 32.2QDPSK的调制解调原理 32.2.1QDPSK的调制方式 42.2.2QDPSK的解调方式 8第三章MATLAB/Simulink仿真基础 3.1MATLAB简介 3.1.1MATLAB发展历程 3.1.2MATLAB特点 3.2MATLAB下的Simulink简介 3.2.1Simulink建模仿真步骤 3.2.2Simulink下对通信系统的仿真 第四章QDPSK的调制解调仿真 4.1QDPSK调制解调仿真 4.1.2模型文件的参数配置 4.1.3各信噪比下的Simulink仿真 224.2MATLAB仿真结果 28第五章总结与心得 36参考文献 37 381第一章前言1.1现代通信的发展随着通信技术的飞速发展,数字信号处理在通信系统中的应用越来越重要。数字信号传输系统分为基带传输系统和频带传输系统。频带传输系统也叫数字调制系统,该系统对基带信号进行调制,使其频谱搬移到适合信道传输的频带上。数字调制信号又称为键控信号,在调制的过程中可用键控的方法由基带信号对载频信号的振幅,频率及相位进行调制。在技术和工艺进步的基础上,数字通信中调制解调算法的实现已不再是一件可望不可及的事情。与此同时,人们对通信的要求越来越高,各种技术不断地应用于通信领域,各种新的通信业务将不断地被开发出来。可以说,无论是通信系统的内在要求(算法复杂性决定接收的质量),还是外在条件(技术和工艺)都在促使通信系统的调制解调向数字化发展。通信工程在未来的发展,要运用无线宽带网络技术和云电技术实现无线的城市发展战略。如人们可以应用通信技术,实现自身网络通信的需求,可以在日常生活中通过手机来观看电视节目,在手机上进行游戏互动,以及用手机来参加临时的视频会议等。将通信技术充分地应用到人们的生活和学习中,不但可以有效地改善人们的生活质量,还可以实现城市的高度信息化和网络化,将我国的信息现代化水平提升到新的层次,构建全方位、立体化的通信网络。在通信工程未来的发展过程中,人们可以实现利用光来进行通讯的技术,并将其应用到网络技术中,使信息的传递和接收更加快速和便捷,而且更容易对网络通信技术进行科学的管理和规范,使之更好地为人们服务。同时光通信技术的发展和应用,以及通信工程质量的提高和服务范围的扩大,都可以使宽带的接入和节点的转换等网络技术在通信工程的应用中大大加快,从而为人们的生活和学习带来翻天覆地的变化。1.2QDPSK在通信中的应用QPSK正交相移键控分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式QDPSK。目前已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。中国的3G制式(CDMA2000,WCDMA,TD-SCDMA)均在下行链路上采用QPSK调制。在建筑物较多、地形复杂的地区就必须用QDPSK来确保信噪2比从而确保通信的准确性和有效性。QDPSK意为四相相对移相键控,它是利用前后相邻码元之间的载波相对相位变化来表示数字信息。QDPSK可先将输入的双比特码经码型变换,再用码型变换器输出的双比特码进行四相绝对移相,则所得到的输出信号便是四相相对移相信号。它通常采用的方法是码变换加调相法和码变换加相位选择法。QDPSK是一种宽带和功率相对高效率的信道调制技术,因此在自适应信道调制技术中得到了较多应用。在通信与电子工程领域,系统仿真技术一直是进行新型通信协议研发、通信体制的性能研究、通信系统设计、算法分析和改进、通信信号处理、电子系统设计的重要手段。传统的仿真技术基于C语言等计算机专业编程技术,编程的工作量大,仿真程序的可读性、可重用性、可靠性都很难适应大型复杂通信系统仿真的需要。通信与电子工程师和科研工作者迫切需要一种仿真工具,以摆脱繁杂的编程工作,将精力和时间集中到解决科学问题、提出和验证创新思想和算法上来。MATLAB以及Simulink科学计算、建模和仿真软件是为了适应这一要求而产生的优秀仿真平台软件,并已成为全世界科学工作者共同的学术交流工具以及系统仿真界事实上的工业标准。随着无线通信频带资源的日益紧张,研究和设计自适应信道调制技术体制是建立宽带移动通信网络的关键技术之一。QDPSK是一种宽带和功率相对高效率的信道调制技术,因此在自适应信道调制技术中得到了较多应用。利用MATLAB通信仿真软件对QDPSK数字通信方式和主要通信过程的实际情况进行计算机模拟仿真具有重要的意义[1]。3第二章QDPSK的基本原理QDPSK是现代数字通信系统中常用的调制方式,QDPSK则主要用于自适应信道调制技术。本章主要就QDPSK的基本原理进行介绍,并简要讲述各自的几种常用的调制解调方法,为以后的系统仿真打下良好的理论基础。2.1QDPSK通信系统的性能指标2.1.1可靠性指标数字通信系统的可靠性指标用差错率来衡量。差错率越小,可靠性越高。差错率也有两种表达方式误码率与误信率。误码率:指接收到的错误码元数和总的传输码元个数之比,即在传输中出现错误码元的概率,记为:Pe=误信率:又叫误比特率,是指接收到的错误比特数和总的传输比特数之比,即在传输中出现的错误信息量的概率,记为:Pb2.1.2性能分析信号经过调制、信道、解调过程。在接收端,将得到的数与原始信号源数据比较,得到在特定信噪比下的误码率。改变系统信噪比,从而得到系统的误码率曲线图,并给出各关健点信号图及星座图。2.2QDPSK的基本原理四进制的DPSK通常记作QDPSK。QDPSK信号的编码方式如表2.1和2.2所示。表中的△4θ是相对于前一相邻码元的相位变化。与QPSK相同,QDPSK也有A、B两种编码方式。A方225°、315°。A方式和B方式的区别在于两者的星座图上相差45°;并且两者和格雷码双比特组间的对应关系也不是唯一的,即A方式中的0°和B方式中的45°不用必须对应双比特组01,只要两星座图的相位不变,它们就依然属于A方式或者B方式[2]。表2.1QDPSK信号的编码A方式ab△θab△θ0090°11270°0110180°表2.2QDPSK信号的编码B方式ab△θab△θ00135°11315°0145°10225°2.2.1QDPSK的调制方式QDPSK信号的产生方法只是需要把输入的基带信号先经过码变换器把绝对码变成相对码,然后再去调制载波。QDPSK的调制方法有两种。第一种方法是相乘电路法,编码规则如5图2.1第一种方法产生A方式QDPSK信号的原理方框图图中输入的基带信号是二进制不归零双极性码元,它被“串/并变换”电路变成两路码元a和b。变成并行码a和b后,再经过码变换器将绝对码信号变成相对码信号c和d,然后再分别与载波相乘。这里,码变换器的作用是使由cd产生的绝对相移符合由ab产生的相对相移的规则。由于当前的一对码元ab产生的相移是附加在前一时刻已调载波相位基础之上的。而前一时刻的相位有四种取值,故码变换器的输入ab和输出cd之间有十六种可能的关系,这十六种关系如表2.3所示。c和d与载波的相乘实际上是完成绝对相移键控,这部分电路和QPSK的正交调制器的原理是一样的,只是这里采用了A方式进行编码,将图2.3中的/2相移器换成了两个/4相移器[3]。例如,如果当前输入的一对码元为“10”,那么应该产生的相对相移为180°。另一方面,前一时刻的载波相位有四种可能,即0°,90°,180°,270°,它们分别对应前一时刻变换后的一对码元的四对取值。现在的相对相移是180°,假设前一时刻的载波相位为180°,那么当前时刻应该给出的变换后的相位应该为180°加上180°,即0°。当前时刻应该给出的变换后的一对码元应该为“00”。这也就是说码变换器将输入的一对码元“10”变换成了“00”。码变换器的电路图如图2.2所示。6表2.3QDPSK码变换关系当前输入的一对码元及要求的相对相移前一时刻经过码变换后的一对码元及所产生的相位当前时刻应当给出的变换后一对码元和相位akbk△θk△θk-1ckdk△θk90°90°180°270°90°180°270°90°180°270°90°180°270°270°90°180°270°270°90°180°180°90°180°270°180°270°90°7图2.2码变换器电路图这里注意,上述二进制信号码元“0”和“1”与不归零双极性矩形脉冲振幅的关系如下:二进制码元“1”双极性脉冲“+1”;二进制码元“0”双极性脉冲“-1”。只有符合此关系才能得到A方式编码。第二种QDPSK信号只是需要在串/并变换后需要增加一个码变换器,电路图如图2.3所图2.3相位选择法产生QDPSK信号82.2.2QDPSK的解调方式QDPSK的解调方法有两种,一种为极性比较法,另一种为相位比较法。极性比较法的原理框图如图2.4所示。这里为保证最佳接收,参考矢量的相位必须在取在正负/4处。此方法和QPSK的解调方法类似,只是多了一步逆码变换的过程,将相对码再变成绝对码。逆码变换的关系如表2.4所示。图2.4A方式QDPSK信号极性比较法解调原理框图9表2.4QDPSK逆码变换关系前一时刻输入的一对码元当前时刻输入的一对码元当前时刻应当给出的逆码变换后的一对码元ck-1dk-1ckdkakbk000011011000111001010011011010011100110011011011000110100011011001100011QDPSK的另一种解调方法是相位比较法,即差分相干解调。与2DPSK类似,QDPSK也可采用差分相干解调的方法进行解调。只是现在的接收信号分为两路正交的已调载波信号,因此需要两个支路进行差分相干解调[3,4]。相位比较法的原理框图如图2.5所示。图2.5A方式QDPSK信号相位比较法解调原理框图第三章Matlab/Simulink仿真基础3.1MATLAB简介3.1.1MATLAB发展历程20世纪70年代,美国新墨西哥大学计算机科学系主任CleveMoler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、SteveBangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。3.1.2MATLAB特点Matlab具有如下特点1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来2)具有完备的图形处理功能,实现计算结果和编程的可视化;(3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具[5]。3.2Matlab下的simulink简介Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中只要通过简单的鼠标操作,就可以构造出复杂的系统。Simulink提供了一个建立模型方块图的图形用户接口,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。Simulink具有适应面广、结构和流程清晰及仿真精细、效率高、贴近实际、等优点,基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件应用于Simulink。3.2.1Simulink建模仿真步骤Simulink建模仿真的一般过程如下。(1)首先,单击工具栏上的“新建”图标,打开一个空白的编辑窗口,如图3.1所(2)在Simulink模块库中选取所需要的模块,然后拖到编辑窗口里,将各个环节都布置好,并修改编辑窗口中模块的参数。(3)然后用箭头将各个模块连接起来。这里应该注意连接的方法:从上一个模块的连线点开始,按住左键不放,拖到下一个连接模块的连线点为止,系统将自动生成箭头。(4)设置仿真参数。选择菜单命令Simulink→Configurationparameters,就会弹出一个仿真参数对话框,如图3.2所示。(5)单击“startsimulation”按钮进行系统仿真分析,在仿真的同时,可以观察仿真结果。如果发现错误,可以立即单击“stop”按钮停止仿真,然后对参数进行修正,直到调整至满意为止。最后将仿真模型保存为*.mdl文件[6]。图3.1空白编辑窗口图3.2仿真参数设置窗口3.2.2Simulink下对通信系统的仿真Blockset。在这个库中包含了十三个子库,大概有一百七十多个模块,如图3.3所示。Matlab程序见附录。图3.3通信模块库窗口该模块库中提供了完整的模拟/数字通信系统建模、仿真和分析优化图形所需的模块。可用于通信系统中从信源到信道,包括编码、调制、发射、接收等各个部分的建模,仿真分接下来对通信模块的常用子库进行介绍[6]。(1)Commsources模块库,为仿真提供各种信号源,这些模块分成三类:随机数据源、序列生成模块、噪声产生模块。(2)Commsinks模块库,为仿真提供了四个信宿模块,用于绘制信号的眼图,轨迹图和发散图,计算误码率。(3)Sourcecoding模块库,为仿真提供信源量化、编码的模块,包括采样量化编/解码器,A律压缩/扩张器,U律压缩/扩张器。(4)Errordetectionandcorrection模块库,为仿真提供信道编码的差错控制和纠错模块,包括hamming码、BCH码、循环码、卷积码。(5)Interleaving模块库,为仿真提供各种实现信号交织功能的模块。(6)Modulation模块库,为仿真提供实现信号调制解调的模块,可以分为模拟调制和数字调制两个子库,模拟调制包括“AM”、“CPM”、“FM”、“PM”、“TCM”五种调制模(7)Commfilters模块库,为仿真提供发送/接收滤波器模块。(8)Channels模块库,为仿真提供了四种常见的信道模块:AWGN信道模块、二进制对称信道模块、多径瑞利衰落信道模块和伦琴衰落信道模块。(9)RFimpairments模块库,这是Matlab新增加的模块库,用于对射频信号的各种衰落进行仿真。(10)Synchronization模块库,为仿真提供四种锁相环模块,对信号同步功能进行仿(11)Equalizers模块库,为仿真提供多种均衡器模块。(12)Sequenceoperation模块库,为仿真提供顺序运行模块。(13)Utilityblocks模块库,为仿真提供了十种常用的转换函数模块。第四章QDPSK调制解调仿真Simulink的一个非常突出的优点就在于不需要编写任何程序代码就可以完成一个复杂系统的仿真,应用十分广泛。基于Simulink的种种优点,利用它来搭建QDPSK系统模型非常简便。接下来我们将利用Simulink搭建QDPSK系统模型,分别对其工作过程和性能进行仿真和仿真结果分析,最后对QDPSK的性能进行比较。4.1利用Simulink对QDPSK的系统仿真4.1.1Simulink调制建模利用Simulink搭建的系统模型如图4.1所示。图4.1QDPSK仿真模型从图中我们可以看出该模型主要有信源RandomIntegerGenerater、QDPSK调制器、AWGN信道、Rayleigh信道、QDPSK解调器、信宿模块组成。该模型用到的信宿模块又具体分为Scope—观察各个阶段信号的波形;ErrorRateCalculation—计算信号的误码率,并通过Display显示出来;EyeDiagramofnoisyQDPSKsignal—输出眼图;Discrete.TimeScope模块—输出调制信号和传输信号的星座图[6,7]。4.1.2模型文件的参数配置(1)信源模块信源RandomIntegerGenerater模块产生随机整数序列0,1,2,3。并将产生的随机整数信号传送至QDPSK调制器。该模块如图4.2所示。图4.2信源模块这里要求产生的必须是四进制的随机整数,因此M-arynumber设置为4。具体的参数设置如图4.3所示。图4.3信源模块参数设置(2)QDPSK调制模块QDPSK调制器的主要作用是将信源产生的四进制随机序列进行QDPSK调制,使之产生QDPSK信号。该模块如图4.4所示。图4.4QDPSK调制模块这里注意QDPSK调制模块的参数设置与解调模块的参数设置必须一致。输入数据类型为整型,相位偏移设置为/2。具体的参数设置如图4.5所示。图4.5QDPSK调制模块参数设置(3)信道模块这里信道采用的是AWGN信道模块和RayleighFading信道模块。AWGN信道模块是加性高斯白噪声信道,可以通过改变该信道的的信噪比,实现在不同的噪声条件下对解调性能的测试,从而得出信噪比与误码率的关系。该模块如图4.6所图4.6QDPSKAWGN信道模块这里的参数设置应注意,系统的信噪比是可以改变的。我们可以使信噪比逐渐增大,观察相对应的误码率、眼图、星座图,从而可以对QDPSK系统的性能进行分析。具体的参数设置以SRN=20dB为例如图4.7所示。图4.7信道模块参数设置20RayleighFading信道模块,它是加性的瑞利噪声,可以通过改变该信道的的信噪比,实现在不同的噪声条件下对解调性能的测试,从而得出信噪比与误码率的关系。该模块如图4.8所示。图4.8QDPSK瑞利噪声信道模块这里的参数设置应注意,系统的信噪比是可以改变的。我们可以使信噪比逐渐增大,观察相对应的误码率、眼图、星座图,从而可以对QDPSK系统的性能进行分析。具体的参数设置如图4.9所示。图4.9信道模块参数设置21(4)QDPSK解调模块QDPSK解调器的主要作用是将经过信道的QDPSK调制信道进行解调,使之恢复出原来的输入信号。该模块如图4.10所示。图4.10QDPSK解调模块QDPSK解调模块的参数设置与调制模块的参数设置一致。输入数据类型为整型,相位偏移设置为/2。具体的参数设置如图4.11所示。图4.11QDPSK解调模块参数设置224.1.3各信噪比下的Simulink仿真系统模型搭建完成,参数也设置好之后,接下来的工作就是对系统进行仿真。运行完成之后,首先信源信号波形如图4.12所示,调制波形如图4.13所示信源信号波形Time/s图4.12信源信号波形调制波形Time/sTime/s图4.13调制波形然后我们观察信噪比分别为10dB,20dB,30dB的解调波形。23信噪比为10dB时的解调波形如图4.14所示解调波形Time/s图4.14解调波形(SNR=10dB)信噪比为20dB时的解调波形如图4.15所示。解调波形Time/s图4.15解调波形(SNR=20dB)24信噪比为30dB时的解调波形如图4.16所示。解调波形Time/s图4.16解调波形(SNR=30dB)对QDPSK性能的仿真主要来观察不同信噪比条件下的误码情况、眼图、星座图。这里我们选择信噪比分别为10dB、20dB以及30dB,在这三个不同的信噪比下通过ErrorRateCalculation—计算信号的误码率,并通过Display显示出来,通过Display显示出来的窗口有三个,最上面的为误码率,中间的为传输错误的码元个数,最下面的为传输的总码元个数。这里我们采样频率设置为1/500,传送的总码元数为6000,并观察不同信噪比下的星座图及首先来观察一下信噪比为10dB时系统的误码情况、眼图、星座图。把高斯信道的信噪比参数设置为20dB,然后进行系统仿真。运行完成之后,误码率如图4.17所示,眼图如图4.18所示,经过信道后的星座图如图4.19所示。图4.17误码率(SNR=10dB)25图4.18眼图(SNR=10dB)图4.19星座图(SNR=10dB)然后将信噪比设置为20dB,仿真结果如下图所示。图4.20误码率(SNR=20dB)26图4.21眼图(SNR=20dB)图4.22星座图(SNR=20dB)然后将信噪比设置为30dB,仿真结果如下图所示。图4.23误码率(SNR=30dB)27图4.24眼图(SNR=30dB)图4.25星座图(SNR=30dB)由仿真图可以看出,当信噪比为10dB时,对应的误码率为0.2033,传输错误的码元数为1220,“眼睛”张开的程度也非常小;经过信道后的星座图也非常分散,没有规则。信噪比为20dB时,对应的误码率为0.1002,传输错误的码元数为601,星座图较10dB时变得集中。当信噪比进一步增大到30dB时,对应的误码率为0.08917,传输错误的码元数为535,而星座图更加集中。我们可得出结论,随着系统信噪比的不断增大,QDPSK系统传输错误的码元数也越少,系统的误码率也随之减小。与此同时,经信道后的星座图也随着系统信噪比的增大越来越集中。总之,随着系统信噪比的增大,QDPSK系统的性能越来越好,越来越有利于信号的准确传输。284.2MATLAB仿真结果在MATLAB中,对QDPSK性能的仿真主要来观察系统的基带信号,调制信号,解调信号及各自功率谱密度还有QDPSK星座图误码率曲线。在这里采用载波频率f为12kHz,对比理论误码率曲线以及实际曲线,观察仿真结果。理论误码率公式如下:P图4.26为理想情况下基带信号,调制信号,解调输出信号及各自功率谱密度。从图中发现解调输出信号信号图形与功率谱密度均与基带信号功率谱相同。图4.26理论情况下基带信号29图4.27基带信号功率谱密度图4.28理想情况下调制信号图4.29理想情况下调制信号功率谱密度图4.30理想情况下解调波形图4.31理想情况下解调输出功率谱密度图4.32和图4.34为高斯噪声下QDPSK调制信号波形与功率谱密度,从图中可以看出,在加入高斯噪声的情况下,调制信号波形与功率谱密度已与图4.28和图4.29理想情况下已有较大不同。图4.32高斯噪声下调制信号波形图4.33高斯噪声曲线图4.34高斯噪声下调制信号功率谱密度图4.35为高斯噪声下QDPSK调制信号星座图,从图中可以看出,在高斯噪声的影响下,调制信号分布在理想情况周围,与理想状况已有较大差别。图4.35高斯噪声下QDPSK星座图图4.36和图4.37为瑞利加高斯信道情况下调制信号波形与功率谱密度,从图中可以看出,在加入高斯噪声的情况下,调制信号波形与功率谱密度已与图4.28和图4.29理想情况下已有较大不同。图4.36瑞利加高斯信道情况下调制信号波形图4.37为瑞利加高斯信道情况下调制信号波形与功率谱密度图4.38为高斯加瑞利信道情况下调制信号星座图,从图中可以看出,在高斯噪声的影响下,调制信号分布在理想情况周围,与理想状况已有较大差别。图4.38高斯加瑞利噪声下QDPSK星座图MATLAB仿真条件:单径衰落,多普勒频移为20Hz,载波频率为12kHz,信噪比为0-6dB,图4.39为以上仿真条件下的系统误码率曲线图4.39系统误码率曲线从图中仿真情况与理论噪声值的对比可以看出,仿真值在理论噪声值周围分布,瑞利噪声下误码率高于高斯噪声下误码率。而误码率始终随着信噪比的增大而减小。第五章总结与心得此次课程设计做的是QDPSK调制解调的仿真,通过这次长达六周的课程设计,我学会了MATLAB/Simulink仿真系统初步的设计方法,对qdpsk的调制解调过程有了更深的了解。初步了解如何用MATLAB/Simulink这个仿真软件进行DQPSK调制和解调的设计。虽然在课程设计过程中遇到了不少的麻烦和困难,与此同时也深刻认识到自己存在的许多不足,理论知识的学习有待加强,实践的能力有所欠缺,遇到困难自己独立处理有待努力。通过理论知识的初步学习,加上上机的实践,我渐渐地对Simulink有了一定的认识,但是在将书上的理论方框图转换为Simulink模块的过程中出现了很大的困难,因为对软件不熟悉的缘故,许多模块都没有找到,因此也大大延误了设计的完成时间。但是在同学和老师的帮助指点下,许多问题得到了解决,同时也让我对此次设计产生了浓厚的兴趣,遇到问题也有了钻研的精神。这次课程设计不仅巩固我们在书上学习的基本内容,还在一定程度上提高了我们的动手能力。在这次学习过程中,我不仅巩固了过去学过的知识,同时还学到了许多书本上没有学到的知识培养了我对系统的分析能力。只有把理论和实践结合起来,把理论作为实践的基础,把实践作为理论的延伸,使两者有机的结合在一起,才能提高自己的实际动手能力和独立思考的能力。在此我衷心感谢同学们在课程设计中给予我的帮助。也衷心感谢老师对我们课程设计的进行指导!参考文献[1]赵静,张瑾.基于Matlab的通信系统仿真[M].北京:北京航空航天大学出版社,2007.9[2]王幕坤,刘文责.通信原理[M].石家庄:哈尔滨工业大学出版社,1995.[4]王兴亮.通信系统原理教程[M].西安:西安电子科技大学出版社,2007:90.105.[5]张志勇,徐彦琴.Matlab教程—基于6.x版本[M].北京:清华大学出版社,2008.[6]施阳.Matlab语言精要及动态仿真工具Simulink.[M].西安:西北工业大学出版社,1997.[7]邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析[M].北京:清华大学出版社,2008.Matlab程序:T=0.001;%基带信号宽度,也就是频率fc=12/T;%载波频率ml=2;%调制信号类型的一个标志位nb=100;%传输的比特数delta_T=T/200;%采样间隔fs=1/delta_T;%采样频率SNR=0;%信噪比t=0:delta_T:nb*T-delta_T;%限定t的取值范围N=length(t);%采样数%-------------------------调制部分%基带信号的产生data=randn(1,nb)>0.5;datanrz=data.*2-1;data1=zeros(1,nb/delta_T);data1((q-1)/delta_T+1:q/delta_T)=datanrz(q);end%串并转换,将奇偶位数据分开idata=datanrz(1:ml:(nb-1));qdata=datanrz(2:ml:nb);%QDPSK信号的调制ich=zeros(1,nb/delta_T/2);fori=1:nb/2ich((i-1)/delta_T+1:i/delta_T)=idata(i);endforii=1:N/2a(ii)=sqrt(2/T)*cos(2*pi*fc*t(ii));endidata1=ich.*a;qch=zeros(1,nb/2/delta_T);qch((j1-1)/delta_T+1:j1/delta_T)=qdata(j1);endforjj=1:N/2b(jj)=sqrt(2/T)*sin(2*pi*fc*t(jj));endqdata1=qch.*b;s=idata1+qdata1;ss=abs(fft(s));%----------------------------瑞利衰落信道和高斯信道%瑞利衰落信道ray_ich=raylrnd(0.8,1,nb/2/delta_T);ray_qch=raylrnd(0.8,1,nb/2/delta_T);Ray_idata=idata1.*ray_ich;Ray_qdata=qdata1.*ray_qch;Ray_s=Ray_idata+Ray_qdata;%高斯信道s1=awgn(s,SNR);s11=abs(fft(s1));s111=s1+s;Awgn_s=awgn(Ray_s,SNR);%通过高斯信道再通过瑞利衰落信道%-----------------------------QDPSK解调部分%解调部分(高斯信道)40idata2=s1.*a;qdata2=s1.*b;idata3=zeros(1,nb/2);qdata3=zeros(1,nb/2);%抽样判决的过程,与0作比较,data>=0,则置1,否则置0forn=1:nb/2ifsum(idata2((n-1)/delta_T+1:n/delta_T))>=0idata3(n)=1;elseidata3(n)=0;endifsum(qdata2((n-1)/delta_T+1:n/delta_T))>=0qdata3(n)=1;elseqdata3(n)=0;endend%为了显示星座图,将信号进行处理idata4=zeros(1,nb/2);qdata4=zeros(1,nb/2);forn=1:nb/2Awgn_ichsum(n)=sum(idata2((n-1)/delta_T+1:n/delta_T))*delta_T;ifAwgn_ichsum(n)>=0idata4(n)=1;elseidata4(n)=0;endAwgn_qchsum(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T))*delta_T;ifAwgn_qchsum(n)>=0qdata4(n)=1;elseqdata4(n)=0;end41end%将判决之后的数据存放进数组demodata=zeros(1,nb);demodata(1:ml:(nb-1))=idata3;demodata(2:ml:nb)=qdata3;%为了显示,将它变成波形信号(即传输一个1代表单位宽度的高电平)demodata1=zeros(1,nb/delta_T);demodata1((q-1)/delta_T+1:q/delta_T)=demodata(q);end%累计误码数%abs(demodata-data)求接收端和发射端%数据差的绝对值,累计之后就是误码个数Awgn_num_BER=sum(abs(demodata-data))%解调部分(瑞利+高斯)Ray_idata2=Ray_s.*a;Ray_qdata2=Ray_s.*b;%为了显示星座图,将信号进行处理Ray_idata4=zeros(1,nb/2);Ray_qdata4=zeros(1,nb/2);forn=1:nb/2Ray_ichsum(n)=sum(idata2((n-1)/delta_T+1:n/delta_T))*delta_T;ifRay_ichsum(n)>=0Ray_idata4(n)=1;elseRay_idata4(n)=0;end42Ray_qchsum(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T))*delta_T;ifRay_qchsum(n)>=0Ray_qdata4(n)=1;elseRay_qdata4(n)=0;endend%将判决之后的数据存放进数组Ray_demodata=zeros(1,nb);Ray_demodata(1:ml:(nb-1))=Ray_idata4;Ray_demodata(2:ml:nb)=Ray_qdata4;%为了显示,将它变成波形信号(即传输一个1代表单位宽度的高电平)Ray_demodata1=zeros(1,nb/delta_T);Ray_demodata1((q-1)/delta_T+1:q/delta_T)=Ray_demodata(q);end%累计误码数%abs(demodata-data)求接收端和发射端%数据差的绝对值,累计之后就是误码个数Ray_num_BER=sum(abs(Ray_demodata-data))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%误码率计算%%调用了cm_sm32();和cm_sm33()函数%%声明:函数声明在另外俩个M文件中%%作用:cm_sm32()用于瑞利信道误码率的计算%%cm_sm33()用于高斯信道误码率的计算%%ecohon/off作用在于决定是否显示指令内容%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%43%%%%%SNRindB1=0:1:6;SNRindB2=0:0.1:6;%瑞利衰落信道fori=1:length(SNRindB1),[pb,ps]=cm_sm32(SNRindB1(i));smld_bit_ray_err_prb(i)=pb;smld_symbol_ray_err_prb(i)=ps;disp([ps,pb]);echooff;end;%高斯信道echoon;fori=1:length(SNRindB1),[pb1,ps1]=cm_sm33(SNRindB1(i));smld_bit_awgn_err_prb(i)=pb1;smld_symbol_awgn_err_prb(i)=ps1;disp([ps1,pb1]);echooff;end;%理论曲线echoon;fori=1:length(SNRindB2),SNR=exp(SNRindB2(i)*log(10)/10);theo_err_awgn_prb(i)=0.5*erfc(sqrt(SNR));theo_err_ray_prb(i)=0.5*(1-1/sqrt(1+1/SNR));echooff;end;h=spectrum.welch;44%----------------------------输出显示部分%第一部分(理想)subplot(3,2,1);plot(data),title('基带信号');axis([020000-22]);subplot(3,2,2);psd(h,data1,'fs',fs),title('基带信号功率谱密度');subplot(3,2,3);plot(s),title('调制信号');axis([0500-33]);subplot(3,2,4);psd(h,s,'fs',fs),title('调制信号功率谱密度');subplot(3,2,5);plot(demodata1),title('解调输出');axis([020000-22]);subplot(3,2,6);psd(h,demodata1,'fs',fs),title('解调输出功率谱密度');%通过高斯信道figure(2)subplot(2,2,1);plot(s1),title('调制信号(Awgn)');axis([0500-55]);subplot(2,2,2);psd(h,s1,'fs',fs),title('调制信号功率谱密度(Awgn)');subplot(2,2,3);plot(s111),title('高斯噪声曲线');axis([02000-55]);figure(3)45fori=1:nb/2plot(idata(i),qdata(i),'r+'),title('QDPSK信号星座图(Awgn)');holdon;axis([-22-22]);plot(Awgn_ichsum(i),Awgn_qchsum(i),'*');holdon;legend('理论值(发射端)','实际值(接收端)');end%通过瑞利衰落信道再通过高斯信道figure(4)subplot(2,2,1)plot(Ray_s),title('调制信号(Ray+Awgn)');axis([0500-55]);subplot(2,2,2);psd(h,Ray_s,'fs',fs),title('调制信号功率谱密度(Ray)');figure(5)fori=1:nb/2plot(idata(i),qdata(i),'r+'),title('QDPSK信号星座图(Awgn+Ray)');holdon;axis([-22-22]);plot(Ray_ichsum(i),Ray_qchsum(i),'*');holdon;legend('理论值(发射端)','实际值(接收端)');endfigure(6)semilogy(SNRindB2,theo_err_awgn_prb,'r'),title('误码率曲线');holdon;semilogy(SNRindB1,smld_bit_awgn_err_prb,'r*');holdon;semilogy(SNRindB2,theo_err_ray_prb);holdon;semilogy(SNRindB1,smld_bit_ray_err_prb,'+');xlabel('Eb/No');ylabel('BER');legend('理论AWGN','仿真AWGN','理论Rayleigh','仿真Rayleigh');46cm_sm32:function[pb,ps]=cm_sm32(snr_in_dB)%[pb,ps]=cm_sm32(snr_in_dB)%CM_SM3findstheprobabilityofbiterrorandsymbolerrorfor%thegivenvalueofsnr_in_dB,signaltonoiseratioindB.numofsymbolerror=0;numofbiterror=0;counter=0;snr=10^(snr_in_dB/10);sgma=sqrt(E/snr)/2;%energypersymbol%signaltonoiseratio%noisevariances00=[10];s01=[01];s11=[-10];s10=[0-1];%signalmapping%generationofthedatasourcewhile(numofbiterror<100)fori=1:N,temp=rand;%auniformrandomvariablebetween0and1if(temp<0.25),%withprobability1/4,sourceoutputis"00"dsource1(i)=0;dsource2(i)=0;elseif(temp<0.5),%withprobability1/4,sourceoutputis"01"dsource1(i)=0;dsource2(i)=1;elseif(temp<0.75),%withprobability1/4,sourceoutputis"10"dsource1(i)=1;dsource2(i)=0;else%withprobability1/4,sourceoutputis"11"dsource1(i)=1;dsource2(i)=1;end;end;47%detectionandtheprobabilityoferrorcalculationfori=1:N,ray=raylrnd(0.8);n=sgma*randn(1,2);%2normaldistributedr.vwith0,variancesgmaif((dsource1(i)==0)&(dsource2(i)==0)),r=ray*s00+n;elseif((dsource1(i)==0)&(dsource2(i)==1)),r=ray*s01+n;elseif((dsource1(i)==1)&(dsource2(i)==0)),r=s10*ray+n;elser=s11*ray+n;end;%Thecorrelationmetricsarecomputedbelowc00=dot(r,s00);c01=dot(r,s01);c10=dot(r,s10);c11=dot(r,s11);%Thedecisionontheithsymbolismadenextc_max=max([c00,c01,c10,c11]);if(c00==c_max),decis1=0;decis2=0;elseif(c01==c_max),decis1=0;decis2=1;elseif(c10==c_max),decis1=1;decis2=0;elsedecis1=1;decis2=1;end;%Incrementtheerrorcounter,ifthedecisionisnotcorrectsymbolerror=0;if(decis1~=dsource1(i)),numofbiterror=numofbiterror+1;symbolerror=1;end;if(decis2~=dsource2(i)),numofbiterror=numofbiterror+1;symbolerror=1;end;if(symbolerror==1),numofsymbolerror=numofsymbolerror+1;end;48endcounter=counter+1;endps=numofsymbolerror/(N*counter);pb=numofbiterror/(2*N*counter);%sincetherearetotallyNsymbols%since2Nbitsaretransmittedcm_sm33:function[pb1,ps1]=cm_sm33(snr_in_dB)%[pb,ps]=cm_sm32(snr_in_dB)%CM_SM3findstheprobabilityofbiterrorandsymbolerrorfor%thegivenvalueofsnr_i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论