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

信号类型(通信)——最小频移键控(MSK)

系列文章目录

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

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

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


目录

 前言

一、MSK信号特点

1.1、最小频移

1.2、相位连续

二、MSK调制与解调

2.1、调制原理

2.2、解调原理

三、MSK信号频谱

四、仿真

总结


 前言

       本文为MSK调制信号的学习笔记,介绍了MSK调制起源,即MSK是一种特殊的FSK调制。并根据MSK信号特征由FSK信号模型推导了MSK的信号模型;并基于MSK信号模型介绍了MSK信号调制与解调原理;最后结合仿真加深对MSK信号调制与解调的理解。此外补充了MSK信号的频谱表达式,公式的具体推导没有研究,文后有参考文献,感兴趣的可以自行推导,也欢迎在评论区给出相应的推导过程。(文末有彩蛋)


一、MSK信号特点

        最小频移键控(MSK)调制方式是频移键控(FSK)调制方式的特例。相比于FSK调制,MSK调制满足两个条件:正交条件下最小频率间隔(最大频移为比特速率的1/4);信号相位连续。满足上述条件的MSK信号能量99.5%被限制在数据传输速率的1.5倍的带宽内。此外MSK属于恒包络数字调制技术,系统可以使用廉价高效的非线性器件。下面基于最小频移以及相位连续两个条件简单推导MSK信号模型。

1.1、最小频移

        针对01码元对应波形的正交条件,假设FSK码元波形为:

e_{n}(t)=\left\{\begin{matrix} A\cos(2\pi f_1 t+\varphi_1),a_n=1\\ A\cos(2\pi f_0 t+\varphi_0),a_n=0 \end{matrix}\right. \; \: \: \: \: \: \: \: \: \: \: \: \: (1)

       考虑FSK调制码波形的正交性,有:

\int_{0}^{T_B}\cos(2\pi f_1 t+\varphi_1 )\cos(2\pi f_0 t+\varphi_0)dt=0 \; \: \: \: \: \: \: \: \: \: \: \: \: (2)

       分别根据积化和差公式、定积分公式以及2\pi f_1+2\pi f_0\gg 1的假设条件,可以得到:

\cos(\varphi_1-\varphi_0)\sin((\omega_1-\omega_0)T_B) +\sin(\varphi_1-\varphi_0)[\cos((\omega_1-\omega_0)T_B) -1]=0         (3)

为了使上式在任意\varphi_1, \varphi_0的下都成立,则需要满足:

f_1-f_0=\frac{m}{T_B} \; \: \: \: \: \: \: \: \: \: \: \: \:(4)

        此时只能采用非相干检波法接收。针对相干接收,初始相位确定,当\sin(\varphi_1-\varphi_0)=0,则仅需要满足:

f_1-f_0=\frac{m}{2T_B} \; \: \: \: \: \: \: \: \: \: \: \: \:(5)

1.2、相位连续

       在最小频差为\frac{1}{2T_B}下,可令MSK信号模型为:

e_{n}(t)=\cos(2\pi f_c t+\frac{a_n\pi}{2T_B}t+\varphi_n),nT_B\leq t\leq (n+1)T_B \; \: \: \: \: \: \: \: \: \: \: \: \:(6)

        为了保证码元波形的正交性,此时载频f_c需要满足:

f_c=\frac{n}{4T_B} \; \: \: \: \: \: \: \: \: \: \: \: \:(7)

       考虑相位2\pi f_c t是连续,MSK信号中\frac{a_n\pi}{2T_B}t相位是存在跳变,需要通过调整\varphi_n使得MSK信号相位连续,即需要满足:

\frac{a_{n-1}\pi}{2T_B}nT_B+\varphi_{n-1}=\frac{a_n\pi}{2T_B}nT_B+\varphi_n \; \: \: \: \: \: \: \: \: \: \: \: \:(8)

       由此可得:

\varphi_n=\varphi_{n-1}+\frac{n\pi}{2}\left ( a_{n-1}-a_n \right )=\left\{\begin{matrix} \varphi_{n-1},a_{n-1}=a_n\\ \varphi_{n-1}\pm n\pi,a_{n-1}\neq a_n \end{matrix}\right. \; \: \: \: \: \: \: \: \: \: \: \: \:(9)

       为了满足\sin(\varphi_1-\varphi_0)=0,则mod(a_{n-1}-a_n,2)=0,因此需要将原始01码通过双极性转换,得到+1,-1码。将MSK信号进行IQ正交分解得

e_{n}(t)=p_n \cos\frac{\pi}{2T_B}t\cos\omega_c t-q_n \sin\frac{a_n\pi}{2T_B}t\sin\omega_c t,nT_B\leq t\leq (n+1)T_B    (10)

其中

\begin{matrix} p_n=\cos\left ( \varphi_n \right )=\pm 1\\ q_n=a_n\cos\left ( \varphi_n \right )=a_np_n=\pm 1 \end{matrix}\: \: \: \: \: \: \: \: \: \: \: (11)

二、MSK调制与解调

2.1、调制原理

        MSK信号可以按照公式(10)生成,我们可以根据公式(9)计算\varphi_n,再由公式(11)计算得到p_n,q_n,但是这种信号生成方式在实际电路实现时并不方便,为此引入上图表所示的p_n,q_n的生成方案,首先基于差分编码生成码序列:

b_n=b_{n-1}\bigodot a_n\: \: \: \: \: \: \: \: \: \: \: (12)

其中\odot表示同或,b_1= a_1

       上图表示MSK信号生成的流程图,首先01比特流经过双极性转换变成双极性码\pm 1,在经过差分编码以及串并转换得到p_n,q_n,再分别经过半个波特的频率调制以及载频调制混合得到最终发射的MSK信号。

2.2、解调原理

      对公式(10)所示MSK信号进行载波提取得到:

\begin{matrix} I(t)=p_n \cos\frac{\pi}{2T_B}t\\ Q(t)=q_n \sin\frac{\pi}{2T_B}t \end{matrix}\: \: \: \: \: \: \: \: \: \: \: (13)

      则在I路采样判决点上对应的I值为:

\begin{matrix} I(2nT_B+2T_B)=-p_{2n+1} \cos n\pi\\ I(2nT_B+2T_B)=-p_{2n+2} \cos n\pi\end{matrix}\: \: \: \: \: \: \: \: \: \: \: (14)

      则在Q路采样判决点上对应的Q值为:

\begin{matrix} Q(2nT_B+T_B)=q_{2n} \cos n\pi=a_{2n}p_{2n} \cos n\pi\\ Q(2nT_B+T_B)=q_{2n+1} \cos n\pi=a_{2n+1} p_{2n+1}\cos n\pi\end{matrix}\: \: \: \: \: \: \: \: \: \: \: (15)

       由公式(14)(15)可得:

\begin{matrix} Q(2nT_B+3T_B)=a_{2n+2}I(2nT_B+2T_B)\\ Q(2nT_B+T_B)=-a_{2n+1} I(2nT_B+2T_B)\end{matrix}\: \: \: \: \: \: \: \: \: \: \: (16)

       我们可以对上述采样值大于0的判为+1,小于0判为-1,然后基于公式(16)还原出a_n,为了提高信噪比,我们可以在采样点附近左右对称的区域T_B内求积分得到信噪比更好的判决统计量。最终解调原理图下:

       此外由公式(13)构成的复信号I(t)+j Q(t)可以得到相位历程:

\theta_{n}(t)=\frac{a_n\pi}{2T_B}t+\varphi_n \; \: \: \: \: \: \: \: \: \: \: \: \:(17)

     由此相位历程也可以解调出a_n

三、MSK信号频谱

对公式(10)进行积化和差得:

e_{n}(t)=c_{n}\cos(\omega_c-\frac{\pi}{2T_B}) t+d_{n}{2}\cos(\omega_c+\frac{\pi}{2T_B}) t\; \: \: \: \: \: \: \: \: \: \: \: \:(18)

其中c_{n}=\frac{p_n-q_n}{2},d_{n}=\frac{p_n+q_n}{2},根据p_{n},q_{n}错位延时的特点,c_n,d_n\in \left ( -1,0,1 \right )的变化周期为T_B。考虑随机生成的码序列,MSK信号功率谱密度为:

P(f)=\frac{8P_cT_B\left ( 1+\cos\left (4\pi (f-f_c) T_B \right ) \right )}{\pi^2\left ( 1-16T_B^2 (f-f_c)^2 \right )^2}\; \: \: \: \: \: \: \: \: \: \: \: \:(19)

其中P_c表示被调制波形功率,从公式(18)可以看出MSK信号功率谱密度随偏移载频量的四次方成反比衰减,带外能量泄露很少。

四、仿真

       参数设置,符号速率60kHz,采样率12 Mz,载频 1.5MHz,码序列随机生成。

IQ两路码信号生成                 MSK调制的基带IQ信号

       左上图分别为双极化后的码,差分编码输出结果,MSK调制得到IQ两路码表示p_n,q_n。右图是调制半个波特频率后的基带信号,可以看出p_n只在n为奇数的时候发生变化,q_n只在n为偶数时发生变化。

MSK基带信号的相位历程                                  MSK信号

       左上图为MSK基带信号的相位历程,可以看出信号只有两种频率成分,且相位连续,右图是对应的MSK已调信号,信号基本横包络。

  加噪的MSK信号                          载波提取后的信号

        上图为只考虑接收机热噪声影响下的接收信号以及载波提取后的信号,可以看出,噪声对信号产生了干扰,下图为对应的IQ两路信号的眼图,可以看出IQ两路信号存在码长大小的延时。

积分前I路眼图                                积分前Q路眼图

        对接收的IQ信号进行积分得到下图所示的眼图,可以看出眼图的展宽降低,对应的信噪比得到显著提升。

积分后I路眼图                                积分后Q路眼图

       最后分析了不同信号长度(1、2、4、10、100、1000符号长度)下的信号功率频谱与理论值的差异,可以看出随着信号长度增加,信号功率谱形状趋于公式(18)所示的功率谱形状。

1                                                  2                                             4

10                                                   100                                        1000

参考文献

1、樊昌信 曹丽娜《通信原理》第7版

2、S. Gronemeyer and A. McBride, "MSK and Offset QPSK Modulation," in IEEE Transactions on Communications, vol. 24, no. 8, pp. 809-820, August 1976, doi: 10.1109/TCOM.1976.1093392.


总结

       本文根据自己的理解从理论和仿真的角度介绍了MSK调制与解调原理,其中关于IQ路的延时处理可能和其他资料有所不同。有更好的内容欢迎在评论区放置链接,另外有问题也欢迎评论区留言。转载请附链接【杨(_> <_)】的博客_CSDN博客-信号处理,SAR,代码实现领域博主 


二周年纪念

        目前《SAR学习笔记》观看量最多,有1.4w,阅读量过万的文章有两篇,另一篇《SAR学习笔记-SAR成像算法系列(一)》,阅读量过5千的文章有8篇,涉及:SAR,呼吸信号处理,Gold序列。整个创作,获得285次点赞,内容获得250次评论,获得1,843次收藏,代码片获得732次分享,资源总下载次数300多次。总阅读量14w。对于这样一个结果,博主还是很满意的。当然博主也欢迎各位看官有好的资源可以在评论区放置链接。根据目前情况,后期博主将对SAR领域中的干涉SAR、极化SAR、逆SAR内容进行补充。近期主要更新与信号类型有关的文章。当然,如果有什么信号处理的理论技术需要博主补充的可以评论区留言。

相关文章:

信号类型(通信)——最小频移键控(MSK)

系列文章目录 《信号类型&#xff08;通信&#xff09;——仿真》 《信号类型&#xff08;通信&#xff09;——QAM调制信号》 《信号类型&#xff08;通信&#xff09;——QPSK、OQPSK、IJF_OQPSK调制信号》 目录 前言 一、MSK信号特点 1.1、最小频移 1.2、相位连续 二…...

滴滴打车崩了!全过程

滴滴发布致歉10元补偿券&#xff0c;文末可领取 。 事情发生于 2023年11月27日晚~28日中午&#xff0c;滴滴打车服务出现大面积故障&#xff0c;登上微博热搜。 许多用户在使用滴滴出行时遇到了无法叫车、订单异常等问题&#xff0c;导致大量用户滞留在外&#xff0c;出行受阻…...

【刷题】DFS

DFS 递归&#xff1a; 1.判断是否失败终止 2.判断是否成功终止&#xff0c;如果成功的&#xff0c;记录一个成果 3.遍历各种选择&#xff0c;在这部分可以进行剪枝 4.在每种情况下进行DFS&#xff0c;并进行回退。 199. 二叉树的右视图 给定一个二叉树的 根节点 root&#x…...

Gin投票系统(2)

投票系统 数据库的建立 先分析需求&#xff0c;在sql中建立数据库&#xff0c;关于项目数据库如何建立可以在“goweb项目创建流程分析中看如何去建表” 成功后目前有四个表&#xff1a; vote&#xff0c;user&#xff0c;vote_opt,vote_opt_user 建立数据库&#xff0c;可以…...

docker (简介、dcoker详细安装步骤、容器常用命令)一站打包- day01

一、 为什么出现 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build&#xff0c;Ship and Run Any App,Anywhere”&#xff0c;也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP&#xff08;可以是一个WEB应用或数据库应…...

请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别

“请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别”。 屏幕前有多少同学在面试过程与遇到过类似问题&#xff0c; 可以在评论区留言&#xff1a;遇到过。 考察目的 对于 xxxx 技术的区别&#xff0c;在面试中是很常见的一个问题 一般情况下&#xff0c;面试官会通过这类…...

Nginx漏洞复现与分析

Nginx如何处理PHP请求 Nginx本身不支持直接解析和执行PHP代码,但可以通过与PHP解释器的集成来处理PHP请求。一种常见的方法是使用PHP-FPM(FastCGI Process Manager)作为PHP解释器。 原理图: Step 1 Step 2 +---------------------+ …...

Go 中切片(Slice)的长度与容量

切片长度与容量在 Go 中很常见。切片长度是切片中可用元素的数量&#xff0c;而切片容量是从切片中第一个元素开始计算的底层数组中的元素数量。 Go 中的开发者经常混淆切片长度和容量&#xff0c;或者对它们不够了解。理解这两个概念对于高效处理切片的核心操作&#xff0c;比…...

顶级大厂Quora如何优化数据库性能?

Quora 的流量涉及大量阅读而非写入&#xff0c;一直致力于优化读和数据量而非写。 0 数据库负载的主要部分 读取数据量写入 1 优化读取 1.1 不同类型的读需要不同优化 ① 复杂查询&#xff0c;如连接、聚合等 在查询计数已成为问题的情况下&#xff0c;它们在另一个表中构…...

Java第二十章多线程

一、线程简介 线程是操作系统能够进行运算调度的最小单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位。一个进程可以包含多个线程&#xff0c;这些线程可以并发执行。线程拥有自己的栈和局部变量&#xff0c;但是它们共享进程的其他资源&#xff0c;如…...

家庭教育,培养娃什么最重要?

家庭教育&#xff0c;培养娃什么最重要&#xff1f; 培养能力最重要 &#xff08;我这么认为的&#xff09; 时代巨变&#xff0c;技术变革的非常快&#xff0c;所以总的来说 年轻一代接触的新东西慢慢比老一代的要多&#xff0c;年轻一代的工作会比老一代的多而且多很多&…...

Linux 进程(一)

1 操作系统 概念&#xff1a;任何计算机系统都包含一个基本的程序集合&#xff0c;称为操作系统(OS)。笼统的理解&#xff0c;操作系统包括 内核&#xff08;进程管理&#xff0c;内存管理&#xff0c;文件管理&#xff0c;驱动管理&#xff09; 其他程序&#xff08;例…...

vue中的keep-alive详解与应用场景

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-keep-alive 目录 一、Keep-alive 是什么 二、使用场景 三、原理分析 四、案例实现 activa…...

软件设计师——程序设计语言基础(一)

&#x1f4d1;前言 本文主要是【程序设计语言基础】——程序设计语言基础的相关题目&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#…...

Apache简介与安装

先导概念: 静态网站: 最早的建站方式,每个页面都是一个独立的文件,需要手动上传或编辑。网页内容固定不变。例如,个人博客、静态企业官网等。 动态网站: 网站内容可根据不同情况动态变更,一般通过数据库进行架构。包含服务器端脚本,可以实现更丰富的功能。例如,社…...

set与map

set与map 一、序列式容器与关联式容器二、pair1、键值对2、作用3、构造函数4、make_pair&#xff08;1&#xff09;构造函数&#xff08;2&#xff09;作用 5、代码6、运行结果 三、set1、概念2、代码3、运行结果4、说明 四、multiset1、与set的关系2、代码3、运行结果 五、map…...

基于单片机智能液位水位监测控制系统

**单片机设计介绍&#xff0c; 基于单片机智能液位水位监测控制系统 文章目录 一 概要特点应用场景工作原理实现方式 系统功能实时监测控制调节报警功能数据记录与分析 总结 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 ## 系统介绍 基于单片机…...

C#,《小白学程序》第十七课:随机数(Random)第四,移动平均值(Moving Average)的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十七课&#xff1a;随机数&#xff08;Random&#xff09;第四&#xff0c;移动平均值的计算方法与代码 /// 继续学习数据统计&#xff0c;移动平均值的计算方法 /// 移动平均值就是一定步长内数值的平均值&#xff0c;用…...

行情分析——加密货币市场大盘走势(11.29)

大饼已经形成了底背离&#xff0c;即MACD往下走&#xff0c;而价格还在往上走&#xff0c;这种后续往往会大跌。继续把空单拿好&#xff0c;已经持仓的无需加仓。多次上涨却一直不能突破&#xff0c;说明多空和空军力量都很强&#xff0c;等待后续出方向。在笔者看来&#xff0…...

C++——string的字符串比较,字符存取,插入和删除和子串

一. string字符串比较 功能描述:字符串之间的比较 比较方式:字符串比较是按字符的ASCII码进行对比 返回 0 > 返回 1 < 返回 -1 函数原型: *int compare(const string &s) const; //与字符串s比较 *int compare(const char *s) const; //…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...