Я не собираюсь отвечать на ваш вопрос, потому что я чувствую, что предыдущие люди ответили на него. Я попытаюсь объяснить цель БПФ.
Во-первых, БПФ - это способ вычисления свертки между двумя векторами. То есть предположим, что x = и y = 1xn векторов, тогда свертка x и y равна
\ sum_ {i = 0} ^ n {xi y {n-i}}.
Вы должны будете принять тот факт, что вычисление этого значения ЧРЕЗВЫЧАЙНО полезно в широком спектре приложений.
Теперь рассмотрим следующее.
Предположим, мы строим два полинома
A (z) = x0 + x1 * z + x2 * z ^ 2 + .. + xn ^ z ^ n
B (z) = y0 + y1 * z + y2 * z ^ 2 + .. + yn ^ z ^ n
тогда умножение
AB (z) = A (z) B (z) = \ sum_ {i = 0} ^ n (\ sum_ {k = 0} ^ i xk * y {i-k}) 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) время (на самом деле я не уверен в этом, это может быть время O (nlogn), но, конечно, не более.) *
Это именно то, что делает БПФ. Тем не менее, точки, которые он выбирает, чтобы получить n + 1 баллов к описанным полиномам A и B, ОЧЕНЬ тщательно выбраны. Некоторые из точек действительно сложны, потому что так получается, что вы можете сэкономить время при оценке полинома, рассматривая такие точки. То есть, если бы вы выбирали только реальные точки вместо тщательно выбранных точек, которые использует БПФ, вам потребовалось бы O (n ^ 2) время, чтобы оценить n + 1 баллов. Если вы выбираете БПФ, вам нужно только время O (nlogn). И это все, что есть в БПФ. О, и есть уникальный побочный эффект от способа, которым FFT выбирает точки. Для заданного полинома n-й степени вы должны выбрать 2 ^ m точек, где m выбрано так, что 2 ^ m является наименьшей степенью 2, большей или равной n.