Вычисление двухмерного быстрого преобразования Фурье входных данных
Преобразовывает
visiontransforms

Блок 2-D БПФ вычисляет быстрое преобразование Фурье (БПФ). Блок выполняет вычисление двухмерной входной матрицы M-на-N в два этапа. Сначала вычисляется одномерный БПФ вдоль одного измерения (строки или столбца). Затем вычисляется БПФ выхода первого шага вдоль другого измерения (столбца или строки).
Продукция 2-го блока FFT эквивалентна MATLAB®
fft2 функция:
y = fft2(A) % Equivalent MATLAB code
Вычисление БПФ каждой размерности входной матрицы эквивалентно вычислению двумерного дискретного преобразования Фурье (ДПФ), которое определяется следующим уравнением:
j2πmxMe − j2πnyN
где и .
Выходные данные этого блока имеют те же размеры, что и входные данные. Если входной сигнал имеет тип данных с плавающей запятой, то тип данных выходного сигнала использует тот же тип данных с плавающей запятой. В противном случае вывод может быть любым типом данных с фиксированной точкой. Блок вычисляет масштабированные и немасштабированные версии БПФ.
Вход в этот блок может быть плавающей или фиксированной точкой, вещественным или комплексным и сопряженным симметричным. Блок использует одну из двух возможных реализаций БПФ. Можно выбрать реализацию на основе библиотеки FFTW [1], [2] или реализацию на основе набора алгоритмов Radix-2. Можно выбрать Auto позволяет блоку выбрать реализацию.
| Порт | Описание | Поддерживаемые типы данных | Поддерживаемые комплексные значения |
|---|---|---|---|
Вход | Вектор или матрица значений интенсивности |
| Да |
Продукция | 2-D БПФ входа | Совпадает с портом ввода | Да |
Реализация FFTW обеспечивает оптимизированное вычисление FFT, включая поддержку длин преобразования «мощность двух» и «мощность двух» при моделировании и генерации кода. Сгенерированный код, использующий реализацию FFTW, будет ограничен компьютерами, на которых может выполняться MATLAB. Тип входных данных должен быть плавающей запятой.
Реализация 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 |
На следующих диаграммах показаны типы данных, используемые в блоке БПФ для сигналов с фиксированной точкой. Можно задать синусоидальную таблицу, аккумулятор, выходные данные продукта и типы выходных данных, отображаемые на диаграммах в диалоговом окне БПФ, как описано в разделе Параметры.
Входы в блок БПФ сначала приводятся к типу выходных данных и сохраняются в выходном буфере. Затем каждая ступень бабочки обрабатывает сигналы в накопительном типе данных, при этом конечный выход бабочки возвращается в выходной тип данных. Блок умножается на сдвоенный коэффициент перед каждой ступенью бабочки в БПФ прореживания во времени и после каждой ступени бабочки в БПФ прореживания в частоте.

Выходной сигнал умножителя появляется в типе данных накопителя, поскольку оба входа умножителя сложны. Для получения подробной информации о комплексном умножении см. раздел Типы данных умножения.
Задайте для этого параметра значение FFTW [1], [2] для поддержки входного сигнала произвольной длины. Блок ограничивает сгенерированный код с реализацией FFTW хост-компьютерами, способными выполнять MATLAB.
Задайте для этого параметра значение Radix-2 для обработки с обращением битов, данных с фиксированной или плавающей запятой или для создания портативного C-кода с использованием Simulink Coder. Размеры входной матрицы, M и N, должны быть степенями два. Для работы с другими размерами ввода используйте блок Image Pad для установки или усечения этих размеров до двух или, по возможности, выберите реализацию FFTW. См. раздел Внедрение Radix-2.
Задайте для этого параметра значение Auto чтобы позволить блоку выбрать реализацию FFT. Для длин преобразования, отличных от двух, блок ограничивает сгенерированный код хост-компьютерами MATLAB.
Обозначьте порядок элементов выходного канала относительно порядка входных элементов. Если этот флажок установлен, элементы выходного канала отображаются в битовом обратном порядке относительно порядка ввода. Если этот флажок снят, элементы выходного канала отображаются в линейном порядке относительно порядка ввода.
Линейное упорядочение выходных данных требует дополнительной обработки сортировки данных. Дополнительные сведения см. в разделе Бит-реверсированный заказ.
При выборе этого параметра блок делит выходной сигнал БПФ на длину БПФ. Эта опция полезна, если выход БПФ должен оставаться в том же диапазоне амплитуд, что и его вход. Это особенно полезно при работе с типами данных с фиксированной точкой.
Выберите режимы округления для операций с фиксированной точкой. Значения таблицы синусов не соответствуют этому параметру; вместо этого они всегда округляются до 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).
Укажите тип данных накопителя. Примеры использования типа данных накопителя в этом блоке приведены в разделе Типы данных с фиксированной точкой. Для этого параметра можно установить значение:
Правило, наследующее тип данных, например: 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 ®.
Два числа являются битово-реверсированными значениями друг друга, когда двоичное представление одного является зеркальным отображением двоичного представления другого. Например, в трехразрядной системе один и четыре являются обратными значениями битов друг друга, поскольку трехразрядное двоичное представление одного, 001, является зеркальным отображением трехразрядного двоичного представления четырех, 100. На следующей диаграмме показаны индексы строк в линейном порядке. Для перевода их в битово-реверсированный порядок
Перевести индексы в их двоичное представление с минимальным количеством битов. В этом примере минимальное количество битов равно трем, поскольку двоичное представление 7 равно 111.
Найдите зеркальное отображение каждой двоичной записи и запишите ее рядом с исходным двоичным представлением.
Переведите индексы обратно в их десятичное представление.
Теперь индексы строк отображаются в битовом порядке.

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

[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 | |
| Симулинк-кодер | Симулинк Coder™ |