Engee 文档

IFFT

输入信号的反快速傅里叶变换 (IFT)。

类型: SubSystem

图书馆中的路径:

/Signal Operations/Transforms/IFFT

说明

程序块 IFFT 计算多维输入数组第一维的反快速傅立叶变换(FFT), -D。

该程序块使用两种可能的 FFT 实现之一。您可以选择基于 FFTW 库的实现,或基于 Radix-2 算法的实现。

当输入信号 的长度大于 OPF 的长度 时,可以观察到输出信号振幅的增加。这是因为 IFFT 使用长度模数据重置 ,以保留所有可用的输入样本。

为避免振幅增加,可将输入采样长度 截断为 OPF 长度 。要做到这一点,可在模型中的块 之前放置一个块 IFFT .

端口

输入

# 端口_1 — 输入信号
向量` | 矩阵` | 多维数组

Details

用于 OPF 计算的向量、矩阵或多维数组输入信号。

设备通过对多维输入信号的第一次测量来计算 OPF。

数据类型

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64.

复数支持

输出

# 端口_1 — 输入信号的 OPF
向量"|"矩阵"|"多维数组

Details

以向量、矩阵或多维数组形式返回的输出信号。

OPF 由多维输入数组的第一维计算得出。

-th 输出通道的第-个条目 等于 -th 输入通道的 -point -point 逆离散傅立叶变换 (ODPF):

π
数据类型

| Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64.

复数支持

参数

Parameters

# FFT 实现 — FFT 实现
Radix-2 | FFTW

Details

FFT 实现:

  • FFTW - 支持任意长度的输入信号。

  • Radix-2 - 实现浮点数据的位处理。尺寸为 的输入矩阵的维数 必须等于 2 的幂次。若要处理其他输入数据维数,请使用块 ,将这些维数扁平化或截断为 2 的幂次,或者在可能的情况下,选择 FFTW 实现。

Radix-2 | FFTW

默认值

Radix-2

程序使用名称

FFTImplementation

可调谐

可计算

# 输入按位反序排列 — 位反转输入

Details

指定输入通道元素相对于输出通道元素的顺序。选中此复选框时,输入通道项将以相对于输出序列顺序的位反转顺序显示。取消选中时,输入通道项将以相对于输出序列顺序的线性顺序显示。

IFFT 块以位反序计算其输入。IFFT 块输入数据的线性排序需要额外的位反转操作。在许多情况下,可以通过选中*以位反序输入*复选框来提高*IFFT*块的速度。

依赖关系

要使用此选项,请将 FFT 实现 参数设置为 "Radix-2"。

默认值

false (关掉)

程序使用名称

BitRevOrder

可调谐

可计算

# 将输出除以 FFT 长度 — 将输出除以 FFT 长度

Details

选择该选项后,设备将按 FFT 长度对 OPF 输出进行除法。如果希望 OPF 输出保持在与输入相同的振幅范围内,该选项非常有用。

默认值

true (已开启)

程序使用名称

Normalize

可调谐

可计算

# 从输入维数继承 FFT 长度 — 从输入维度继承 FFT 长度

Details

选择此复选框可从输入尺寸继承 FFT 长度。

依赖关系

如果未选择此复选框,则 FFT 长度 参数可用于指定长度。

默认值

true (已开启)

程序使用名称

InheritFFTLength

可调谐

可计算

# FFT 长度 — FFT 长度

Details

以整数形式指定 FFT 长度,

如果*FFT 实现*参数设置为 "Radix-2 "或*以位反序输入*复选框被选中,该值必须为 2。

依赖关系

要使用此参数,请取消选中*从输入尺寸继承 FFT 长度*。

默认值

64

程序使用名称

FFTLength

可调谐

可计算

# 当 FFT 长度小于输入长度时,打包输入数据 — 卷积或截断输入数据

Details

根据 FFT 长度选择对输入数据进行卷积还是截断。如果选中,当 FFT 长度小于输入长度时,将在 FFT 操作前执行模卷积。如果未选中,则在 FFT 操作前将输入数据截断至 FFT 长度。

依赖关系

要使用此选项,请清除*从输入尺寸继承 FFT 长度*复选框。

默认值

true (已开启)

程序使用名称

WrapInput

可调谐

可计算

算法

FFTW 实现

FFTW "实现提供了优化的 FFT 计算,包括支持变换长度等于或不等于 2 的幂次(如在模拟中)。输入数据类型必须是浮点型。

Radix-2 实现

Radix-2 "实现支持位反转处理,并允许程序块执行 C 代码生成。尺寸为 的输入矩阵的维数 必须等于 2 的幂次。要处理其他输入维数,可使用 块将这些维数增强或截断为 2 的幂次。

当选择 "Radix-2 "时,程序块将实现以下一种或多种算法:

  • 蝴蝶运算

  • 双信号算法

  • 半长算法

  • Radix-2 时差稀疏 (DIT) 算法

  • Radix-2 频率 (DIF) 稀疏算法

实信号和复信号的 Radix-2 算法

输入数据的复杂性 输出数据的阶次 用于 FFT 计算的算法

复数

线性

位反转运算和 Radix-2 DIT 算法

复数

比特反转

Radix-2 DIF

线性

位反转运算和 Radix-2 DIT 与半长和双信号算法相结合

比特反向

结合半长和双信号算法的 Radix-2 DIF

在计算 DIF 之前,先将实数序列形成复数序列,可以提高 FFT 算法处理实数输入信号的效率。如果有 个实数输入通道,FFT 单元通过对第一个 输入通道应用双信号算法,对最后一个奇数通道应用半长算法来生成这些复序列。

针对三角函数值表优化 Radix-2

在某些情况下,Radix-2 块算法会计算所有可能的三角函数捻系数值(捻系数)

π ,

其中

  • - 是两个值中的较大值:

  • .

程序块将这些值存储在一个表中,并在模拟过程中进行检索。下表显示了表格中浮点数的条目数:

N 点 FFT 的表格条目数

浮点

文献

  1. Orfanidis, S. J. "Introduction to Signal Processing." Upper Saddle River, NJ: Prentice Hall, 1996, p. 497.

  2. Proakis, John G. and Dimitris G. Manolakis."Digital Signal Processing, 3rd ed." Upper Saddle River, NJ: Prentice Hall, 1996.

  3. FFTW (https://www.fftw.org)

  4. Frigo, M. and S. G. Johnson, "FFTW: An Adaptive Software Architecture for the FFT," Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Vol.3, 1998, pp.

另请参见

  1. FFT