БПФ
Быстрое преобразование Фурье (БПФ) входного сигнала.
Тип: FFT
Путь в библиотеке:
|
Описание
Блок БПФ вычисляет быстрое преобразование Фурье (БПФ) по первому измерению многомерного входного массива .
Блок использует одну из двух возможных реализаций БПФ. Можно выбрать реализацию, основанную на библиотеке Кули — Тьюки, или реализацию, основанную на алгоритме Кули — Тьюки по основанию 2. Подробнее см. в разделе Алгоритмы.
|
Когда длина входного сигнала больше длины БПФ , вы можете наблюдать увеличение амплитуды выходного сигнала. Это происходит из-за того, что блок БПФ использует сброс данных по модулю длины , чтобы сохранить все доступные входные отсчеты. Чтобы избежать такого увеличения амплитуды, можно усечь длину входной выборки до длины БПФ . Для этого поместите в модель блок Pad перед блоком БПФ. |
Порты
Вход
#
IN_1
—
входной сигнал
вектор | матрица| многомерный массив
Details
Входной сигнал для вычисления БПФ в виде вектора, матрицы или многомерного массива.
Блок вычисляет БПФ по первому измерению многомерного входного сигнала.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Выход
#
OUT_1
—
БПФ входного сигнала
вектор | матрица| многомерный массив
Details
БПФ, вычисленное по первому измерению многомерного входного массива, возвращаемое в виде вектора, матрицы или многомерного массива.
-я запись -го выходного канала равна -й точке -точечного дискретного преобразования Фурье (ДПФ) -го входного канала:
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Параметры
Основные
#
Реализация БПФ —
реализация БПФ
Кули — Тьюки по основанию 2 | Кули — Тьюки
Details
Реализация БПФ:
-
Кули — Тьюки— поддержка входного сигнала произвольной длины; -
Кули — Тьюки по основанию 2— реализация побитовой обработки данных. Размерность входной матрицы размером на должна быть равна степени двойки. Для работы с другими размерами входных данных используйте блок Pad, чтобы выровнять или усечь эти размеры до степени двойки, или, если возможно, выберите реализациюКули — Тьюки.
| Значения |
|
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
#
Вывод в обратном порядке по битам —
вывод в бит-реверсном порядке
Логический тип
Details
Указывает порядок элементов выходного канала относительно порядка элементов входного. При установке этого флажка элементы выходного канала отображаются в бит-реверсном порядке относительно порядка входной последовательности. Если снять этот флажок, то элементы выходного канала будут отображаться в линейном порядке относительно порядка входной последовательности.
| Блок БПФ вычисляет свой выход в бит-реверсном порядке. Линейное упорядочивание выходных данных блока БПФ требует дополнительной операции обратного преобразования битов. Во многих ситуациях можно увеличить скорость работы блока БПФ, установив флажок Вывод в обратном порядке по битам. |
Зависимости
Чтобы использовать этот параметр, установите для параметра Реализация БПФ значение Кули — Тьюки по основанию 2.
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
#
Разделить выход на длину БПФ —
разделить выход на длину БПФ
Логический тип
Details
Если этот флажок установлен, то блок делит выход БПФ на длину БПФ. Эта опция полезна, когда вы хотите, чтобы выход БПФ оставался в том же диапазоне амплитуд, что и вход.
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
#
Наследовать длину БПФ от входных размеров —
наследовать длину БПФ от входных размеров
Логический тип
Details
Выберите, чтобы наследовать длину БПФ от входных размеров. При установке этого флажка длина входных данных должна быть равна степени двойки.
Зависимости
Если этот флажок не установлен, для задания длины становится доступным параметр Длина БПФ.
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
#
Длина БПФ —
длина БПФ
Целое число типа Int64
Details
Укажите длину БПФ в виде целого числа, являющегося степенью двойки.
Если для параметра Реализация БПФ установлено значение Кули — Тьюки по основанию 2 или установлен флажок Вывод в обратном порядке по битам, это значение должно быть равно степени числа два.
Зависимости
Чтобы использовать этот параметр, снимите флажок Наследовать длину БПФ от входных размеров.
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Да |
#
Свертка входных данных, когда длина БПФ меньше длины ввода —
свертка или усечение входных данных
Логический тип
Details
Выбор свертки или усечения входных данных в зависимости от длины БПФ. Если выбрать этот параметр, перед операцией БПФ происходит свертка по модулю, когда длина БПФ меньше длины входа. Если снять этот флажок, то перед операцией БПФ происходит усечение входных данных до длины БПФ.
Зависимости
Чтобы использовать этот параметр, снимите флажок Наследовать длину БПФ от входных размеров.
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
Алгоритмы
Реализация FFTW
Реализация FFTW обеспечивает оптимизированный расчет БПФ, включая поддержку длин преобразований, равных и не равных степени двойки, как при моделировании. Тип входных данных должен быть с плавающей точкой.
Реализация Radix-2
Реализация Radix-2 поддерживает бит-реверсную обработку и позволяет блоку выполнить генерацию C кода. Размерность входной матрицы размером на должна быть равна степени двойки. Для работы с другими размерами входных данных используйте блок Pad, чтобы дополнить или усечь эти размеры до степени двойки.
При выборе Radix-2 блок реализует один или несколько из следующих алгоритмов:
-
операция «бабочка»;
-
алгоритм двойного сигнала;
-
алгоритм половинной длины;
-
алгоритм прореживания во времени (DIT) Radix-2;
-
алгоритм прореживания по частоте (DIF) Radix-2.
Алгоритмы Radix-2 для вещественных и комплексных сигналов
| Комплексность входных данных | Порядок выходных данных | Алгоритмы, используемые для расчета БПФ |
|---|---|---|
Комплексный |
Линейный |
Операция бит-реверсирования и алгоритм Radix-2 DIT |
Комплексный |
Бит-реверсный |
Radix-2 DIF |
Вещественный |
Линейный |
Операция бит-реверсирования и Radix-2 DIT в сочетании с алгоритмами половинной длины и двойного сигнала |
Вещественный |
Бит-реверсный |
Radix-2 DIF в сочетании с алгоритмами половинной длины и двойного сигнала |
Эффективность алгоритма БПФ может быть повышена для вещественных входных сигналов путем формирования комплексных последовательностей из вещественных последовательностей перед вычислением ДПФ. Если имеется вещественных входных каналов, блок БПФ формирует эти комплексные последовательности, применяя алгоритм двойного сигнала к первым входным каналам, а алгоритм половинной длины — к последнему нечетному каналу.
Оптимизация Radix-2 для таблицы тригонометрических значений
В некоторых ситуациях алгоритм Radix-2 блока вычисляет все возможные тригонометрические значения поворачивающего множителя (twiddle factor):
где
-
— большее значение из двух величин: или ;
-
.
Блок хранит эти значения в таблице и извлекает их во время моделирования. Количество записей для плавающей точки составляет .
Литература
-
Orfanidis, S. J. Introduction to Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1996, p. 497.
-
Proakis, John G. and Dimitris G. Manolakis. Digital Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1996.
-
FFTW (https://www.fftw.org)
-
Frigo, M. and S. G. Johnson, FFTW: An Adaptive Software Architecture for the FFT, Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Vol. 3, 1998, pp. 1381-1384.