Jump to content

Алгоритм БПФ Рейдера

Алгоритм Рейдера (1968), [ 1 ] названный в честь Чарльза М. Рейдера из Лаборатории Линкольна Массачусетского технологического института , представляет собой алгоритм быстрого преобразования Фурье (БПФ), который вычисляет дискретное преобразование Фурье (ДПФ) простых размеров путем повторного выражения ДПФ в виде циклической свертки (другой алгоритм для БПФ простых чисел). размеров, алгоритм Блюстейна также работает, переписывая ДПФ как свертку).

Поскольку алгоритм Рейдера зависит только от периодичности ядра ДПФ, он напрямую применим к любому другому преобразованию (простого порядка) с аналогичным свойством, такому как теоретико-числовое преобразование или дискретное преобразование Хартли .

Алгоритм можно модифицировать, чтобы получить двукратную экономию в случае ДПФ реальных данных, используя слегка измененную переиндексацию/перестановку для получения двух циклических сверток реальных данных половинного размера; [ 2 ] альтернативная адаптация для ДПФ реальных данных использует дискретное преобразование Хартли . [ 3 ]

Виноград расширил алгоритм Рейдера, включив в него размеры ДПФ простой степени. , [ 4 ] [ 5 ] и сегодня алгоритм Рейдера иногда описывается как частный случай алгоритма БПФ Винограда , также называемого алгоритмом мультипликативного преобразования Фурье (Tolimieri et al., 1997), [ 6 ] что относится к еще большему классу размеров. Однако для составных размеров, таких как степени простых чисел, алгоритм БПФ Кули-Тьюки намного проще и практичнее реализовать, поэтому алгоритм Рейдера обычно используется только для базовых случаев Кули-Тьюки . с большими простыми числами рекурсивного разложения ДПФ [ 3 ]

Алгоритм

[ редактировать ]
Визуальное представление матрицы ДПФ в алгоритме БПФ Рейдера. Массив состоит из цветных часов, представляющих матрицу ДПФ размером 11. Путем перестановки строк и столбцов (кроме первого из каждого) в соответствии с последовательностями, генерируемыми степенями примитивного корня из 11, исходная матрица ДПФ становится циркулянтной матрицей . Умножение последовательности данных на циркулянтную матрицу эквивалентно циклической свертке с вектором-строкой матрицы. Это соотношение является примером того, что мультипликативная группа является циклической: .

Начнем с определения дискретного преобразования Фурье:

Если N — простое число, то множество ненулевых индексов образует группу при умножении модулю N. по Одним из следствий теории чисел таких групп является то, что существует генератор группы (иногда называемый примитивным корнем ), который можно найти путем перебора или несколько более совершенных алгоритмов. [ 7 ] ). Этот генератор представляет собой целое число g такое, что для любого ненулевого индекса n и уникального (образуя биекцию от q до ненулевого n ). Сходным образом, для любого ненулевого индекса k и для уникального , где отрицательный показатель степени обозначает мультипликативную обратную величину . Это означает, что мы можем переписать ДПФ, используя эти новые индексы p и q, как:

(Напомним, что x n и X k неявно периодичны по N , а также что ( тождество Эйлера ). Таким образом, все индексы и показатели степени берутся по модулю N , как того требует групповая арифметика.)

Окончательное суммирование, приведенное выше, представляет собой в точности циклическую свертку двух последовательностей a q и b q (длины N –1, поскольку ) определяется:

Оценка свертки

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

Поскольку N –1 является составным, эту свертку можно выполнить непосредственно с помощью теоремы о свертке и более традиционных алгоритмов БПФ. Однако это может быть неэффективно, если N –1 само по себе имеет большие простые множители, что требует рекурсивного использования алгоритма Рейдера. Вместо этого можно вычислить циклическую свертку длины ( N –1) точно, дополняя ее нулями до длины не менее 2( N –1)–1, скажем, до степени двойки , которую затем можно вычислить за O ( N log N ) время без рекурсивного применения алгоритма Рейдера.

Таким образом, этот алгоритм требует сложения O( N ) плюс времени O( N log N ) для свертки. На практике сложения O( N ) часто могут выполняться путем поглощения сложений сверткой: если свертка выполняется парой БПФ, то сумма x n определяется выходным сигналом постоянного тока (0-го) БПФ. из q можно добавить ко всем выходным данным , плюс x 0 и x 0 добавив его к постоянному члену свертки перед обратным БПФ. Тем не менее, этот алгоритм требует больше операций, чем БПФ близких составных размеров, и на практике обычно занимает в 3–10 раз больше времени.

Если алгоритм Рейдера выполняется с использованием БПФ размера N –1 для вычисления свертки, а не путем заполнения нулями, как упоминалось выше, эффективность сильно зависит от N и количества раз, которое алгоритм Рейдера должен применяться рекурсивно. Худшим случаем было бы, если бы N –1 было 2 N 2 , где N 2 простое число, N 2 –1 = 2 N 3 , где N 3 простое число, и так далее. В таких случаях, если предположить, что цепочка простых чисел простирается до некоторого ограниченного значения, рекурсивное применение алгоритма Рейдера фактически потребует O( N 2 ) время [ сомнительно обсудить ] . Такие N j называются простыми числами Софи Жермен , а такая их последовательность называется цепью Каннингема первого рода. Однако наблюдается медленный рост длин цепочек Каннингема, чем log 2 ( N ), поэтому алгоритм Рейдера, примененный таким образом, вероятно, не является O ( N 2 это, возможно, хуже, чем O( N log N ), хотя в худших случаях ). К счастью, гарантия сложности O( N log N ) может быть достигнута путем заполнения нулями.

  1. ^ CM Rader, «Дискретное преобразование Фурье, когда количество выборок данных простое», Proc. IEEE 56, 1107–1108 (1968).
  2. ^ С. Чу и К. Буррус, «Алгоритм FTT с простым коэффициентом [ sic ] с использованием распределенной арифметики», IEEE Transactions on Acoustics, Speech and Signal Processing 30 (2), 217–227 (1982).
  3. ^ Jump up to: а б Маттео Фриго и Стивен Дж. Джонсон , « Проектирование и реализация FFTW3 », Proceedings of the IEEE 93 (2), 216–231 (2005).
  4. ^ С. Виноград, «О вычислении дискретного преобразования Фурье», Proc. Национальная академия наук США , 73 (4), 1005–1006 (1976).
  5. ^ С. Виноград, «О вычислении дискретного преобразования Фурье», Mathematics of Computing , 32 (141), 175–199 (1978).
  6. ^ Р. Толимьери, М. Ан и К.Лу, Алгоритмы дискретного преобразования Фурье и свертки , Springer-Verlag, 2-е изд., 1997.
  7. ^ Дональд Э. Кнут, Искусство компьютерного программирования, том. 2: Получисловые алгоритмы , 3-е издание, раздел 4.5.4, с. 391 (Аддисон-Уэсли, 1998).
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5af959822177fe56fbcb215a7a35c58e__1657617480
URL1:https://arc.ask3.ru/arc/aa/5a/8e/5af959822177fe56fbcb215a7a35c58e.html
Заголовок, (Title) документа по адресу, URL1:
Rader's FFT algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)