Алгоритм БПФ с простым коэффициентом

редактировать

Алгоритм быстрого преобразования Фурье

алгоритм простых множителей (PFA), также называемый алгоритмом Гуда – Томаса (1958/1963), представляет собой алгоритм быстрого преобразования Фурье (БПФ), который повторно выражает дискретное преобразование Фурье (ДПФ) размера N = N 1N2как двумерное al N 1×N2DFT, но только для случая, когда N 1 и N 2 являются относительно простыми. Эти более мелкие преобразования размера N 1 и N 2 затем могут быть оценены путем применения PFA рекурсивно или с помощью какого-либо другого алгоритма БПФ.

PFA не следует путать с смешанным основанием обобщением популярного алгоритма Кули – Тьюки, который также разделяет ДПФ размером N = N 1N2в более мелкие преобразования размера N 1 и N 2. Последний алгоритм может использовать любые множители (не обязательно относительно простые), но его недостаток состоит в том, что он также требует дополнительных умножений на корни из единицы, называемых множителями, в дополнение к меньшим преобразованиям. С другой стороны, PFA имеет недостатки, заключающиеся в том, что он работает только для относительно простых факторов (например, он бесполезен для размеров степени двойки ) и что он требует более сложной переиндексации данных на основе по китайской теореме об остатках (CRT). Обратите внимание, однако, что PFA можно комбинировать со смешанным основанием Кули – Тьюки, при этом первый факторизует N на относительно простые компоненты, а второй обрабатывает повторяющиеся множители.

PFA также тесно связана с вложенной структурой, где последняя выполняет преобразование разложенного N 1 на N 2 с помощью более сложных методов двумерной свертки. Поэтому в некоторых более старых работах алгоритм Винограда также называется PFA FFT.

(Хотя PFA отличается от алгоритма Кули-Тьюки, работа Good 1958 года над PFA была названа источником вдохновения Кули и Тьюки в их статье 1965 года, и первоначально некоторая путаница в отношении того, были ли эти два алгоритма разными. Фактически, это была единственная предыдущая работа по БПФ, на которую они ссылались, поскольку они тогда не знали о более ранних исследованиях Гаусса и других.)

Содержание
  • 1 Алгоритм
    • 1.1 Повторное индексирование
    • 1.2 Повторное выражение ДПФ
  • 2 Ссылки
  • 3 См. Также
Алгоритм

Напомним, что ДПФ определяется формулой:

X k Знак равно ∑ N = 0 N - 1 xne - 2 π я N nkk = 0,…, N - 1. {\ displaystyle X_ {k} = \ sum _ {n = 0} ^ {N-1} x_ {n} e ^ {- {\ frac {2 \ pi i} {N}} nk} \ quad k = 0, \, \ dots, \, N-1.}{\ displaystyle X_ {k} = \ sum _ {n = 0} ^ {N-1 } x_ {n} e ^ {- {\ frac {2 \ pi i} {N}} nk} \ quad k = 0, \, \ dots, \, N-1.}

PFA включает повторную индексацию входных данных и выходные массивы, которые при подстановке в формулу ДПФ преобразуют его в два вложенных ДПФ (двумерное ДПФ).

Повторное индексирование

Предположим, что N = N 1N2, где N 1 и N 2 являются относительно простыми. В этом случае мы можем определить биективную переиндексацию входа n и выхода k следующим образом:

n = n 1 N 2 + n 2 N 1 mod N, k = k 1 N 2 - 1 N 2 + k 2 N 1 - 1 N 1 по модулю N, {\ displaystyle {\ begin {выровнено} n = n_ {1} N_ {2} + n_ {2} N_ {1} \ mod N, \\ k = k_ {1} N_ {2} ^ {- 1} N_ {2} + k_ {2} N_ {1} ^ {- 1} N_ {1} \ mod N, \ end {align}}}{\ displaystyle {\ begin {align} n = n_ {1} N_ {2} + n_ {2} N_ {1} \ mod N, \ \ k = k_ {1} N_ {2} ^ {- 1} N_ {2} + k_ {2} N_ {1} ^ {- 1} N_ {1} \ mod N, \ end {align}}}

где N 1 обозначает модульную мультипликативную инверсию для N 1по модулю N2и наоборот для N 2 ; индексы k a и n a начинаются с 0,…, N a - 1 (для a = 1, 2). Эти инверсии существуют только для относительно простых N 1 и N 2, и это условие также требуется для того, чтобы первое отображение было биективным.

Это повторное индексирование n называется руритановским отображением (также отображением Гуда), в то время как такое повторное индексирование k называется отображением CRT. Последнее относится к тому факту, что k является решением китайской проблемы остатка k = k 1 mod N 1 и k = k 2 mod N 2.

(Вместо этого можно было бы использовать руритановское отображение для выхода k и отображение CRT для входа n или различные промежуточные варианты.)

Схемам для оценки этой переиндексации было посвящено большое количество исследований. эффективно, в идеале на месте, сводя к минимуму количество дорогостоящих операций по модулю (остатку) (Chan, 1991 и ссылки).

Повторное выражение ДПФ

Вышеупомянутая переиндексация затем подставляется в формулу для ДПФ и, в частности, в произведение nk в экспоненте. Поскольку e = 1, этот показатель оценивается по модулю N: любой перекрестный член N 1N2= N в произведении nk может быть установлен равным нулю. (Аналогично, X k и x n неявно периодичны по N, поэтому их индексы оцениваются по модулю N.) Остальные члены дают:

X k 1 N 2 - 1 N 2 + k 2 N 1 - 1 N 1 знак равно ∑ n 1 = 0 N 1 - 1 (∑ n 2 = 0 N 2 - 1 xn 1 N 2 + n 2 N 1 e - 2 π i N 2 n 2 k 2) е - 2 π i N 1 n 1 k 1. {\ displaystyle X_ {k_ {1} N_ {2} ^ {- 1} N_ {2} + k_ {2} N_ {1} ^ {- 1} N_ {1}} = \ sum _ {n_ {1} = 0} ^ {N_ {1} -1} \ left (\ sum _ {n_ {2} = 0} ^ {N_ {2} -1} x_ {n_ {1} N_ {2} + n_ {2} N_ {1}} e ^ {- {\ frac {2 \ pi i} {N_ {2}}} n_ {2} k_ {2}} \ right) e ^ {- {\ frac {2 \ pi i} {N_ {1}}} n_ {1} k_ {1}}.}{\ displaystyle X_ {k_ {1} N_ {2} ^ {- 1} N_ {2} + k_ {2} N_ {1} ^ {- 1} N_ {1}} = \ sum _ {n_ {1} = 0} ^ {N_ {1} -1} \ left (\ sum _ {n_ {2} = 0} ^ {N_ {2} -1} x_ {n_ {1} N_ {2} + n_ {2} N_ {1}} e ^ {- {\ frac {2 \ pi i} {N_ {2}}} n_ {2} k_ {2}} \ right) e ^ {- {\ frac { 2 \ pi i} {N_ {1}}} n_ {1} k_ {1}}.}

Внутренняя и внешняя суммы - это просто ДПФ размера N 2 и N 1 соответственно.

(Здесь мы использовали тот факт, что N 1N1равно единице при вычислении по модулю N 2 в показателе внутренней суммы, и наоборот для показателя внешней суммы.)

Ссылки
См. Также
Последняя правка сделана 2021-06-02 05:50:36
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте