2D ОБПФ

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

Библиотека

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

visiontransforms

Описание

2D блок IFFT вычисляет обратное быстрое преобразование Фурье (IFFT) входной матрицы 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], или реализацию на основе набора Основания 2 алгоритма. Можно выбрать Auto, чтобы позволить блоку выбирать реализацию.

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

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

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

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

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

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

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

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

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

Да

Вывод

2D ОБПФ входа

То же самое как Входной порт

Да

Реализация FFTW

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

Основание 2 реализации

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

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

  • Операция Butterfly

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

  • Поясной алгоритм

  • Основание 2 алгоритма десятикратного уменьшения вовремя (DIT)

  • Основание 2 алгоритма десятикратного уменьшения в частоте (DIF)

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

Установки параметров

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

Операция Butterfly и основание 2 DIT

Основание 2 DIF

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

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

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

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

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

Операция Butterfly и основание 2 DIT

Основание 2 DIF

Примечание

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

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

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

ej2πkK

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

Количество записей таблицы для БПФ n значений

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

3 N/4

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

N

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

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

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

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

Параметры

FFT implementation

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

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

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

Input is in bit-reversed order

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

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

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

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

Saturate on integer overflow

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

Sine table data type

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

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

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

Табличные значения синуса не повинуются параметры Saturate on integer overflow и Rounding mode; вместо этого, они всегда насыщаются и округляются к 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

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

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

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

Ссылки

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

Смотрите также

2D DCT

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

2D БПФ

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

2D IDCT

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

2D БПФ

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

2D ОБПФ

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

bitrevorder

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

fft

MATLAB

ifft

MATLAB

Simulink CoderSimulink

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

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