m基于matlab的DQPSK调制解调技术的仿真

news2024/11/24 14:35:53

目录

1.算法概述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法概述

4进制的DPSK通常记为DQPSK。DQPSK信号编码方式如下表:

      表中  θk是相对于前一相邻码元的相位变化。共有A、B两种方式。B方式中相邻码元间总有相位改变,故有利于在接收端提取码元同步。另外由于其相邻码元相位的最大相移为±135°,比A方式的最大相移小,素在通过频带受限的系统传输后其振幅起伏也较小。B方式DQPSK又称π/4DQPSK。DQPSK的产生方法与QPSk类似,但是DQPSK先将输入的双比特码经码型变换,再用码型变换器输出的双比特码进行四相绝对移相,则所得到的输出信号就是四相相对移相信号。通常采用的方法是码变换加调相法和码变换加相位选择法。

      码变换加调相法。码变换加调相法产生DQPSK信号的组成方框图如下图所示。串行的二进制不归零双极性码元经串并转换器变换后变为两路并行码元ab,经码变换器变换为相对码元cd,之后分别与一对相干载波相乘,最后进行相加,即可产生DQPSK信号。与QPSK信号的产生方法不同的是,DQPSK的产生需将串并转换后的码元ab经码变换器变为相对码cd,且在相干载波的产生时,用两个π/4相移器代替一个π/2相移器,这样所产生的码元符合A方式编码。

码变换加相位选择法。其组成方框图如下图所示。其中的逻辑选项电路除按规定完成选择载波的相位外,还应实现将绝对码转换成相对码的功能。也就是说,在四相绝对移相时,直接用输入双比特码去选择载波的相位;而在四相相对移相时,需要将输入的双比特码ab转换成相对应的双比特码cd,再用cd去选择载波的相位,这样就可产生DQPSK信号。

2、DQPSK信号的解调

DQPSK信号的解调与2DPSK信号的解调类似,也有两种方法,分别是极性比较法和相位比较法。

      极性比较法。其原理方框图如下图所示。由于DQPSK信号可以看做是两路2DPSK信号的合成,解调时也可以分别按两路2DPSK信号解调,因此在解调过程中用两路相干载波去解调,可以很容易分离出这两路正交的2DPSK信号。经低通滤波和抽样判决后恢复出相对相对码,再经码反变换器变换成绝对码,从而恢复出发送的二进制信息。

  • 相位比较法。其原理方框图如下图所示。用这种方法解调时不需要专门的相干载波,只需由收到的信号时延一个码元间隔T,然后与信号本身相乘。相乘起着相位比较的作用,相乘结果反映了前后码元的相位差,经低通滤波后在抽样判决,即可直接恢复出原始数字信息,故解调器中不需要码反变换器。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

3.MATLAB部分代码预览

%pi/4-DQPSK调制解调系统的蒙特卡罗仿真
N = 10000;                            %仿真量大小
EbN0_indB = -2 : 0.5 : 12;            %仿真的信噪比点
EbN0 = 10.^(EbN0_indB/10);            %dB转换为自然值
times = 50;                           %仿真次数
err_rate = zeros(length(EbN0),times);
 
for ii = 1 : length(EbN0)
        for i = 1 : times
            r = rand(1,2*N);
            source = r>0.5;           %产生二进制信源
            b = 1 - 2*source;         %改变为反极性           
            bI = zeros(1,N);          %同相支路
            I = zeros(1,N);
            bQ = zeros(1,N);          %正交支路
            Q = zeros(1,N);
            delta = zeros(1,N);       %载波相位差
            for n = 1 : N             %串并变换
                bI(n) = b(2*n);
                bQ(n) = b(2*n-1);
                if n == 1             %差分编码  
                    I(n) = (bI(n)*bI(n) - bQ(n)*bQ(n))/sqrt(2);
                    Q(n) = (bQ(n)*bI(n) + bI(n)*bQ(n))/sqrt(2);
                else
                    I(n) = (I(n-1)*bI(n) - Q(n-1)*bQ(n))/sqrt(2);
                    Q(n) = (Q(n-1)*bI(n) + I(n-1)*bQ(n))/sqrt(2);
                end
            end
            Eb_x = cov(I);                       %信号能量
            Eb_y = cov(Q);
            sigma_x = sqrt(Eb_x/(2*EbN0(ii)));   %根据信噪比计算噪声方差
            sigma_y = sqrt(Eb_y/(2*EbN0(ii)));
            noise_x = randn(1,N)*sigma_x;        %高斯噪声产生
            noise_y = randn(1,N)*sigma_y;
            w = I + noise_x;                     %AWGN信道传输
            z = Q + noise_y;
            errornum_x = 0;              %错误数
            errornum_y = 0;
            for n = 1 : N                %差分译码
                if n == 1
                   x(n) = w(n)*w(n) + z(n)*z(n);
                   y(n) = z(n)*w(n) - w(n)*z(n);
                else
                   x(n) = w(n)*w(n-1) + z(n)*z(n-1);
                   y(n) = z(n)*w(n-1) - w(n)*z(n-1);
                end
                if x(n) <= 0                   %判决x
                    result_x(n) = -1;  
                elseif x(n) > 0
                    result_x(n) = 1;
                end
                if y(n) <= 0                   %判决y
                    result_y(n) = -1;  
                elseif y(n) > 0
                    result_y(n) = 1;
                end
                if result_x(n) ~= bI(n)        %计算x错误数
                    errornum_x = errornum_x + 1; 
                end
                if result_y(n) ~= bQ(n)        %计算y错误数
                    errornum_y = errornum_y + 1;
                end
                if errornum_x + errornum_y >= 100
                    break
                end
            end
            err_rate(ii,i) = (errornum_x + errornum_y)/(2*n);
        end
