1.完整项目描述和程序获取
>面包多安全交易平台:
vivado版本:https://mbd.pub/o/bread/ZJiYmZhq
quartusii版本:https://mbd.pub/o/bread/ZJiYmZhs
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
QPSK是一种数字调制方式,它将两个二进制比特映射到一个符号上,使得每个符号代表四种可能的相位状态。因此,QPSK调制解调系统可以实现更高的传输速率和更高的频谱效率。基于FPGA的QPSK调制解调系统通常由以下几个模块组成:
数据生成模块:生成要传输的二进制数据流。
QPSK调制模块:将二进制数据流转换为符号序列,并将每个符号映射到特定的相位状态。
QPSK解调模块:将接收到的符号序列解调为二进制数据流。
4.部分源码
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2023/05/03 05:57:40
// Design Name:
// Module Name: TQPSK
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module TQPSK(
input i_clk,
input i_rst,
input i_Ibits,
input i_Qbits,
output signed[15:0]o_Ifir,
output signed[15:0]o_Qfir,
output signed[15:0]o_cos,
output signed[15:0]o_sin,
output reg signed[31:0]o_modc,
output reg signed[31:0]o_mods,
output signed[31:0]o_mod
);
wire signed[1:0] w_Inz=(i_Ibits == 1'b1)?2'b01:2'b11;
wire signed[1:0] w_Qnz=(i_Qbits == 1'b1)?2'b01:2'b11;
//成型滤波
fiter uut1(
.i_clk (i_clk),
.i_rst (i_rst),
.i_din (w_Inz),
.o_dout (o_Ifir)
);
fiter uut2(
.i_clk (i_clk),
.i_rst (i_rst),
.i_din (w_Qnz),
.o_dout (o_Qfir)
);
//DDS
wire [9:0]mcos;
wire [9:0]msin;
NCO_Trans NCO_Trans_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_K (10'd512),
.o_cos (mcos),
.o_sin (msin)
);
assign o_cos={mcos,6'd0};
assign o_sin={msin,6'd0};
//调制QPSK
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
o_modc <= 32'd0;
o_mods <= 32'd0;
end
else begin
o_modc <= $signed(o_Ifir)*$signed(o_cos);
o_mods <= $signed(o_Qfir)*$signed(o_sin);
end
end
assign o_mod=o_modc+o_mods;
endmodule
00_008m