AnyMath 文档

FFT

输入信号的快速傅立叶变换(FFT)。

模块类型: FFT

库中的路径:

/Signal Operations/Transforms/FFT

资料描述

座 *FFT*从多维输入数组的第一维计算快速傅立叶变换(FFT) .

块使用两种可能的FFT实现之一。 您可以根据库选择实现。 FFTW,或基于算法的实现 基-2. 有关详细信息,请参阅算法

当输入信号长度为 更长的FFT长度 可以观察到输出信号幅度的增加。 这是由于这样的事实,该块 *FFT*使用数据复位模长度 以保存所有可用的输入样本。

为了避免振幅的这种增加,可以截断输入样本的长度。 到FFT的长度 . 为此,请在模型中放置一个块 垫子*在单位前面 *FFT.

港口

输入

# IN_1 — 的输入信号
向量资料 | 矩阵| 多维数组

Details

用于计算FFT的输入信号是矢量、矩阵或多维阵列的形式。

块从多维输入信号的第一次测量计算FFT。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

是的

输出

# OUT_1 — 输入信号的FFT
向量资料 | 矩阵| 多维数组

Details

从多维输入数组的第一维计算的FFT,作为向量、矩阵或多维数组返回。

-我在录音 -th输出通道 等于 -第一点 -点离散傅立叶变换(dft) -第输入通道:

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

是的

参数

基本参数

# FFT 实现 — FFT的实现
基-2 | FFTW

Details

FFT的实现:

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

  • 基-2 -按位数据处理的实现。 尺寸 输入矩阵大小 它必须等于二的幂。 要处理其他输入数据大小,请使用块 *垫子*将这些维度对齐或截断为2的幂,或者,如果可能的话,选择一个实现 FFTW.

Radix-2 | FFTW

默认值

Radix-2

程序使用名称

FFTImplementation

可调谐

可计算

# 以位反转顺序输出 — 以位相反的顺序输出
Logical

Details

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

FFT*以位相反的顺序计算其输出。 块输出数据的线性排序 *FFT*需要额外的反向位转换操作。 在许多情况下,您可以提高块速度。 *FFT*勾选方格 *以位反转顺序输出.

依赖关系

若要使用此参数,请为参数设置 *FFT 实现*价值 基-2.

默认值

false (关掉)

程序使用名称

OutInBitReversedOrder

可调谐

可计算

# 按FFT长度划分输出 — 将输出除以FFT的长度
Logical

Details

如果选择此选项,则块将FFT输出除以FFT的长度。 当您希望FFT输出保持在与输入相同的幅度范围时,此选项非常有用。

默认值

false (关掉)

程序使用名称

DivideOutput

可调谐

可计算

# 从输入维度继承 FFT 长度 — 从输入维度继承FFT的长度
Logical

Details

选择从输入维度继承FFT的长度。 选择此选项时,输入数据的长度必须为2的幂。

依赖关系

如果未选择此选项,该参数将可用于设置长度。 FFT 长度.

默认值

true (已开启)

程序使用名称

InheritFFTLength

可调谐

可计算

# FFT 长度 — FFT长度
Int64 integer

Details

将FFT的长度指定为2的幂的整数。

如果为参数 FFT 实现*值已设置 基-2 或选中复选框 *以位反转顺序输出,该值必须等于二的幂。

依赖关系

要使用此选项,请取消选中该框。 从输入维度继承 FFT 长度.

默认值

64

程序使用名称

FFTLength

可调谐

可计算

# 当FFT长度短于输入长度时,对输入数据进行环形截断 — 输入数据的卷积或截断
Logical

Details

根据FFT的长度选择卷积或截断输入数据。 如果选择此参数,则在FFT操作之前,当FFT的长度小于输入的长度时,会发生模卷积。 如果取消选中此框,则在FFT操作之前将输入数据截断为FFT的长度。

依赖关系

要使用此选项,请取消选中该框。 从输入维度继承 FFT 长度.

默认值

true (已开启)

程序使用名称

WrapInputData

可调谐

可计算

算法

FFTW实现

FFTW实现提供了优化的FFT计算,包括支持等于和不等于2的幂的变换长度,如仿真中。 输入数据类型必须是浮点型。

Radix-2实施

Radix-2实现支持位反向处理,并允许块生成C代码。 尺寸 输入矩阵大小 它必须等于二的幂。 要处理其他输入数据大小,请使用块 *垫子*将这些维度补充或截断为二的幂。

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

*蝴蝶行动; *双信号算法; *半长算法; *Radix-2时间稀释算法(DIT); *基数-2频率抽取算法(DIF)。

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

输入数据的复杂性 输出数据的顺序 用于计算FFT的算法

综合

线性的

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

综合

位-反向

基数-2DIF

材料

线性的

位反转和基数-2DIT操作结合半长和双信号算法

材料

位-反向

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

FFT算法的效率可以通过在计算DFT之前从实序列形成复数序列来针对实输入信号提高。 如果可用 使用实输入通道,FFT模块通过将双信号算法应用于第一个通道来生成这些复杂序列。 输入通道,并将半长算法应用于最后一个奇数通道。

三角函数值表的基数-2优化

在某些情况下,基数-2块算法计算twiddle因子的所有可能的三角函数值:

π

哪里

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

  • .

该块将这些值存储在表中,并在模拟期间检索它们。 浮点条目的数量为 .

文学作品

  1. Orfanidis,S.J._介绍信号处理。_Upper Saddle River,NJ:Prentice Hall,1996,p.497.

  2. Proakis,John G.和Dimitris G. Manolakis。 数字信号处理,第3版。 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,第1381-1384页。