当前位置: 首页 > news >正文

信号类型(通信)——QPSK、OQPSK、IJF_OQPSK调制信号

系列文章目录

《信号类型(通信)——仿真》

《信号类型(通信)——QAM调制信号》


文章目录

前言

一、QPSK通信调制信号

1.1、原理

1.2、仿真

二、OQPSK通信调制信号

1.1、原理

1.2、仿真

三、IJF_OQPSK通信调制信号

1.1、原理

1.2、仿真

总结


前言

      前面介绍了QAM调制信号,M=4是,QAM可以认为是QPSK调制。本文主要介绍QPSK、OQPSK、IJF_OQPSK调制解调过程。


一、QPSK通信调制信号

1.1、原理

       在数字信号的调制方式中QPSK四相移键控是目前最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。

      QPSK信号调制的原理框图

       QPSK信号产生过程:基带码元波形经过QPSK映射(串并转换分成I、Q两路,然后再经过电平转换,0转换成1,1转换-1)得到QPSK调制信号,再与对应的载波相乘,然后再相加完成QPSK的调制。

s(t)=I(t)\cos(2\pi f_c t)-Q(t)\sin(2\pi f_c t)

其中I(t)=\sum_{n=0}^{N-1}p_{n}g(t-nT_b),Q(t)=\sum_{n=0}^{N-1}q_{n}g(t-nT_b),f_c为载频,p_{n},q_{n}为QPSK调制码的IQ表示,T_b为码宽,g\left ( t \right )为码波形,由成型滤波器决定。

QPSK信号解调的原理框图

        QPSK信号再分为I、Q两路和对应的载波相乘,然后经过低通滤波器得到基带信号:

I_{lp}(t)=\frac{1}{2}I(t)+w_{I}\left ( t \right )

Q_{lp}(t)=\frac{1}{2}Q(t)+w_{Q}\left ( t \right )

其中r(t)=s(t)+w(t),w(t)表示接收机噪声,w_{I}\left ( t \right ),w_{Q}\left ( t \right )分别表示IQ路噪声。

       对下变频后的基带信号进行匹配滤波,并进行抽样判决,恢复出原始的码元序列。

1.2、仿真

      参数设置,符号速率60kHz,采样率12 Mz,载频 1.5MHz,码序列随机生成,成型滤波器采用根升余弦滤波器,滚降系数决定码波形。信噪比10dB。


码序列                        成型滤波后基带信号

       帧信号由帧头,帧体和帧尾构成,帧头和帧尾固定,帧体数据随机生成,生成的码序列如左上图所示。成型滤波器滚降系数0.8,码长6,对码脉冲信号进行成型滤波,得到右上图所示的基带信号,可以看出经过成型滤波处理,码宽内的相位不再是固定值。最后载频调制得到最终发射信号,如下图所示。

发射的射频信号波形以及频谱

       只考虑接收机的热噪声影响,得到如上图所示接收信号。与发射信号相比,信号波形存在随机波动。对接收的信号进行下变频至基带得到左下1图的基带信号,通过对信号进行截断得到左下2图所示的眼图,并基于最佳点得到左下3图所示的眼图。

下变频后基带信号的波形,眼图以及基于最佳点的星座图

        对下变频后的基带信号进行匹配滤波得到左下1图的基带信号,通过对信号进行截断得到左下2图所示的眼图,并基于最佳点得到左下3图所示的眼图。与匹配滤波前相比,信号的眼图以及星座图得到明显改善。

匹配滤波后基带信号的波形,眼图以及基于最佳点的星座图
 

二、OQPSK通信调制信号

1.1、原理

     与QPSK相比,OQPSk调制方式在复数通道Q通道中,插入了一个比特的时延。因此OQPSK调制信号为:

s(t)=I(t)\cos(2\pi f_c t)-Q(t+\frac{T_b}{2})\sin(2\pi f_c t)

其中I(t)=\sum_{n=0}^{N-1}p_{n}g(t-nT_b),Q(t)=\sum_{n=0}^{N-1}q_{n}g(t-nT_b),f_c为载频,p_{n},q_{n}为QPSK调制码的IQ表示,T_b为码宽,g\left ( t \right )为码波形,由成型滤波器决定。

