FFT

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

  • Библиотека:
  • DSP System Toolbox/Преобразования

  • FFT block

Описание

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

Для заданных пользователем длин БПФ, не равных 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, вы можете увидеть увеличения величины в выходе БПФ. Эти увеличения величины происходят, потому что блок FFT использует перенос по модулю M данных, чтобы сохранить все доступные входные выборки.

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

Порты

Вход

расширить все

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

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

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

Выход

расширить все

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

Вход <reservedrangesplaceholder7> th <reservedrangesplaceholder6> th произвел канал, y (k, L), равняется точке <reservedrangesplaceholder2> th M - указывают дискретное преобразование Фурье (DFT) канала входа <reservedrangesplaceholder0> th:

y(k,L)=p=1Pu(p,L)ej2π(p1)(k1)/Mk=1,,M

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

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

Параметры

расширить все

Главный

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

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

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

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

Примечание

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

Для получения дополнительной информации упорядоченное расположение выхода, смотрите Линейный и Bit-Reversed Выхода Order.

Зависимости

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

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

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

Зависимости

Когда этот флажок не установлен, становится доступным параметр FFT length для задания длины.

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

Когда вы устанавливаете параметр FFT implementation равным Radix-2или когда вы устанавливаете флажок Output in bit-reversed order, это значение должно быть степенью двойки.

Зависимости

Чтобы включить этот параметр, снимите флажок Inherit FFT length from input dimensions.

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

Зависимости

Чтобы включить этот параметр, снимите флажок Inherit FFT length from input dimensions.

Типы данных

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

Ограничения

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

Параметр Rounding mode не влияет на числовые результаты, когда все эти условия выполняются:

  • Product output данных Inherit: Inherit via internal rule.

  • Accumulator данных Inherit: Inherit via internal rule.

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

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

Ограничения

Параметр Saturate on integer overflow не влияет на числовые результаты, когда все эти условия выполняются:

  • Product output данных Inherit: Inherit via internal rule.

  • Accumulator данных Inherit: Inherit via internal rule.

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

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

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

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

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

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

Ограничения

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

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

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

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

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

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

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

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

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

Нажмите кнопку Show data type assistant, чтобы отобразить 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, блок вычисляет идеальное выходное слово и длины дроби согласно следующим уравнениям:

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

      FLideal output=FLinput

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

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

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

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

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

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

  • Автоматическое масштабирование типов данных с фиксированной точкой

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

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

  • Автоматическое масштабирование типов данных с фиксированной точкой

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

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

Типы данных

double | fixed point | integer | single

Прямое сквозное соединение

no

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

yes

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

ограниченный[a]

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

no

[a] Сигналы переменного размера поддерживаются только, когда установлен флажок Наследовать длину БПФ из входных размерностей.

Алгоритмы

расширить все

Ссылки

[1] Orfanidis, S. J. Введение в обработку сигналов. Верхний Седл-Ривер, Нью-Джерси: Prentice Hall, 1996, с. 497.

[2] Проакис, Джон Г. и Димитрис Г. Манолакис. Digital Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1996.

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

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

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