首页 > 编程语言 >m基于uw导频序列和cordic算法的基带数据帧频偏估计和补偿FPGA实现,包含testbench

m基于uw导频序列和cordic算法的基带数据帧频偏估计和补偿FPGA实现,包含testbench

时间:2023-09-15 22:44:08浏览次数:34  
标签:fre 帧频 FPGA 导频 基带 signed 序列 uw

1.算法仿真效果

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

 

 

 

       我们可以看到,带有频偏的基带信号o_I_fre和o_Q_fre得到了有效的频偏补偿,其补偿后的数据o_Ir和o_Qr和原始的基带数据基本一致。

 

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

     基带数据帧频偏估计和补偿是一种用于纠正数字通信系统中频率偏差的技术。在数字通信系统中,发送端将信号进行调制后发送到信道中,接收端接收到信号后需要进行解调,以便恢复出原始信号。然而,由于发送端和接收端的频率偏差,可能会导致解调后的信号出现误差。因此,需要进行频偏估计和补偿,以减小这种误差。

 

       基于uw导频序列和CORDIC算法的基带数据帧频偏估计和补偿是一种常用的技术。下面我们将详细介绍其原理、数学公式和实现方法。

 

        基于uw导频序列的频偏估计和补偿技术是一种利用导频序列来估计和校正频率偏差的方法。在数字通信系统中,通常会在信号中插入一些导频序列,以便接收端能够利用这些导频序列估计出系统的频率偏差。

 

       具体来说,uw导频序列是一种常用的导频序列,其形式为

 

u(w)=N1​​∑n=0N−1​u(n)exp(−jN2πn​w)

 

       其中u(n)为原始信号,N为序列长度。这种导频序列具有良好的自相关性和互相关性,能够有效地估计出系统的频率偏差。

 

        CORDIC算法是一种高效的计算反正切和平方根的算法,其基本思想是通过一系列简单的移位和加减运算来逼近反正切和平方根的计算。在基带数据帧频偏估计和补偿中,可以利用CORDIC算法来计算uw导频序列的自相关性和互相关性,从而估计出系统的频率偏差。

 

       基于uw导频序列和CORDIC算法的基带数据帧频偏估计和补偿的数学公式如下:

 

 

 

基于uw导频序列和CORDIC算法的基带数据帧频偏估计和补偿的实现方法如下:

 

生成uw导频序列。根据uw导频序列的公式生成长度为N的uw导频序列。

接收基带数据帧。从接收端接收基带数据帧,并将其与uw导频序列进行互相关运算。同时,将接收到的基带数据帧与uw导频序列进行自相关运算。

利用CORDIC算法计算自相关性和互相关性的相位差。将自相关性和互相关性的结果输入到CORDIC算法中,计算出自相关性和互相关性的相位差。

计算频率偏差。根据自相关性和互相关性的相位差计算出系统的频率偏差。

计算补偿因子。利用CORDIC算法计算出补偿因子。

对接收到的基带数据进行补偿。将接收到的基带数据与补偿因子相乘,得到补偿后的基带数据。

将补偿后的基带数据进行解调,恢复出原始信号。

3.Verilog核心程序

 

`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 UW_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

 

  

 

标签:fre,帧频,FPGA,导频,基带,signed,序列,uw
From: https://www.cnblogs.com/51matlab/p/17706082.html

相关文章

  • FPGA结构
    FPGA:FieldProgrammableGateArraysComposedof:CLBs(ConfigurableLogicBlocks):Performlogic可编程逻辑功能块IOBs(input/outputBuffers):interfacewithoutsideworldI/OProgrammableinterconnection:connectCLBsandIOBs片内互连线other:multipliersa......
  • Xines广州星嵌全新FPGA开发板—OMAPL138/C6748 DSP+ARM+FPGA
    1  开发板简介    XQ138F-EVM是一款基于广州星嵌TIOMAP-L138(浮点DSPC6748+ARM9)+XilinxSpartan-6FPGA核心板SOM-XQ138F设计的开发板,它为用户提供了SOM-XQ138F核心板的测试平台,用于快速评估SOM-XQ138F核心板的整体性能。 XQ138F-EVM底板采用沉金无铅工艺的四层板设......
  • FPGA 使用参数化设计让4个LED灯以不同频率闪烁
    代码如下moduleled_run8(Reset_n,//复位端口,加_n是使用低电平复位Clk,//时钟端口Led);inputClk;inputReset_n;outputregLed;parameterMCNT=24999999;reg[24:0]counter;always@(posedgeClkornegedgeReset_n......
  • 【FPGA项目】沙盘演练——基础版报文收发
    第1个虚拟项目1. 前言点灯开启了我们的FPGA之路,那么我们来继续沙盘演练。用一个虚拟项目,来入门练习,以此步入数字逻辑的大门。KeyWords:FIFO、SOF、EOF、计数器、缓存、时序图、方案设计2. 项目要求1) 输入报文长度64~2048字节;2) 输入报文之间最小间隔为两拍;3) 输出......
  • FPGA 设计一个以1秒频率闪烁的LED灯
    以1秒频率闪烁的LED灯的代码内容如下://设计一个以1秒频率闪烁的LED灯(亮灭各500ms)moduleled_flash(Reset_n,//复位端口,加_n是使用低电平复位Clk,//时钟端口Led,);inputClk;inputReset_n;outputregLed;reg[24:0]counter;......
  • Lattice下载器高速编程器HW-USBN-2B fpga仿真器ispdown烧录器
    1.概述       HW-USBN-2B编程烧录Lattice所有芯片,速度非常快。支持LatticeFPGA芯片在线稳定仿真、烧录、加密,支持LatticeCPLD烧录。支持外部配置FLASH、PROM配置烧录。    HW-USBN-2B,特点是很快的速度,30Mb/s,是HW-USBN-2A的下载速度10速度。并且支持I2C接口......
  • FPGA 3-8译码器
    moduledecoder_3_8_test(a,b,c,out);inputa;inputb;inputc;outputreg[7:0]out;always@(*)begincase({a,b,c})3'b000:out=8'b0000_0001;3'b001:out=8&#......
  • xilinx赛灵思下载器jtag-hs3兼容alinx仿真fpga烧录digilent高速常见问题解答
    1.概述  XJTAG-HS3是XILINX的USB转JTAG的高速仿真器,可以下载、烧录和仿真Xilinx FPGA和CPLD芯片,以及配置PROM、FLASH. XJTAG-HS3比PlatformCableUSBII下载器快10倍速度。 可以在30Mbit/秒下驱动JTAG/SPI总线,并且能实现对XilinxZYNQ平台处理器核的重置。可以支持ZYN......
  • 通过FPGA实现基于RS232串口的指令发送并控制显示器中目标位置
    1.算法理论概述       通过FPGA实现基于RS232串口的指令发送并控制显示器中目标位置是一种常见的应用场景,用于实现对显示器中目标位置的控制。该系统利用FPGA芯片作为主控制器,通过RS232串口与计算机或其他设备进行通信,接收指令并解析,然后控制显示器中目标位置的移动。该......
  • 米联客 2024 版 FPGA 课程快速入口课程-目录速览(网页版没有页码)
    目录米联客2024版FPGA课程快速入口课程    101AMDFPGAvitis-vivado软件快速入门课程    91概述    92新建VIVADO工程    93添加代码管理文件夹    124添加PLLIP核    125新建工程文件    186完善RTL代码    227添加管脚约束......