OQPSK信号调制的原理框图

 QPSK信号再分为I、Q两路和对应的载波相乘,然后经过低通滤波器得到基带信号:

I_{lp}(t)=\frac{1}{2}I(t)+w_{I}\left ( t \right )

Q_{lp}(t)=\frac{1}{2}Q(t+\frac{T_b}{2})+w_{Q}\left ( t \right )

其中r(t)=s(t)+w(t),w(t)表示接收机噪声,w_{I}\left ( t \right ),w_{Q}\left ( t \right )分别表示IQ路噪声。

       对下变频后的基带信号进行匹配滤波,并进行抽样判决,恢复出原始的码元序列。因为调制时Q路进行了延时,所以解调时I路也进行相同的延时。

OQPSK信号解调的原理框图

1.2、仿真

 
码序列                        成型滤波后基带信号

       帧信号由帧头,帧体和帧尾构成,帧头和帧尾固定,帧体数据随机生成,生成的码序列如左上图所示。成型滤波器滚降系数0.8,码长6,对码脉冲信号进行成型滤波,得到右上图所示的基带信号,可以看出经过成型滤波处理,码宽内的相位不再是固定值。最后载频调制得到最终发射信号,如下图所示,可以看出信号包络不过零。

发射的射频信号波形以及频谱

       只考虑接收机的热噪声影响,得到如上图所示接收信号。与发射信号相比,信号波形存在随机波动。对接收的信号进行下变频至基带,然后对下变频后的基带信号进行匹配滤波得到左下1图的基带信号,通过对信号进行截断得到左下2图所示的I路眼图,左下3图所示的Q路眼图,可以发现IQ两路存在明显错位。

匹配滤波后基带信号的波形,I路眼图以及Q路眼图

三、IJF_OQPSK通信调制信号

1.1、原理

IJF_OQPSK信号调制的原理框图

     与OQPSK相比,IJF——OQPSk调制方式通过IJF编码进行波形设计。IJF编码规则如下:

