欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    基于MATLAB的QPSK系统仿真设计及实现报告.doc

    • 资源ID:22973       资源大小:101.94KB        全文页数:11页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于MATLAB的QPSK系统仿真设计及实现报告.doc

    通信系统仿真设计实训报告1. 课题名称:基于 MATLAB 的QPSK系统仿真设计与实现目录1.1QPSK系统的应用背景简介31.2 QPSK实验仿真的意义31.3 实验平台和实验内容3实验平台3实验内容3二、系统实现框图和分析42.1、QPSK调制部分,42.2、QPSK解调部分5三、实验结果及分析63.1、理想信道下的仿真63.2、高斯信道下的仿真73.3、先通过瑞利衰落信道再通过高斯信道的仿真8总结:10参考文献:11附录121.1QPSK系统的应用背景简介QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。在19世纪80年代初期,人们选用恒定包络数字调制。这类数字调制技术的优点是已调信号具有相对窄的功率谱和对放大设备没有线性要求,不足之处是其频谱利用率低于线性调制技术。19世纪80年代中期以后,四相绝对移相键控<QPSK>技术以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。1.2 QPSK实验仿真的意义通过完成设计内容,复习QPSK调制解调的基本原理,同时也要复习通信系统的主要组成部分,了解调制解调方式中最基础的方法。了解QPSK的实现方法及数学原理。并对"通信"这个概念有个整体的理解,学习数字调制中误码率测试的标准及计算方法。同时还要复习随机信号中时域用自相关函数,频域用功率谱密度来描述平稳随机过程的特性等基础知识,来理解高斯信道中噪声的表示方法,以便在编程中使用。理解QPSK调制解调的基本原理,并使用MATLAB编程实现QPSK信号在高斯信道和瑞利衰落信道下传输,以及该方式的误码率测试。复习MATLAB编程的基础知识和编程的常用算法以及使用MATLAB仿真系统的注意事项,并锻炼自己的编程能力,通过编程完成QPSK调制解调系统的仿真,以及误码率测试,并得出响应波形。在完成要求任务的条件下,尝试优化程序。通过本次实验,除了和队友培养了默契学到了知识之外,还可以将次实验作为一种推广,让更多的学生来深入一层的了解QPSK以至其他调制方式的原理和实现方法。可以方便学生进行测试和对比。足不出户便可以做实验。1.3 实验平台和实验内容实验平台本实验是基于Matlab的软件仿真,只需PC机上安装MATLAB 6.0或者以上版本即可。本实验附带基于Matlab Simulink 模块化仿真,如需使用必须安装simulink 模块实验内容1.构建一个理想信道基本QPSK仿真系统,要求仿真结果有a.基带输入波形及其功率谱b.QPSK信号及其功率谱 c.QPSK信号星座图2.构建一个在AWGN高斯白噪声信道条件下的QPSK仿真系统,要求仿真结果有a.QPSK信号及其功率谱b.QPSK信号星座图c.高斯白噪声信道条件下的误码性能以及高斯白噪声的理论曲线,要求所有误码性能曲线在同一坐标比例下绘制3验可选做扩展内容要求:构建一个先经过Rayleigh瑞利衰落信道,再通过AWGN高斯白噪声信道条件下的条件下的QPSK仿真系统,要求仿真结果有a.QPSK信号及其功率谱b.通过瑞利衰落信道之前和之后的信号星座图,前后进行比较c.在瑞利衰落信道和在高斯白噪声条件下的误码性能曲线,并和二.2.c中所要求的误码性能曲线在同一坐标比例下绘制二、系统实现框图和分析2.1、QPSK调制部分,原理框图如图1所示1tQPSK信号st二进制数据序列极性NRZ电平编码器分离器2t图1原理分析:基本原理及系统结构 QPSK与二进制PSK一样,传输信号包含的信息都存在于相位中。的别的载波相位取四个等间隔值之一,如/4, 3/4,5/4,和7/4。相应的,可将发射信号定义为 0tTSit 0。, 其他其中,i1,2,2,4;E为发射信号的每个符号的能量,T为符号持续时间,载波频率f等于nc/T,nc为固定整数。每一个可能的相位值对应于一个特定的二位组。例如,可用前述的一组相位值来表示格雷码的一组二位组:10,00,01,11。下面介绍QPSK信号的产生和检测。如果a为典型的QPSK发射机框图。输入的二进制数据序列首先被不归零NRZ电平编码转换器转换为极性形式,即负号1和0分别用和表示。接着,该二进制波形被分接器分成两个分别由输入序列的奇数位偶数位组成的彼此独立的二进制波形,这两个二进制波形分别用a1t,和a2t表示。容易注意到,在任何一信号时间间隔内a1t,和a2t的幅度恰好分别等于Si1和 Si2,即由发送的二位组决定。这两个二进制波形a1t,和a2t被用来调制一对正交载波或者说正交基本函数:1t,2t。这样就得到一对二进制PSK信号。1t和2t的正交性使这两个信号可以被独立地检测。最后,将这两个二进制PSK信号相加,从而得期望的QPSK。2.2、QPSK解调部分,原理框图如图2所示:1t 同相信道 门限0发送二进制序列的估计判决门限低通filrer判决门限复接器接收信 号xt低通filrer2t正交信道 门限0 图2原理分析:QPSK接收机由一对共输入地相关器组成。这两个相关器分别提供本地产生地相干参考信号1t和2t。相关器接收信号xt,相关器输出地x1和x2被用来与门限值0进行比较。如果x1>0,则判决同相信道地输出为符号1;如果x1<0 ,则判决同相信道的输出为符号0。;类似地。如果正交通道也是如此判决输出。最后同相信道和正交信道输出这两个二进制数据序列被复加器合并,重新得到原始的二进制序列。在AWGN信道中,判决结果具有最小的负号差错概率。三、实验结果及分析根据图1和图2的流程框图设计仿真程序,得出结果并且分析如下:3.1、理想信道下的仿真,实验结果如图3所示 图3实验结果分析:如图上结果显示,完成了QPSK信号在理想信道上的调制,传输,解调的过程,由于调制过程中加进了载波,因此调制信号的功率谱密度会发生变化。并且可以看出调制解调的结果没有误码。3.2、高斯信道下的仿真,结果如图4所示:图4实验结果分析:由图4可以得到高斯信道下的调制信号,高斯噪声,调制输出功率谱密度曲线和QPSK信号的星座图。在高斯噪声的影响下,调制信号的波形发生了明显的变化,其功率谱密度函数相对于图1中的调制信号的功率谱密度只发生了微小的变化,原因在于高斯噪声是一个均值为0的白噪声,在各个频率上其功率是均匀的,因此此结果是真确的。星座图反映可接收信号早高斯噪声的影响下发生了误码,但是大部分还是保持了原来的特性。3.3、先通过瑞利衰落信道再通过高斯信道的仿真。实验结果如图5所示:图5实验结果分析:由图5可以得到瑞利衰落信道前后的星座图,调制信号的曲线图及其功率谱密度。最后显示的是高斯信道和瑞利衰落信道的误码率对比。由图可知瑞利衰落信道下的误码率比高斯信道下的误码率高。至此,仿真实验就全部完成。结 论本论文运用MATLAB中的动态仿真工具箱Simulink仿真实现了PCM系统的全部过程。根据PCM系统的组成原理,在Simulink模块库中找到相应的模块,然后选择合适的模块以及设置适当的参数,建立了PCM通信系统的仿真模型,最后在给定仿真的条件下,运行了仿真系统。仿真结果表明:1.在正常的信噪比条件下,该通信系统失真较小,达到了预期的目的。2.Simulink仿真工具箱操作简单方便、调试直观,为通信系统的软件仿真实现提供了极大的方便。参考文献:1、MATLAB 宝典 陈杰等编著 电子工业出版社2、MATLAB信号处理 刘波, 文忠, 曾涯编著 北京电子工业出版社3、数字信号处理的MATLAB实现万永革编著北京科学出版社4、网上资料附录MATLAB程序% 调相法clear allclose allt=-1:0.01:7-0.01;tt=length<t>x1=ones<1,800>for i=1:tt if <t<i>>=-1 & t<i><=1> | <t<i>>=5& t<i><=7> x1<i>=1; else x1<i>=-1; endendt1=0:0.01:8-0.01;t2=0:0.01:7-0.01;t3=-1:0.01:7.1-0.01;t4=0:0.01:8.1-0.01;tt1=length<t1>x2=ones<1,800>for i=1:tt1 if <t1<i>>=0 & t1<i><=2> | <t1<i>>=4& t1<i><=8> x2<i>=1; else x2<i>=-1; endendf=0:0.1:1;xrc=0.5+0.5*cos<pi*f>y1=conv<x1,xrc>/5.5;y2=conv<x2,xrc>/5.5;n0=randn<size<t2>>f1=1;i=x1.*cos<2*pi*f1*t>q=x2.*sin<2*pi*f1*t1>I=i<101:800>Q=q<1:700>QPSK=sqrt<1/2>.*I+sqrt<1/2>.*Q;QPSK_n=<sqrt<1/2>.*I+sqrt<1/2>.*Q>+n0;n1=randn<size<t2>>i_rc=y1.*cos<2*pi*f1*t3>q_rc=y2.*sin<2*pi*f1*t4>I_rc=i_rc<101:800>Q_rc=q_rc<1:700>QPSK_rc=<sqrt<1/2>.*I_rc+sqrt<1/2>.*Q_rc>QPSK_rc_n1=QPSK_rc+n1;figure<1>subplot<4,1,1>plot<t3,i_rc>axis<-1 8 -1 1>ylabel<'a序列'>subplot<4,1,2>plot<t4,q_rc>axis<-1 8 -1 1>ylabel<'b序列'>subplot<4,1,3>plot<t2,QPSK_rc>axis<-1 8 -1 1>ylabel<'合成序列'>subplot<4,1,4>plot<t2,QPSK_rc_n1>axis<-1 8 -1 1>ylabel<'加入噪声'>效果图:% 设定 T=1,加入高斯噪声clear allclose all% 调制bit_in = randint<1e3, 1, 0 1>bit_I = bit_in<1:2:1e3>bit_Q = bit_in<2:2:1e3>data_I = -2*bit_I+1;data_Q = -2*bit_Q+1;data_I1=repmat<data_I',20,1>data_Q1=repmat<data_Q',20,1>for i=1:1e4 data_I2<i>=data_I1<i> data_Q2<i>=data_Q1<i>end;f=0:0.1:1;xrc=0.5+0.5*cos<pi*f>data_I2_rc=conv<data_I2,xrc>/5.5;data_Q2_rc=conv<data_Q2,xrc>/5.5;f1=1;t1=0:0.1:1e3+0.9;n0=rand<size<t1>>I_rc=data_I2_rc.*cos<2*pi*f1*t1>Q_rc=data_Q2_rc.*sin<2*pi*f1*t1>QPSK_rc=<sqrt<1/2>.*I_rc+sqrt<1/2>.*Q_rc>QPSK_rc_n0=QPSK_rc+n0;% 解调I_demo=QPSK_rc_n0.*cos<2*pi*f1*t1>Q_demo=QPSK_rc_n0.*sin<2*pi*f1*t1>% 低通滤波I_recover=conv<I_demo,xrc> Q_recover=conv<Q_demo,xrc>I=I_recover<11:10010>Q=Q_recover<11:10010>t2=0:0.05:1e3-0.05;t3=0:0.1:1e3-0.1;% 抽样判决data_recover=;for i=1:20:10000 data_recover=data_recover I<i:1:i+19> Q<i:1:i+19>end;bit_recover=;for i=1:20:20000 if sum<data_recover<i:i+19>>>0 data_recover_a<i:i+19>=1; bit_recover=bit_recover 1; else data_recover_a<i:i+19>=-1; bit_recover=bit_recover -1; endenderror=0;dd = -2*bit_in+1;ddd=dd'ddd1=repmat<ddd,20,1>for i=1:2e4 ddd2<i>=ddd1<i>endfor i=1:1e3 if bit_recover<i>=ddd<i> error=error+1; endendp=error/1000;figure<1>subplot<2,1,1>plot<t2,ddd2>axis<0 100 -2 2>title<'原序列'>subplot<2,1,2>plot<t2,data_recover_a>axis<0 100 -2 2>title<'解调后序列'>效果图:% 设定 T=1, 不加噪声clear allclose all% 调制bit_in = randint<1e3, 1, 0 1>bit_I = bit_in<1:2:1e3>bit_Q = bit_in<2:2:1e3>data_I = -2*bit_I+1;data_Q = -2*bit_Q+1;data_I1=repmat<data_I',20,1>data_Q1=repmat<data_Q',20,1>for i=1:1e4 data_I2<i>=data_I1<i> data_Q2<i>=data_Q1<i>end;t=0:0.1:1e3-0.1;f=0:0.1:1;xrc=0.5+0.5*cos<pi*f>data_I2_rc=conv<data_I2,xrc>/5.5;data_Q2_rc=conv<data_Q2,xrc>/5.5;f1=1;t1=0:0.1:1e3+0.9;I_rc=data_I2_rc.*cos<2*pi*f1*t1>Q_rc=data_Q2_rc.*sin<2*pi*f1*t1>QPSK_rc=<sqrt<1/2>.*I_rc+sqrt<1/2>.*Q_rc>% 解调I_demo=QPSK_rc.*cos<2*pi*f1*t1>Q_demo=QPSK_rc.*sin<2*pi*f1*t1>I_recover=conv<I_demo,xrc>Q_recover=conv<Q_demo,xrc>I=I_recover<11:10010>Q=Q_recover<11:10010>t2=0:0.05:1e3-0.05;t3=0:0.1:1e3-0.1;data_recover=;for i=1:20:10000 data_recover=data_recover I<i:1:i+19> Q<i:1:i+19>end;ddd = -2*bit_in+1;ddd1=repmat<ddd',10,1>for i=1:1e4 ddd2<i>=ddd1<i>endfigure<1>subplot<4,1,1>plot<t3,I>axis<0 20 -6 6>subplot<4,1,2>plot<t3,Q>axis<0 20 -6 6>subplot<4,1,3>plot<t2,data_recover>axis<0 20 -6 6>subplot<4,1,4>plot<t,ddd2>axis<0 20 -6 6>效果图:% QPSK误码率分析SNRindB1=0:2:10;SNRindB2=0:0.1:10;for i=1:length<SNRindB1> pb,ps=cm_sm32<SNRindB1<i>> smld_bit_err_prb<i>=pb; smld_symbol_err_prb<i>=ps;end;for i=1:length<SNRindB2> SNR=exp<SNRindB2<i>*log<10>/10> theo_err_prb<i>=Qfunct<sqrt<2*SNR>>end;title<'QPSK误码率分析'>semilogy<SNRindB1,smld_bit_err_prb,'*'>axis<0 10 10e-8 1>hold on;% semilogy<SNRindB1,smld_symbol_err_prb,'o'>semilogy<SNRindB2,theo_err_prb>legend<'仿真比特误码率','理论比特误码率'>hold off;functiony=Qfunct<x>y=<1/2>*erfc<x/sqrt<2>>functionpb,ps=cm_sm32<SNRindB>N=10000;E=1;SNR=10<SNRindB/10>sgma=sqrt<E/SNR>/2;s00=1 0;s01=0 1;s11=-1 0;s10=0 -1;for i=1:N dsource1<i>=1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1;numofsymbolerror=0;numofbiterror=0;for i=1:N n=sgma*randn<size<s00>> if<<dsource1<i>=0>&<dsource2<i>=0>> r=s00+n; elseif<<dsource1<i>=0>&<dsource2<i>=1>> r=s01+n; elseif<<dsource1<i>=1>&<dsource2<i>=0>> r=s10+n; else r=s11+n; end; c00=dot<r,s00> c01=dot<r,s01> c10=dot<r,s10> c11=dot<r,s11> c_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; else decis1=1;decis2=1; end; symbolerror=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;end;ps=numofsymbolerror/N;pb=numofbiterror/<2*N>

    注意事项

    本文(基于MATLAB的QPSK系统仿真设计及实现报告.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开