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

news/2025/1/9 5:27:40/文章来源:https://www.cnblogs.com/51matlab/p/18650539

1.算法仿真效果

本文是之前写的文章:

 

基于FPGA的8PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR-CSDN博客

 

的硬件测试版本。

 

在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。

 

硬件ila测试结果如下:(完整代码运行后无水印):

 

vio设置SNR=20db

 

 

 

ila硬件测试数据导出,用matlab显示星座图:

 

 

 

vio设置SNR=15db

 

 

ila硬件测试数据导出,用matlab显示星座图:

 

 

 

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

 

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

        随着通信技术的不断发展,相位调制技术因其高频谱效率和抗干扰能力而广泛应用于无线通信系统中。其中,8PSK(8相位相移键控)作为一种高阶调制方式,具有更高的频谱效率和更强的抗干扰能力,因此备受关注。然而,8PSK调制解调的实现复杂度较高,需要高效的数字信号处理技术。现场可编程门阵列(FPGA)作为一种可编程逻辑器件,具有高度的灵活性和并行处理能力,非常适合实现复杂的数字信号处理算法。

 

       8PSK调制是一种相位调制方式,其基本原理是通过改变载波的相位来传递信息。在8PSK中,一个符号周期内的相位变化有8种可能的状态,分别对应3个比特的信息。因此,8PSK调制可以看作是一种将3个比特映射到一个符号的映射方式。具体地,假设输入的比特序列为b2b1b0,则对应的8PSK符号可以表示为:

 

        S(t)=Acos(2πfct+θk) (1)

 

        其中,A是载波的振幅,fc是载波的频率,θk是第k个符号的相位,k=0,1,...,7。θk的取值由输入的比特序列b2b1b0决定,具体的映射关系如表1所示。

 

1:8PSK映射关系

 

 

 

其星座图如下所示:

 

 

 

3.Verilog核心程序

module tops_hdw(input i_clk,
input i_rst,
output reg [3:0] led
);wire 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[2:0]o_ISET;
wire signed[15:0]o_I8psk;
wire signed[15:0]o_Q8psk;
wire signed[15:0]o_Ifir_T;
wire signed[15:0]o_Qfir_T;
wire signed[31:0]o_mod_T;
wire signed[15:0]o_Nmod_T;
wire signed[31:0]o_modc_R;
wire signed[31:0]o_mods_R;
wire signed[31:0]o_Ifir_R;
wire signed[31:0]o_Qfir_R;
wire  [2:0]o_wbits;
wire       o_bits;
wire signed[31:0]o_error_num;
wire signed[31:0]o_total_num;  
TOPS_8PSK TOPS_8PSK_u(
.i_clk      (i_clk),
.i_rst  (~i_rst),
.i_SNR  (o_SNR),
.i_dat  (o_msg),
.o_ISET (o_ISET),
.o_I8psk(o_I8psk),
.o_Q8psk(o_Q8psk),
.o_Ifir_T (o_Ifir_T),
.o_Qfir_T (o_Qfir_T),
.o_mod_T  (o_mod_T),
.o_Nmod_T(o_Nmod_T),
.o_modc_R (o_modc_R),
.o_mods_R (o_mods_R),
.o_Ifir_R (o_Ifir_R),
.o_Qfir_R (o_Qfir_R),
.o_wbits(o_wbits),
.o_bits (o_bits),
.o_error_num(o_error_num),
.o_total_num(o_total_num),
.o_flag(o_flag)
);//ila篇内测试分析模块
ila_1 ila_u (.clk(i_clk), // input wire clk.probe0({ o_msg,o_SNR,//9o_Ifir_T[15:6], o_Qfir_T[15:6],o_Nmod_T[15:6],//36o_modc_R[27:12],o_mods_R[27:12],o_Ifir_R[27:12],o_Qfir_R[27:12],//64o_bits,o_error_num,o_total_num,errflag,//64o_rec2,o_flag}));endmodule
0sj_030m

  

 

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

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

 

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

 

 

 

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

 

 

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

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

相关文章

Linux 安装和配置openssl

使用python3.10版本时遇到无法加载.ssl的报错,解决方法如下: 1. 检查openssl的当前版本,如果已经是openssl-1.1.1w,则跳过下文,应该不是同一个问题。openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 2. 下载openssl-1.1.1w版本的压缩包 openssl-1.1.1w.tar.gz3. 解压压…

【Java 温故而知新系列】基础知识-04 重点关键字(面试经常遇到的)

1、final 在 Java 中,final 关键字可以用于变量、方法和类,分别赋予它们不同的语义和行为。以下是 final 关键字的主要作用 修饰变量 当 final 修饰一个变量时,表示该变量的值一旦初始化后就不能再被改变。这适用于基本类型和引用类型。基本类型:对于基本类型(如 int, do…

春节不打烊,超市管理工具如何助力商家应对销售高峰

春节超市管理工具种类繁多,每种工具都有其独特的功能和优势。在选择工具时,超市应根据自身的需求和实际情况进行选择,以确保管理效率和服务质量的提升。春节期间,超市管理工具种类繁多,这些工具旨在帮助超市高效管理库存、促进销售、调度员工以及提升顾客服务质量。以下是…

vue3 在渲染md中的数学公式

常规的md转数学公式插件无法解决此问题 问题: 在渲染过程中 \t 被转义 导致渲染出错**方案为:将\t 转义为\t ** 依赖的插件及版本"katex": "^0.16.15","markdown-it": "^14.1.0","markdown-it-katex": "^2.0.3",…

重新定义电商团队协作:在线文档工具的战略作用

在当今快速发展的电商行业,团队协作效率对业务成功至关重要。尤其是跨部门沟通和信息共享,已经成为提升电商团队组织架构优化的关键因素。而一个功能强大的在线协同编辑文档工具正是提升这些关键环节的解决方案之一。 电商团队组织架构的挑战 电商企业通常面临复杂的业务流程…

基于海豚调度功能开发——推送下游系统数据库连接信息批量修改方案与实现

功能需求背景 由于信创(信息技术应用创新产业)改造要求,上个月已将从数据仓库推送下游官网系统的ORACLE数据库相关数据推送任务迁移到信创人大金仓临时数据库,整体任务完成切换上线并试运行稳定。 由于年底需要进行信创数据库的正式上线,目前需要将人大金仓临时数据库切换…

Pycharm 2024 安装激活详细使用教程(激活至2026,实测是永久,亲测!)

开发工具推荐:Pycharm 安装激活详细使用教程(激活至2026,实际上永久,亲测!)申明:本教程 Pycharm补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! Pycharm是JetBrains公司推出的一款功能强大的Python集…

服务器迁移中心——“工作组迁移”使用指南

简介 服务器迁移中心(Server Migration Center,简称SMC)是阿里云提供给您的迁移平台。专注于提供能力普惠、体验一致、效率至上的迁移服务,满足您在阿里云的迁移需求。 工作组迁移是SMC的一项功能,提供标准化迁移流程,可以同时管理多个迁移源的生命周期,适用于需要批量迁…

arcgis server 10.4许可过期

注册机生成注册码 10.4许可基本在2025年1月1日过期,用生成码生成一版新的许可替换即可,生成许可虽然只支持10,改成104即可。 注册机链接地址: [https://drive.google.com/file/d/1H9BXzr1tklbAPO3QH-FYl80sn1yJlB02/view?usp=drive_link](https://drive.google.com/file/d…

delphi djson 类与JSON 互转,与 Java、Golang 一致写法

前因 为什么要开发这个 JSON库?原因是 delphi 官方的 json 既没有处理 null(也叫零值)的问题;举例说明吧: 开发者 往往 需要 类与JSON 之间 进行序列化 和 反序列化;接下来我们举个例子: Person {id: Int64; // IDname: string; //姓名desc: string; //描述}这样一个类 在…

Windows更改远程桌面端口.241202

为了远程安全,默认在3389改为别的端口。 本示例为3389改为533891、步骤:打开“开始→运行”,输入“regedit”,打开注册表,进入以下路径: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]修改PortNamber修改成所希望的端口即可…