IFFT

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

  • Библиотека:
  • DSP System Toolbox / Преобразовывает

  • IFFT block

Описание

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

Когда вы задаете длину БПФ, не равную длине входного вектора (или первая размерность входного массива), блок реализует дополнение нуля, усечение, или по-модулю-M (длина БПФ) перенос данных. Это происходит перед операцией 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 использует данные по-модулю-M, переносящиеся, чтобы сохранить все доступные входные выборки.

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

Порты

Входной параметр

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

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

Для получения дополнительной информации о том, как блок вычисляет ОБПФ, см. Описание и Алгоритмы.

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

Вывод

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

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

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

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

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

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

Параметры

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

Основной

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

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

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

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

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

Для получения дополнительной информации об упорядоченном расположении выхода смотрите Линейный и Инвертированный Битом Выходной Порядок.

Зависимости

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

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

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

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

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

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

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

My(k,l)=p=1Pu(p,l)ej2π(p1)(k1)/Mk=1,...,M

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

Выберите, чтобы наследовать длину БПФ от входных размерностей. Если вы не выбираете этот параметр, параметр FFT length становится доступным, чтобы задать длину. Вы не можете очистить этот параметр, когда вы выбираете Input is in bit-reversed order или параметр Input is conjugate symmetric.

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

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

Зависимости

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

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

Зависимости

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

Типы данных

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

Ограничения

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

Параметр Rounding mode не оказывает влияния на числовые результаты, когда все эти условия соблюдают:

  • Типом данных Product output является Inherit: Inherit via internal rule.

  • Типом данных Accumulator является Inherit: Inherit via internal rule.

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

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

Ограничения

Параметр Saturate on integer overflow не оказывает влияния на числовые результаты, когда все эти условия соблюдают:

  • Типом данных Product output является Inherit: Inherit via internal rule.

  • Типом данных Accumulator является Inherit: Inherit via internal rule.

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

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

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

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

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Sine table.

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Ограничения

Табличные значения синуса не выполняют параметры Saturate on integer overflow и Rounding mode; вместо этого, они всегда насыщаются и округляются к Nearest.

Задайте тип выходных данных продукта. Смотрите Типы данных Фиксированной точки и Умножения для рисунков, изображающих использование типа выходных данных продукта в этом блоке. Можно установить этот параметр на:

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

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

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output.

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Задайте тип данных аккумулятора. Смотрите Фиксированную точку для рисунков, изображающих использование типа данных аккумулятора в этом блоке. Можно установить этот параметр на:

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

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

Нажмите кнопку Show data type assistant, чтобы отобразить 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, блок вычисляет идеальное выходное слово и дробные длины согласно следующим уравнениям:

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

      FLideal output=FLinput

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

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

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Output.

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

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

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

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на диалоговом окне блока.

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

Типы данных

double | fixed point | integer | single

Прямое сквозное соединение

no

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

yes

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

limited[a]

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

no

[a]  Сигналы переменного размера только поддерживаются, когда Наследовать длина БПФ от входного флажка размерностей выбрана.

Алгоритмы

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

Ссылки

[1] Orfanidis, С. Дж. Интродукшн к Обработке сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996, p. 497.

[2] Proakis, Джон Г. и Димитрис Г. Манолакис. Цифровая обработка сигналов, 3-й редактор Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

[4] Frigo, M. и С. Г. Джонсон, “FFTW: Адаптивная Программная архитектура для БПФ”, Продолжения Международной конференции по вопросам Акустики, Речи, и Обработки сигналов, Издания 3, 1998, стр 1381-1384.

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

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