目录
✅1.本系统整体构架
✨2.BPSK调制解调各个模块基本原理
🔍3.仿真结果
👇4.完整程序下载
✅1.本系统整体构架
整个程序,我们采用如下的流程图实现:
✨2.BPSK调制解调各个模块基本原理
BPSK解调的目标是从接收到的BPSK调制信号中恢复出原始的二进制数据。在通信过程中,调制信号经过信道传输后,会受到噪声、衰落等因素的影响,因此解调过程需要克服这些干扰,准确地提取出原始信息。
从信号处理的角度来看,解调就是一个逆变换的过程,它将调制后的信号转换回原始的基带信号。在BPSK调制中,通过载波相位的变化来携带信息,解调时则需要根据接收到的信号相位来判断发送的是0还是1,从而恢复出原始的二进制序列。
🔍3.仿真结果
本系统的RTL结构如下图所示:
顶层程序结构如下:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2024/03/29 22:44:03
// Design Name:
// Module Name: bpsk_top
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module bpsk_top(
input i_clk,
input i_rst,
input i_x,
input signed[7:0]i_SNR,
output signed[1:0]o_y,
output signed[15:0]o_bpsk,
output signed[15:0]o_bpskN,
output signed[31:0]o_dw,
output signed[15:0]o_yfilter,
output o_bit);
bpsk_mod bpsk_mod_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_x (i_x),
.o_y (o_y),
.o_bpsk (o_bpsk)
);
awgns awgnsu(
.i_clk (i_clk),
.i_rst (i_rst),
//SNR:5~30
.i_SNR (i_SNR),
.i_din (o_bpsk),
.o_noise (),
.o_dout (o_bpskN)
);
bpsk_demod bpsk_demod_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_bpsk (o_bpskN),
.o_carrier_local (),
.o_dw (o_dw),
.o_yfilter (o_yfilter),
.o_y (o_bit)
);
endmodule
仿真测试结果如下:
👇4.完整程序下载
完整可运行代码,博主已上传至CSDN,使用版本为Vivado2022.2:
(本程序包含程序操作步骤视频)
基于FPGA的BPSK调制解调系统verilog实现【包括程序,中文注释,程序操作视频】资源-CSDN下载