p_{n}(t)=\left\{\begin{matrix} S_{1}(t-nT_b)=S_e(t-n T_b),p_n=p_{n-1}=1\\ S_{2}(t-nT_b)=-S_e(t-n T_b),p_n=p_{n-1}=0\\ S_{3}(t-nT_b)=S_o(t-n T_b),p_n=1,p_{n-1}=0\\ S_{4}(t-nT_b)=-S_o(t-n T_b),p_n=0,p_{n-1}=1 \end{matrix}\right.

q_{n}(t)=\left\{\begin{matrix} S_{1}(t-nT_b)=S_e(t-n T_b),q_n=q_{n-1}=1\\ S_{2}(t-nT_b)=-S_e(t-n T_b),q_n=q_{n-1}=0\\ S_{3}(t-nT_b)=S_o(t-n T_b),q_n=1,q_{n-1}=0\\ S_{4}(t-nT_b)=-S_o(t-n T_b),q_n=0,q_{n-1}=1 \end{matrix}\right.

其中

S_{e}(t)=\left\{\begin{matrix} 1,\left | t \right |\leq T_b/2\\ 0,other\end{matrix}\right.,S_{o}(t)=\left\{\begin{matrix} sin\frac{\pi t}{T_b},\left | t \right |\leq T_b/2\\ 0,other\end{matrix}\right.

因为调制时Q路进行了延时,所以解调时I路也进行相同的延时。

IJF_OQPSK信号解调的原理框图

1.2、仿真

 
码序列                        成型滤波后基带信号

       帧信号由帧头,帧体和帧尾构成,帧头和帧尾固定,帧体数据随机生成,生成的码序列如左上图所示。经过IJF编码得到右上图所示的基带信号,可以看出码宽内的相位不再是固定值。最后载频调制得到最终发射信号,如下图所示,可以看出信号包络不过零。

发射的射频信号波形以及频谱

       只考虑接收机的热噪声影响,得到如上图所示接收信号。与发射信号相比,信号波形存在随机波动。对接收的信号进行下变频至基带,然后对下变频后的基带信号进行匹配滤波得到左下1图的基带信号,通过对信号进行截断得到左下2图所示的I路眼图,左下3图所示的Q路眼图,可以发现IQ两路存在明显错位。

匹配滤波后基带信号的波形,I路眼图以及Q路眼图


总结

本文主要从仿真的角度简单分析了QPSK、OQPSK以及IJF_OQPSK调制解调过程,实际环境中的多普勒效应以及多径效应等并没有考虑。有更好的内容欢迎在评论区放置链接,另外有问题也欢迎评论区留言。转载请附链接【杨(_> <_)】的博客_CSDN博客-信号处理,SAR,代码实现领域博主。

相关文章:

信号类型(通信)——QPSK、OQPSK、IJF_OQPSK调制信号

系列文章目录 《信号类型&#xff08;通信&#xff09;——仿真》 《信号类型&#xff08;通信&#xff09;——QAM调制信号》 文章目录 前言 一、QPSK通信调制信号 1.1、原理 1.2、仿真 二、OQPSK通信调制信号 1.1、原理 1.2、仿真 三、IJF_OQPSK通信调制信号 1.1、…...

常用压缩文件操作函数总结

常用压缩文件操作函数总结 1- 解压gz文件 gzip -d xx.gz 2- 函数 1 打开文件 函数名&#xff1a; gzopen 功能描述&#xff1a; 打开名为file的gz文件 参数: file:文件名 mode:打开模式 r 返回值: 打开的gz文件描述符 gzFile gzopen(const char *file, const char…...

leetcode_274 H指数

1. 题意 在数组中找到最大的k, 使得至少k个数不小于k。 H指数 2. 题解 2.1 排序 从大到小排序完后&#xff0c;直接模拟即可。 class Solution { public:int hIndex(vector<int>& citations) {sort( citations.begin(), citations.end() );int res 0;int cur …...

微服务框架Consul--新手入门

Consul Consul 是由 HashiCorp 开发的一款软件工具&#xff0c;提供了一组功能&#xff0c;用于服务发现、配置管理和网络基础设施自动化。它旨在帮助组织管理现代分布式和微服务架构系统的复杂性。以下是Consul的一些关键方面和功能&#xff1a; 服务发现&#xff1a;Consul …...

docker运行syslog-ng,搭建日志服务器

Splunk 的数据很多是用syslog-ng 来收集的。 使用docker 来搭建syslog-ng 服务器还是很方便的。 #create network docker network create -d macvlan --subnet=192.7.0.0/16 --gateway=192.7.0.1 -o parent=ens35 docker-out docker network create -d macvlan --ipv6 --sub…...

Redis代替session实现用户验证

一、Redis代替session实现用户验证。 下图是session的实现登录需要实现的代码模块&#xff0c;虽然可以实现完整功能&#xff0c;但是仍然存在一些问题。 在以往使用session当作用户验证的过程中&#xff0c;会有session共享的问题&#xff0c;每次承担请求的tomcat是不一样…...

Ubuntu 内核降级到指定版本

reference https://www.cnblogs.com/leebri/p/16786685.html 前往此网站&#xff0c;找到所需的内核 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 查看系统架构 dpkg --print-architecture 二、下载安装包 注意&#xff1a;下载除lowlatency以外的deb包 三、安装内核 3…...

uniapp开发app,在ios真机上出现的css样式问题

比如下面的问题&#xff0c;在iphone 13上出现&#xff0c;在iphone xR上正常。 问题一&#xff1a;border:1rpx造成边框显示不全 在iphone13上border边框有一部分不显示&#xff1a; 在iphone xR上显示正常&#xff1a; 解决办法是&#xff1a; 将border边框设置中的1rpx改…...

uniapp 页面间传参方法

页面之间传参大概可分为以下几种情况&#xff1a; 上级页面 → 下级页面&#xff08;单向&#xff09;上级页面 ← 下级页面&#xff08;单向&#xff09;上级页面 ↔ 下级页面&#xff08;双向&#xff09; 一、上级页面 → 下级页面&#xff08;单向&#xff09; uni.naviga…...

【年终特惠】基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升

根据生态环评内容庞杂、综合性强的特点&#xff0c;依据生态环评最新导则&#xff0c;将内容分为4大篇章(报告篇、制图篇、指数篇、综合篇)、10大专题(生态环评报告编制、土地利用图的制作、植被类型及植被覆盖度图的制作、物种适宜生境分布图的制作、生物多样性测定、生物量及…...

驱动开发7 基于GPIO子系统编写LED驱动,编写应用程序进行测试设置定时器,5秒钟打印一次hello world

驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_gpio.h> #include <linux/gpio.h> #include <linux/timer.h> #include <linux/of_irq.h> #include <linux/interrupt.h…...

亚马逊云科技为奇点云打造全面、安全、可扩展的数据分析解决方案

刘莹奇点云联合创始人、COO&#xff1a;伴随云计算的发展&#xff0c;数据技术也在快速迭代&#xff0c;成为客户迈入DT时代、实现高质量发展的关键引擎。我们很高兴能和云计算领域的领跑者亚马逊云科技一同&#xff0c;不断为客户提供安全可靠的产品与专业的服务。 超过1500家…...

应用案例|基于三维机器视觉的曲轴自动化上下料应用方案

Part.1 项目背景 此案例服务对象为国内某知名大型汽车零部件制造工厂&#xff0c;该工厂有针对曲轴工件的自动化上下料需求。由于之前来料码放不规范&#xff0c;工件无序散乱摆放&#xff0c;上料节拍要求高&#xff0c;该工厂上下料效率极低。 Part.2 传统曲轴上下料存在的缺…...

关于ios和Android手机的下载pdf文件功能探讨

现象 在工作中遇到了一个需求,在app中需要对一些协议(pdf格式的)进行下载,实现方法创建a标签,设置href的值为下载地址,设置download属性,调用a标签的点击事件进行下载,在Android手机中是调起默认浏览器的下载功能(正常现象,可以实现功能),但是在ios手机中是直接进行文件的有预…...

医疗安全不良事件管理系统源码(PHP+ vue+laravel)

医疗安全不良事件管理系统全套源码 不良事件上报系统源码 不良事件管理系统帮助医院梳理建立不良事件上报与管理的一体化解决方案&#xff0c;包含上报内容、归口科室、上报流程及管理办法。提供面向医院的不良事件全过程管理平台&#xff0c;包含事件上报、事件处理、事件追踪…...

基于ISO13209(OTX)实现引导诊断

在之前的文章《基于ISO13209&#xff08;OTX&#xff09;实现EOL下线序列》中&#xff0c;讲到了OTX的由来以及OTX在EOL中的实现案例&#xff0c;而本文将讲述OTX的另一个广阔应用场景——定义引导诊断序列。 一 何为引导诊断&#xff1f; 引导诊断&#xff0c;通常也称为“引…...

不一样的网络协议-------KCP协议

1、kcp 的协议特点 1.1、RTO 不翻倍 RTO(Retransmission TimeOut)&#xff0c;重传超时时间。tcp x 2&#xff0c;kcp x 1.5&#xff0c;提高传输速度 1.2、选择重传 TCP丢包时会全部重传从该包开始以后的数据&#xff0c;而KCP选择性重传&#xff0c;只重传真正丢失的数据包…...

前端-关于分辨率和屏幕大小关系的浅谈

最近在工作中&#xff0c;总有些非前端小伙伴在问分辨率和屏幕的大小关系问题&#xff0c;故在此记录一下&#xff0c;方便不清楚的小伙伴订阅观看。 一&#xff0c;分辨率跟屏幕大小关系 &#xff08;1&#xff09;分辨率跟屏幕大小有关吗&#xff1f; 前端中的分辨率与屏幕…...

where怎么等于多个值,sql where多个值

在SQL中&#xff0c;可以使用IN和OR操作符来匹配多个值&#xff0c;以在WHERE语句中执行过滤。以下是一些示例&#xff1a; 使用IN操作符匹配多个值 可以使用IN操作符来匹配多个可能的值&#xff0c;如下所示&#xff1a; SELECT * FROM 表名 WHERE 字段名 IN (值1, 值2, 值3…...

02.Oracle的启动过程

Oracle的启动过程 一、Oracle数据库的四种状态二、Oracle的启动过程 一、Oracle数据库的四种状态 Oracle数据库有四种状态&#xff1a;SHUTDOWN、NOMOUNT、MOUNT、OPEN. 1.SHUTDOWN状态 数据库没有启动 2.NOMOUNT状态 启动了instance&#xff08;数据库实例&#xff09;启动…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...