FSK解调技术的FPGA实现

news2024/11/24 22:52:44

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处

一、FSK信号的解调原理

FSK信号的解调也有非相干和相干两种,FSK信号可以看作是用两个频率源交替传输得到的,所以FSK的接收机由两个并联的ASK接收机组成。

(1)相干解调

相干解调是利用乘法器,输入一路与载频相干的参考信号与载频相乘,通过低通滤波,滤除高频信号,即得原始信号,FSK经过带通滤波之后,可以看作是两路ASK信号,相干检测器组成的原理如下所示:

FSK相干解调结构

上图是一种易于实现的FSK相干解调器,还有一种最佳FSK相干解调器如下所示:

FSK最佳解调结构

从图上可以看出,在接收端要产生两个已知信号s1(t)和s2(t)的波形,分别和输入波形相乘,再送往积分器,在一定时间内积分,在t=Tb时刻,将积分结果取样,并在比较器中比较判决,然后输出,整个相干解调器的性能受载波锁相环路以及位同步性能影响很大,并且在高速率的情况下,积分、取样和清洗电路难以实现,因此通常采用第一种相干解调器的结构。

 

(2)非相干解调

 由于FSK信号中提取相干载波相对比较困难,实际工程应用中多用非相干解调法,在相同误码率的条件下,非相干解调需要的信噪比只比相干解调高1~2dB。非相干解调的种类有很多,例如:基于自适应滤波的解调法、差分检波算法、AFC环解调法、过零检测法、包络检波法等。

• 基于自适应滤波的解调法

在自适应解调中,较常见的方法是利用自适应滤波器中的单一频率的自适应陷波器进行解调,它能提供易于控制的带宽和及其深的零点,具有自适应地跟踪载波的频率和相位的能力,它等效于有一个复权的自适应滤波器,用两个实权同时调整单一频率正弦波的幅度和相位,以跟踪原始输入信号的幅度和相位,消除干扰。如下是自适应滤波器的结构:

自适应滤波结构

自适应滤波中的单频跟踪技术应用于解调时,兼有解调和锁相的功能,选取适当的步长可以达到较小的传输延迟,并获得优良的解调性能。二进制FSK信号有两个调制频率,能量主要集中在这两个频率。分别采用两个自适应滤波(SFT)跟踪这两个频率的信号,即可将键控频率分量提取出来。然后经过中值滤波提取包络、积分清洗、抽样判决即可还原基带信号。比最佳非相干解调拥有更好的误码性能,特别适合低速率数据场合,解调系统示意图如下:

自适应解调FSK原理

• 差分检波算法

差分检波法解调FSK的原理如下所示:

差分检波法解调原理

设带通滤波器的输出为:

其中We为载波频率,w是角频率偏移,为初始相位,则乘法器的输出为:

用低通滤波器滤除倍频分量,可以得到

如果令,则

当FSK取上边频时,为负值,取下边频为正值,随基带信号码元的不同,低通滤波输出正负变化的正弦波,通过抽样判决,即可实现FSK信号的解调。这种方法结构上相      对简单,计算量小,便于实现。

• AFC环解调法

AFC环是一个负反馈系统,如果接收信号与本振存在频差,则在一定时间内必然存在相差,鉴相器输出的相位误差信号微分后,得到反映频差的误差信号,经过平滑处理,  控制VCO的震荡频率向输入信号频率靠近最终使得频差近似为零。应用比较广泛的是相乘微分型AFC环路,结构如下所示:

相乘微分型解调原理

设输入信号为:

VCO输入信号为:

由上图可知:

输入信号为单载波信号时:

因此图片反映了输入信号和VCO输出信号的频差,对FSK信号来讲,  图片即为调制信号,对其进行滤波判决,即可完成FSK信号的解调。AFC环是根据信号的瞬时频  率来解调数据的,当FSK调制度较小时,区分调制数据越困难,解调性能也越差。

• 过零检测法

过零检测法是一种常用且简便的解调方法,2FSK信号的过零点数随载频的变化而    不同,因此检测出过零点个数就可以得到载频的差异,从而进一步得到调制信号的信息,过零检测法的原理如下:

过零检测法解调原理

FSK信号经过限幅、微分、整流后形成与频率变化相对应的脉冲序列,由此再形成  相同宽度的矩形脉冲,矩形脉冲的低频分量与数字信号相对应,由滤波器滤出低频分量, 然后经抽样判决,即可得到原始的数字调制信号。

