Это не официальный сайт wikipedia.org 01.01.2023

Чирп-алгоритм — Википедия

Чирп-алгоритм

Чирп-алгоритм (алгоритм Блюстейна) — алгоритм вычисления быстрого преобразования Фурье, заключающийся в сведении вычисления дискретного преобразования Фурье к вычислению свёртки.

Если на некотором поле относительно операции умножения существует элемент ω порядка n (т.е. равным корню n порядка от единицы. В поле комплексных чисел обычно используется e 2 π i n ), тогда для него определено дискретное преобразование Фурье вида

X ( k ) = j = 0 n 1 ω k j x ( j ) .

Если теперь ввести замену вида β = ω 1 2 , то от дискретного преобразования Фурье можно перейти к свёртке сигнала x следующим образом[1]:

X ( k ) = j = 0 n 1 ω k j x ( j ) = j = 0 n 1 β 2 k j x ( j ) = β k 2 j = 0 n 1 β ( j k ) 2 ( β j 2 x ( j ) ) , k = 0 , , n 1 .

С использованием обозначений a ( j ) = β j 2 x ( j ) , b ( j ) = β j 2 можно переписать эту формулу в более компактном виде:

X ( k ) = b ( k ) 1 ( a b ) , k = 0 , , n 1 .

Здесь символ  означает свёртку. В поле комплексных чисел при ω = e 2 π i n обратный элемент b 1 можно заменить комплексно-сопряжённым b , получив выражение

X ( k ) = b ( k ) ( a b ) , k = 0 , , n 1

Величину b ( j ) здесь называют чирпом (англ. chirp).

Алгоритм содержит n -точечную свёртку, вычисление которой требует O ( n 2 ) операций, и 2 n дополнительных умножений, то есть полное число операций имеет порядок O ( n 2 ) , поэтому алгоритм Блюстайна асимптотически не эффективнее прямого вычисления преобразования Фурье. Однако в некоторых приложениях он допускает более простую аппаратурную реализацию. Более того, прямое вычисление свёртки можно заменить быстрыми алгоритмами[2].

Например, с помощью теоремы о свёртке[en] можно заменить вычисление свёртки на вычисление двух дискретных преобразований Фурье, каждое из которых можно вычислить быстрым алгоритмом, к примеру, методом Кули — Тьюки и, таким образом, обеспечить выполнение алгоритма Блюстайна с вычислительной сложностью O ( n log n ) . Величины b ( j ) и их преобразование Фурье также можно вычислить заранее и записать в память для последующего многократного использования.

ПримечанияПравить

ЛитератураПравить

  • Блейхут, Р.. Быстрые алгоритмы цифровой обработки сигналов (рус.). — М.: Мир, 1989. — 448 с.