单通道、单采样
- 更新时间2023-02-17
- 阅读时长6分钟
单通道、单采样
逐点计算输入信号的快速傅立叶变换(FFT)。
输入/输出

重置
指定是否重置节点内部状态的布尔值。
| TRUE | 重置节点的内部状态。 |
| FALSE | 不重置节点的内部状态。 |
Default value: FALSE
握手输入和输出的行为
在重置为TRUE的周期内,该节点上的握手输入和输出的行为模式如下:
- 忽略输入有效。
- 忽略输出就绪。
- 输出有效为FALSE。
- 输入就绪为FALSE,因此仅处理重置保持TRUE状态超过一个周期的条件分支。重置完成且返回FALSE后,该节点输入就绪。

数据输入
要计算FFT的输入信号。
该输入端接受以下数据类型:
- 8位有符号整数
- 8位无符号整数
- 16位有符号整数
- 16位无符号整数
- 32位有符号整数
- 定点数
- 定点复数
该输入的最大字节长度为32位。

输入有效
表示下一个数据元素是否已到达并等待处理的布尔值。连线上游节点的输出有效输出至该输入,将数据从上游节点传输至该节点。
| TRUE | 下一个数据元素已经到达,等待处理。 |
| FALSE | 下一个数据元素尚未到达。 |

输出就绪
指定下游节点是否已就绪,以便该节点返回一个新值的布尔值。使用反馈节点将下游节点的输入就绪输出端连线至当前节点的输入端。
| TRUE | 后续节点对于该节点返回一个新值已就绪。 |
| FALSE | 后续节点对于该节点返回一个新值未就绪。 |
Default value: TRUE

数据输出
输入信号的FFT。
DFT的最大字长为32位。
自定义FFT字长
通常,FFT的字长比输入数据大log2 (N)+1位,其中N是FFT大小。如需自定义FFT的字长,可单击项选项卡接线端部分中精度控件旁边的定点复数配置器按钮。
降低输出字长可节省FPGA资源,但会降低数据精度。建议用户仿真给定配置,以确保精度满足FPGA资源和定时需求。

数据索引
该节点返回的FFT区间的索引。
Default value: 0

输出有效
布尔值,表示该节点的计算结果是否可用于下游节点。
将该输出连线至后续节点的输入有效的输入,以便将该节点的数据传递至后续节点。
| TRUE | 下游节点可使用该节点的计算结果。 |
| FALSE | 该节点返回未定义值,下游节点无法使用。 注: 该节点在仿真模式下运行时与在硬件上运行时会返回不同的未定义值。 |

输入就绪
指定该节点是否已准备就绪接收新输入数据的布尔值。使用反馈节点将该输出连线至上游节点的输出就绪输入。
| TRUE | 节点已经就绪,可接收新的输入数据。 |
| FALSE | 节点尚未就绪,不可接收新的输入数据。 |
时序示意图
该节点的吞吐率为1周期/采样,表示每次被调用时都会接收数据。下图演示了该节点所采用的定时。
FFT计算时避免数据丢失
计算FFT时,该节点不接受或返回值。在该段时间,如系统或其他节点发送数据至该节点,节点将忽略该数据。该节点接收复杂、不具有统一格式的数据时可能发生上述情况。
要避免数据丢失,新建FIFO以保存数据,直至该节点再次接收数据。确保创建的FIFO足够大,能够在节点计算FFT时收集并保存所有的数据点。如需粗略估计要创建的FIFO的大小,可使用平均系统吞吐率除以该节点的延迟。延迟位于配置窗格项选项卡的性能部分。
优化精度、资源使用或定时
可在配置窗格项选项卡的优化部分对该节点进行配置,以优化精度、最小资源使用或定时。
在目标部分,可以配置该节点以优化输出数据的精度,或在确定输出数据字长时将资源使用降至最低。下表提供了特定用例可使用的选项指南。
| 用例 | 推荐选项 | 节点行为 | 结果 |
|---|---|---|---|
| 希望以增加FPGA资源使用为代价来优化输出数据最后一位的精度。 | 精度 | 该节点通过填充零将输入数据的字长扩展为输出字长。所有内部复数乘法运算都使用该字长。 | 与资源使用选项相比,复数乘法器保留更多的位,并且输出数据中增加的log2(N)+1位精度更高。 |
| 希望以降低输出数据精度为代价来减少FPGA资源使用。 | 资源使用 | 该节点从输入到输出逐步增加字长。因此,复数乘法器的位长度也是逐级增加的。 | 与精度选项相比,复数乘法器和内部寄存器的位宽较小,因而节省了FPGA资源,但也可能在编译时导致更高的FPGA时钟频率。 |
如果配置优化目标后此节点仍无法满足精度、资源或定时要求,则可以调整旋转因子字长和蝶形中的流水线层级数的值以改进此节点的性能。