基于MATLAB的QPSK系统仿真设计与实现

通信系统仿真设计实训报告 1. 课题名称: 基于 MATLAB 的QPSK系统仿真设计与实现 学生学号: 学生姓名: 所在班级: 任课教师: 2016年 10月25日 目 录 1.1QPSK系统的应用背景简介3 1.2 QPSK实验仿真的意义3 1.3 实验平台和实验内容3 1.3.1实验平台3 1.3.2实验内容3 二、系统实现框图和分析4 2.1、QPSK调制部分,4 2.2、QPSK解调部分5 三、实验结果及分析6 3.1、理想信道下的仿真6 3.2、高斯信道下的仿真7 3.3、先通过瑞利衰落信道再通过高斯信道的仿真8 总结:10 参考文献:11 附录12 1.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 实验平台和实验内容 1.3.1实验平台 本实验是基于Matlab的软件仿真,只需PC机上安装MATLAB 6.0或者以上版本即可。 (本实验附带基于Matlab Simulink (模块化)仿真,如需使用必须安装simulink 模块) 1.3.2实验内容 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所示 1(t)= QPSK 信号s(t) 二进制 数据序列 极性NRZ 电平编码器 分离器 2(t)= 图1 原理分析: 基本原理及系统结构 QPSK与二进制PSK一样,传输信号包含的信息都存在于相位中。的别的载波相位取四个等间隔值之一,如л/4, 3л/4,5л/4,和7л/4。相应的,可将发射信号定义为 0≤t≤T Si(t) = 0。, 其他 其中,i=1,2,2,4;E为发射信号的每个符号的能量,T为符号持续时间,载波频率f等于nc/T,nc为固定整数。每一个可能的相位值对应于一个特定的二位组。例如,可用前述的一组相位值来表示格雷码的一组二位组:10,00,01,11。 下面介绍QPSK信号的产生和检测。如果a为典型的QPSK发射机框图。输入的二进制数据序列首先被不归零(NRZ)电平编码转换器转换为极性形式,即负号1和0分别用和-表示。接着,该二进制波形被分接器分成两个分别由输入序列的奇数位偶数位组成的彼此独立的二进制波形,这两个二进制波形分别用a1(t),和a2(t)表示。容易注意到,在任何一信号时间间隔内a1(t),和a2(t)的幅度恰好分别等于Si1和 Si2,即由发送的二位组决定。这两个二进制波形a1(t),和a2(t)被用来调制一对正交载波或者说正交基本函数:1(t)=,2(t)=。这样就得到一对二进制PSK信号。1(t)和2(t)的正交性使这两个信号可以被独立地检测。最后,将这两个二进制PSK信号相加,从而得期望的QPSK。 2.2、QPSK解调部分 ,原理框图如图2所示: 1(t) 同相信道 门限=0 发送二进制序列的估计 判决门限 低通filrer 判决门限 复接器 接收信 号 x(t) 低通filrer 2(t) 正交信道 门限=0 图2 原理分析: QPSK接收机由一对共输入地相关器组成。这两个相关器分别提供本地产生地相干参考信号1(t)和2(t)。相关器接收信号x(t),相关器输出地x1和x2被用来与门限值0进行比较。如果x1>0,则判决同相信道地输出为符号1;如果x1=-1 bit_recover=[bit_recover 1]; else data_recover_a(i:i+19)=-1; bit_recover=[bit_recover -1]; end end error=0; dd = -2*bit_in+1; ddd=[dd ]; ddd1=repmat(ddd,20,1); for i=1:2e4 ddd2(i)=ddd1(i); end for i=1:1e3 if bit_recover(i)~=ddd(i) error=error+1; end end p=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 all close 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); end figure(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; function[y]=Qfunct(x) y=(1/2)*erfc(x/sqrt(2)); function[pb,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) elseif((dsource1(i)==0) elseif((dsource1(i)==1) 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); 效果图: 21

qpsk matlab仿真框图,基于MATLAB的QPSK系统仿真设计与实现相关推荐

  1. 「电子万年历matlab仿真」——基于Matlab的电子万年历仿真实现

    「电子万年历matlab仿真」--基于Matlab的电子万年历仿真实现 作为一种具有时间显示.日期查询.闹钟提醒等功能的电子产品,电子万年历已经成为了人们日常生活中不可或缺的一部分.而在现代科技的发展 ...

  2. ofdm系统matlab仿真论文,基于MATLAB的OFDM仿真(SIMULINK仿真)

    中 文 摘 要 正交频分复用(OFDM)是一种多载波宽带数字调制技术.相比一般的数字通信系统,它具有频带利用率高和抗多径干扰能力强等优点,因而适合于高速率的无线通信系统.正交频分复用 OFDM 是第四 ...

  3. matlab仿真炉温控制,基于MATLAB的炉温控制系统的仿真.doc

    PAGE 11 PAGE 11 控制系统仿真 课程大作业 题目: 基于MATLAB的炉温控制系统的仿真 院系名称: 电气工程学院 专业班级: 自动F0904 学生姓名: 学号: 指导教师: 教师职称: ...

  4. pid控制器matlab仿真研究,基于MATLAB仿真的PID控制器设计毕业设计

    基于MATLAB仿真的PID控制器设计毕业设计 基于 MATLAB 仿真的 PID 控制器设计 摘 要 本论文以温度控制系统为研究对象设计一个 PID 控制器.PID 控制是迄今为止最通用的控制方法, ...

  5. 模糊PID控制器MATLAB仿真探讨,基于Matlab的模糊自整定PID控制器仿真研究

    1. 引言 传统的PID控制因其算法可靠简单,鲁棒优良,可靠度高,在工业过程中得到了广泛的应用,特别适用于建立一个精确的数学模型确定控制系统的确定性控制.李文宇等对PID控制进行了研究,并取得了一定的 ...

  6. 现代永磁同步电机控制原理及matlab仿真_基于Matlab的PMSM模型初探

    本文首发自微信公众号"汽车技术馆"! 随着新能源车辆的普及,电机的控制技术逐渐成为了热门的话题,尤其是目前在电机上普遍使用的永磁同步PMSM技术,其实不止是新能源的电机驱动使用了这 ...

  7. matlab 仿真风速,基于Matlab的组合风速建模与仿真

    0引言随着全球常规能源的日益紧张,利用可再生能源发电就有着重要的意义,可再生能源发电具有明显的环境效益和社会效益.由于风能蕴藏量大.分布广泛.可以再生等特点,风力发电是可再生能源发电的最常见的一种形式 ...

  8. matlab仿真噪声,基于MATLAB的噪声仿真程序.docx

    clear all;close all;clc;%清除变量 T=100e-6;%采样时间 fs=300e6;%采样频率 N=T*fs;%采样点数 detlf=20e6;%滤波器截止频率 f1=100e ...

  9. 【机械仿真】基于matlab打桩机运动学仿真【含Matlab源码 2101期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab打桩机运动学仿真[含Matlab源码 2101期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  10. 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

最新文章

  1. 从统计局抓取2016年最新的全国区县数据!!
  2. 华为的型号命名规则_电力电缆产品的型号命名规则
  3. python如何跳出外层循环_失去循环标签的Python,我这样实现跳出外层循环
  4. 语言教案 小小计算机,小班《小小手机本领大》语言教案
  5. android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解...
  6. epoll实现socket通信
  7. springcloud工作笔记091---tk.mybatis.mapper.MapperException: 当前实体类不包含名为XXXXX的属性!
  8. extract($_POST[])
  9. vue中对话框关闭以后清空对话框中input,select内容
  10. UE4蓝图基础01-开发环境安装
  11. 计算机操作系统第四版课后题答案汤小丹
  12. 实用主义学python_麻瓜编程《实用主义学Python》课程全集下载地址 – 爱学知识网...
  13. java 数据库基础_数据库基础知识考试及答案 PDF 下载
  14. 暴力破解zip压缩密码
  15. 中国国内开源网站都有哪些呢?
  16. Import “github.com/gogo/protobuf/gogoproto/gogo.proto“ was not found or had errors.
  17. TI DSP 28335 eCAP 测量脉冲占空比
  18. 计算机word中的行间距在哪里设置,word怎么把所有行间距设置成22磅
  19. k8s中部署prometheus监控告警系统-prometheus系列文章第一篇
  20. 免费AWS EC2实例

热门文章

  1. 简述计算机网络的五层协议体系结构,计算机网络五层协议体系结构分别是什么...
  2. 1.16 隐藏不需要打印的内容 [原创Excel教程]
  3. java Date时间工具类
  4. fastreport oracle,如何从FastReport .NET报表设计器连接到OracleDB数据库
  5. 重新安装windows中已删除的Wireless Zero Configuration(WZC)服务
  6. xctf crackme
  7. 第5章第25节:如何寻找和下载视频、音频素材 [PowerPoint精美幻灯片实战教程]
  8. python壁纸推荐_python爬虫项目-一见倾心壁纸
  9. 网页点击链接,跳转qq添加好友
  10. flash cs6 快捷键