FFT

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

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

  • FFT block

Описание

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

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

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

Порты

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

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

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

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

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

Вывод

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

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

k th запись L th выходной канал, y (k, L), равняется k th точка M - дискретное преобразование Фурье (ДПФ) точки L 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 режим, смотрите Основание 2 Реализации.

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

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

Примечание

Блок FFT вычисляет свой выход в обратном битовом порядке. Линейно заказывая блоку FFT выход требует дополнительной операции битного реверсирования. Во многих ситуациях можно увеличить скорость блока FFT путем установки флажка Output in 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.

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

Зависимости

Чтобы включить этот параметр, снимите флажок 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) для получения дополнительной информации.

Ограничения

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

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

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

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

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

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

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

  • Правило, которое наследовало тип данных, например, 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 использует это значение, чтобы выполнить:

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете в диалоговом окне блока.

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

Типы данных

double | fixed point | integer | single

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

no

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

yes

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

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

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

no

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

Алгоритмы

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

Ссылки

[1] Orfanidis, С. Дж. Интродукшн к Обработке сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996, p. 497.

[2] Proakis, Джон Г. и Димитрис Г. Манолакис. Цифровая обработка сигналов, 3-й редактор Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

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

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

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