exponenta event banner

IFFT

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

  • Библиотека:
  • Панель инструментов/преобразования системы DSP

  • IFFT block

Описание

Блок IFFT вычисляет обратное быстрое преобразование Фурье (IFFT) по первому измерению N-D входного массива. Блок использует одну из двух возможных реализаций БПФ. Можно выбрать реализацию на основе библиотеки FFTW или реализацию на основе набора алгоритмов Radix-2. Чтобы позволить блоку выбрать реализацию, можно выбрать Auto. Дополнительные сведения о реализациях FFT см. в разделе Алгоритмы.

При указании длины БПФ, не равной длине входного вектора (или первой размерности входного массива), блок реализует перенос данных с заполнением нуля, усечением или длиной по модулю M. Это происходит перед операцией IFFT. Для IFFT с PM:

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

Обертка:

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

Усечение:

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

Совет

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

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

Порты

Вход

развернуть все

Входной сигнал для вычисления IFFT. Блок вычисляет IFFT вдоль первого размера N-D входного сигнала. Входные данные могут быть плавающими или фиксированными, вещественными или комплексными и сопряженными симметричными.

Дополнительные сведения о том, как блок вычисляет IFFT, см. в разделе Описание и алгоритмы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Поддержка комплексного номера: Да

Продукция

развернуть все

IFFT, вычисленный по первому измерению N-D входного массива. Дополнительные сведения о том, как блок вычисляет IFFT, см. в разделе Описание и алгоритмы.

K-й вход Lth выходного канала, y (k, L), равен k-й точке M-точечного обратного дискретного преобразования Фурье (IDFT) Lth входного канала:

y (k, L) =1M∑p=1Pu (p, L) ej2δ (p 1) (k 1 )/M k = 1,..., M

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

Типы данных: single | double | int8 | int16 | int32 | fixed point

Параметры

развернуть все

Главный

Задайте для этого параметра значение FFTW для поддержки входного сигнала произвольной длины. Блок ограничивает сгенерированный код с реализацией FFTW хост-компьютерами MATLAB ®.

Задайте для этого параметра значение Radix-2 для обработки с инвертированием битов, данных с фиксированной или плавающей запятой или создания портативного C-кода с использованием Coder™ Simulink ®. Размерность M входной матрицы M-by-N должна быть степенью два. Для работы с другими входными размерами используйте блок Pad для установки или усечения этих размеров до двух или, по возможности, выберите реализацию FFTW. Для получения дополнительной информации о алгоритмах, используемых Radix-2 режим, см. раздел Реализация Radix-2.

Задайте для этого параметра значение Auto чтобы позволить блоку выбрать реализацию FFT. Для входов с плавающей запятой с длинами преобразования, отличными от двух, алгоритм FFTW выбирается автоматически. В противном случае автоматически выбирается алгоритм Radix-2. Для длин преобразования, отличных от двух, блок ограничивает сгенерированный код хост-компьютерами MATLAB.

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

Этот флажок нельзя установить, если флажок Наследовать длину БПФ (Inherit FFT length from input dimensions) снят, а длина БПФ задается с помощью параметра длины БПФ. Кроме того, его нельзя выбрать, если для параметра реализации FFT задано значение FFTW.

Дополнительные сведения о порядке вывода см. в разделе Линейный и реверсированный порядок вывода.

Зависимости

Чтобы включить этот параметр, установите реализацию FFT в значение Auto или Radix-2.

Выберите эту опцию, если входные данные блока сопряжены с симметричными данными и требуется получить вещественные выходные данные. Установка этого флажка оптимизирует метод вычисления блока.

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

Этот флажок нельзя установить, если флажок Наследовать длину БПФ (Inherit FFT length from input dimensions) снят, а длина БПФ задается с помощью параметра длины БПФ.

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

Если этот флажок установлен, блок вычисляет выходные данные согласно уравнению IDFT, описанному в разделе Описание.

При снятии этого флажка блок вычисляет выходные данные с помощью измененной версии IDFT: M⋅y (k, l), которая определяется следующим уравнением:

M⋅y (k, l) =∑p=1Pu (p, l) ej2δ (p 1) (k − 1 )/Mk = 1,..., M

Модифицированное уравнение IDFT не включает коэффициент умножения 1/M.

Выберите для наследования длины БПФ из входных размеров. Если этот параметр не выбран, параметр длины БПФ становится доступным для задания длины. Этот параметр нельзя удалить, если выбран параметр Input (Ввод) в бит-обратном порядке или Input (Ввод) является сопряженным симметричным параметром.

Укажите длину БПФ как целое число, большее или равное двум.

При установке для параметра реализации FFT значения Radix-2или при установке флажка Вывод в обратном порядке (Output in bit-reversed order) это значение должно быть мощностью два.

Зависимости

Чтобы включить этот параметр, снимите флажок Наследовать длину БПФ из входных размеров (Inherit FFT length from input dimensions).

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

Зависимости

Чтобы включить этот параметр, снимите флажок Наследовать длину БПФ из входных размеров (Inherit FFT length from input dimensions).