• 包络检波法

2FSK的包络检波法解调原理如下,可视为由两路2ASK解调电路组成,这里两个带通滤波器,对应两个中心频率,用以分开两路2ASK信号,将两路滤波之后的包络信号相减,在经过抽样判决其进行判决,根据调制规则(f1代表符号1,f2代表符号0),当判决值大于0时,判决为1,否则判决为0。

包络检波法解调原理

包络检波首先需要通过带通滤波器将FSK信号进行滤波分离,显然,当调制度较小的时候,两路FSK信号频谱混叠严重,带通滤波器的通带比较窄,能量损失比较严重,会引入另一路信号的频谱干扰,因此性能下降严重,通常需要调制度大于2的时候才能获得较好测性能。

二、FSK解调技术的matlab仿真

这里采用AFC环来实现FSK的解调,之所以选择AFC环是因为AFC环是基于锁相环路的解调技术,且环路增益计算相对简单,可以初步学习锁相环的相关知识。AFC环中有3个滤波器,其中两个正交之路的低通滤波完全相同,用于滤除前级混频后的高频分量;环路滤波器用于滤除鉴频器输出产生的高频分量,产生NCO的控制信号。为了简化设计,环路滤波器也设计成FIR低通滤波器,这样可以直接从环路滤波器的输出信号中获取解调数据,环路滤波器的带宽,过渡带可以和混频器的低通滤波器保持一致。

FSK调制信号的参数如下,其中码元速率为4MHz,采样频率为32MHz,载波频率为70MHz,调制指数为0.715。码元为随机产生的数据,需要写入本地,作为后续比对的数据。

通过fskmod函数产生调制信号,然后将基带信号变频到70MHz的中频,叠加一定的信道噪声,再使用抗混叠滤波器滤除带外频率,防止输入信号的最大频率与采样频率冲突。

然后把数据写入文本作为FPGA解调的输入数据。

设计低通滤波器,滤波器通带及过渡带的选择有一个基本的原则,就是确保有用信号完全通过,尽可能多地对噪声及干扰进行滤除。低通滤波器的通带必须大于捕获带宽,捕获带宽也就是锁相环路起始的频差,为确保不损失有用信号信息,这里选择3.6MHz。

理论上讲,截止频率越靠近通带频率越好,但是过渡带越窄,滤波器的阶数就越多,所需的硬件资源也越多。过渡带带宽的选择原则有两个:一是必须确保滤除相邻的A/D镜像频率成分;二是需要滤除数字下变频引入的倍频分量。根据带通采样定理,A/D镜像频率的最小间隔为:

式中fL为中频信号的下边缘频率(70-3.6=66.4MHz),fH为中频信号的上边缘频率(70+3.6=73.6MHz),fs为采样频率(32MHz),k为整数,易求得

数字下变频引入的倍频分量最低频率为:

式中,f0为中频采样后的载波频率(6MHz),也可以在频谱中看到,Bf为中频信号处理带宽(7.2MHz),m为整数,易求得fcddc = 8.4MHz。

滤波器的设计如下:

三、FSK解调技术的FPGA实现

AFC环中滤波器设计可以直接导入matlab参数,但是采用FPGA进行数学意义上的微分运算时分困难,根据微分运算的规则,我们可以采用一种简单的近似处理方法,即通过求取前后两个数据之差来代替微分运算,前后两个数据间隔为一个时钟周期

采用前后两个数据之差来代替微分运算,相当于数学上的微分运算乘以时钟速率这个常数,反映在AFC环路上,相当于环路增益乘了一个常数。NCO的参数设计比较简单,区董事中频率选择系统时钟即可,为32MHz,频率字位宽选取30bit,数据位宽为8bit,NCO频率分辨率为

环路锁定的条件是环路增益K必须大于固有频差,且环路增益越大,捕获及锁定时间越短。对2FSK信号,可以设置本地NCO的初始频率为载波频率fc,固有频差即为FSK信号的频偏值,当调制指数为0.715时,码元速率为4MHz,

因此环路能够稳定跟踪FSK信号的变化,解调出原始数据。

1.DDS参数如下,其他的选择默认:

2.Multiplier需要用两个,一个是8*8bit的,数据和DDS位宽都是8位的,取低15位作为有效输出数据。另一个是18*18的,考虑到FPGA中集成硬件乘法器IP核大多多事18*18bit的,DSP48E1是18*25,如果超过18位就需要用两个DSP了,占用更多资源,因此在微分之后取高18位做乘法运算,采用有符号乘法器即可。

3.低通滤波器导入matlab产生的系数,参数设置如下,其他的选择默认:

4.环路滤波器和低通滤波器导入相同的参数,输入数据的位宽可以根据自己截位的舍取进行选择,这里使用的17位,即微分之后,取高17位作为有效数据,然后输入环路滤波器。

编写测试文件,环路滤波器输出的数据即为FSK解调信号,然后通过抽样判决,位同步时钟提取,即可得到二进制码元,把解调的数据写入到本地,用于数据比对。

编写完测试激励之后,通过ModelSim仿真结果如下:

得到解调信号,然后通过Matlab和调制信号做比对,结果是一致,验证了解调的正确性

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

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

相关文章

[构建 Vue 组件库] 小尾巴 UI 组件库 —— 横向商品卡片(仿淘宝)

文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadmegitee:https://gitee.com/tongchaowei/xwb-ui 下载 npm i xwb-ui配置 按需导入 import {组件名 } from xwb-…

css中flex和flex-grow的区别

设置了1个class为parent且宽度为700px的div父级元素&#xff1b; 它有3个子元素&#xff0c;分别宽高为100px&#xff1b; 其中item2的元素flex值为1&#xff0c;item3的元素flex值为2 <!DOCTYPE html> <html lang"en"> <head><style>.pare…

车船边缘网关是如何给车辆船只定位的?

随着智能交通系统的不断发展&#xff0c;车路协同成为了重要的研究方向之一。而AI边缘计算网关在这个领域中发挥着至关重要的作用。本文将重点介绍AI边缘计算网关在车路协同中的应用&#xff0c;并强调其中的重点词汇或短语。 首先&#xff0c;什么是AI边缘计算网关&#xff1…

华为数据管理——《华为数据之道》

数据分析与开发 元数据是描述数据的数据&#xff0c;用于打破业务和IT之间的语言障碍&#xff0c;帮助业务更好地理解数据。 元数据是数据中台的重要的基础设施&#xff0c;元数据治理贯彻数据产生、加工、消费的全过程&#xff0c;沉淀了数据资产&#xff0c;搭建了技术和业务…

