【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

目录

1.算法仿真效果

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

3.Verilog核心程序

4.开发板使用说明和如何移植不同的开发板

5.完整算法代码文件获得


1.算法仿真效果

本文是之前写的文章:

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

的硬件测试版本。

在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完整代码运行后无水印):

VIO设置SNR=15db

VIO设置SNR=25db

硬件测试操作步骤可参考程序配套的操作视频。

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

       在现代通信系统中,数字调制技术被广泛应用于无线通信、卫星通信以及有线通信等领域。其中,振幅键控(Amplitude Shift Keying, ASK)是一种简单的数字调制方式,通过改变载波信号的幅度来表示不同的数据位。四进制振幅键控(4-ASK)是ASK的一种扩展形式,它使用四个不同的幅度等级来传输两个比特的信息。

        基于FPGA的4ASK调制解调系统结合了数字信号处理的灵活性与硬件实现的高效性,适用于多种通信场景。通过对调制解调原理的深入理解及FPGA平台的有效利用,可以构建出高性能且具有较强适应性的通信系统。

3.Verilog核心程序

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/12/09 20:40:14
// Design Name: 
// Module Name: tops_hdw
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module tops_hdw(

input i_clk,
input i_rst,
output reg [3:0] led
);
    
 
wire[1:0] o_msg;

//产生模拟测试数据
signal signal_u(
.i_clk (i_clk),
.i_rst (~i_rst),
.o_bits(o_msg)
);
//设置SNR
wire signed[7:0]o_SNR;
vio_0 your_instance_name (
  .clk(i_clk),                // input wire clk
  .probe_out0(o_SNR)  // output wire [7 : 0] probe_out0
);

 
 
 
wire signed[15:0]o_4ask;
wire signed[15:0]o_4ask_Rn;
wire signed[31:0]o_de_4askf;
wire [1:0]o_bits;
wire signed[31:0]o_error_num;
wire signed[31:0]o_total_num; 

 

ASK4 uut(
.i_clk(i_clk),
.i_rst(~i_rst),
.i_bits(o_msg),
.i_SNR(o_SNR),
.o_4ask(o_4ask),
.o_4ask_Rn(o_4ask_Rn),
.o_de_4ask(),
.o_de_4askf(o_de_4askf),
.o_bits(o_bits),
.o_error_num(o_error_num),
.o_total_num(o_total_num)
);

 
    
//ila篇内测试分析模块
ila_0 ila_u (
	.clk(i_clk), // input wire clk
	.probe0({ 
	        o_SNR,o_msg,o_4ask,o_4ask_Rn,o_de_4askf[27:12],//8
	        o_bits,
	        o_error_num,o_total_num//64
	         })
	);
	
endmodule
0sj_039m

4.开发板使用说明和如何移植不同的开发板

注意:硬件片内测试是指发射接收均在一个板子内完成,因此不需要定时同步模块。

在本课题中,使用的开发板是:

如果你的开发板和我的不一样,可以参考代码包中的程序移植方法进行移植:

5.完整算法代码文件获得

V

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20.04复现 Leg-KILO

这里写目录标题 opencv版本问题下载3.2.0源代码进入解压后的目录创建构建目录运行 CMake 配置 配置时指定一个独立的安装目录,例如 /opt/opencv-3.2:出错: 使用多线程编译错误1: stdlib.h: 没有那个文件或目录错误2:er…

kubeadm部署1.20集群版

部署说明 步骤1~4 master和node都需执行步骤 5.1 三台master都执行,步骤 5.2 随便一台机器执行步骤5.3根据需要选择部署etcd;堆叠etcd更简单部署更快,外部etcd部署麻烦方便管理;步骤5.4 根据选择部署的etcd方式选择k8…

【电力负荷预测实例】采用新英格兰2024年最新电力负荷数据的XGBoost电力负荷预测模型

与小编上篇文章介绍的基于BPNN神经网络的电力负荷预测相比较,两种模型的负荷预测方法各有优势,神经网络能够自动提取特征并处理非线性关系,而XGBoost则具有预测精度高、运行速率快和可解释性强的特点。在实际应用中,可以根据具体需…

6_Sass 选择器函数 --[CSS预处理]

