m在ISE平台下使用verilog开发基于FPGA的GMSK调制器

news2025/8/3 17:41:16

目录

1.算法描述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法描述

       高斯最小频移键控(Gaussian Filtered Minimum Shift Keying),这是GSM系统采用的调制方式。数字调制解调技术是数字蜂窝移动通信系统空中接口的重要组成部分。GMSK调制是在MSK(最小频移键控)调制器之前插入高斯低通预调制滤波器这样一种调制方式。GMSK提高了数字移动通信的频谱利用率和通信质量。

       MSK属于一种特殊的2FSK调制,只是频偏为符号速率的1/4,这个特性使得在符号跳变时存在90°的相移,从而具有星座映射图。对于2FSK调制,有两个频率状态,分别对应符号“1”和“0”。如果映射到星座图上,每个符号的矢量轨迹都将在IQ坐标系的单位圆上旋转,旋转时长为符号周期。

       对于MSK调制,频偏为符号速率的1/4,这就使得每个符号周期内旋转90°,当符号为1111时,则沿着逆时针呈现四个90°相位跳变,如下图所示。MSK调制的这种特性使得其具有类似于QPSK调制的星座图,但是本质上仍然为2FSK,因此一个符号仍然只携带1bit信息。如果发射机端采用了Gaussian pulse shaping filter,则为GSM制式中使用的GMSK调制方式。

      GMSK调制技术是从MSK(Minimum Shift Keying)调制的基础上发展起来的一种数字调制方式,其特点是在数据流送交频率调制器前先通过一个Gauss滤波器(预调制滤波器)进行预调制滤波,以减小两个不同频率的载波切换时的跳变能量,使得在相同的数据传输速率时频道间距可以变得更紧密。由于数字信号在调制前进行了Gauss预调制滤波,调制信号在交越零点不但相位连续,而且平滑过滤,因此GMSK调制的信号频谱紧凑、误码特性好,在数字移动通信中得到了广泛使用,如广泛使用的GSM(Global System for Mobile communication)移动通信体制就是使用GMSK调制方式。
      l979年由日本国际电报电话公司提出的GMSK调制方式。有好的功率频谱特性,较优的误码性能,特别是带外辐射小,很适用于工作在VHF和UHF频段的移动通信系统,越来越引起人们的关注。GMSK调制方式的理论研究已较成熟,实际应用却还不多,主要是由于高斯滤波器的设计和制作在工程上还有一定的困难。调制前高斯滤波的最小频移键控简称GMSK,基本的工作原理是将基带信号先经过高斯滤波器成形,再进行最小频移键控(MSK)调制。由于成形后的高斯脉冲包络无陡峭边沿,亦无拐点,因此频谱特性优于MSK信号的频谱特性。
       通常将高斯滤波器的3dB带宽B和输入码元宽度T的乘积BT值作为设计高斯滤波器的一个主要参数。BT值越小,GMSK信号功率频谱密度的高频分量衰减越快。

       GMSK调制技术的基本结构如下所示:
 

        原始码元信号首先经过双极性编码,然后对其进行采样,经过插值提高数据采样率,通过高斯低通滤波器对原始信号进行带宽限制处理,然后对限带信号进行MSK基带调制,生成相互正交的I、Q两路基带信号,I、Q两路信号再分别与在载波 、 相乘,最终再通过加法器,使两路信号相加,得到最终的GMSK调制信号,通过DA送到天线部分。

        经过AD采样过后的GMSK信号首先分别和数字载波 、 相乘,再通过低通滤波器,得到I、Q两路信号,对I、Q信号通过MSK解调,得到基带信号,通过CIC抽取滤波器后,降低基带信号的采样率,最后对解调后的基带信号做位同步、抽样判决,最后解码恢复出原始码元[ 1]。

2.仿真效果预览

ISE14.7

 

3.verilog部分代码预览

`timescale 1ns / 1ps
 
module tops(
            i_clk,
				i_rst,
				o_binary_gen,
				o_chafen_encode,
				o_gauss_filter,
				o_adder,
				o_cos_I,
				o_sin_Q,
				o_cos,
				o_sin,
            o_GMSK_I,
            o_GMSK_Q,
            o_GMSK_R				
	        );
input              i_clk;
input              i_rst;
output             o_binary_gen;
output             o_chafen_encode;
output signed[15:0]o_gauss_filter;
output signed[31:0]o_adder;
output signed[15:0]o_cos_I;
output signed[15:0]o_sin_Q;
output signed[15:0]o_cos;
output signed[15:0]o_sin;
output signed[15:0]o_GMSK_I;
output signed[15:0]o_GMSK_Q;
output signed[15:0]o_GMSK_R;
 
 
reg[3:0]cnt;
wire    clk_16div;
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	  cnt <= 4'b0000;
	  end 
else begin
     cnt <= cnt + 4'd1;
     end
end
assign clk_16div = cnt[3];
 
binary_gen binary_gen_u(
							  .i_clk  (clk_16div), 
							  .i_rst  (i_rst), 
							  .o_dout (o_binary_gen)
							  );
 
chafen_encode chafen_encode_u(
							 .i_clk  (clk_16div), 
							 .i_rst  (i_rst), 
							 .i_din  (o_binary_gen), 
							 .o_dout (o_chafen_encode)
							 );
 
gauss_filter gauss_filter_u(
    .i_clk  (i_clk), 
    .i_rst  (i_rst), 
    .i_din  ({~o_chafen_encode,1'b1}), 
    .o_dout (o_gauss_filter)
    );
 
adder adder_u(
    .i_clk  (i_clk), 
    .i_rst  (i_rst), 
    .i_din  (o_gauss_filter), 
    .o_dout (o_adder)
    );
	 
nco_gen nco_gen_u(
    .i_clk(i_clk), 
    .i_rst(i_rst), 
    .i_adder(o_adder), 
    .o_cos(o_cos_I), 
    .o_sin(o_sin_Q)
    );	 
	 
	 
nco_gen2 nco_gen2_u(
    .i_clk(i_clk), 
    .i_rst(i_rst), 
    .o_cos(o_cos), 
    .o_sin(o_sin)
    );
	 
wire signed[31:0]I_tmps;
wire signed[31:0]Q_tmps;
 
multer multer_u1(
	.clk (i_clk),
	.a   (o_cos_I), // Bus [15 : 0] 
	.b   (o_cos), // Bus [15 : 0] 
	.sclr(i_rst),
	.p   (I_tmps)
	); // Bus [31 : 0] 
 
multer multer_u2(
	.clk (i_clk),
	.a   (o_sin_Q), // Bus [15 : 0] 
	.b   (o_sin), // Bus [15 : 0] 
	.sclr(i_rst),
	.p   (Q_tmps)
	); // Bus [31 : 0] 	 
 
assign o_GMSK_I = I_tmps[31:16];	 
assign o_GMSK_Q = Q_tmps[31:16];	 	 
 
assign o_GMSK_R = o_GMSK_I + o_GMSK_Q;
 
endmodule
01_081_m

4.完整verilog程序

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

V

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

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

相关文章

决策树-相关作业

1. 请使用泰勒展开推导gini不纯度公式&#xff1b; 2. 请说明树的剪枝怎么实现&#xff1b; ●预剪枝&#xff08;pre-pruning&#xff09;通过替换决策树生成算法中的停止准则。&#xff08;例如&#xff0c;最大树深度或信息增益大于某一阈值&#xff09;来实现树的简化。预…

Flutter高仿微信-第39篇-单聊-删除单条信息

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 实现代码&#xff1a; //删除对话框 Future<void> _showDeleteDialog(Ch…

要把项目问题管理好,项目经理需要这8个步骤!

项目问题时有发生&#xff0c;想让项目获得成功&#xff0c;项目经理需要有一个计划来快速有效地应对任何出现的问题。这是最佳实践问题管理过程的一部分&#xff0c;更是良好项目管理的核心本质。 项目问题的四种类型 任何事情都可能成为项目过程中影响项目计划的问题。项目…

ZYNQ之FPGA学习----FIFO IP核使用实验

1 FIFO IP核介绍 FIFO 的英文全称是 First In First Out&#xff0c; 即先进先出。与 FPGA 内部的 RAM 和 ROM 的区别是没有外部读写地址线&#xff0c; 采取顺序写入数据&#xff0c; 顺序读出数据的方式&#xff0c;使用起来简单方便&#xff0c;缺点就是不能像 RAM 和 ROM …

共创可持续出行未来 奔驰牵手《阿凡达:水之道》

11月20日&#xff0c;梅赛德斯-奔驰与20世纪影业及其出品电影《阿凡达&#xff1a;水之道》的品牌战略合作迈入崭新篇章&#xff01;电影《阿凡达&#xff1a;水之道》已定档于12月16日在全球多地公映&#xff0c;并于即日起开启主题为——“地球&#xff0c;我们的潘多拉”的联…

医疗设备远程监控 5G千兆工业网关智慧医疗

医疗设备远程监控 5G千兆工业网关智慧医疗 5G千兆工业网关的医疗设备远程监控应用&#xff0c;实现各医疗智能终端连接入网&#xff0c;医疗数据、监控视频、设备状态数据等&#xff0c;实时采集&#xff0c;边缘节点分析处理&#xff0c;低延时高速传输&#xff0c;工作人员远…

外汇天眼:外汇投资入门知识炒汇者的心理误区有哪些?

今天这篇文章我们了解一下关于外汇炒汇者的心理误区有哪些&#xff0c;希望对大家进行外汇投资有所帮助。 盲目跟风--心理误区之一 股市被动受诸多复杂因素的影响&#xff0c;其中股友的跟风心理对股市影响甚大。有这种心理的投资人&#xff0c;看见他人纷纷购进股票时&#…

代码随想录训练营第31天|LeetCode 455.分发饼干、 376. 摆动序列、53. 最大子序和

参考 代码随想录 什么是贪心算法 贪心算法&#xff08;又称贪婪算法&#xff09;是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;算法得到的是在某种意义上的局部最优解 。 贪心算法不…

hive表加载csv格式数据或者json格式数据

先说简单的使用 CREATE TABLE cc_test_serde( id string COMMENT from deserializer, name string COMMENT from deserializer) ROW FORMAT SERDE org.apache.hadoop.hive.serde2.JsonSerDe STORED AS INPUTFORMAT org.apache.hadoop.mapred.TextInputFormat OUTPUTFO…

Qt第二十三章:设置窗口、控件背景颜色

修改样式表&#xff1a;设置后发现影响所有控件内的背景色事件触发样式&#xff1a;鼠标划过触发样式设置背景图背景图打包。 py代码中引用 将resources.qrc文件进行转化成py文件 在我们将xxx.ui文件转换成py文件的时候会自动引用resources.qrc 实际使用中发现&#xff1a;back…

Linux系统认知——常用命令(全)

文章目录一、帮助命令1.man&#xff08;查看帮助手册&#xff09;2.info&#xff08;阅读 info 格式的文档&#xff09;3.whatis&#xff08;查询命令功能&#xff09;二、文件及目录相关命令1.touch&#xff08;创建新的空文件&#xff0c;改变已有文件的时间戳&#xff09;2.…

黑马学员放弃20K月薪投身比亚迪,是去「车间」打螺丝吗?

黑马学员进互联网企业的新闻不稀奇&#xff0c;但黑马学员进“工厂”的新闻&#xff0c;就稀奇了。 黑马学员&#xff0c;互联网人&#xff0c;“工厂”&#xff0c;这几个词放在一起&#xff0c;怎么看怎么不顺眼。甚至有人会觉得魔幻&#xff0c;敲代码的、搞设计的脑力工作…

数据技术前沿趋势、TiDB 产品方向、真实场景 Demo… 丨PingCAP DevCon 2022 产品技术论坛预览

现在报名活动&#xff0c;有机会获得限定好礼哦&#xff01;&#x1f446; 2022 年 5 月&#xff0c;TiDB 进入了 V6 时代。从 TiDB 第一个 Beta 版本开始&#xff0c;OLTP Scale、Real-time HTAP、TiDB Cloud&#xff0c;我们一步步把理念变成现实。 现在&#xff0c;数据库技…

如何保护客户数据并降低合规风险

如何保护客户数据并降低合规风险 保护客户数据和降低合规风险通常是金融行业企业&#xff08;从银行到投资公司&#xff0c;再到小型&#xff0c;中型和大型企业的财务部门&#xff09;最关心的问题。 当财务文件是以纸质形式出现时&#xff0c;这些担忧会成倍增加&#xff…

关于api的响应时间(curl)

最近遇到了需要在服务器上测试第三方api响应时间的需求。那么&#xff0c;怎么测呢&#xff1f; curl安排上。 curl -w "dnslookup: %{time_namelookup} | connect: %{time_connect} | appconnect: %{time_appconnect} | pretransfer: %{time_pretransfer} | starttrans…

3.5 讲一讲关于小红书的搜索引流技巧【玩赚小红书】

“有一大部分女生把小红书当百度使用”&#xff0c;一句话道出了小红书流量的核心。 今天&#xff0c;我更想和大家聊聊如何获取同样巨大的搜索流量&#xff0c;让源源不断的精准客户主动找上门来。可别忽视了这个流量入口&#xff0c;它占据总体流量的 50% 以上。 ​ ​ 布局…

2022卡塔尔世界杯引爆全球,跨境电商如何做好选品和营销?

2022卡塔尔世界杯正如火如荼的举办着&#xff0c;热度席卷全球。足球皇帝Franz Beckenbauer曾说&#xff1a;“在绿茵场上滚动的不是足球&#xff0c;而是黄金。”从商业价值论&#xff0c;世界杯的品牌价值世界第一&#xff0c;是奥运会的8倍。据Nox聚星了解&#xff0c;2022年…

centos7.9安装postgresql12

目录 1.下载安装包 2.安装 首先登陆官方网站下载 PostgreSQL: Downloads 1.下载安装包 按照官方的命令安装&#xff1a; # 下载PGSQL的rpm包 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm #…

基于STM32G431嵌入式学习笔记——六、串口中断实例(基于第12届蓝桥杯串口部分题目)

上一节我们初步了解了中断的配置、串口的调试以及中断处理子程序的定义&#xff0c;接下来我们就来学习一下具体如何去应用串口中断。 一、真题引入 1.功能概述 2.串口功能 二、环境配置 我们依旧以第四节完成的第12届蓝桥杯节选题为初始环境进行配置&#xff0c;复制出…

Linux|centos7 Prometheus的自动服务发现 一(文件发现机制)

前言&#xff1a; Prometheus作为一个监控神器&#xff0c;深受大家的喜爱&#xff0c;那么如何使用它是一个问题&#xff0c;如何用好它又是一个问题了。 本文以centos7操作系统下搭建的Prometheus server为例&#xff0c;讲解基于文件发现新的采集器。 一&#xff0c; Pr…