基于FPGA的4FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR

news/2025/2/28 6:34:54/文章来源:https://www.cnblogs.com/51matlab/p/18563551

1.算法仿真效果

本课题是博主之前写的文章

 

m基于FPGA的4FSK调制解调系统verilog实现,包含testbench测试文件》的升级

 

升级内容包含高斯信道模块,误码率统计模块,可以设置不同SNR。

 

vivado2019.2版本开发,仿真结果如下:

 

设置SNR=30

 

 

 

设置SNR=15

 

 

 

设置SNR=10

 

 

 

设置SNR=5

 

 

 

系统RTL结构如下:

 

 

2.算法涉及理论知识概要

       四频移键控(4FSK)是一种常用的数字调制方法,具有较高的频带利用率和抗干扰性能。它利用不同的频率来传输二进制数据,通常应用于无线通信和数据传输等领域。

 

2.1、原理与数学公式

       4FSK调制的基本原理是将输入的二进制数据转换为不同频率的信号,以实现数据的传输。解调则是将接收到的不同频率的信号还原为原始的二进制数据。

 

      4FSK调制中,输入的二进制数据被分为两组,每组有两个比特。根据这两个比特的值,选择相应的频率输出。具体来说,有四个频率f1、f2、f3、f4与之对应,每个频率都代表一个二进制组合(00、01、10、11),即十进制的0,1,2,3。

 

频率选择:根据输入的比特组合选择相应的频率输出。例如,当输入为“00”时,选择频率f1;当输入为“01”时,选择频率f2;当输入为“10”时,选择频率f3;当输入为“11”时,选择频率f4。

调制信号:将选择的频率进行幅度调制,以便在传输过程中具有更好的抗干扰性能。通常采用开关键控(OOK)或脉冲幅度调制(PAM)等方法进行幅度调制。

解调信号:在接收端,根据不同频率的信号进行解调。首先通过带通滤波器将所需的频率信号提取出来,然后通过解调器将其还原为原始的二进制数据。解调方法通常采用相干解调或非相干解调。

 

2.2、FPGA实现过程

基于FPGA的4FSK调制解调系统实现过程如下:        输入数据流:首先,将输入的二进制数据流分为两组,每组两个比特。可以使用一个时钟信号来同步数据的输入。

       频率选择:根据每组两个比特的值,选择相应的频率输出。可以使用一个4输入的MUX来实现频率选择功能。根据输入的比特组合选择相应的频率输出信号。

       传输信号:将调制后的信号通过发射器发送出去。在这个过程中,可能需要添加一些滤波器和其他信号处理模块来优化传输性能。

      接收信号:在接收端,接收到信号后首先通过滤波器将所需的频率信号提取出来。这个过程可以通过FPGA上的数字滤波器实现。

解调信号:将滤波后的信号送入解调器进行解调。可以使用Verilog中的相关模块来实现解调功能。例如,通过检测脉冲信号的上升沿和下降沿来确定解调的比特值。

       通过将FPGA的高速度和并行性特点与4FSK调制解调技术相结合,可以实现高速、高效的数字通信系统。这种实现方法具有广泛的应用前景,可以应用于无线通信、数据传输、物联网等领域。

 

3.Verilog核心程序