end
01_051_m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

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

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

相关文章

卡尔曼滤波器

卡尔曼滤波器 参考资料&#xff1a;https://www.bilibili.com/video/BV12P411V7pc/?spm_id_from333.337.search-card.all.click&vd_source2f16c81b2e6b252c304116c646e6512c 卡尔曼滤波器是线性滤波器 在这里插入图片描述 状态预测公式&#xff1a; x^t−Ftx^t−1Btut\h…

个人信息保护法vs国家标准,37项标准为个人信息加道“安全锁”~(附整理文档及pdf下载)

如何防止个人敏感信息“过度采集”&#xff1f; 如何禁止“大数据杀熟”&#xff1f; 如何避免“个性化服务”泄露隐私&#xff1f; 2021年11月1日&#xff0c;《中华人民共和国个人信息保护法》生效施行&#xff0c;为我们在网上冲浪时守护个人隐私安全。《个人信息保护法》…

HTML静态网页作业html+css+javascript+jquery水果商城7页

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

怎么把Epub转换成PDF格式?分享两种简单好用的转换方法

怎么把epub格式的文件转换成PDF文件格式呢&#xff1f;这两种文件格式大家在下载文件的时候可能会经常遇到&#xff0c;PDF文件格式自然不用多说&#xff0c;这是大家办公必备文件&#xff0c;但是epub格式的文件是一种电子书格式的文件&#xff0c;很多小伙伴用不习惯&#xf…

Linux基本指令(一)

文章目录Linux常用基本指令1. ls2. pwd3. cd4. touch5. tree6. mkdir7. rmdir8. rm9. man10. cp11. mv12. cat13. echo14. wc15. more16. less17. head18. tail19. date20. cal21. sort22. uniq23. find24. which25. whereis26. alias27. grep28. zip/unzip29. tar30. bc31. un…

MyBatisPlus入门学习笔记

目录 学习笔记 SQL文件 练习类 其他知识点 yaml配置文件 代码生成器 学习笔记 SQL文件 SQL SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS u…

图/图的存储/图的遍历

图的概念&#xff1a;图的数据结构由两个集合构成&#xff0c;一个是顶点集V (vertex)&#xff0c;一个是边集E&#xff08;Edge&#xff09;&#xff1b;无向图一般记为G(V , E) &#xff1b;有向图记为 G<V&#xff0c; E> 有向图就是边的指向是有方向区分的&#xff…

CPT-PLGA/FITC/Bodipy/Biotin聚乳酸共聚物/荧光素/生物素/Bodipy系列染料修饰顺铂的制备

今天小编分享的知识是CPT-PLGA/FITC/Bodipy/Biotin聚乳酸共聚物/荧光素/生物素/Bodipy系列染料修饰顺铂&#xff0c;下面一起来看&#xff01; CPT-11-PLGA纳米粒制备研究&#xff1a; 将CPT-11负载于可生物降解的高分子聚合物聚乳酸-羟基乙酸共聚物(PLGA)中,制备成具有缓释性…

Hive 之拉链表

文章目录什么是拉链表&#xff1f;如何实现拉链&#xff1f;拉链表实现示例什么是拉链表&#xff1f; 一张存储历史数据的表&#xff0c;记录数据由 “生” 到 “死” 的过程&#xff0c;用于处理缓慢变化维。 好处是拉链表可以保存每条数据的所有历史记录&#xff0c;轨迹十…

Java高级之Git

Java高级之Git 第1章 Git简介 Git是一个免费的、开源的分布式版本控制系统&#xff0c;旨在快速高效地处理从小型到非常大的项目的所有内容。 Git易于学习&#xff0c;占用空间小&#xff0c;性能快如闪电。它超越了SCM工具&#xff0c;如Subversion&#xff0c;CVS&#xf…

10.0 SpringMVC源码分析之MVC 模型由来

0.MVC 模型由来 0.1 Model1 模型 Model1 模型是很早以前项目开发的一种常见模型&#xff0c;项目主要由 jsp 和 JavaBean 两部分组成。 它的优点是:结构简单&#xff0c;开发小型项目时效率高。 它的缺点也同样明显: 第一:JSP的职责兼顾于展示数据和处理数据(也就是干了控制…

m基于matlab的BTS天线设计,带GUI界面

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 内容&#xff1a; N个天线按等距分布在z轴上&#xff0c;第N个和第N-1的之间的天线的距离是一定的为d。 在上述有红色的一块&#xff0c;是计算Taylor 公式的&#xff0c;有一个疑问就…

【计算机毕业设计】23.网上商城购物系统+vue

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;网上商城购物系统当然也不能排除在外。网上商城购物系统是…

Java不得不知道的八股文之哈希表

哈希表简介 在哈希表中进行添加&#xff0c;删除&#xff0c;查找等操作&#xff0c;性能十分之高&#xff0c;不考虑哈希冲突的情况下&#xff08;后面会探讨下哈希冲突的情况&#xff09;&#xff0c;仅需一次定位即可完成&#xff0c;时间复杂度为O(1)&#xff0c;接下来我…

如何回复SCI审稿人评审意见(response letter)

如何高效地回复审稿意见&#xff1f;&#xff08;上&#xff09; 如何高效地回复审稿意见&#xff1f;&#xff08;中&#xff09; 如何高效地回复审稿意见&#xff1f;&#xff08;下&#xff09; 如何高效回复审稿人意见&#xff08;附实例&#xff09; 如何高效的回复审稿人…

机器学习笔记之核方法(一)核方法介绍

机器学习笔记之核方法——核方法介绍引言回顾&#xff1a;支持向量机的对偶问题核方法思想介绍线性可分与线性不可分非线性带来高维转换对偶表示带来内积核函数核函数满足的条件(2022/11/23)引言 本节将介绍核方法以及核函数。 回顾&#xff1a;支持向量机的对偶问题 在支持…

Ubuntu sudo apt update 过程中遇到的报错解决

文章目录参考资料1. 前言2. 换源方式1. 方式1&#xff1a; 更换/etc/apt/sources.list文件里的源2. 方式2&#xff1a;在设置中software&updates(软件和更新)里进行换源3. 问题解决--移除失效的ppa参考资料 E: 仓库 “https://mirrors.aliyun.com/docker-ce/linux/ubuntu …

目标检测算法——YOLOv5/YOLOv7改进结合涨点Trick之ASFF(自适应空间特征融合)

>>>深度学习Tricks,第一时间送达<<< 🚀🚀🚀NEW!!!魔改YOLOv5/YOLOv7目标检测算法来啦 ~ 💡💡魔法搭配计算机视觉领域各类创新新颖且行之有效的网络结构,平均精度均值mAP涨点明显,实验效果也俱佳。有需要的小伙伴可以在CSDN后台留言+点赞收藏…

闲人闲谈PS之三十三——项目承诺成本管理

惯例闲话&#xff1a;学习很苦&#xff0c;坚持很酷——最近看到这句话&#xff0c;苦和酷放在一起&#xff0c;总有一种感觉&#xff0c;吃苦是为了耍酷。这恰恰是这句话的问题之处&#xff0c;苦是自己的&#xff0c;酷是外部环境对自己的评价。所以&#xff0c;苦这件事情&a…

k8s1.25版本集群部署(亲测有效)

1.实验环境准备 准备三台centos7虚拟机&#xff0c;用来部署k8s集群&#xff1a; master&#xff08;hadoop1&#xff0c;192.168.229.111&#xff09;配置&#xff1a; 操作系统&#xff1a;centos7.3以及更高版本都可以配置&#xff1a;4核cpu&#xff0c;4G内存&#xff…