Sass 提供了一系列的选择器函数,用于操作和组合CSS选择器。这些函数可以帮助你更灵活地创建样式规则,并且可以减少重复代码。以下是几个常用的选择器函数及其用法: 1. selector-append($selector1, $selector2...) selector-append($select…

List【Redis对象篇】

🏆 作者简介:席万里 ⚡ 个人网站: 文章目录 LIst1.简介2.使用场景3.常用操作1.写操作2.读操作 4.底层实现5.压缩列表的优化1.ZIPLIST结构2.ziplist更新数据3.LISTPACK优化 6.总结(重点) LIst 1.简介 Redis List是一组…

心情追忆- SEO优化提升用户发现率

之前,我独自一人开发了一个名为“心情追忆”的小程序,旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端(小程序)开发、后端搭建到最终部署。经过一个月的努力,通过群聊分享等方式,用…

.NET 技术系列 | 通过CreatePipe函数创建管道

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

springboot425滑雪场管理系统(论文+源码)_kaic

摘要 近年来,信息化管理行业的不断兴起,使得人们的日常生活越来越离不开计算机和互联网技术。首先,根据收集到的用户需求分析,对设计系统有一个初步的认识与了解,确定滑雪场管理系统的总体功能模块。然后,详…

Dubbo的应用及注册和SPI机制

Dubbo的应用及注册和SPI机制 Dubbo 的服务注册中应用级注册优化 Dubbo 的注册中心 Dubbo 支持很多种注册中心,支持的主流注册中心包括:ZooKeeper、Nacos、Redis Dubbo 需要引入注册中心依赖,并且配置注册中心地址,这里以 ZooK…

【从零开始入门unity游戏开发之——C#篇05】转义字符、@处理多行文本或者不使用转义字符、随机数

文章目录 一、转义字符1、什么是转义字符?2、常见的转义字符3、总结 二、使用处理多行文本或者不使用转义字符1、多行字符串2、不使用转义字符 三、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSin…

【Python】使用Selenium的find_element模块获取网页上的大段文字和表格的方法(建议收藏!)

发现了一个使用Selenium的find_element模块,快速获取文字和表格的方法,很实在,以后爬网的时候,就不用beautifulSoup 和 pandas的read_html 混起来用了! 文字部分:实现网络节点下,某个节点下的其…

Windows环境基于ecplise的spring boot框架新建spring start project

SpringToolSuite4 新建项目实例 前言Windows基于ecplise 工具的spring boot 架构 前言 使用Spring boot 框架向前端传输数据 Windows基于ecplise 工具的spring boot 架构 spring-tool-suite-4官网下载链接spring tool,下载太慢的话可以使用迅雷加速,右…

Mave下载、安装以及idea(2024)进行配置

目录 Maven简介 Maven下载 配置环境变量 配置本地仓库 在idea环境配置Maven 使用Maven创建工程 创建一个普通的java工程 创建一个Web项目 Maven简介 Maven是一个跨平台的项目管理工具,也是Apache组织中的一个成功的开源项目。它主要服务于基于Java的项目构…

MySQL八股文

MySQL 自己学习过程中的MySQL八股笔记。 主要来源于 小林coding 牛客MySQL面试八股文背诵版 以及b站和其他的网上资料。 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL&…

TMS320C55x DSP芯片结构和CPU外围电路

第2章 DSP芯片结构和CPU外围电路 文章目录 第2章 DSP芯片结构和CPU外围电路TMS320C55x处理器的特点TMS320c55x CPU单元指令缓冲(Instruction Buffer Unit) I单元程序流程(Program Flow Unit) P单元地址数据(Address-data Flow Unit) A单元数据计算(Data Computation Unit) D单元…

docker 相关操作

1. 以下是一些常见的 Docker 命令&#xff1a; docker --version显示安装的 Docker 版本。 docker pull <image_name>从 Docker Hub 或其他镜像仓库下载镜像。 docker build -t <image_name> <path>从指定路径的 Dockerfile 构建 Docker 镜像。 docker i…

WinRAR 创建自解压文件 自定义标题 自定义图标 添加桌面快捷方式

一、创建自解压文件 自定义标题 自定义图标 1、利用Winrar压缩你要压缩的文件夹"【游戏运行必备组件】.rar",选择压缩格式是【rar格式】&#xff0c;选择创【建自解压格式…】 2、点击【高级】&#xff0c;选择【自解压文件选项】 3、自定义解压界面【窗口标题】、…

深度学习基础--将yolov5的backbone模块用于目标识别会出现怎么效果呢??

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 yolov5网络结构比较复杂&#xff0c;上次我们简要介绍了yolov5网络模块&#xff0c;并且复现了C3模块&#xff0c;深度学习基础–yolov5网络结构简介&a…

:-1: error: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

QT想使用webenginewidgets&#xff0c;因此只能使用MSVC进行编译处理&#xff0c;出现报错:-1: error: msvc-version.conf loaded but QMAKE_MSC_VER isnt set 错误的原因是MSCV版本不匹配 D:\Qt\Qt5.12.9\5.12.9\msvc2017_64\mkspecs\common\msvc-version.conf 报的错如下图…

ElasticSearch - 使用 Composite Aggregation 实现桶的分页查询

文章目录 官方文档概述Composite Aggregation 概述示例&#xff1a;基本分页查询分页&#xff1a;获取下一页结果使用场景注意事项 官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html#_pagin…