Python实现猎人猎物优化算法(HPO)优化卷积神经网络分类模型(CNN分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

ps显示msvcp140.dll丢失的解决方法,四个解决方法分享

我想和大家分享一个关于ps显示msvcp140.dll丢失的问题以及解决方法。这个问题可能会困扰很多使用Photoshop软件的朋友&#xff0c;特别是在运行某些特定功能时&#xff0c;会出现“无法运行此程序&#xff0c;因为找不到”的错误提示。那么&#xff0c;如何解决这个问题呢&…

现在嵌入式行业工作起薪是多少呢?发展怎么样?

今天闲逛看到有位毕业大学生询问的问题&#xff0c;我就来客观讨论一下&#xff0c;其实工作方面都是起薪多少取决于你个人的学历&#xff0c;能力等背景。嵌入式岗位的就业比起其他很多工程师岗位算还不错的&#xff0c;但是不如互联网&#xff0c;这一点不用质疑。起薪多少这…

element-plus中更改分页器的文字

实现&#xff1a; main.ts 文件中增加如下代码&#xff1a; import zhCn from element-plus/es/locale/lang/zh-cn // 自定义文字&#xff08;使用默认文字不用设置&#xff09; zhCn.el.pagination.goto 跳转到 zhCn.el.pagination.pageClassifier 页 // 创建应用实例对象 c…

学校宿舍智能水电表管理系统:为节约资源保驾护航

随着科技的不断发展&#xff0c;越来越多的学校开始重视宿舍管理的智能化。其中&#xff0c;智能水电表管理系统作为一项重要的基础设施&#xff0c;已经逐渐被各大高校引入。本文将围绕学校宿舍智能水电表管理系统展开详细介绍&#xff0c;让我们一起来了解一下这个节约资源、…

[machineLearning]非监督学习unsupervised learning

1.什么是非监督学习 常见的神经网络是一种监督学习,监督学习的主要特征即为根据输入来对输出进行预测,最终会得到一个输出数值.而非监督学习的目的不在于输出,而是在于对读入的数据进行归类,选取特征,打标签,通过对于数据结构的分析来完成这些操作, 很少有最后的输出操作. 从…

搭建STM32F407的SPI-Flash(基于STM32CubeMX)

网上有不少例子&#xff0c;都对&#xff0c;但对我来说碰到几个坑&#xff0c;避免以后再犯错&#xff0c;mark下。 目标&#xff1a;通过SPI接口&#xff0c;对Nor Flash进行读写 开发板上Nor Flash 是W25Q128&#xff0c; 128Mbit&#xff0c;也就是16MB样子 CubeMx端配置…

WebClient vs HttpClient:异同对比

在 Java 开发中&#xff0c;进行网络通信是常见的需求。WebClient 和 HttpClient 是两种常用的用于发送 HTTP 请求的工具。它们都具有相似的功能&#xff0c;但在实现细节和用法上存在一些差异。本文将详细介绍 WebClient 和 HttpClient 的异同&#xff0c;帮助您选择适合您项目…

leetcode 205. 同构字符串

2023.9.6 本题维护两个映射表map&#xff0c;若发现无法对应则返回false。 代码如下&#xff1a; class Solution { public:bool isIsomorphic(string s, string t) {unordered_map<char,char> m1;unordered_map<char,char> m2;for(int i0; i<s.size(); i){//相…

信息化战略规划-CRO-SCM-应用集成-电子商务

信息化战略规划-CRO-SCM-应用集成-电子商务 信息化战略体系(重点)信息系统战略规划&#xff08;重点&#xff09;客户关系管理&#xff08;重点&#xff09;供应链管理企业应用集成电子商务 信息化战略体系(重点) 企业战略&#xff1a;目标 企业战略规划&#xff1a;实现目标的…

【EI/SCOPUS会议征稿】第二届环境遥感与地理信息技术国际学术会议(ERSGIT 2023)

第二届环境遥感与地理信息技术国际学术会议 2023 2nd International Conference on Environmental Remote Sensing and Geographic Information Technology 第二届环境遥感与地理信息技术国际学术会议&#xff08;ERSGIT 2023&#xff09;定于2023年11月10-12日在中国陕西西安…

数据库设计:防止MySQL字段名与关键字相撞,保护数据完整性!

MySQL是一款广泛应用的关系型数据库管理系统&#xff0c;对于数据库设计而言&#xff0c;字段名的选择是至关重要的一环。不小心选择了和MySQL关键字相同的字段名可能导致严重的数据完整性问题。下面将深入探讨如何防止MySQL字段名与关键字相撞&#xff0c;以保护数据的完整性。…

6.(高级示例篇)cesium暗色系地图样式地图(颜色滤镜)

注&#xff1a;高级示例博客不提供源码 地图之家总目录&#xff08;订阅之前建议先查看该博客&#xff09; 效果如下所示&#xff1a; cesium暗色系地图样式地图&#xff08;颜色滤镜&#xff09;

Multimodel Image synthesis and editing:The generative AI Era

1.introduction 基于GAN和扩散模型&#xff0c;通过融入多模态引导来调节生成过程&#xff0c;从不同的多模态信号中合成图像&#xff1b;是为多模态图像合成和编辑使用预训练模型&#xff0c;通过在GAN潜在空间中进行反演&#xff0c;应用引导函数&#xff0c;或调整扩散模型…

鞋业的数字化转型:3D建模与3D打印

3D打印正在成为时尚行业的一笔重要资产。 正如我们在之前的博客文章中看到的那样&#xff0c;制鞋行业实际上正在充分利用这种新的制造工艺。 这是改进许多不同公司的原型设计和生产流程的一种方法。 但为了改进这些流程&#xff0c;获得正确的 3D 建模软件非常重要。 即使你不…

rknn_server启动方法

rknn_server: 是一个运行在板子上的后台代理服务&#xff0c;用于接收PC通过USB传输过来的协议&#xff0c;然后执行板端runtime对应的接口&#xff0c;并返回结果给PC。 当rknn_server没有启动&#xff0c;则在上位机和瑞芯微开发板的连扳调试&#xff0c;容易出现如下错误&a…