【MATLAB源码-第9期】基于matlab的DQPSK的误码率BER和误符号率SER仿真。

操作环境:

MATLAB 2022a

1、算法描述

DQPSK信号的解调与2DPSK信号的解调类似,也有两种方法,分别是极性比较法和相位比较法
极性比较法。其原理方框图如下图所示。由于DQPSK信号可以看做是两路2DPSK信号的合成,解
调时也可以分别按两路2DPSK信号解调,因此在解调过程中用两路相干载波去解调,可以很容易
分离出这两路正交的2DPSK信号。经低通滤波和抽样判决后恢复出相对相对码,再经码反变换器
变换成绝对码,从而恢复出发送的二进制信息
相位比较法。其原理方框图如下图所示。用这种方法解调时不需要专门的相干载波,只需由收到的
信号时延一个码元间隔T,然后与信号本身相乘。相乘起着相位比较的作用,相乘结果反映了前后
码元的相位差,经低通滤波后在抽样判决,即可直接恢复出原始数字信息,故解调器中不需要码反
变换器。DQPSK是差分QPSK的缩写,可以解决QPSK的相位模糊的问题。DQPSK就是在QPSK的基础上增加了一个差分编译码。DQPSK是利用前后相邻码元的载波相对变化传递数字信息,因此,DQPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信息符号。DQPSK可以采用非相干解调中的差分解调。

1.差分编码
差分编码又称为增量编码,在算法上表现为异或运算。

差分编码的实现:

 差分译码的实现

2、DQPSK调制和解调

2、仿真结果演示

3、关键代码展示

%I路Q路调制
I_data=zeros(1,N/2);
Q_data=zeros(1,N/2);
I_data(1,:)=data(1:2:end);
Q_data(1,:)=data(2:2:end);
data_pa=[I_data;Q_data];
I_data_mod=zeros(N/2+1,2);
Q_data_mod=zeros(N/2+1,2);%差分编码
I_data_diff=zeros(1,(1+N/2));
Q_data_diff=zeros(1,(1+N/2));
for k=1:N/2if (I_data_diff(k)==I_data(k))I_data_diff(k+1)=0;elseI_data_diff(k+1)=1;endif (Q_data_diff(k)==Q_data(k))Q_data_diff(k+1)=0;elseQ_data_diff(k+1)=1;end
end%符号映射
for k=1:N/2+1if (I_data_diff(k)==1 && Q_data_diff(k)==1)data_mod(k,:)=[1 1];elseif (I_data_diff(k)==1 && Q_data_diff(k)==0)data_mod(k,:)=[1 -1];elseif (I_data_diff(k)==0 && Q_data_diff(k)==0)data_mod(k,:)=[-1 -1];elsedata_mod(k,:)=[-1 1];end
end

4、MATLAB 源码获取

点击下方链接获取:

【MATLAB源码-第9期】基于matlab的DQPSK的误码率BER和误符号率SER仿真。_matlab实现qpsk差分编译码-CSDN博客文章浏览阅读251次。1.算法描述DQPSK信号的解调与2DPSK信号的解调类似,也有两种方法,分别是极性比较法和相位比较法极性比较法。其原理方框图如下图所示。由于DQPSK信号可以看做是两路2DPSK信号的合成,解调时也可以分别按两路2DPSK信号解调,因此在解调过程中用两路相干载波去解调,可以很容易分离出这两路正交的2DPSK信号。经低通滤波和抽样判决后恢复出相对相对码,再经码反变换器变换成绝对码,从而恢复出发送的二进制信息相位比较法。其原理方框图如下图所示。用这种方法解调时不需要专门的相干载波,只需由收到的。_matlab实现qpsk差分编译码https://blog.csdn.net/Koukesuki/article/details/132278141?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171091238916800184167872%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171091238916800184167872&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-132278141-null-null.nonecase&utm_term=%E7%AC%AC9%E6%9C%9F&spm=1018.2226.3001.4450

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python:基础语法

一、import与from.....import 有时候我们需要使用一些第三方库或包时,我们就需要通过import或from.....import导入模块。 # 导入库 import sys print("hello,world") 当我们自己写了些函数,在其他py文件,我们也可以通过from.....im…

Anaconda配置系统环境

首先,右键此电脑,点击属性 点击高级系统设计 点击环境变量 点击环境变量中系统环境下的Path,双击 如下图,添加这四项即可,注意,这都是Anaconda的安装目录下的内容 在windowsR的cmd情况下,输入co…

动归专题——斐波纳契模型和路径问题

前提 本专题开始,注重整理与动态规划相关的题目,从简单的动归开始切入,慢慢掌握和练习动态规划这一重要的算法思想,部分相对复杂的题目会结合画图和代码分析去解释 一、第N个泰波纳契数列 1.链接 1137. 第 N 个泰波那契数 - 力…

C# NumericUpDown 控件正整数输入控制

