2-D IFFT

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

Библиотека

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

visiontransforms

  • 2-D IFFT block

Описание

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

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

y = ifft2(A)					% Equivalent MATLAB code

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

f(x,y)=1MNm=0M1n=0N1F(m,n)ej2πmxMej2πnyN

где 0xM1 и 0yN1.

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

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

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

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

Вход

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

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

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

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

  • 8-, 16-, 32-битное целое число со знаком

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

Да

Выход

2-D ОБПФ входного входа

То же, что Input port

Да

Реализация FFTW

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

Radix-2 реализации

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

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

  • Операция с бабочкой

  • Сигнал double

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

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

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

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

Настройки параметров

Алгоритмы, используемые для расчетов ОБПФ

Операция бабочки и radix-2 DIT

Radix-2 DIF

Операция Butterfly и radix-2 DIT в сочетании с алгоритмами половинной длины и сигнала double

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

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

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

Алгоритмы, используемые для расчетов ОБПФ

Операция бабочки и radix-2 DIT

Radix-2 DIF

Примечание

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

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

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

ej2πkK

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

Количество записей в таблице для N значений

с плавающей точкой

3 <reservedrangesplaceholder0>/4

фиксированная точка

N

Типы данных с фиксированной точкой

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

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

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

Параметры

FFT implementation

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

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

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

Input is in bit-reversed order

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

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

Input is conjugate symmetric

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

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

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

Divide output by product of FFT length in each input dimension

Установите этот флажок, чтобы вычислить масштабированный ОБПФ. Блок вычисляет масштабированные и не масштабированные версии ОБПФ. Если вы выбираете эту опцию, блок вычисляет масштабированную версию ОБПФ. Немасштабированный ОБПФ определяется следующим уравнением:

f(x,y)=m=0M1n=0N1F(m,n)ej2πmxMej2πnyN

где 0xM1 и 0yN1.

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

Rounding mode

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

Saturate on integer overflow

Выберите режим переполнения для операций с фиксированной точкой. См. «Точность и область значений». Значения синусоидальной таблицы не подчиняются этому параметру; вместо этого они всегда насыщены.

Sine table data type

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

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

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

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

Product output data type

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

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

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

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

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

Accumulator data type

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

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

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

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

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

Output data type

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

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

    Когда вы выбираете Inherit: Inherit via internal ruleблок вычисляет выход размера слова и длину дроби автоматически. Внутреннее правило сначала вычисляет идеальный выход размера слова и длину дроби, используя следующие уравнения:

    • Когда вы устанавливаете флажок Divide butterfly outputs by two, идеальное выходное слово и длины дроби те же, что и входное слово и длины дроби.

    • Когда вы снимаете флажок Divide butterfly outputs by two, блок вычисляет идеальное выходное слово и длины дроби согласно следующим уравнениям:

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

      FLideal output=FLinput

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

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

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

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

Lock data type settings against change by the fixed-point tools

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

Ссылки

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

См. также

2-D DCT

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

2-D FFT

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

2-D IDCT

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

2-D FFT

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

bitrevorder(Набор Signal Processing Toolbox)

Программное обеспечение Signal Processing Toolbox

fft

MATLAB

ifft

MATLAB

Simulink CoderSimulink

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

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