Типы данных

Выберите режим округления для операций с фиксированной точкой.

Ограничения

Значения таблицы синусов не соответствуют этому параметру; вместо этого они всегда округляются до Nearest.

Параметр Режим округления не влияет на числовые результаты при выполнении всех этих условий:

  • Тип выходных данных продукта: Inherit: Inherit via internal rule.

  • Тип данных аккумулятора: Inherit: Inherit via internal rule.

С этими настройками типа данных блок работает в режиме полной точности.

При выборе этого параметра блок насыщает результат операции с фиксированной точкой. При сбросе этого параметра блок переносит результат операции с фиксированной точкой. Для получения подробной информации о saturate и wrap, см. режим переполнения для операций с фиксированной точкой.

Ограничения

Параметр Saturate on integer overflow не влияет на числовые результаты при выполнении всех этих условий:

  • Тип выходных данных продукта: Inherit: Inherit via internal rule.

  • Тип данных аккумулятора: Inherit: Inherit via internal rule.

С этими настройками типа данных блок работает в режиме полной точности.

Выберите способ указания длины слова для значений таблицы синусов. Длина дроби значений таблицы синусов всегда равна длине слова минус один. Для этого параметра можно установить значение:

  • Правило, наследующее тип данных, например: Inherit: Same word length as input

  • Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16)

Нажмите кнопку Показать помощник по типам данных, чтобы отобразить помощник по типам данных, который помогает задать параметр таблицы Синус.

Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных (Simulink).

Ограничения

Значения таблицы синусов не подчиняются режиму Округления и Сатурату для параметров переполнения целых чисел; вместо этого они всегда насыщены и округлены до Nearest.

Укажите тип выходных данных продукта. Примеры использования типа выходных данных продукта в этом блоке приведены в разделе Типы данных фиксированной точки и умножения. Для этого параметра можно установить значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via internal rule. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

  • Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16,0)

Нажмите кнопку Show data type assistant (Показать помощник по типам данных), чтобы отобразить помощник по типам данных, который помогает задать параметр вывода продукта.

Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных (Simulink).

Укажите тип данных накопителя. Примеры использования типа данных накопителя в этом блоке см. в разделе Фиксированная точка. Для этого параметра можно задать значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via internal rule. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

  • Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16,0)

Нажмите кнопку Show data type assistant (Показать помощник по типам данных) для отображения помощника по типам данных, который поможет установить параметр Accumulator.

Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных (Simulink).

Укажите тип выходных данных. Примеры использования типа выходных данных в этом блоке см. в разделе Фиксированная точка. Для этого параметра можно установить значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via internal rule.

    При выборе Inherit: Inherit via internal ruleблок автоматически вычисляет длину выходного слова и длину дроби. Уравнения, используемые блоком для вычисления длины идеального выходного слова и длины дроби, зависят от установки флажка Разделить выходной сигнал на длину БПФ (Divide output by FFT length).

    • При установке флажка Разделить выходные данные на длину БПФ (Divide output by FFT length) идеальные длины выходных слов и дробей совпадают с длинами входных слов и дробей.

    • При снятии флажка Разделить выходные данные на длину БПФ (Divide output by FFT length) блок вычисляет идеальные длины выходных слов и дробей в соответствии со следующими уравнениями:

      WLидеальный выход = WLinput + floor (log2 (длина БПФ − 1)) + 1

      FLидеальный выход = FLвход

    Используя эти идеальные результаты, внутреннее правило затем выбирает длины слов и дроби, которые подходят для вашего оборудования. Дополнительные сведения см. в разделе Наследование через внутреннее правило.

  • Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16,0)

Нажмите кнопку Show data type assistant (Показать помощник по типам данных) для отображения помощника по типам данных, который поможет задать параметр Output (Вывод).

Для получения дополнительной информации см. раздел Типы данных управляющих сигналов (Simulink).

Укажите минимальное значение, которое должен выводить блок. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:

Укажите максимальное значение, которое должен выводить блок. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в диалоговом окне блока.

Характеристики блока

Типы данных

double | fixed point | integer | single

Прямой проход

no

Многомерные сигналы

yes

Сигналы переменного размера

limited[a]

Обнаружение пересечения нулей

no

[a] Сигналы переменного размера поддерживаются только при установке флажка Inherit FFT length from input dimensions.

Алгоритмы

развернуть все

Ссылки

[1] Орфанидис, С. Дж. Введение в обработку сигналов. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1996, стр. 497.

[2] Проакис, Джон Г. и Димитрис Г. Манолакис. Цифровая обработка сигналов, 3-я редакция реки Верхнее Седло, Нью-Джерси: Прентис Холл, 1996.

[4] Фриго, М. и С. Г. Джонсон, «FFTW: адаптивная архитектура программного обеспечения для FFT», Труды Международной конференции по акустике, речи и обработке сигналов, том 3, 1998, стр. 1381-1384 .

Расширенные возможности

.
Представлен до R2006a