IFFT

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

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

  • IFFT block

Описание

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

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

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 использует перенос по модулю M данных, чтобы сохранить все доступные входные выборки.

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

Порты

Вход

расширить все

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

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

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

Выход

расширить все

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

Вход <reservedrangesplaceholder7> th <reservedrangesplaceholder6> th произвел канал, y (k, L), равно точке <reservedrangesplaceholder2> th M - указывают обратное дискретное преобразование Фурье (IDFT) канала входа <reservedrangesplaceholder0> 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 mode, см. Radix-2 Implementation.

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

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

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

Для получения дополнительной информации о упорядоченном расположении выхода, смотрите Линейный и Bit-Reversed Выходной порядок.

Зависимости

Чтобы включить этот параметр, установите 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.

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

Зависимости

Чтобы включить этот параметр, снимите флажок 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).

Ограничения

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

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

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

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

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

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

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

  • Правило, которое наследует тип данных, например 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))

  • Автоматическое масштабирование типов данных с фиксированной точкой

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

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

  • Автоматическое масштабирование типов данных с фиксированной точкой

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

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

Типы данных

double | fixed point | integer | single

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

no

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

yes

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

ограниченный[a]

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

no

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

Алгоритмы

расширить все

Ссылки

[1] Orfanidis, S. J. Введение в обработку сигналов. Верхний Седл-Ривер, Нью-Джерси: Prentice Hall, 1996, с. 497.

[2] Проакис, Джон Г. и Димитрис Г. Манолакис. Digital Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1996.

[4] Frigo, M. and S. G. Johnson, «FFTW: An Adaptive Программная Архитектура for БПФ», Труды Международной конференции по акустике, речи и обработке сигналов, Vol. 3, 1998, pp. 1381-1384 .

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

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