计算快速傅里叶变换(FFT)。单通道、单采样输入格式逐点计算FFT。单通道、多采样输入格式允许用户对带多个采样/周期的数据流执行FFT分析。

使用Express VI的 单通道单采样 输入格式Scaled Window Express VI 可最大程度地减少与截断波形相关的频谱泄漏。您还可以使用如使用 单通道、单采样 输入格式,FFT to SpectrumVI可将该Express VI的输出转换为幅度谱或功率谱。


icon

对话框选项

参数 说明
输入格式

包含下列选项:

  • 单通道,单采样-当每个输入为一个通道的一个采样时,选择该选项。
  • Single Channel, MultipleSamples-如果要在每个时钟周期处理来自一个通道的多个采样,请选择该选项。选择该选项时,实部数据输入虚部数据输入实部数据输出虚部数据输出为数组。数组中的每个元素表示一个采样。这些输入支持的数组大小为2、4、8和16。如使用每个数据时钟周期发送多个采样的硬件, 单通道,多采样 输入格式允许直接处理来自FPGA I/O节点的数据.如不使用I/O模块,仍可使用该选项获取高于单通道、单采样输入格式的数据吞吐量。
    注:单通道、单采样 输入格式相比,选择 单通道、多采样 输入格式会消耗更多的FPGA资源。如因FPGA终端资源不够导致编译失败,可考虑使用具有较多资源的FPGA终端。
转换参数

包含下列选项:

  • FFT大小-指定Express VI计算的变换的长度。在 输入格式 部分选择 单通道、单采样 时,有效选项为8到8,192之间的2的幂。在 输入格式 部分选择 单通道、多采样 时,有效选项为8到65,536之间的2的幂。默认值为64。
  • 方向-指定计算正向FFT还是逆FFT。
输出数据类型

包含下列选项:

  • 适应源-指定Express VI是否决定输出数据类型。如要使用字长确定输出输出类型,取消勾选匹配至源复选框。
  • 字长-指定[8, 32]范围内的任意输出字长。仅当取消选中适应源复选框时,字长 才可用。如输入为有符号数据,字长必须位于输入字长和32之间。如输入为无符号数据,字长必须位于输入字长+ 1和32之间。连线至实部数据输入的数据判定输入字节长度。
    提示 减小 字长 的值可节省FPGA资源,但会降低精度。建议用户仿真给定配置,以确保精度满足FPGA资源和定时需求。
  • 整数字长-显示Express VI计算的输出整数字长。
执行模式

包含下列选项:

  • 在单周期定时循环外-在单周期定时循环外使用Express VI时,选择该选项。仅当在输入格式中选择单通道、单采样时,该选项可用。

    在单周期定时循环外使用该Express VI将产生2倍长度的延迟,即Express VI返回有效的输出数据前,其使用2倍的长度调用Express VI。首次延迟后,每次LabVIEW调用Express VI时,该Express VI返回有效的输出。

  • 在单周期定时循环内部-在单周期定时循环内部使用Express VI时,选中该选项。选择在单周期定时循环内启用吞吐率选项。在单周期定时循环内执行Express VI时,可使用握手信号 来安排数据的定时。
  • 吞吐量-指定两个连续输入数据之间的最小周期数。仅当选择单通道,单采样并选择在单周期定时循环内时,该选项可用。如选择单通道、单采样或选择单周期定时循环外部,LabVIEW设置吞吐率为1调用/输入,即该Express VI可在每次被调用时接收数据。如选择单通道、多采样,LabVIEW设置吞吐率为1调用/输入,即该Express VI可在每个周期接收新数据。
    提示 增加吞吐量会消耗更多的FPGA资源。仅当需要较高吞吐率时选择1 周期/ 输入
  • 延迟-显示输入帧的第一个点与有效输出帧的第一个点之间的周期数。
  • 时钟速率-指定Express VI内部使用的流水线级。增加级数时,该Express VI在单周期定时循环内部单周期定时循环外部编译的时钟频率也将增加。该选项不会具体地设置始终频率。
    注: 调整 时钟速率 值将增加Express VI的FPGA资源使用率和延迟。延迟越大,该Express VI返回有效结果所需的时间越长。

    如果在 输入格式 部分选择 单通道,多采样 ,则 时钟速率 的值为高。

实现目标

指定Express VI是否优化FFT结果精度,或FPGA终端的资源使用量。仅当用户在输入格式中选择单通道、多采样,在输出数据类型中选择匹配至源时,该选项可用。如取消选择匹配至源,仅能选择精度。此时用户配置的输出字节长度将决定精度和FPGA资源使用量。包含下列选项:

  • Accuracy-如果希望输出数据的最后一位更精确,但会增加FPGA资源使用率,请选择该选项。默认值为精度
  • 资源使用量-如要减少FPGA资源使用量,但结果不准确,请选择该选项。
    注: 当输入包含每个周期16个采样且FFT长度为16384、32768或65536时,NI建议选择 资源使用 。当输入包含每个周期16个采样,FFT长度为16384、32768、65536时,选择精度将会对FPGA资源产生较大的需求。
输入/输出索引模式

