exponenta event banner

2-D IFFT

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

Библиотека

Преобразовывает

visiontransforms

  • 2-D IFFT block

Описание

Блок 2-D IFFT вычисляет обратное быстрое преобразование Фурье (IFFT) входной матрицы M-by-N в два этапа. Сначала вычисляется одномерный IFFT вдоль одного измерения (строки или столбца). Затем вычисляется IFFT вывода первого шага вдоль другого измерения (столбца или строки).

Выход блока IFFT эквивалентен MATLAB ®ifft2 функция:

y = ifft2(A)					% Equivalent MATLAB code

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

f (x, y) =1MN∑m=0M−1∑n=0N−1F (m, n) ej2πmxMej2πnyN

где 0≤x≤M−1 и 0≤y≤N−1.

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

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

Описание порта

ПортОписаниеПоддерживаемые типы данныхПоддерживаемые комплексные значения

Вход

Вектор или матрица значений интенсивности

  • Плавающая точка с двойной точностью

  • Плавающая точка с одинарной точностью

  • Фиксированная точка

  • 8-, 16-, 32-разрядное целое число со знаком

  • 8-, 16-, 32-разрядное беззнаковое целое число

Да

Продукция

2-D IFFT входа

Совпадает с портом ввода

Да

Внедрение FFTW

Реализация FFTW обеспечивает оптимизированное вычисление FFT, включая поддержку длин преобразования «мощность двух» и «мощность двух» при моделировании и генерации кода. Созданный код, использующий реализацию FFTW, будет ограничен хост-компьютерами MATLAB. Тип данных должен быть плавающей точкой. Дополнительные сведения о создании кода см. в документе Simulink Coder.

Radix-2 Осуществление

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

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

  • Работа бабочки

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

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

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

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

Radix-2 Алгоритмы для сигналов с плавающей запятой с реальной или сложной сложностью ввода

Параметры настройки

Алгоритмы, используемые для вычисления IFFT

Работа бабочки и радикс-2 DIT

Radix-2 DIF

Работа бабочки и DIT radix-2 в сочетании с алгоритмами половинной длины и двойного сигнала

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

Radix-2 Алгоритмы для реальных или сложных сигналов сложности ввода с фиксированной точкой

Другие настройки параметров

Алгоритмы, используемые для вычисления IFFT

Работа бабочки и радикс-2 DIT

Radix-2 DIF

Примечание

Параметр Input является сопряженным симметричным параметром, который нельзя использовать для сигналов с фиксированной точкой.

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

В определенных ситуациях алгоритм Radix-2 блока вычисляет все возможные тригонометрические значения коэффициента твиддла

ej2πkK

где K - большее значение M или N и k=0,⋯,K−1. Блок сохраняет эти значения в таблице и извлекает их во время моделирования. Количество записей таблицы для фиксированных и плавающих точек суммировано в следующей таблице:

Количество записей таблицы для 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 определяется следующим уравнением:

f (x, y) =∑m=0M−1∑n=0N−1F (m, n) ej2πmxMej2πnyN

где 0≤x≤M−1 и 0≤y≤N−1.

Масштабированная версия IFFT умножает вышеуказанную немасштабированную версию на 1MN.

Режим округления

Выберите режимы округления для операций с фиксированной точкой. Значения таблицы синусов не соответствуют этому параметру; вместо этого они всегда округляются до 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блок автоматически вычисляет длину выходного слова и длину дроби. Внутреннее правило сначала вычисляет идеальную длину выходного слова и длину дроби, используя следующие уравнения:

    • При установке флажка Разделить выходы бабочки на два идеальные длины выходного слова и дроби совпадают с длиной входного слова и дроби.

    • При снятии флажка Разделить выходы бабочки на два блок вычисляет идеальную длину выходного слова и дроби в соответствии со следующими уравнениями:

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

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

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

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

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

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

Блокировка параметров типа данных от изменений с помощью инструментов с фиксированной точкой

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока. Дополнительные сведения см. в разделе fxptdlg (Fixed-Point Designer) - справочная страница инструмента Fixed-Point Tool в документации Simulink ®.

Ссылки

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

См. также

2-D DCT

Программное обеспечение Computer Vision Toolbox™

2-D БПФ

Программное обеспечение Computer Vision Toolbox

2-D IDCT

Программное обеспечение Computer Vision Toolbox

2-D БПФ

Программное обеспечение Computer Vision Toolbox

bitrevorder(Панель инструментов обработки сигналов)

Программное обеспечение панели инструментов обработки сигналов

fft

MATLAB

ifft

MATLAB

Симулинк-кодерSimulink

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

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