主要内容

FFT

输入的快速傅里叶变换 (FFT)

  • FFT block

库:
DSP System Toolbox / Transforms

描述

FFT 模块计算一个 N 维输入数组 u 的第一个维度上的快速傅里叶变换 (FFT)。该模块使用两种可能的 FFT 实现之一。您可以选择基于 FFTW 库的实现或基于一组基数-2 算法的实现。要允许该模块选择实现,您可以选择自动。有关 FFT 实现的详细信息,请参阅算法

如果用户指定的 FFT 长度不等于 P,则在执行 FFT 运算之前会发生零填充或截断,或模长度数据绕回。对于 PM 的 FFT:

y = fft(u,M) % P ≤ M

绕回:

y(:,L) = fft(datawrap(u(:,L),M)) % P > M; L = 1,...,N

截断:

y (:,L) = fft(u,M) % P > M; L = 1,...,N

提示

当输入长度 P 大于 FFT 长度 M 时,您可能会在 FFT 输出中看到幅值增大。发生这些幅值增大是因为 FFT 模块使用模 M 数据绕回来保留所有可用的输入采样。

为避免此类幅值增大,您可以将输入采样的长度 P 截断至 FFT 长度 M。为此,请在您的模型中的 FFT 模块前放置一个 Pad 模块。

示例

端口

输入

全部展开

用于计算 FFT 的输入信号。模块沿 N 维输入信号的第一个维度计算 FFT。

有关模块如何计算 FFT 的详细信息,请参阅描述算法

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
复数支持:

输出

全部展开

沿 N 维输入数组的第一个维度计算的 FFT。当模块的输出具有整数或定点数据类型时,它始终为有符号。

L 个输出通道的第 k 个条目 y(k,L) 等于第 L 个输入通道的 M 点离散傅里叶变换 (DFT) 的第 k 个点:

y(k,L)=p=1Pu(p,L)ej2π(p1)(k1)/Mk=1,,M

有关模块如何计算 FFT 的详细信息,请参阅描述算法

数据类型: single | double | int8 | int16 | int32 | fixed point
复数支持:

参数

全部展开

主要

将此参数设置为 FFTW 可支持任意长度的输入信号。使用 FFTW 实现时,模块会将生成的代码限制为仅在能够运行 MATLAB® 的主机上运行。

将此参数设置为基数-2 可支持位反转处理、定点或浮点数据,或使用 Simulink® Coder™ 生成可移植 C 代码。M×N 输入矩阵的维度 M 必须为 2 的幂。要处理其他输入大小,请使用 Pad 模块将这些维度填充或截断至 2 的幂,或尽可能选择 FFTW 实现。有关基数-2 模式所用算法的详细信息,请参阅 基数-2 实现

将此参数设置为自动可让模块选择 FFT 实现。对于具有非 2 的幂变换长度的浮点输入,会自动选择 FFTW 算法。在其他情况下,会自动选择基数-2 算法。对于非 2 的幂变换长度,模块将生成的代码限制为只能在 MATLAB 主机上运行。

指定输出通道元素相对于输入元素的排序顺序。当您选中此复选框时,输出通道元素相对于输入排序以位反转顺序显示。如果清除此复选框,输出通道元素相对于输入排序以线性顺序显示。

注意

FFT 模块以位反转顺序计算其输出。线性排序 FFT 模块输出需要额外的位反转运算。在许多情况下,您可以通过选中输出采用位反转顺序复选框来提高 FFT 模块的速度。

有关输出排序的详细信息,请参阅Linear and Bit-Reversed Output Order

依赖关系

要启用此参数,请将 FFT 实现设置为自动基数-2

当您选中此参数时,模块会将 FFT 的输出除以 FFT 长度。当您需要 FFT 的输出保持在与其输入相同的振幅范围内时,此选项很有用。这在处理定点数据类型时特别有用。

选中它即可从输入维度继承 FFT 长度。如果选中此复选框,输入长度必须为 2 的幂。

依赖关系

如果未选中此复选框,FFT 长度参数将变为可用,您可以指定长度。

将 FFT 长度指定为大于或等于二的整数。

当您将 FFT 实现参数设置为 Radix-2 或选中输出采用位反转顺序复选框时,此值必须为 2 的幂。

依赖关系

要启用此参数,请清除从输入维度继承 FFT 长度复选框。

