2-D Обратное быстрое преобразование Фурье входного сигнала
Преобразовывает
visiontransforms

Блок 2-D IFFT вычисляет обратное быстрое преобразование Фурье (IFFT) входной матрицы M-by-N в два этапа. Сначала вычисляется одномерный IFFT вдоль одного измерения (строки или столбца). Затем вычисляется IFFT вывода первого шага вдоль другого измерения (столбца или строки).
Выход блока IFFT эквивалентен MATLAB
®ifft2 функция:
y = ifft2(A) % Equivalent MATLAB code
Вычисление IFFT каждой размерности входной матрицы эквивалентно вычислению двумерного обратного дискретного преобразования Фурье (IDFT), которое определяется следующим уравнением:
ej2πmxMej2πnyN
где и .
Выходные данные этого блока имеют те же размеры, что и входные данные. Если входной сигнал имеет тип данных с плавающей запятой, то тип данных выходного сигнала использует тот же тип данных с плавающей запятой. В противном случае вывод может быть любым типом данных с фиксированной точкой. Блок вычисляет масштабированные и немасштабированные версии IFFT.
Вход в этот блок может быть плавающей или фиксированной точкой, вещественным или комплексным и сопряженным симметричным. Блок использует одну из двух возможных реализаций БПФ. Можно выбрать реализацию на основе библиотеки FFTW [1], [2] или реализацию на основе набора алгоритмов Radix-2. Можно выбрать Auto позволяет блоку выбрать реализацию.
| Порт | Описание | Поддерживаемые типы данных | Поддерживаемые комплексные значения |
|---|---|---|---|
Вход | Вектор или матрица значений интенсивности |
| Да |
Продукция | 2-D IFFT входа | Совпадает с портом ввода | Да |
Реализация FFTW обеспечивает оптимизированное вычисление FFT, включая поддержку длин преобразования «мощность двух» и «мощность двух» при моделировании и генерации кода. Созданный код, использующий реализацию FFTW, будет ограничен хост-компьютерами MATLAB. Тип данных должен быть плавающей точкой. Дополнительные сведения о создании кода см. в документе Simulink Coder.
Реализация Radix-2 поддерживает обработку с обращением битов, фиксированные данные или данные с плавающей запятой, и позволяет блоку обеспечить создание портативного C-кода с использованием Simulink Coder. Размеры входной матрицы, M и N, должны быть степенями два. Для работы с другими размерами ввода используйте блок Image Pad для установки или усечения этих размеров до двух или, по возможности, выберите реализацию FFTW.
При выбранном Radix-2 блок реализует один или несколько из следующих алгоритмов:
Работа бабочки
Алгоритм двойного сигнала
Алгоритм половинной длины
Radix-2 алгоритм прореживания во времени (DIT)
Radix-2 алгоритм прореживания в частоте (DIF)
Параметры настройки | Алгоритмы, используемые для вычисления IFFT |
|---|---|
| Работа бабочки и радикс-2 DIT |
| Radix-2 DIF |
| Работа бабочки и DIT radix-2 в сочетании с алгоритмами половинной длины и двойного сигнала |
| Radix-2 DIF в сочетании с алгоритмами половинной длины и двойного сигнала |
Другие настройки параметров | Алгоритмы, используемые для вычисления IFFT |
|---|---|
| Работа бабочки и радикс-2 DIT |
| Radix-2 DIF |
Примечание
Параметр Input является сопряженным симметричным параметром, который нельзя использовать для сигналов с фиксированной точкой.
В определенных ситуациях алгоритм Radix-2 блока вычисляет все возможные тригонометрические значения коэффициента твиддла
где K - большее значение M или N и . Блок сохраняет эти значения в таблице и извлекает их во время моделирования. Количество записей таблицы для фиксированных и плавающих точек суммировано в следующей таблице:
Количество записей таблицы для N-Point FFT | |
|---|---|
плавающая точка | 3 N/4 |
фиксированная точка | N |
На следующих диаграммах показаны типы данных, используемые в блоке IFFT для сигналов с фиксированной точкой. В диалоговом окне IFFT можно задать синусоидальную таблицу, аккумулятор, выходные данные продукта и типы выходных данных, отображаемые на диаграммах, как описано в разделе Параметры.
Входы в блок IFFT сначала приводятся к типу выходных данных и сохраняются в выходном буфере. Затем каждая ступень бабочки обрабатывает сигналы в накопительном типе данных, при этом конечный выход бабочки возвращается в выходной тип данных. Блок умножается на сдвоенный коэффициент перед каждой ступенью бабочки в IFFT прореживания во времени и после каждой ступени бабочки в IFFT прореживания в частоте.

