首页 > 其他分享 >【硬件测试】基于FPGA的16psk调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

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

时间:2025-01-09 20:56:32浏览次数:1  
标签:wire 模块 clk signed 硬件 num SNR 测试 Qfir

1.算法仿真效果

本文是之前写的文章:

 

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

 

的硬件测试版本。

 

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

 

vio设置SNR=35db

 

 

 

vio设置SNR=18db

 

 

 

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

 

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

       十六进制相位移键控(16PSK, 16-Phase Shift Keying)是一种数字调制技术,它通过改变载波相位来传输信息。16PSK能够在一个符号时间内传输4比特的信息,因此在高速数据传输中得到了广泛应用。

 

      16PSK是一种相位调制技术,其中载波信号的相位根据要传输的信息发生改变。在16PSK中,一个符号可以表示4比特的信息,即每个符号有16种不同的相位状态。在16PSK中,每个符号可以表示16种不同的相位状态,这16个状态均匀分布在单位圆上,形成一个16点的星座图。每个符号对应于4比特的信息,即:

 

 

 

        首先,需要将要传输的比特流转换成16个相位状态之一。假设信息比特序列为{bi​},则将每4比特映射到一个相位状态上。映射规则如下:

 

 

 

16PSK的解调过程主要包括匹配滤波和决策两个步骤。

 

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_I16psk;
wire signed[15:0]o_Q16psk;
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[1:0]o_rec2;
wire signed[31:0]o_error_num;
wire signed[31:0]o_total_num;  
TOPS_16PSK TOPS_16PSK_u(
.i_clk      (i_clk),
.i_rst  (~i_rst),
.i_SNR  (o_SNR),
.i_dat  (o_msg),
.o_ISET (o_ISET),
.o_I16psk(o_I16psk),
.o_Q16psk(o_Q16psk),
.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_rec2(o_rec2),
.o_flag(o_flag)
);
 
//ila篇内测试分析模块
ila_0 ila_u (
	.clk(i_clk), // input wire clk
	.probe0({ 
	        o_msg,o_SNR,//9
	        o_Ifir_T[15:6], o_Qfir_T[15:6],o_Nmod_T[15:6],//36
	        o_modc_R[27:12],o_mods_R[27:12],o_Ifir_R[27:12],o_Qfir_R[27:12],//64
	        o_bits,o_rec2,
	        o_error_num,o_total_num,//64
            o_flag
	         })
	);
	
endmodule
0sj_032m

  

 

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

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

 

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

 

 

 

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

 

 

标签:wire,模块,clk,signed,硬件,num,SNR,测试,Qfir
From: https://www.cnblogs.com/51matlab/p/18662871

相关文章

  • NRF24L01模块STM32-调试心得:报错 1E
    前言环境:芯片:STM32F103C8T6Keil:V5.24.2.0调试时我们会尝试读取STATUS寄存器状态来了解模块目前的状态,但是我们在读取时至为0x1E,这就很纳闷,根据寄存器描述0x1E:对应寄存器4:1,关系有:达到最大重发次数        RXFIFO为空,第四位很好理解也......
  • Nginx:Stream模块
    什么是Stream模块?Stream模块是Nginx的一个核心模块,专为处理非HTTP协议的流量(TCP和UDP流量)而设计。它可以用来负载均衡和代理TCP或UDP连接,适用于多种应用场景,如:数据库集群(MySQL、PostgreSQL等)邮件服务器(SMTP、IMAP、POP3)游戏服务器VoIP服务自定义协......
  • AIGC测试生成结果评估工具-BLEU
    一、准备数据候选译文:这是需要评估的机器翻译或文本摘要结果。参考译文:这是人工翻译或撰写的标准答案,用于与候选译文进行对比。通常,会有多个参考译文以提供更全面的评估。二、安装BLEU评估工具BLEU评估工具通常作为自然语言处理库(如NLTK、Moses等)的一部分提供。以下是通过NL......
  • 《软件测试技术》习题参考答案2
    ......
  • AIGC如何进行测试
    一、测试前的准备数据收集与准备:根据AIGC系统的类型(如文本生成、图像生成、音频生成等),准备相应的测试数据集。数据集应包含各种领域和风格的内容,以测试系统的多样性和质量。定义测试标准:根据AIGC系统的目标和要求,设定具体的测试标准。这些标准可能包括语法和拼写错误......
  • 固定资产模块和总账期末对账不平的常见原因和解决方法总结
    【问题描述】为了核对资产模块数据和总账是否一致,一般通过【智能会计平台】-【业务报表对账方案】-新增资产对账方案固定资产对账方案设置介绍,并通过【业务报表对账】选择资产对账方案,查看对账结果是否有差异。【对账逻辑】资产模块是【取资产价值变动表】,资产价值变动表累......
  • IBM Storage - 支持AI应用场景的数据存储软硬件解决方案
    概述    为了解决数据和工作负载在各地分散的现状,需要实现对存储在分布式文件和对象存储系统中的大量非结构化数据的高速访问。IBMStorage利用人工智能(AI)、机器学习(ML)和高级分析手段,对数据存储基础架构进行现代化改造。IBMStorage不仅仅是一套存储产品和解决方案,其......
  • 前端必知必会-Node.js 模块
    文章目录Node.js模块什么是Node.js中的模块?内置模块包含模块创建您自己的模块包含您自己的模块总结Node.js模块什么是Node.js中的模块?将模块视为与JavaScript库相同。您想要包含在应用程序中的一组函数。内置模块Node.js有一组内置模块,您无需进一步安......
  • 前端必知必会-Node.js HTTP 模块
    文章目录Node.jsHTTP模块内置HTTP模块Node.js作为Web服务器添加HTTP标头读取查询字符串拆分查询字符串总结Node.jsHTTP模块内置HTTP模块Node.js有一个名为HTTP的内置模块,它允许Node.js通过超文本传输​​协议(HTTP)传输数据。要包含HTTP模......
  • 前端必知必会-Node.js File System模块
    文章目录Node.js文件系统模块Node.js作为文件服务器创建文件更新文件删除文件重命名文件上传文件总结Node.js文件系统模块Node.js作为文件服务器Node.js文件系统模块允许您使用计算机上的文件系统。要包含文件系统模块,请使用require()方法:``jsvarfs=......