手把手教你玩转AD9361数字调制解调系列(二) ----纯逻辑实现FSK信号的数字调制解调

因最近客户需求,用纯PL实现AD9361的数字信号调制解调,于是就把各种数字调制都在AD9361上都实现了一遍。优点就是:既可以在zynq系列上配置9361,也可以在纯FPGA系列配置9361。并且理解起来比较简单!!!

制作不易,记得三连哦,给我动力,持续更新中!!!

完整工程文件下载:纯逻辑设计AD9361发射2FSK   提取码:1595


如果看过我之前的文章的小伙伴,肯定都知道如何通过AD936x Evaluation Software,来生成对AD9361的配置,以及如何在vivado里面调用这个配置,并写入AD9361,接下来将继续延伸我们的设计,来基于纯逻辑配置AD9361的基础上,实现各种数字信号的调制解调。

新来的小伙伴可以看一下我以前的文章:

纯逻辑配置AD9361教程/通过UART串口发送配置文件配置AD9361/通过rom配置AD9361/纯PL配置AD9361_ad9361发送数据代码-CSDN博客

本篇文章将介绍如何通过AD9361发射2FSK信号以及纯verilog代码实现和讲解。

一、FSK调制原理

在本系列的设计中,对数字调制的部分,都是采用IQ数字调制。

IQ 调制:
        IQ 调制是一种复数域的调制方式,其中 I 表示实部信号,Q 表示虚部信号。将二进制数据映射到 I/Q 平面上的不同位置,从而实现数字调制。
FSK 的 IQ 调制:
        对于 FSK 调制,每个频率对应一个不同的 I/Q 相位。例如,对于二进制 FSK,可以将logic 0 映射到某一频率的 I/Q 相位,将 logic 1 映射到另一个频率的 I/Q 相位。通过切换这两个频率的 I/Q 相位,就可以实现二进制 FSK 调制。
实现步骤:
        确定 FSK 的两个频率,如 f1 和 f2。根据这两个频率,计算出对应的 I/Q 值。例如,f1 对应 (I1, Q1),f2 对应 (I2, Q2)。根据输入的二进制数据,在 I/Q 平面上切换这两个 I/Q 点,从而生成 FSK 调制后的 I/Q 信号。将 I/Q 信号送到 I/Q 调制器,生成最终的 FSK 调制信号。

二、FPGA工程代码

主要代码为:FSK调制模块、9361数据接收和发射接口、9361配置模块、串口模块,和之前的ASK调制的差异主要是把ASK调制部分替换为了FSK调制,其他代码不变(一劳永逸)

(1)顶层top

主要连接各个模块,已结对差分信号的差分转换

部分代码:

wire AD9361_DATA_CLK;IBUFDS #(.DIFF_TERM("TRUE"),       // Differential Termination.IBUF_LOW_PWR("TRUE"),     // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT")     // Specify the input I/O standard) IBUFDS_AD9361_DATA_CLK (.O(AD9361_DATA_CLK),  // Buffer output.I(AD9361_DATA_CLK_p),  // Diff_p buffer input (connect directly to top-level port).IB(AD9361_DATA_CLK_n) // Diff_n buffer input (connect directly to top-level port));wire AD9361_RX_FRAME;IBUFDS #(.DIFF_TERM("TRUE"),       // Differential Termination.IBUF_LOW_PWR("TRUE"),     // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT")     // Specify the input I/O standard) IBUFDS_AD9361_RX_FRAME (.O(AD9361_RX_FRAME),  // Buffer output.I(AD9361_RX_FRAME_p),  // Diff_p buffer input (connect directly to top-level port).IB(AD9361_RX_FRAME_n) // Diff_n buffer input (connect directly to top-level port));

(2)配置9361模块

主要通过读取rom中的配置信息,然后通过SPI去写入9361寄存器,实现对9361的配置 

(3)uart接收模块

主要是接收串口发来的配置信息,然后存储到rom,进而通过上一个模块进行9361的配置

三、下板验证

通过GNUradio搭建一个接收器,对本次设计的验证

经过调制的FSK频谱图:

如上图可以发现,FSK调制信号发射成功

FSK星座图:

如上图可以发现,星座图非常清晰,说明信号质量很稳定.

由上分析可得,FSK调制信号发射成功!

至此FSK的部分就已经结束了,后期更新解调部分和FM调制解调部分

完整工程文件下载:纯逻辑设计AD9361发射FSK   提取码:1589

如果感觉文章对您有用,麻烦三连支持一下,方便下次用到的时候,就可以快速找到我,非常感谢您的支持!!! 

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

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

相关文章

lidar3607.2 雷达点云数据处理软件功能介绍

LiDAR360 是北京数字绿土科技股份有限公司自主研发的点云后处理及行业应用软件。平台可处理 TB 级点云数据,并拥有 10 余种国际领先的点云处理及 AI 算法,推动激光雷达 的多行业应用。700 余项强大且灵活的功能,解决用户最后一公里的应用难题…

云仓是如何发展起来的?

1、电子商务的繁荣: 随着电商的兴起,对高效仓储和物流的需求越来越大。传统的仓储方式难以满足海量订单处理和快速配送的要求,因此需要一种更加灵活和高效的仓储解决方案。 ------------------------------------------------- 2、科技进步…

罗盘复杂网络教程—3步轻松构建社团检测任务

作为复杂网络领域中重要的课题之一,社团检测有助于揭示网络中存在的功能性模块或群集,旨在于仅利用网络中蕴含的来识别模块,并可能进而识别它们的层次组织。社团检测在各个领域具有重要的应用,可以帮助深入理解复杂系统潜在的模式…

一键进阶ComfyUI!懂AI的设计师现在都在用的节点式Stable Diffusion

前言 _ 万字教程!奶奶看了都会的 ComfyUI 入门教程 推荐阅读 一、川言川语 大家好,我是言川。 阅读文章 > ](https://www.uisdc.com/comfyui-3) 目前使用 Stable Diffusion 进行创作的工具主要有两个:WebUI 和 ComfyUI。而更晚出现的…

SceneXplain 图片叙事升级:如何让图片听得到

SceneXplain 是一个由多模态 AI 驱动的产品服务,它不仅 提供一流的图像和视频标注解决方案,还具备卓越的多模态视觉问答能力,为用户解锁视觉内容的全新维度。 在[《图像描述算法排位赛》中,我们探讨了图像描述(Image …

有兄弟对这类区域比较感兴趣,也引起我的好奇,我提取出来给大家看看

要说这类地区,亚洲泰国排第二估计没人敢说第一吧,所以我就提取泰国的数据给大家看看! 如图:这些特殊服务地区主要集中在曼谷和芭提雅地区,芭提雅最多!看来管理还是不错的,限制在一定范围&#x…

便携应急气象站设备—实时监测和记录气象数据

TH-BQX10便携应急气象站设备是一种高度集成、轻便易携的气象观测系统。它采用新型一体化结构设计,能够快速安装和拆卸,适用于各种复杂环境。通过集成多种气象传感器,该设备能够实时监测和记录温度、湿度、风向、风速、降雨量、气压等多种气象…

AMEYA360:广和通发布LTE Cat.1 bis模组MC610-GL,赋能全球漫游追踪器

广和通LTE Cat.1 bis模组MC610-GL搭载展锐8910平台,覆盖全球主流LTE频段,下行峰值速率达10.3Mbps,上行速率达5.1Mbps,满足全球终端对4G速率连接的需求;同时支持LTE和GSM双模通信,便于用户灵活切换网络。在尺寸封装上&a…

开放式耳机怎么选?五大2024年口碑销量爆棚机型力荐!

作为一名数码测评up主,今天来测评市面上的开放式耳机。开放式耳机它的设计非常的新颖,不管是舒适的佩戴,还是可以边听音乐,边听到周围的声音,给人更加安全的听感体验。长时间佩戴,不仅舒适度进一步的提升&a…

【机器学习】高斯混合模型(Gaussian Mixture Models, GMM)深度解析

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 高斯混合模型(Gaussian Mixture Models, GMM)深度解析引…

【uml期末复习】统一建模语言大纲

前言: 关于uml的期末复习的常考知识点,可能对你们有帮助😉 目录 第一部分 概念与基础 第一章 面向对象技术 第二章 统一软件过程 第三章 UML概述 第四章 用例图 第五章 类图 第六章 对象图 第七章 顺序图 第八章 协作图 第九章 状态…

Transformers 安装与基本使用

文章目录 Github文档推荐文章简介安装官方示例中文情感分析模型分词器 Tokenizer填充 Padding截断 Truncation google-t5/t5-small使用脚本进行训练Pytorch 机器翻译数据集下载数据集格式转换 Github https://github.com/huggingface/transformers 文档 https://huggingface…

Selenium时间控件的处理

我们经常在做web自动化测试过程中会遇到时间控件,那么对于时间控件如何处理,我们可以来分析下。 对于时间控件一般分为两种: 1、普通的时间控件 直接通过send_keys就可以解决 d.get("https://www.ctrip.com/?sid155952&alliancei…

自定义 vant 的 van-calendar 日历控件

最近在做 vue 微信公众号项目&#xff0c; 有个自定义日历控件展示的需求&#xff0c;经过查阅资料&#xff0c;最终实现了如图所示效果&#xff0c;这里做了总结&#xff0c;需要的小伙伴可以参考一下&#xff1a; HTML代码&#xff1a; <template><div class"…

I/O系统

1. I/O接口 接口可以看做两个系统或两个部件之间的交接部分&#xff0c;它既可以是两种硬设备之间的连接电路&#xff0c;也可以是两个软件之间的共同逻辑边界。 I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。 2. 程序查询方式 程序查询方式是一…

知乎正通过乱码来干扰必应/谷歌等爬虫,从而限制中文数据集被用于AI训练

有用户反馈称使用微软必应搜索和谷歌搜索发现存在不少知乎乱码内容&#xff0c;即搜索结果里知乎内容的标题和正文内容都可能是乱码的&#xff0c;但抓取的正文前面一些段落内容可以正常查看。考虑到此前知乎已经屏蔽除百度和搜狗以外的所有搜索引擎爬虫 (蜘蛛 / 机器人)&#…

酣客的“FFC模式”|白酒商业模式|分润制度顶层架构设计

酣客公社摒弃传统商业模式&#xff0c;提出“心联网”及“FFC模式”的商业模式。 坐标&#xff1a;厦门&#xff0c;我是肖琳 深耕社交新零售行业10年&#xff0c;主要提供新零售系统工具及顶层商业模式设计、全案策划运营陪跑等。 今天和大家分享“酣客”的营销模式&#xff…

检信智能推出我国首款Allemotion OS基于AI生理心理参数服务开发者平台

检信Allemotion OS生理心理开发者平台是根据世界人工智能高速发展的特点,为实现脑机交互的行业需求&#xff0c;由检信智能推出我国首款检信Allemotion OS生理心理开发者平台。检信Allemotion OS生理心理开发者平台集成了振动影像心理情绪20项情绪参数、11项生理相关参数&#…

知识图谱——Neo4j数据库实战

数据与代码链接见文末 1.Neo4j数据库安装 JDK 安装:https://www.oracle.com/java/technologies/javase-downloads.html Neo4j 安装:https://neo4j.com/download-center/ 配置好 JDK 和 Neo4j 的环境变量

2、Redis持久化与高可用架构

一、Redis 持久化 RDB 快照&#xff08;Snapshot&#xff09; 基本概念&#xff1a;RDB&#xff08;Redis DataBase&#xff09;快照是将 Redis 内存中的数据在某个时间点保存到磁盘中的一种持久化方式&#xff0c;默认保存到 dump.rdb 的二进制文件中。通过 RDB 快照&#xff…