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

本文转载自:FPGA技术实战的CSDN博客

引言: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。

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

    图3、FFT IP核接口介绍

    最新文章

    最新文章