用到了控件的 KeyPress 和 KeyUp事件。 KeyPress 中控制输入“点、空格,负号”; KeyUp 中防止删空,以及防止输入超过最大值或最小值 。 private void nudStart_KeyPress(object sender, KeyPressEventArgs e){numericUpDownKeyPress(sender…

Python时间

UTC ~ 北京时间 【差8小时】 格式化日期时间为字符串:strftime 时间戳-1970.1.1到现在的秒数:time.time() AttributeError: partially initialized module ‘datetime’ has no attribute ‘fromtimestamp’ (most likely due to a circular import) 改正:文件名和…

合同起草、审查耗时费力?君子签智能电子合同让签署事半功倍

在合同签署过程中,着急和客户签约,却找不到合适的内容范本?法务审查合同只能逐字逐句审查,效率太慢?合同需要客户、法务、负责人等多方参与,修改内容难以一一对应?合同涉及的工资、费用、价格等…

WordPress网站已经安装了SSL证书,但浏览器仍然提示不安全

WordPress网站已经安装了SSL证书,但浏览器仍然提示不安全 昨天我们新建了一个WordPress的网站,在已经安装了SSL证书的情况下,访问网站仍然会提示不安全。 我们使用的是Hostease提供的虚拟主机产品,之前从未出过这样的情况&#x…

用友BI方案:一键搞定财务、销售、生产等分析

别人家做用友的数据分析,从零开始搭建分析模型、设计BI数据可视化报表,反复测试修改,耗时耗力,效果未知。奥威BI做用友的数据分析,用用友BI方案,注册、下载执行,自动取数、计算指标、分析数据、…

达梦数据库自动备份(全库)+还原(全库) 控制台

一 前提 1.安装达梦数据库DB8(请参照以前文章) 我的数据库安装目录是 /app/dmDB8 2.已创建实例 (请参照上一篇文章) 二 准备测试数据 三 自动备份步骤 1.开启归档模式 开启DM管理工具管理控制台 弹不出来工具的 输入命令 xhost 第一步 将服务器转换为配置状态 右键-&g…

后端常问面经之Spring和Mybatis框架

Spring的IOC介绍一下: 所谓控制就是对象的创建、初始化、销毁。 创建对象:原来是 new 一个,现在是由 Spring 容器创建。 初始化对象:原来是对象自己通过构造器或者 setter 方法给依赖的对象赋值,现在是由 Spring 容器…

AI研报:从Sora看多模态大模型发展

《从Sora看多模态大模型发展》的研报来自浙商证券,写于2024年2月。 这篇报告主要探讨了多模态大模型的发展趋势,特别是OpenAI发布的视频生成模型Sora,以及其对行业发展的影响。以下是报告的核心内容概述: Sora模型的发布&#x…

面试算法-103-对链表进行插入排序

题目 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序…

基于单片机的太阳能充电系统设计

摘要:本文所设计的太阳能充电系统主要由以下几个模块组成:STC89C52 主控模块、TP4056 充电电路、电压AD 采集模块、LCD1602 液晶显示模块和太阳能充电电池等组成。此太阳能充电器制作简单,性价比高,性能稳定。 关键词:LCD1602;太阳能充电系统;ADC0832 太阳能充电系统的充…

MySQL WHERE 条件查询

我们通常要求在执行 SELECT 查询时,都要带上查询条件。那这一节,我们就来学习一些简单的 WHERE 条件查询。 我们仍然以技术派文章表 article 为例,比如说我们要查找标题为“聊聊分库分表”的文章,可以这么写: SELECT *…

echarts做水滴图;解决[echarts] unknown series liquidfill 水球加载问题

一份echarts示例代码,包含水滴图 直接在echarts里使用水滴图liquidfill会报错[echarts] unknown series liquidfill 解决方案:需要下载echarts-liquidfill依赖 echarts-liquidfill2兼容echarts4; echarts-liquidfill3兼容echarts5; 例如:我的…

IDEA使用手册

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【vue3(七)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ref二、TS接口泛型规范1.创建ts文件,定义接口2.引入规范 三、props的使用四、生命周期(生命周期函数,生命周期钩子&…

rust中字符串String常用方法和注意事项

Rust 中通常说的字符串指的是&#xff1a;String 和 &str(字符串字面值、或者叫字符串切片)这两种类型。str是rust中基础字符串类型&#xff0c;String是标准库里面的类型。Rust 中的字符串本质上是&#xff1a;Byte的集合&#xff08;Vec<u8>&#xff09; 基础类型…

【第三方登录】Google邮箱

登录谷歌邮箱开发者 https://console.developers.google.com/ 先创建项目 我们用的web应用 设置回调 核心主要&#xff1a; 1.创建应用 2.创建客户端ID 3.设置域名和重定向URL 4.对外公开&#xff0c;这样所有的gmail邮箱 都能参与测试PHP代码实现 引入第三方包 h…

Spring实例化Bean的三种方式

参考资料&#xff1a; Core Technologies 核心技术 spring实例化bean的三种方式 构造器来实例化bean 静态工厂方法实例化bean 非静态工厂方法实例化bean_spring中有参构造器实例化-CSDN博客 1. 构造函数 1.1. 空参构造函数 下面这样表示调用空参构造函数&#xff0c;使用p…