1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJ2Zl5hw
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
基于PN导频序列和CORDIC算法的基带数据帧频偏估计和补偿是一种常见的无线通信系统中用于频偏补偿的方法。下面是这个过程的一般步骤:
1. PN导频序列的发送和接收:
发送端:在发送端,通常会附加一个已知的伪随机(PN)导频序列到待传输的数据帧上。
接收端:在接收端,接收到带有PN导频序列的信号。
在本课题中,每一组基带数据均包括4个PN序列构成导频序列。
2. 估计频偏:
接收端首先需要估计信号的频偏,即接收信号的频率与发送信号的频率之间的差异。
CORDIC(Coordinate Rotation Digital Computer)算法是一种常用于复数域信号处理的频偏估计算法。它通过迭代旋转操作来估计信号的相位偏移,进而估计频偏。
将接收端接收到的导频数据做延迟和共轭相乘,然后根据其实部和虚部做cordic算法得到对应的频偏值。
3. 频偏补偿:
一旦估计出频偏,接收端可以使用相反的频偏来对接收信号进行补偿。这可以通过复数域中的相位旋转来实现。
通过将接收信号与一个相反的复数指数函数相乘,可以将频偏补偿到零。
4.部分源码
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2023/07/24 21:34:11
// Design Name:
// Module Name: PN_1_sycn
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module PN_1_sycn(
i_clk,
i_rst,
o_I_base,
o_Q_base,
o_I_fre,
o_Q_fre,
o_pkI,
o_pkQ,
o_Md,
o_phase,
o_Ir,
o_Qr
);
input i_clk;
input i_rst;
output signed[11:0]o_I_base;
output signed[11:0]o_Q_base;
output signed[23:0]o_I_fre ;
output signed[23:0]o_Q_fre ;
output signed[31:0]o_pkI;
output signed[31:0]o_pkQ;
output signed[31:0]o_Md;
output signed[31:0]o_phase;
output signed[23:0]o_Ir;
output signed[23:0]o_Qr;
//发射
Transmitter uu1(
.i_clk (i_clk),
.i_rst (i_rst),
.o_I_base (o_I_base),
.o_Q_base (o_Q_base),
.o_I_fre (o_I_fre),
.o_Q_fre (o_Q_fre)
);
//通过帧延迟做共轭相乘,计算频偏
Receiver uu2(
.i_clk (i_clk),
.i_rst (i_rst),
.i_I_base (o_I_fre[17:6]),
.i_Q_base (o_Q_fre[17:6]),
.o_Md (o_Md),
.o_pkI (o_pkI),
.o_pkQ (o_pkQ),
.o_phase (o_phase),
.o_Ir (o_Ir),
.o_Qr (o_Qr)
);
endmodule
00_041m
---