数字信号处理(二):Xilinx FFT IP核详解(一)

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

  • Xilinx FFT IP核的特性
  • Xilinx FFT IP核输入输出接口介绍

1.Xilinx FFT IP核特性

数字信号处理(二):Xilinx FFT IP核详解(一)_第1张图片

图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。

数字信号处理(二):Xilinx FFT IP核详解(一)_第2张图片

图2、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核接口介绍

数字信号处理(二):Xilinx FFT IP核详解(一)_第3张图片

图3、FFT IP核接口介绍


延伸阅读:数字信号处理(一):Xilinx Vivado DDS IP核设计实例(文末附源码)

更多其他技术文章可以关注我的公众号“FPGA技术实战”,欢迎交流 !

你可能感兴趣的:(FPGA数字信号处理)