module FSK(
input i_clk,
input i_rst,
input signed[7:0]i_SNR,
input[1:0]i_bits,
output signed[15:0]o_carrier1,
output signed[15:0]o_carrier2,
output signed[15:0]o_carrier3,
output signed[15:0]o_carrier4,
output signed[15:0]o_fsk,
output signed[15:0]o_fsk_Rn,
output  signed[31:0]o_de_fsk1,
output  signed[31:0]o_de_fsk2,
output  signed[31:0]o_de_fsk3,
output  signed[31:0]o_de_fsk4,
output [1:0]o_bits,
output signed[31:0]o_error_num,
output signed[31:0]o_total_num 
);//调制
FSK_mod FSK_mod_u(
.i_clk     (i_clk),
.i_rst     (i_rst),
.i_bits    (i_bits),
.o_carrier1(o_carrier1),
.o_carrier2(o_carrier2),
.o_carrier3(o_carrier3),
.o_carrier4(o_carrier4),
.o_fsk     (o_fsk)
);awgns awgns_u(.i_clk(i_clk), .i_rst(i_rst), .i_SNR(i_SNR), //这个地方可以设置信噪比,数值大小从-10~50,.i_din(o_fsk), .o_noise(),.o_dout(o_fsk_Rn));
解调//解调//解调//解调//解调//解调//解调//解调//解调//解调//解调//解调//解调
FSK_demod FSK_demod_u(
.i_clk(i_clk),
.i_rst(i_rst),
.i_fsk(o_fsk_Rn),
.o_de_fsk1(o_de_fsk1),
.o_de_fsk2(o_de_fsk2),
.o_de_fsk3(o_de_fsk3),
.o_de_fsk4(o_de_fsk4),
.o_de_ffsk1(),
.o_de_ffsk2(),
.o_de_ffsk3(),
.o_de_ffsk4(),
.o_bits(o_bits)
);//error calculate
Error_Chech Error_Chech_u(.i_clk(i_clk), .i_rst(i_rst), .i_trans(i_bits), .i_rec(o_bits), .o_error_num(o_error_num), .o_total_num(o_total_num));endmodule

  

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

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

相关文章

JAVA第二次BLOG作业

目录 前言 设计与分析 PTA第四次作业 PTA第五次作业 PTA第六次作业 踩坑心得 总结 前言 这几次的大作业总的来说都花了很多的时间,也有做不出来的,但是一直做总能学到一些什么。每次我认为比较花时间的是怎么去设计好类,第六次则要想清楚怎么处理输入的电器以及电器的电压、…

文字转语音软件 VPot v2411

介绍 VPot 是一款文字转语音软件,支持多种语言,多种角色声音,软件免费无广告,有需求的朋友可以试试。 软件截图更新日志 v2411更新说明:1、更新修复edge 下载地址:https://pan.quark.cn/s/dda9d07345d3

Navicat Premium 数据库管理工具 v17.1.10 绿色版

软件介绍 Navicat是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和…

微软常用运行库合集 2024.10.10 十月版

软件介绍 微软运行库提供了大量的封装函数功能,让开发者不再需要自己编写一部分函数,极大的方便了开发者程序开发,但是运行库在程序编译的时候并不会提取相关代码编译进程序,所以就需要携带这些运行库了,软件没有运行库,调用这些api,就可能报错。现在的很多绿色软件自带…

VisualCppRedist 运行库合集 v84

软件介绍 Visual C++运行库合集包轻量版,是由老外打包,添加了静默参数,无广告,安装简单,合集包整合了所有版本的Visual C ++组件,自动安装所有库文件,体积小巧装机必备。由于绿色精简版软件,精简了软件自带运行库,很多绿色软件就没有依赖库,就会去系统寻找,如果系统…

文件完整性校验工具 CHK 5.51 绿色中文版

介绍 如果想要校验某个文件的完整性我们就可以使用 CHK 这款绿色便携的文件校验工具啦。CHK 它可以验证文件的完整性。您可以添加多个文件,并查看其哈希信息。该程序允许您查看的大小、 类型和sha信息您输入任何文件。你只需要选择的文件和您做完了。 CHK 是一个免费的校验和实…

图片无损放大工具 v1.0 支持webp

软件介绍 这是一款基于Real-ESRGAN引擎的一款图片无损放大工具,比较老了。这个引擎优点是体积较小,对于动漫图像放大效果不错,另外对于图像中的文本放大也不错,最起码不会改变太多字形导致无法辨认。与其他封装同类软件相比,这款支持选择webp格式图像。 软件截图使用方法 …

FLink同步mysql到ceberg丢数问题排查解决

一、问题背景 数据对比程序发现通过Flink cdc同步mysql写入Iceberg表运行一段时间后存在丢数问题,排查到丢数是由于hivemetastore钩子函数缺陷引起,由腾讯云EMR修复 钩子函数作用:在查询表时,更新hivemetastore中表的最近访问时间 产生丢数的原因:因钩子函数需要更新表的访…

腾讯云 AI 代码助手:产品研发过程的思考和方法论

文章摘要 本文将详细阐述 腾讯云 AI 代码助手的历史发展形态与产品整体架构,并从技术、研发方法论的角度分别阐述了产品的研发过程。 全文阅读约 5~8 分钟。 产品布局 AI 代码助手产品经历了三个时代的发展第一代诸如 Eclipse、Jetbrains、Visual Studio Code 等自带的代码补…

PDF Shaper Professional V14.4 中文绿色版

介绍 firealpaca中文版是款简单好用的电脑绘画软件,具有ps的图层绘画方式,喜欢手绘画画漫画的朋友可以用它的多图层功能来方便、简单的创作手绘图片。 软件截图软件特点 1.具有多项实用工具(魔法棒、笔刷、吸管、水桶等等) 2.具有自定义图片大小长宽度 3.具有翻转功能 4.可增…

安装好zblog后进不去首页怎么办?

检查默认首页文件:通过FTP连接到网站根目录。 删除默认的index.html文件。 zblog的首页文件是index.php,删除index.html后,服务器会自动调用index.php。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等…

Godaddy空间下的织梦CMS出现Internal Server Error

更改PHP运行模式登录 Godaddy 控制面板。 进入主机设置,选择文件扩展名设置。 选择 PHP 版本,建议选择 PHP 5.x。 禁用 PHP FastCGI,选择普通 PHP 模式。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript…