首页 > 其他分享 >m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件

m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件

时间:2023-11-14 15:36:31浏览次数:32  
标签:FPGA 解调 2ASK b0 b1 bits 调制 verilog

1.算法仿真效果

 

本系统Vivado2019.2平台开发,测试结果如下:

 

 

 

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

      2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制是一种模拟调制方式,它是通过改变载波的振幅来传输数字信号。而2ASK调制解调则是将数字信号转换为二进制码,再通过改变载波的振幅来传输数字信号。 2ASK调制的原理是将数字信号转换为二进制码,然后将二进制码与载波信号相乘,得到调制信号。在解调时,将接收到的信号与载波信号相乘,再通过低通滤波器滤波,得到原始的数字信号。

 

        2ASK是一种数字调制方式,其中“2”代表二进制,即调制信号只有两个幅度水平。在2ASK调制中,数字基带信号控制载波的幅度。当发送二进制“1”时,发送全幅度载波;当发送二进制“0”时,不发送信号,即无载波输出。因此,2ASK信号可以看作是基带脉冲序列与一个全幅度正弦波的乘积。2ASK的调制解调系统结构如下图所示:

 

 

 

        假设我们的输入二进制序列为an,那么2ASK的调制过程可以用以下数学公式表示:

 

        e2ASK(t) = Σan g(t - nTs) cos(ωct)

 

        其中,g(t)是基带脉冲形状,Ts是基带脉冲间隔,ωc是载波的角频率。解调过程则是对接收到的信号进行包络检波,恢复出原始的二进制序列。

 

在FPGA上实现2ASK调制解调系统主要分为以下几个步骤:

 

系统设计:首先,我们需要根据2ASK调制解调的原理设计出系统的整体架构,包括调制器、信道模拟器和解调器等主要部分。

Verilog编码:然后,我们使用Verilog硬件描述语言对系统各个部分进行编码。例如,我们可以创建一个调制器模块,它接收二进制输入,根据2ASK调制原理生成相应的调制信号。同样,我们也需要创建一个解调器模块,它接收调制信号,通过包络检波恢复出原始的二进制序列。

仿真测试:编码完成后,我们需要通过仿真测试验证我们的设计是否正确。我们可以使用一些测试工具,如ModelSim,对我们的设计进行仿真。通过观察仿真结果,我们可以检查我们的设计是否满足预期。

FPGA实现:最后,我们将通过仿真测试的设计下载到FPGA上进行实现。这通常需要使用特定的FPGA开发工具,如Xilinx Vivado。在这个步骤中,我们需要考虑FPGA的资源限制和性能优化等问题。

       在FPGA实现过程中,需要注意的是,由于FPGA是硬件实现,所以设计需要考虑实时性和并行性。此外,对于调制和解调过程中的一些非线性操作,可能需要利用FPGA的查找表(LUT)等资源进行优化。

 

 

3.Verilog核心程序

 