指定输入/输出数据的FFT帧的索引间隔。下图 输入/输出索引码型 表示您选择的配置。包含下列选项:

  • 连续输入索引/连续输出索引-如果希望FFT帧中的索引对于输入数据和输出数据都是连续的,请选择该选项。仅当在输入格式中选择单通道、单采样时,该选项可用。
  • 连续输入索引/M间隔输出索引-如果希望FFT帧中的索引对于输入数据是连续的,而FFT帧中的索引对于输出数据的间隔为 M,则选择该选项,其中 M=FFT大小/每个输入的采样数。仅当在输入格式中选择单通道、多采样时,该选项可用。
    注: 如FFT Express VI的数据源来自另一个FFT Express VI,例如对FFT结果执行反FFT时,应确保第二个FFT Express VI的输入码型与第一个FFT Express VI的输出码型相同.否则,将导致FFT结果不准确。
  • M间隔输入索引/连续输出索引-当FFT帧中的索引的输入数据间隔为M时,选择该选项,其中 M=FFT大小/每个输入的采样数,并且FFT帧中的索引帧对于输出数据是连续的。仅当在输入格式中选择单通道、多采样时,该选项可用。
    注: 如FFT Express VI的数据源来自另一个FFT Express VI,例如对FFT结果执行反FFT时,应确保第二个FFT Express VI的输入码型与第一个FFT Express VI的输出码型相同.否则,将导致FFT结果不准确。
配置反馈

显示Express VI的执行方式和其他有用信息,如警告和错误信息。

输入/输出

  • cunkn.png 实数数据输入

  • cunkn.png 虚数数据输入

  • cbool.png 重置

  • iunkn.png 实部数据输出

  • ibool.png 输出有效

  • iu16.png 数据索引

  • iunkn.png 虚数数据输出

  • 单周期定时循环外部的定时框图(单通道、单采样输入格式)

    下列框图演示了在单周期定时循环外使用该Express VI时的定时。

    单周期定时循环内部的定时框图(吞吐率为1 周期/输入)

    下列框图演示了吞吐率为1 周期/输入时,在单周期定时循环内使用该Express VI的定时。

    单周期定时循环内部的定时框图(吞吐率不等于1 周期/输入)

    下列框图演示了吞吐率不等于1 周期/输入时,在单周期定时循环内使用该Express VI的定时。

    FFT计算时避免数据丢失

    在单周期定时循环内部,该Express VI执行快速傅立叶变换时不会接收或返回值。在该段时间,如系统或其他节点发送数据至该Express VI,LabVIEW将忽略该数据。FFT Express VI接收复杂的,不具有统一格式的数据时可能发生上述情况。

    为确保数据不丢失,创建FIFO 保存数据,直至Express VI再次接受值。确保创建的FIFO足够大,其能够在FFT计算时间内收集并保存所有的数据点。如需粗略估计要创建的FIFO的大小,可使用平均系统吞吐率除以该Express VI的延迟。

    选择适当的输入/输出索引码型(单通道,多采样输入格式)

    使用单通道、多采样输入格式时,必须选择适当的输入/输出索引模式。如FFT Express VI的数据源为FPGA I/O节点,选择连续输入索引/连续输出索引。如数据源为另一个FFT Express VI的输出(例如,对FFT结果执行反傅立叶变换),请确保第二个FFT Express VI的输入模式与第一个FFT Express VI的输出模式相同。否则,将导致FFT结果不准确。

    对于4096点FFT(4采样/周期),使用连续输入索引/ M间隔输出索引输入/输出索引模式(其中M等于1024),第一个有效输入周期中的输入采样索引为0, 1, 2, 3,第二个周期中的索引为4, 5, 6, 7并以此类推。第一个有效输出周期中的输出采样索引为0, 1024, 2048, 3072,第二个周期中的输出索引为1, 1025, 2049, 3073并以此类推。下图为连续输入索引/ M间隔输出索引输入/输出索引模式

    相反,如选择M间隔输入索引/连续输出索引输入/输出索引模式,输出为连续模式。与上述情况比较,输入和输出模式互为相反。下图为M间隔输入索引/连续输出索引输入/输出索引模式

    实现目标注意事项(单通道,多采样输入格式)

    理论上,对定点输入数据执行N点FFT将为输出数据增加log2(N)+1位字节长度。在实现目标中选择精度时,FFT Express VI通过填充零将输入数据字节长度扩展为输出字节长度,所有内部复数乘法运算均使用该字节长度。相反,选择资源使用时,FFT Express VI由输入至输出逐级增加字节长度。因此,复数乘法器的位长度也是逐级增加的。

    选择资源使用时,复数乘法器相比选择精度时保留更少的位,因此输出数据增加的log2(N)+1位与选择精度时相比,精度较低。由于复数乘法器和内部寄存器的位宽度少于选择精度时生成结果的位宽度,因此资源使用可节省FPGA资源。选择资源使用时,编译时可实现更高的FPGA时钟速率,因为相对于选择精度实现目标,复数乘法器使用更少的字节长度。

    范例

    参考LabVIEW FPGA模块中包含的下列范例文件。

    • labview\examples\CompactRIO\FPGA Fundamentals\FPGA Math and Analysis\FFT\FFT.lvproj
    • labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\FFT (1 Channel, N Samples)\FFT (1 Channel, N Samples).lvproj
    • labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\Cross-correlation Using FFT (1 Channel, N Samples)\Cross-correlation Using FFT (1 Channel, N Samples).lvproj
    • labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\FFT\FFT.lvproj