选择根据 FFT 长度对输入进行绕回或截断处理。如果选中此参数,则当 FFT 长度短于输入长度时,在 FFT 运算前会发生模长度数据绕回。如果清除此复选框,则会在 FFT 运算前将输入数据截断至 FFT 长度。

依赖关系

要启用此参数,请清除从输入维度继承 FFT 长度复选框。

数据类型

为定点运算选择舍入模式

限制

正弦表值不遵守此参数;相反,它们始终舍入到最邻近值

当满足以下所有条件时,舍入模式参数对数值结果无影响:

  • 乘积输出数据类型为继承:通过内部规则继承

  • 累加器数据类型为继承:通过内部规则继承

使用这些数据类型设置时,模块将以全精度模式运行。

选中此参数时,模块会对其定点运算的结果进行饱和处理。清除此参数时,模块会对其定点运算的结果进行绕回处理。有关 saturatewrap 的详细信息,请参阅定点运算的溢出模式

限制

当满足以下所有条件时,对整数溢出进行饱和处理参数对数值结果无影响:

  • 乘积输出数据类型为继承:通过内部规则继承

  • 累加器数据类型为继承:通过内部规则继承

使用这些数据类型设置时,模块将以全精度模式运行。

选择如何指定正弦表值的字长。正弦表值的小数长度始终等于字长减一。您可将此参数设置为:

  • 继承数据类型的规则,例如,继承:与输入的字长相同

  • 计算结果为有效数据类型的表达式,例如,fixdt(1,16)

点击显示数据类型助手按钮 以显示数据类型助手,它可帮助您设置正弦表参数。

有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

限制

正弦表值不遵守舍入模式对整数溢出进行饱和处理参数;相反,它们始终经过饱和处理并舍入到最邻近值

指定乘积输出数据类型。有关描述此模块中使用的乘积输出数据类型的图示,请参阅定点数据类型Multiplication Data Types。您可将此参数设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承。有关此规则的详细信息,请参阅Inherit via Internal Rule

  • 计算结果为有效数据类型的表达式,例如,fixdt(1,16,0)

点击显示数据类型助手按钮 以显示数据类型助手,它可帮助您设置乘积输出参数。

有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

指定累加器数据类型。有关描述此模块中使用的累加器数据类型的图示,请参阅定点数据类型。您可将此参数设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承。有关此规则的详细信息,请参阅Inherit via Internal Rule

  • 计算结果为有效数据类型的表达式,例如,fixdt(1,16,0)

点击显示数据类型助手按钮 以显示数据类型助手,它可帮助您设置累加器参数。

有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

指定输出数据类型。有关描述此模块中使用的输出数据类型的图示,请参阅定点数据类型。您可将此参数设置为:

  • 继承数据类型的规则,例如,继承:通过内部规则继承

    当您选择继承:通过内部规则继承时,模块会自动计算输出字长和小数长度。模块用于计算理想输出字长和小数长度的方程取决于将输出除以 FFT 长度复选框的设置。

    • 当您选中将输出除以 FFT 长度复选框时,理想输出字长和小数长度与输入字长和小数长度相同。

    • 当您清除将输出除以 FFT 长度复选框时,模块根据以下方程计算理想输出字长和小数长度:

      WLideal output=WLinput+floor(log2(FFT length1))+1

      FLideal output=FLinput

    然后,内部规则使用这些理想结果选择适合您硬件的字长和小数长度。有关详细信息,请参阅Inherit via Internal Rule

  • 计算结果为有效数据类型的表达式,例如,fixdt(1,16,0)

点击显示数据类型助手按钮 以显示数据类型助手,它可帮助您设置输出参数。

有关详细信息,请参阅控制信号的数据类型 (Simulink)

指定模块应输出的最小值。默认值为 [](未指定)。Simulink 软件使用此值执行:

  • 仿真范围检查(请参阅指定信号范围 (Simulink)

  • 定点数据类型的自动定标

指定模块应输出的最大值。默认值为 [](未指定)。Simulink 软件使用此值执行:

  • 仿真范围检查(请参阅指定信号范围 (Simulink)

  • 定点数据类型的自动定标

选择此参数可防止定点工具覆盖您在“模块”对话框中指定的数据类型。

模块特性

数据类型

double | fixed point | integer | single

直接馈通

多维信号

可变大小信号

a

过零检测

a 仅当选中 Inherit FFT length from input dimensions 复选框时,才支持可变大小信号。

详细信息

全部展开

算法

全部展开

参考

[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.

[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. 1381-1384.

扩展功能

全部展开

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出