原创 【FPGA】数字信号处理(二):Xilinx FFT IP核详解(一)

2023-4-3 16:28 732 3 3 分类: FPGA/CPLD 文集: FPGA

我从之前就关注一个工程师分享有关于FPGA的资料,陆陆续续也记录收藏了不少,这次分享给大家共同学习和进步吧

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

引言:FFT(快速傅里叶变换)在雷达信号处理、图像处理、无线通信等行业有着广泛的应用。本文及后续几篇文章,我们针对Xilinx的FFT IP核v9.0提供详细介绍。本文作为开篇,介绍以下内容:

Xilinx FFT IP核的特性

Xilinx FFT IP核输入输出接口介绍

1.Xilinx FFT IP核特性

图1、Xilinx FFT IP核

Xilinx®LogiCORE™ IP快速傅立叶变换(FFT)核实现了Cooley-Tukey-FFT算法,这是计算离散傅立叶变换(DFT)的有效方法。该IP核支持以下特性:

正向和反向复数FFT(FFT和IFFT),实时可配置;

转换点数N = 2m,m = 3~16

数据采样精度bx = 8~34

相位因子精度bw = 8~34

算法类型:

未缩放(全精度)定点

缩放定点

浮点

定点

浮点接口

舍去或截断处理

数据和相位因子存储可以选择BRAM或者

分布式RAM

缩放定点核支持运行时可配置缩放

输出自然序或者倒序

可选的循环前缀插入

四种架构,支持资源和转换时间权衡

AXI4-Steram接口

2.FFT IP核概述

该IP核支持N点FFT或者IFFT计算,N为2m,m取值3~16。

对于定点输入,输入数据为N个复数向量,表示双路bx-bit二进制补码,即实部和虚部都为bx-bit二进制补码,bx = 8~34,相似地,相位因子bw也为8~34bit位宽。

对于单精度浮点输入,输入N个复数向量,表示双路32-bit浮点数据,相位因子为24或者25bit定点数。

FFT计算支持三种算法选项:

全精度不缩放算法

定点缩放,用户可以提供缩放因子

浮点

实时调整缩放

所有的片上使用的存储器可以是块RAM(BRAM)或者分布式RAM(逻辑资源实现)。FFT输入数据可以是自然序方式,输出可以选择自然序或者倒序输出。倒序输出占用的资源更多一些。

转换点数N、正向或反向转换,缩放因子和循环前缀长度都是实时可配置的,转换类型(FFT或IFFT)、缩放因子和循环前缀长度可以在帧间进行改变。改变转换点数N需要复位IP核。

FFT核提供四种可选的算法:流水线I/O、Radix-4突发I/O、Radix-2突发I/O和Radix-2 Lite I/O。

图1、FFT IP核算法选择

3.算法概述

FFT核使用Radix-4和Radix-2分解计算DFT。对于突发I/O架构,使用DIT算法,DIF算法用于流水线I/O架构。当使用Radix-4分解时,N点FFT包含log4(N)级蝶形运算,每级包含N/4个Radix-4蝶形运算。如果N不是4的幂,则需要额外的Radix-2级来组合运算。类似,对于N点FFT使用Radix-2分解运算包含log2(N)级运算,每级包含N/2个Radix-2蝶形运算。

逆FFT(IFFT)是通过共轭对应的的FFT的相位因子来计算的。

4.FFT IP核接口介绍

图2、FFT IP核接口介绍

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条