【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/2
    if (I_data_diff(k)==I_data(k))
        I_data_diff(k+1)=0;
    else
        I_data_diff(k+1)=1;
    end
    
    if (Q_data_diff(k)==Q_data(k))
        Q_data_diff(k+1)=0;
    else
        Q_data_diff(k+1)=1;
    end
end
 
%符号映射
for k=1:N/2+1
    if (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];
    else
        data_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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python环境下5种TE过程(Tennessee Eastman Process)故障检测方法

田纳西-伊斯特曼过程,也被称作TE过程,主要模拟美国田纳西州一家名为伊斯曼的化工公司的化工过程。TE过程是一个高度复杂、非线性和多变量的过程,涉及到多个阶段和多个控制参数,其中某些参数会相互影响,因此&#xff0c…

读研究生的时候早恋被导师发现了怎么办?

研究生早恋这事,危险重重,比走钢丝还紧张,这根本就是走在科研生涯的悬崖边上,随时都有掉下去的危险。 让我们来详细分析一下为什么你应该立刻收心,专注于你的实验和论文,而不是浪费时间在所谓的“早恋”上。…

[2023] 14届

1.日期统计 题意 1.日期统计 - 蓝桥云课 (lanqiao.cn) 思路 用dfs扫 对每一个位进行限制 花了一个小时 注意把答案枚举出来 对应一下看到底对不对 code #include<iostream> #include<cstdio> #include<stack> #include<vector> #include<al…

电脑桌面记事本便签软件,记事本软件哪个好用

正在电脑前忙碌工作&#xff0c;突然想起今晚有个重要的会议&#xff0c;或者是明天有一个重要的任务需要完成&#xff0c;但是手头的工作又无法让你离开电脑&#xff0c;这时候&#xff0c;你多么希望有一个便捷的电脑桌面记事本便签软件&#xff0c;可以让你快速记录下这些重…

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) 改正&#xff1a;文件名和…

【C++】隐藏的this指针

文章目录 1.this指针的引出2.this指针的特性 1.this指针的引出 我们通过日期类来学习this指针&#xff0c;首先我们先定义一个日期类。 class Date { public:void Display(){cout << _year << "-" << _month << "-" << _d…

1688商品API接口数据采集助力电商ERP

1688商品API接口数据采集可以帮助电商供应链ERP系统搭建&#xff0c;提供所需的商品信息和数据。 通过使用1688商品API接口&#xff0c;可以直接从1688网站上抓取商品信息&#xff0c;包括商品名称、价格、库存、属性等。这样&#xff0c;可以省去手动复制粘贴的步骤&#xff…

矩阵的归一化技术

矩阵的归一化&#xff08;Normalization&#xff09;是将矩阵中的元素缩放到一个特定的范围或者标准&#xff0c;使得在进行比较、评估或计算时能够保持数值稳定性和可比性。这个过程在数据预处理、机器学习、图像处理等领域中非常重要。归一化有助于改善算法的收敛速度和精度&…

elasticsearch 教程(一)程序建立索引

elasticsearch 教程&#xff08;一&#xff09;程序建立索引 从elasticsearch 8.x开始&#xff0c;除了通过kibana建立索引之外&#xff0c;还可以在Java程序定义索引。待程序运行时&#xff0c;会先检测是否建立索引&#xff0c;如果已建立索引&#xff0c;即使程序中定义的索…

百能云板开启1-6层陶瓷pcb板定制服务

普通PCB通常是由铜箔和基板粘合而成&#xff0c;而基板材质大多数为玻璃纤维&#xff08;FR-4&#xff09;&#xff0c;酚醛树脂&#xff08;FR-3&#xff09;等材质&#xff0c;粘合剂通常是酚醛、环氧等。在PCB加工过程中由于热应力、化学因素、生产工艺不当等原因&#xff0…

哈希冲突解决的几种方式

目录 哈希冲突 哈希冲突-避免方式1-哈希函数的设计 1. 直接定制法--(常用) 2. 除留余数法--(常用) 3. 平方取中法--(了解) 哈希冲突-避免方式2-负载因子调节 哈希冲突-解决方式1-闭散列 1.线性探测 2.二次探测 哈希冲突-解决方式2-开散列(哈希桶) 哈希冲突 在上文中…

【Java程序设计】【C00383】基于(JavaWeb)Springboot的水产养殖系统(有论文)

【C00383】基于&#xff08;JavaWeb&#xff09;Springboot的水产养殖系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c…

SketchUp草图大师模型网:哪家更值得信赖?

草图大师模型网是一个提供模型下载和分享的平台&#xff0c;用户可以在上面找到大量的SU模型&#xff0c;并学习一些草图大师的使用技巧。那么&#xff0c;SketchUp草图大师模型网哪家更值得信赖呢?下面将从多个角度进行比较和分析。 首先&#xff0c;我们要看看草图大师模型网…

python关于字符串基础学习

字符串 python字符串是不可改变的 Python不支持单字符类型&#xff0c;单字符也是作为一个字符串使用的。 字符串编码 python3直接支持Unicode,可以表示世界上任何书面语言的字符 python3的字符默认就是16位Unicode编码&#xff0c;ASCII是Unicode的子集 使用内置函数 ord()…

2.4 如何运行Python程序

如何运行Python程序&#xff1f; Python是一种解释型的脚本编程语言&#xff0c;这样的编程语言一般支持两种代码运行方式&#xff1a; 1) 交互式编程 在命令行窗口中直接输入代码&#xff0c;按下回车键就可以运行代码&#xff0c;并立即看到输出结果&#xff1b;执行完一行…

c++初步

作业&#xff1a; 定义自己的命名空间&#xff0c;其中有string类型的变量&#xff0c;再定义两个函数&#xff0c;一个函数完成字符串的输入&#xff0c;一个函数完成求字符串长度&#xff0c;再定义一个全局函数完成对该字符串的反转 #include <iostream> #include &…

虚拟 DOM 的优缺点有哪些

虚拟DOM&#xff08;Virtual DOM&#xff09;技术作为现代前端开发中的重要组成部分&#xff0c;已经成为了众多流行前端框架的核心特性。它的引入为前端开发带来了诸多优势&#xff0c;同时也需要我们认真思考其潜在的考量。下面简单的介绍一下虚拟DOM技术的优势与缺点&#x…

ESCTF-OSINT赛题WP

这你做不出来?check ESCTF{湖北大学_嘉会园食堂} 这个识图可以发现是 淡水渔人码头 但是 osint 你要发现所有信息 聊天记录说国外 同时 提示给了美国 你综合搜索 美国 渔人码头 在美国旧金山的渔人码头&#xff08;英语&#xff1a;Fisherman’s Wharf&#xff09;是一个著名旅…

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

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

使用EasyYapi插件简化导出yapi接口

安装 &#xff1a; 关键配置&#xff1a; 其中的token在这里拿&#xff1a; 使用&#xff1a; 导出当前Controller下的所有api&#xff1a;使用下图命令可仅导出指定的api: 附&#xff1a;配置部分参考了idea&#xff1a;使用easyYapi插件导出yapi接口