`timescale 1ns / 1ps
//
 
//
 
module test_ASK2;
 
reg i_clk;
reg i_rst;
reg[0:0]i_bits;
wire signed[15:0]o_2ask;
wire signed[31:0]o_de_2askf;
wire [0:0]o_bits;
 
 
 
 
ASK2 uut(
.i_clk(i_clk),
.i_rst(i_rst),
.i_bits(i_bits),
.o_2ask(o_2ask),
.o_de_2ask(),
.o_de_2askf(o_de_2askf),
.o_bits(o_bits)
);
 
initial
begin
    i_clk = 1'b1;
    i_rst = 1'b1;
    #1000
    i_rst = 1'b0;
end
initial
begin
    i_bits= 1'b0;
    #1024
    i_bits= 1'b1;
    #256
    i_bits= 1'b0;
    #512
    i_bits= 1'b1;
    #512
    i_bits= 1'b1;
    #512
    i_bits= 1'b1;
    #1024
    i_bits= 1'b0;
    #512
    i_bits= 1'b0;
    #256
    i_bits= 1'b1;
    #128
    i_bits= 1'b1;
    #128
    i_bits= 1'b0;
    repeat(100)
    begin
    #256
    i_bits= 1'b0;
    #2048
    i_bits= 1'b1;
    #2048
    i_bits= 1'b0;
    #2048
    i_bits= 1'b1;
    #2048
    i_bits= 1'b1;
    #2048
    i_bits= 1'b0;
    #1024
    i_bits= 1'b1;
    #1024
    i_bits= 1'b0;
    #1024
    i_bits= 1'b1;
    #512
    i_bits= 1'b1;
    #512
    i_bits= 1'b0;
    #512
    i_bits= 1'b1;
    #256
    i_bits= 1'b1;
    #256
    i_bits= 1'b0;
    #512
    i_bits= 1'b1;
    #256
    i_bits= 1'b0;
    #128
    i_bits= 1'b0;
    
    #128
    i_bits= 1'b0;
    #128
    i_bits= 1'b1;
    #1024
    i_bits= 1'b0;
    #512
    i_bits= 1'b0;
    #128
    i_bits= 1'b1;
    #256
    i_bits= 1'b1;
    #128
    i_bits= 1'b1;
    #256
    i_bits= 1'b0;
    end
end
always #1 i_clk=~i_clk;
endmodule

 

  

 

标签:FPGA,解调,2ASK,b0,b1,bits,调制,verilog
From: https://www.cnblogs.com/51matlab/p/17831722.html

相关文章

  • m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
    1.算法仿真效果本系统Vivado2019.2平台开发,测试结果如下:2.算法涉及理论知识概要2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制是一种模拟调制方式,它是通过改变载波的振幅来传输数字信号。而2ASK调制解调则是将数字信号转换为二进制码,再通......
  • FPGA学习笔记001——流水灯
    代码如下:moduleled_flash(//端口列表 Clk50M, //时钟信号 Rst_n, //复位信号 led,);//端口定义 inputClk50M; inputRst_n; output[3:0]led;//led默认为wire类型 reg[24:0]cnt; parameterCNT_MAX=25'd24_999_999; always@(posedgeClk50Morneg......
  • Icarus Verilog的命令行参数
    IcarusVerilog的命令行参数。IcarusVerilog是一个开源的Verilog模拟器,它使用命令行界面。以下是对这些参数的详解:-E:仅进行预处理,不编译或模拟。-I:添加包含目录。-L:添加库目录。-M:生成依赖文件。-N:忽略文件中的某些部分。-o:指定输出文件名。-p:设置特定参数......
  • 基于FPGA的Lorenz混沌系统verilog开发,含testbench和matlab辅助测试程序
    1.算法运行效果图预览   将vivado的仿真结果导入到matlab显示三维混沌效果:    2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述      洛伦兹混沌系统是一种非线性动力系统,最初由爱德华·洛伦兹(EdwardLorenz)于1963年引入,它的简单方......
  • m基于FPGA的8FSK调制解调系统verilog实现,包含testbench测试文件
    1.算法仿真效果vivado2019.2仿真结果如下:    将波形放大,看到如下效果:    2.算法涉及理论知识概要       8FSK(8-FrequencyShiftKeying)是一种常用的数字调制方法,它通过在不同的频率上发送二进制数据来进行通信。8FSK在通信系统中被广泛应用,因为它具......
  • 【FPGA】计数器 —— 时序逻辑
    小边想要日更!盲猜明天就会断hh,因为明晚我应该在疯狂看计网。。文章目录1.设计输入2.功能仿真3.板子调试时序逻辑基本概念:输出还与时钟信号相关D触发器-也就是有“记忆”特性,能存储电平状态计数器基本概念,基本4位加法器结构图计数值与技术时间之间的关系1.设计输入设计一个......
  • 【FPGA】 3-8译码器 —— 组合逻辑 | 熟悉语法及开发环境
    文章目录1.设计输入2.分析综合3.功能仿真4.板爷调试继续熟悉基于vivado的FPGA开发流程。。学习一些新语法3-8译码器的应用我们接下来还会用到~创建工程观众老爷们别管了,咱板子也不一定一样~1.设计输入编码画框图,vivado支持较弱使用IP,我们今天暂时不用哦~添加DesignSource......
  • szfpga 详细:高云1N1开发板高云gowin软件使用教程
     1.概述  国产FPGA是最近几年起来的产品,具有性价比高特点。高云FPGA,大多用在LED,电机控制,PLC设备上。 高云1N1开发板采用GW1N-LV1QN48C6/I5FPGA器件。具有低功耗,瞬时启动,高安全性,低成本,方便扩展等特点。价格便宜,易扩张,帮助用户快速进入国产FPGA学习。开发板集成多......
  • CSI摄像头模组MIPI配套GOWIN国产NR-9C和2AR-18开发板FPGA
    1.概述    国产FPGA是最近几年起来的产品,具有性价比高特点。而GOWIN属于国产FPGA成员,在技术服务和芯片价格都是比较大的优势,很多用户都用在LED控制,电机控制,PLC设备上,以及用于替换Lattice厂家中低端的芯片。   MIPI是移动联盟关键协议。用低功耗和高速传输摄像头和屏的内......
  • szfpga 高云gowin国产开发板GW2AR-18核心板fpga cpld测试板
    1.概述         国产FPGA是最近几年起来的产品,具有性价比高特点。而GOWIN属于国产FPGA成员,在服务和芯片都是比较大的优势,很多用户都用在LED控制,电机控制,PLC设备上,以及用于替换Lattice厂家中低端的芯片。    GW2AR-18 开发板采用GW2AR-18-LV9EQ144器件,是属于晨......