exponenta event banner

FFT

Быстрое преобразование Фурье (БПФ) входного сигнала

  • Библиотека:
  • Панель инструментов/преобразования системы DSP

  • FFT block

Описание

Блок БПФ вычисляет быстрое преобразование Фурье (БПФ) по первому измерению N-D входной матрицы, u. Блок использует одну из двух возможных реализаций БПФ. Можно выбрать реализацию на основе библиотеки FFTW или реализацию на основе набора алгоритмов Radix-2. Чтобы позволить блоку выбрать реализацию, можно выбрать Auto. Дополнительные сведения о реализациях FFT см. в разделе Алгоритмы.

Для указанных пользователем длин БПФ, не равных P, перед операцией БПФ происходит сворачивание данных с заполнением нуля или усечением, или по модулю. Для БПФ с PM:

y = fft(u,M) % P ≤ M

Обертка:

y(:,L) = fft(datawrap(u(:,L),M)) % P > M; L = 1,...,N

Усечение:

y (:,L) = fft(u,M) % P > M; L = 1,...,N

Совет

Когда входная длина P больше длины БПФ, M, вы можете видеть увеличение величины выхода БПФ. Эти величины увеличиваются, поскольку блок БПФ использует обертку данных по модулю М для сохранения всех доступных входных выборок.

Чтобы избежать такого увеличения величины, можно усечь длину входного образца P до длины БПФ, М. Для этого поместите блок Pad перед блоком БПФ в модели.

Порты

Вход

развернуть все

Входной сигнал для вычисления БПФ. Блок вычисляет БПФ по первому размеру N-D входного сигнала.

Дополнительные сведения о том, как блок вычисляет БПФ, см. в разделе Описание и алгоритмы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Поддержка комплексного номера: Да

Продукция

развернуть все

БПФ, вычисленный по первому измерению N-D входной матрицы. Когда вывод блока имеет целочисленный тип данных или тип данных с фиксированной точкой, он всегда подписывается.

K-й вход Lth выходного канала, y (k, L), равен k-й точке М-точечного дискретного преобразования Фурье (DFT) Lth входного канала:

y (k, L) =∑p=1Pu (p, L) e j2δ (p 1) (k 1 )/M k = 1,..., M

Дополнительные сведения о том, как блок вычисляет БПФ, см. в разделе Описание и алгоритмы.

Типы данных: single | double | int8 | int16 | int32 | fixed point
Поддержка комплексного номера: Да

Параметры

развернуть все

Главный

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

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

Задайте для этого параметра значение Auto чтобы позволить блоку выбрать реализацию FFT. Для входов с плавающей запятой с длинами преобразования, отличными от двух, алгоритм FFTW выбирается автоматически. В противном случае автоматически выбирается алгоритм Radix-2. Для длин преобразования, отличных от двух, блок ограничивает сгенерированный код хост-компьютерами MATLAB.

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

Примечание

Блок БПФ вычисляет свой выходной сигнал в обратном порядке. Линейное упорядочение выходного сигнала блока БПФ требует дополнительной операции реверсирования битов. Во многих случаях можно увеличить скорость блока БПФ, установив флажок Output in bit-reversed order.

Для получения дополнительной информации о порядке вывода см. Линейный и реверсированный порядок вывода.

Зависимости

Чтобы включить этот параметр, установите реализацию FFT в значение Auto или Radix-2.

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

Выберите для наследования длины БПФ из входных размеров. Если этот флажок установлен, длина ввода должна быть равна двум.

Зависимости

Если этот флажок не установлен, параметр длины БПФ становится доступным для задания длины.

Укажите длину БПФ как целое число, большее или равное двум.

При установке для параметра реализации FFT значения Radix-2или при установке флажка Вывод в обратном порядке (Output in bit-reversed order) это значение должно быть мощностью два.

Зависимости

Чтобы включить этот параметр, снимите флажок Наследовать длину БПФ из входных размеров (Inherit FFT length from input dimensions).

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

Зависимости

Чтобы включить этот параметр, снимите флажок Наследовать длину БПФ из входных размеров (Inherit FFT length from input dimensions).

Типы данных

Выберите режим округления для операций с фиксированной точкой.

Ограничения

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

Параметр Режим округления не влияет на числовые результаты при выполнении всех этих условий:

  • Тип выходных данных продукта: Inherit: Inherit via internal rule.

  • Тип данных аккумулятора: Inherit: Inherit via internal rule.

С этими настройками типа данных блок работает в режиме полной точности.

При выборе этого параметра блок насыщает результат операции с фиксированной точкой. При сбросе этого параметра блок переносит результат операции с фиксированной точкой. Для получения подробной информации о saturate и wrap, см. режим переполнения для операций с фиксированной точкой.

Ограничения

Параметр Saturate on integer overflow не влияет на числовые результаты при выполнении всех этих условий:

  • Тип выходных данных продукта: Inherit: Inherit via internal rule.

  • Тип данных аккумулятора: Inherit: Inherit via internal rule.

С этими настройками типа данных блок работает в режиме полной точности.

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

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

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

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

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

Ограничения

Значения таблицы синусов не подчиняются режиму Округления и Сатурату для параметров переполнения целых чисел; вместо этого они всегда насыщены и округлены до Nearest.

Укажите тип выходных данных продукта. Примеры использования типа выходных данных продукта в этом блоке приведены в разделе Типы данных фиксированной точки и умножения. Для этого параметра можно установить значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via internal rule. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

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

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

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

Укажите тип данных накопителя. Примеры использования типа данных накопителя в этом блоке см. в разделе Фиксированная точка. Для этого параметра можно установить значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via internal rule. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

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

Нажмите кнопку Show data type assistant (Показать помощник по типам данных) для отображения помощника по типам данных, который поможет установить параметр Accumulator.

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

Укажите тип выходных данных. Примеры использования типа выходных данных в этом блоке см. в разделе Фиксированная точка. Для этого параметра можно установить значение:

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

    При выборе Inherit: Inherit via internal ruleблок автоматически вычисляет длину выходного слова и длину дроби. Уравнения, используемые блоком для вычисления длины идеального выходного слова и длины дроби, зависят от установки флажка Разделить выходной сигнал на длину БПФ (Divide output by FFT length).

    • При установке флажка Разделить выходные данные на длину БПФ (Divide output by FFT length) идеальные длины выходных слов и дробей совпадают с длинами входных слов и дробей.

    • При снятии флажка Разделить выходные данные на длину БПФ (Divide output by FFT length) блок вычисляет идеальные длины выходных слов и дробей в соответствии со следующими уравнениями:

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

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

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

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

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

Для получения дополнительной информации см. раздел Типы данных управляющих сигналов (Simulink).

Укажите минимальное значение, которое должен выводить блок. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:

Укажите максимальное значение, которое должен выводить блок. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:

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

Характеристики блока

Типы данных

double | fixed point | integer | single

Прямой проход

no

Многомерные сигналы

yes

Сигналы переменного размера

limited[a]

Обнаружение пересечения нулей

no

[a] Сигналы переменного размера поддерживаются только при установке флажка Inherit FFT length from input dimensions.

Алгоритмы

развернуть все

Ссылки

[1] Орфанидис, С. Дж. Введение в обработку сигналов. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1996, стр. 497.

[2] Проакис, Джон Г. и Димитрис Г. Манолакис. Цифровая обработка сигналов, 3-я редакция реки Верхнее Седло, Нью-Джерси: Прентис Холл, 1996.

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

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

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