Выходной сигнал умножителя появляется в типе данных накопителя, поскольку оба входа умножителя сложны. Для получения подробной информации о комплексном умножении см. раздел Типы данных умножения.
Задайте для этого параметра значение FFTW [1], [2] для поддержки входного сигнала произвольной длины. Блок ограничивает сгенерированный код с реализацией FFTW для компьютеров-хостов MATLAB.
Задайте для этого параметра значение Radix-2 для обработки с обращением битов, данных с фиксированной или плавающей запятой или для создания портативного C-кода с использованием Simulink Coder. Размеры входной матрицы, M и N, должны быть степенями два. Для работы с другими размерами ввода используйте блок Image Pad для установки или усечения этих размеров до двух или, по возможности, выберите реализацию FFTW. См. раздел Внедрение Radix-2.
Задайте для этого параметра значение Auto чтобы позволить блоку выбрать реализацию FFT. Для длин преобразования, отличных от двух, блок ограничивает сгенерированный код хост-компьютерами MATLAB.
Установите или снимите этот флажок, чтобы обозначить порядок элементов входного канала. Установите этот флажок, когда входные данные должны отображаться в обратном порядке, и снимите его, когда входные данные должны отображаться в линейном порядке. Блок выдает недопустимые выходные данные, если этот параметр не задан правильно. Этот флажок появляется только при установке для параметра реализации FFT значения Radix-2 или Auto.
Дополнительные сведения о порядке вывода см. в разделе Порядок обращения битов. Бит блока 2-D БПФ изменяет порядок как столбцов, так и строк.
Выберите эту опцию, когда блок вводит как плавающую точку, так и сопряженную симметрическую, и вам нужны вещественные выходы. Этот параметр не может использоваться для сигналов с фиксированной точкой. Установка этого флажка оптимизирует метод вычисления блока.
Блок БПФ дает сопряженный симметричный выход при вводе вещественных данных. Взятие IFFT сопряженной симметричной входной матрицы дает действительный выходной сигнал. Таким образом, если вход в блок является одновременно плавающим и сопряженным симметричным и если этот флажок установлен, блок создает вещественные выходные сигналы.
Если входные данные блока IFFT сопряжены симметричными данными и этот флажок не установлен, блок IFFT выводит сигнал с комплексными значениями и малыми мнимыми частями. Блок выводит недопустимые данные, если выбрана эта опция с несопряженными симметричными входными данными.
Установите этот флажок для вычисления масштабированного IFFT. Блок вычисляет масштабированные и немасштабированные версии IFFT. При выборе этой опции блок вычисляет масштабированную версию IFFT. Немасштабированный IFFT определяется следующим уравнением:
ej2πmxMej2πnyN
где и .
Масштабированная версия IFFT умножает вышеуказанную немасштабированную версию на .
Выберите режимы округления для операций с фиксированной точкой. Значения таблицы синусов не соответствуют этому параметру; вместо этого они всегда округляются до Nearest.
Выберите режим переполнения для операций с фиксированной точкой. См. раздел Точность и диапазон. Значения таблицы синусов не соответствуют этому параметру; вместо этого они всегда насыщены.
Выберите способ указания длины слова для значений таблицы синусов. Длина дроби значений таблицы синусов всегда равна длине слова минус один. Для этого параметра можно установить значение:
Правило, наследующее тип данных, например: Inherit: Same word length as input
Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16)
Значения таблицы синусов не подчиняются режиму Округления и Сатурату для параметров переполнения целых чисел; вместо этого они всегда насыщены и округлены до Nearest.
Укажите тип выходных данных продукта. Примеры использования типа выходных данных продукта в этом блоке приведены в разделах Типы данных с фиксированной точкой и Типы данных умножения. Для этого параметра можно установить значение:
Правило, наследующее тип данных, например: Inherit: Inherit via internal rule
Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16,0)
Нажмите кнопку Show data type assistant (Показать помощник по типам данных
), чтобы отобразить помощник по типам данных, который помогает задать параметр Product output data type (Тип выходных данных продукта).
Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных (Simulink).
Укажите тип данных накопителя. Для иллюстрации использования типа данных накопителя в этом блоке см. Fixed-Point Data Types. Для этого параметра можно установить значение:
Правило, наследующее тип данных, например: Inherit: Inherit via internal rule
Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16,0)
Нажмите кнопку Show data type assistant (Показать помощник по типам данных
), чтобы отобразить помощник по типам данных, который помогает установить параметр Accumulator data type.
Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных (Simulink).
Укажите тип выходных данных. Примеры использования типа выходных данных в этом блоке приведены в разделе «Типы данных с фиксированной точкой». Для этого параметра можно установить значение:
Правило, наследующее тип данных, например: Inherit: Inherit via internal rule.
При выборе Inherit: Inherit via internal ruleблок автоматически вычисляет длину выходного слова и длину дроби. Внутреннее правило сначала вычисляет идеальную длину выходного слова и длину дроби, используя следующие уравнения:
При установке флажка Разделить выходы бабочки на два идеальные длины выходного слова и дроби совпадают с длиной входного слова и дроби.
При снятии флажка Разделить выходы бабочки на два блок вычисляет идеальную длину выходного слова и дроби в соответствии со следующими уравнениями:
− 1)) + 1
FLвход
Используя эти идеальные результаты, внутреннее правило затем выбирает длины слов и дроби, которые подходят для вашего оборудования. Дополнительные сведения см. в разделе Наследование через внутреннее правило.
Выражение, которое вычисляет допустимый тип данных, например: fixdt(1,16,0)
Нажмите кнопку Show data type assistant (Показать помощник по типам данных
), чтобы отобразить помощник по типам данных, который помогает задать параметр Output data type.
Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных (Simulink).
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока. Дополнительные сведения см. в разделе fxptdlg (Fixed-Point Designer) - справочная страница инструмента Fixed-Point Tool в документации Simulink ®.
[1] FFTW (http://www.fftw.org)
[2] Фриго, М. и С. Г. Джонсон, «FFTW: адаптивная архитектура программного обеспечения для FFT», Труды Международной конференции по акустике, речи и обработке сигналов, том 3, 1998, стр. 1381-1384.
Программное обеспечение Computer Vision Toolbox™ | |
Программное обеспечение Computer Vision Toolbox | |
Программное обеспечение Computer Vision Toolbox | |
Программное обеспечение Computer Vision Toolbox | |
| Программное обеспечение панели инструментов обработки сигналов |
MATLAB | |
MATLAB | |
| Симулинк-кодер | Simulink |