Я не собираюсь отвечать на ваш вопрос, потому что чувствую, что предыдущие люди ответили на него. Я сделаю попытку объяснить цель БПФ.
Во-первых, БПФ является способом вычисления свертки между двумя векторами.То есть, предположим, что x = и y = - 1xn векторы, то свертка x и y равна
\ sum_ {i = 0}^n {xi y {n-i}}.
Вам необходимо принять тот факт, что вычисление этого значения чрезвычайно полезно в широком спектре приложений.
Теперь рассмотрим следующее.
Предположим, что мы строим два полинома
А (г) = х0 + х1 * х2 + г * г^2 + .. + х^г^п В (г) = у0 + y1 * г + у2 * г^2 + .. + уп^г^п
то умножение
АВ (г) = А (г) в (г) = \ sum_ {г = 0}^п (\ sum_ {k = 0}^i xk * y {ik}) z^i
где внутренняя сумма, очевидно, представляет собой свертку разного размера при разных значениях k.
Теперь мы можем ясно вычислить коэффициенты (свертки) AB в n^2 раз методом грубой силы.
Однако мы также можем быть намного умнее. Рассмотрим тот факт, что любой многочлен степени n может быть однозначно описан n + 1 точками. Это дает n + 1 балл, мы можем построить единственный многочлен степени n, проходящий через все n + 1 точки. Далее рассмотрим 2 многочлена в виде n + 1 точек. Вы можете вычислить свой продукт, просто умножив значения n + 1 y и сохраняя значения x, чтобы привести их продукт в виде точки. Теперь, учитывая многочлен от n + 1 точечной формы, вы можете найти уникальный многочлен, который описывает его в O (n) времени (фактически Im не уверен в этом, это может быть O (nlogn) время, но, конечно, не больше.)
Это именно то, что делает FFT. Тем не менее, точки, которые он выбирает, чтобы получить n + 1 точек для описания многочленов A и B, ОЧЕНЬ тщательно выбраны. Некоторые из пунктов действительно сложны, потому что так бывает, что вы можете сэкономить время при оценке Полинома, рассматривая такие моменты. То есть, если вы выбрали только реальные точки вместо аккуратно выбранных точек, которые использует FFT, вам потребуется время O (n^2) для оценки n + 1 точки. Если вы выберете FFT, вам потребуется только время O (nlogn). И это все, что есть в БПФ. О, и есть уникальный побочный эффект того, как БПФ выбирает очки. Учитывая многочлен n-й степени, вы должны выбрать 2^m точек, где m выбрано так, что 2^m является наименьшей степенью 2, большей или равной n.
Определить CLRS. Может быть, нужна домашняя бирка? –
CLRS = учебник алгоритмов, иногда называемый Cormen, название на самом деле «Введение в алгоритмы». Я был бы рад помочь, но, несмотря на мою нежность в названии, у меня нет книги, запомненной, и мне трудно прочитать вопрос для начала. – agorenst
ВВЕДЕНИЕ В АЛГОРИТМ (второе издание), обычно известное как CLRS или COREMAN, а также – mawia