首页/新闻资讯/正文详情

GMSK调制与基于Laurent分解的GMSK解调FPGA实现,第一篇(GMSK调制篇)

发布时间:2026/11/5 10:02:31 来源:云帆数科 栏目:资讯中心
GMSK调制与基于Laurent分解的GMSK解调FPGA实现,第一篇(GMSK调制篇)
目录一、GMSK简介二、GMSK调制原理与步骤1、GMSK调制原理2、GMSK调制步骤三、GMSK调制MATLAB仿真验证1、GMSK调制MATLAB代码2、GMSK调制MATLAB仿真四、GMSK调制FPGA实现1、GMSK调制FPGA Verilog代码2、GMSK调制FPGA 仿真五、FPGA和MATLAB联合仿真1、共用数据源2、仿真结果对比一、GMSK简介GMSK高斯最小频移键控是基于MSK信号发展而来的是一种连续相位调制信号具有相位轨迹平滑、频带效率高、带外辐射小等特点。二、GMSK调制原理与步骤1、GMSK调制原理图1 GMSK调制原理框图非归零预编码的数据经过高斯滤波器进行积分运算核心步骤完成频率到相位的转换的同时保证信号的相位是连续的积分后的数据转换成基带的同相I路和正交Q路两路信号完成相位的cos和sin表达形式欧拉公式转换后的I和Q即为基带的GMSK调制信号。2、GMSK调制步骤预编码输入的不归零数据进行差分预编码具体编码方式为如图2所示。其中ak是编码完数据、dk是当前输入待编码数据、dk-1是前一个输入数据、k是序号1、2、3、...、n。dk和dk-1值为-1或者1。经过预编码的数据在解调时可以有效解决相位模糊问题。图2 GMSK预编码框图高斯低通滤波使用高斯滤波器gaussdesign(BT,SPAN,SPS)其中BT值决定了GMSK的带外衰减BT值越大带外衰减越大当BT0.3时即可满足GSM系统带外衰减60dB的要求SPAN一般固定为8SPS代表采样率例如4采样点或32采样点时SPS4或32。高斯滤波器的主要作用是限制信号带宽、降低带外辐射、避免相邻信道干扰。积分积分过程本质上是累加的过程积分的意义是完成信号从频率到相位的转换并且保证GMSK信号的相位是连续的。相位的cos和sin转换积分后的数据即为GMSK信号的相位信息根据欧拉公式相位可以由cos和sin组合方式表达这样的表达便于数字信号处理器如DSP或FPGA实现使用查找表即可实现。三、GMSK调制MATLAB仿真验证1、GMSK调制MATLAB代码图3 GMSK调制MATLAB代码2、GMSK调制MATLAB仿真图4 GMSK调制时域图-实部I图5 GMSK调制时域图-虚部Q图6 GMSK调制后星座图4采样点图7 GMSK调制后星座图32采样点从调制后的星座图得出GMSK信号的相位是分散在一个圆圈上固定位置。采样点数越多固定位置越密集。四、GMSK调制FPGA实现1、GMSK调制FPGA Verilog代码限于篇幅有限只能展示部分代码。图8 FPGA实现GMSK调制-预编码图9 FPGA实现GMSK调制-极化图10 FPGA实现GMSK调制-扩采样图11 FPGA实现GMSK调制-高斯滤波图12 FPGA实现GMSK调制-积分图13 FPGA实现GMSK调制-相位调制2、GMSK调制FPGA 仿真图14 GMSK调制FPGA仿真结果整体图图15 GMSK调制FPGA仿真结果局部放大图五、FPGA和MATLAB联合仿真1、共用数据源FPGA仿真时用MATLAB的测试数据源保证两者仿真的输入一致性。图16 FPGA导入MATLAB的测试数据源2、仿真结果对比将FPGA调制后的数据导入到MATLAB中分别画出MATLAB和FPGA调制后的星座图。图17 FPGA调制后数据导入到MATLAB中图18 GMSK调制时域图实部MATLAB和FPGA对比结果图19 GMSK调制时域图虚部MATLAB和FPGA对比结果图20 GMSK调制星座图MATLAB和FPGA对比结果对比可以看出FPGA调制后时域实部和虚部以及星座图均和MATLAB仿真的结果一致。

相关推荐

JAVA——抽象类、内部类和接口
JAVA——抽象类、内部类和接口

一、抽象类如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类可以包含抽象方法与普通方法和属性。在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽… · 2026/11/5 10:02:31

二叉树的学习
二叉树的学习

二叉树 1.树形概念 想了解二叉树的概念我们得先知道数的概念 树是⼀种⾮线性的数据结构,它是由n(n>0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下… · 2026/11/5 10:02:31

file类与IO流
file类与IO流

file类与IO流 java.io.File类 File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新建、删… · 2026/11/5 10:00:31

从 OSI 七层模型到 TCP/IP 协议栈:深入理解网络通信的底层运行机制
从 OSI 七层模型到 TCP/IP 协议栈:深入理解网络通信的底层运行机制

一、今日学习概述 今天主要学习了 HCIE 网络基础中的两个核心知识体系: OSI 七层参考模型(Open Systems Interconnection) TCP/IP 四层参考模型(TCP/IP Protocol Suite) 在初步学习计算机网络时,我们通… · 2026/11/5 10:04:33

PDO属性设置全解析:高效数据库操作秘诀
PDO属性设置全解析:高效数据库操作秘诀

PDO::关于PHP的PDO这种技术, 它有一份参考手册。PDO:: — 设置属性(PHP 5 > 5.1.0, PECL pdo > 0.1.0)说明语法bool PDO::setAttribute ( int $attribute , mixed $value )我们需要把数据库句柄的属性给设置好。在下文之中, 会列举出一些可以被大家所用到的通用的属性内容… · 2026/11/5 10:02:31

GMSK调制与基于Laurent分解的GMSK解调FPGA实现,第一篇(GMSK调制篇)
GMSK调制与基于Laurent分解的GMSK解调FPGA实现,第一篇(GMSK调制篇)

目录 一、GMSK简介 二、GMSK调制原理与步骤 1、GMSK调制原理 2、GMSK调制步骤 三、GMSK调制MATLAB仿真验证 1、GMSK调制MATLAB代码 2、GMSK调制MATLAB仿真 四、GMSK调制FPGA实现 1、GMSK调制FPGA Verilog代码 2、GMSK调制FPGA 仿真 五、FPGA和MATLAB联合仿真 1、… · 2026/11/5 10:02:31

JAVA——抽象类、内部类和接口
JAVA——抽象类、内部类和接口

一、抽象类如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类可以包含抽象方法与普通方法和属性。在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽… · 2026/11/5 10:02:31

二叉树的学习
二叉树的学习

二叉树 1.树形概念 想了解二叉树的概念我们得先知道数的概念 树是⼀种⾮线性的数据结构,它是由n(n>0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下… · 2026/11/5 10:02:31

file类与IO流
file类与IO流

file类与IO流 java.io.File类 File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新建、删… · 2026/11/5 10:00:31

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码