Документация Engee

IFFT

Страница в процессе разработки.

Обратное быстрое преобразование Фурье (ОБПФ) входного сигнала.

ifft

Описание

Блок IFFT вычисляет обратное быстрое преобразование Фурье (ОБПФ) по первому измерению многомерного входного массива, -D.

Блок использует одну из двух возможных реализаций БПФ. Можно выбрать реализацию, основанную на библиотеке FFTW, или реализацию, основанную на алгоритме Radix-2.

Когда длина входного сигнала, , больше длины ОБПФ, , вы можете наблюдать увеличение амплитуды выходного сигнала. Это происходит из-за того, что блок IFFT использует сброс данных по модулю длины , чтобы сохранить все доступные входные выборки.

Чтобы избежать такого увеличения амплитуды, можно усечь длину входной выборки до длины ОБПФ . Для этого поместите в модель блок Pad перед блоком IFFT.

Порты

Вход

# Port_1 — входной сигнал
вектор | матрица| многомерный массив

Details

Входной сигнал для вычисления ОБПФ в виде вектора, матрицы или многомерного массива.

Блок вычисляет ОБПФ по первому измерению многомерного входного сигнала.

Типы данных

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

Поддержка комплексных чисел

Да

Выход

# Port_1 — ОБПФ входного сигнала
вектор | матрица| многомерный массив

Details

Выходной сигнал, возвращаемый в виде вектора, матрицы или многомерного массива.

ОБПФ, вычисленное по первому измерению многомерного входного массива.

-я запись -го выходного канала, , равна -й точке -точечного обратного дискретного преобразования Фурье (ОДПФ) -го входного канала:

π
Типы данных

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

Поддержка комплексных чисел

Да

Параметры

Parameters

# FFT implementation — реализация БПФ
Radix-2 | FFTW

Details

Реализация БПФ:

  • FFTW — поддержка входного сигнала произвольной длины.

  • Radix-2 — реализация побитовой обработки данных с плавающей точкой. Размерность входной матрицы размером на должна быть равна степени двойки. Для работы с другими размерами входных данных используйте блок Pad, чтобы выровнять или усечь эти размеры до степени двойки, или, если возможно, выберите реализацию FFTW.

Значение по умолчанию

Radix-2

Имя для программного использования

FFTImplementation

Настраиваемый

Нет

# Input is in bit-reversed order — ввод в бит-реверсном порядке

Details

Указывает порядок элементов входного канала относительно порядка элементов выходного. При установке этого флажка элементы входного канала отображаются в бит-реверсном порядке относительно порядка выходной последовательности. Если снять этот флажок, элементы входного канала будут отображаться в линейном порядке относительно порядка выходной последовательности.

Блок IFFT вычисляет свой вход в бит-реверсном порядке. Линейное упорядочивание входных данных блока IFFT требует дополнительной операции обратного преобразования битов. Во многих ситуациях можно увеличить скорость работы блока IFFT, установив флажок Input in bit-reversed order.

Зависимости

Чтобы использовать этот параметр, установите для параметра FFT implementation значение Radix-2.

Значение по умолчанию

false (выключено)

Имя для программного использования

BitRevOrder

Настраиваемый

Нет

# Divide output by FFT length — разделить выход на длину БПФ

Details

При выборе этого параметра блок делит выход ОБПФ на длину БПФ. Эта опция полезна, когда вы хотите, чтобы выход ОБПФ оставался в том же диапазоне амплитуд, что и вход.

Значение по умолчанию

true (включено)

Имя для программного использования

Normalize

Настраиваемый

Нет

# Inherit FFT length from input dimensions — наследовать длину БПФ от входных размеров

Details

Установите этот флажок, чтобы наследовать длину БПФ от входных размеров.

Зависимости

Если этот флажок не установлен, для задания длины становится доступным параметр FFT length.

Значение по умолчанию

true (включено)

Имя для программного использования

InheritFFTLength

Настраиваемый

Нет

# FFT length — длина БПФ

Details

Укажите длину БПФ в виде целого числа,

Если для параметра FFT implementation установлено значение Radix-2 или установлен флажок Intput in bit-reversed order, это значение должно быть равно двум.

Зависимости

Чтобы использовать этот параметр, снимите флажок Inherit FFT length from input dimensions.

Значение по умолчанию

64

Имя для программного использования

FFTLength

Настраиваемый

Нет

# Wrap input data when FFT length is shorter than input length — свертка или усечение входные данные

Details

Выбор свертки или усечения входных данных в зависимости от длины БПФ. Если выбрать этот параметр, перед операцией БПФ происходит свертка по модулю, когда длина БПФ меньше длины входа. Если снять этот флажок, то перед операцией БПФ происходит усечение входных данных до длины БПФ.

Зависимости

Чтобы использовать этот параметр, снимите флажок Inherit FFT length from input dimensions.

Значение по умолчанию

true (включено)

Имя для программного использования

WrapInput

Настраиваемый

Нет

Алгоритмы

Реализация FFTW

Реализация FFTW обеспечивает оптимизированный расчет БПФ, включая поддержку длин преобразований, равных и не равных степени двойки, как при моделировании. Тип входных данных должен быть с плавающей точкой.

Реализация Radix-2

Реализация Radix-2 поддерживает бит-реверсную обработку и позволяет блоку выполнить генерацию C кода. Размерность входной матрицы размером на должна быть равна степени двойки. Для работы с другими размерами входных данных используйте блок Pad, чтобы дополнить или усечь эти размеры до степени двойки.

При выборе Radix-2 блок реализует один или несколько из следующих алгоритмов:

  • Операция «бабочка»

  • Алгоритм двойного сигнала

  • Алгоритм половинной длины

  • Алгоритм прореживания во времени (DIT) Radix-2

  • Алгоритм прореживания по частоте (DIF) Radix-2

Алгоритмы Radix-2 для вещественных и комплексных сигналов

Комплексность входных данных Порядок выходных данных Алгоритмы, используемые для расчета БПФ

Комплексный

Линейный

Операция бит-реверсирования и алгоритм Radix-2 DIT

Комплексный

Бит-реверсный

Radix-2 DIF

Вещественный

Линейный

Операция бит-реверсирования и Radix-2 DIT в сочетании с алгоритмами половинной длины и двойного сигнала

Вещественный

Бит-реверсный

Radix-2 DIF в сочетании с алгоритмами половинной длины и двойного сигнала

Эффективность алгоритма БПФ может быть повышена для вещественных входных сигналов путем формирования комплексных последовательностей из вещественных последовательностей перед вычислением ДПФ. Если имеется вещественных входных каналов, блок БПФ формирует эти комплексные последовательности, применяя алгоритм двойного сигнала к первым входным каналам, а алгоритм половинной длины — к последнему нечетному каналу.

Оптимизация Radix-2 для таблицы тригонометрических значений

В некоторых ситуациях алгоритм Radix-2 блока вычисляет все возможные тригонометрические значения поворачивающего множителя (twiddle factor)

π ,

где

  • — большее значение из двух величин: или ,

  • .

Блок хранит эти значения в таблице и извлекает их во время моделирования. Количество записей в таблице для плавающей точки представлено в следующей таблице:

Количество записей в таблице для N-точечной БПФ

с плавающей точкой

Литература

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

Смотрите также

  1. FFT

Дополнительные возможности

Генерация Си кода: Да