Быстрое преобразование Фурье
В качестве упражнения следует вывести формулу для коэффициента .
![b_p=\frac{b_p^g+b_p^h}{\sqrt2}\cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right)+\frac{-a_p^g+a_p^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right)](/sites/default/files/tex_cache/c7e57752645e7730f70b6e8fc8ebf2b8.png)
Помните, что БПФ - рекурсивный алгоритм, так что коэффициенты последовательностей g и h снова считаются рекурсивно, расщепляя каждую из них на короткие последовательности. Формулы исходного преобразования Фурье применяются только, когда приходим к последовательностям длины 2: :
![a_0=f_0\cos\left(\frac{\pi}{4}\right)+f_1\cos\left(\frac{3\pi}{4}\right)=\frac{f_0-f_1}{\sqrt2}\\
b_0=f_0\sin\left(\frac{\pi}{4}\right)+f_1\sin\left(\frac{3\pi}{4}\right)=\frac{f_0-f_1}{\sqrt2}](/sites/default/files/tex_cache/d2b3dc0abaac9eeac1d9f5803db86351.png)
Теорема. Сложность алгоритма БПФ для вектора длины г равна
.
Доказательство. Докажем теорему индукцией по n. Для базиса индукции, n = 1, N = 2, где используются простые формулы, приведенные выше, число умножений равно 2, что лучше, чем .
Давайте рассмотрим шаг индукции. Наше индукционное предположение - для последовательности длины сложность БПФ равна
. Оценим сложность БПФ для последовательности длины
. Чтобы вычислить коэффициенты Фурье
мы вначале выполняем БПФ для последовательностей g и h со сложностью
. Тогда для вычисления каждого из
коэффициентов Фурье необходимо выполнить два умножения. Общая сложность тогда:
![2*2n2^n+2*2^{n+1}=2(n+1)2^{n+1}](/sites/default/files/tex_cache/7106d9e5203b0586bf6511597acc6905.png)
Тем самым теорема доказана.
Остается одно важное замечание. Когда мы выражаем коэффициенты Фурье через
, индекс р находится в пределах
. Однако, коэффициенты Фурье для g и h определены только для индексов в пределах
. Следующая теорема объясняет, как получить коэффициенты Фурье для g и h в пределах
.
Теорема. Пусть g - вектор длины . Пусть
, где
. Тогда
![a_p^g=-a_r^g,\; b_p^g=b_r^g](/sites/default/files/tex_cache/46c920f768ea3f41961a898a18ff84ea.png)
Аналогичное отношение имеет место и для коэффициентов Фурье для h.
Доказательство. Напомним, что коэффициенты Фурье задаются формулой:
![a_p^g=\frac{1}{\sqrt{2^{n-1}}}\sum_{i=0}^{2^{n-1}-1}g_i\cos\left(\frac{(2p+1)(2i+1)\pi}{2^n}\right)](/sites/default/files/tex_cache/8e8016c8315fdadd9f5e5dc49e6bf1ce.png)
Подставляя , получим
![a_p^h=\frac{1}{\sqrt{2^{n-2}}}\sum_{i=0}^{2^{n-1}-1}g_i\cos \left( \frac{(2^n-2r-1)(2i+1)\pi}{2^n}\right) =\frac{1}{\sqrt{2^{n-1}}}\sum_{i=0}^{2^{n-1}-1}g_i\cos\left((2i+1)\pi-\frac{(2r+1)(2i+1)\pi}{2^n}\right)](/sites/default/files/tex_cache/c7dbdecb506af2424e4175b406f6093f.png)
Используя тождества , упростим формулу и получим:
![a_p^g=-\frac{1}{\sqrt{2^{n-2}}}\sum_{i=0}^{2^{n-1}-1}g_i\cos\left(\frac{(2r+1)(2i+1)\pi}{2^n}\right)=-a_r^g](/sites/default/files/tex_cache/0565f97c81b9113eff6ab25e2d59f9f3.png)
Доказательство для остается в качестве упражнения.
В случае, когда , запишем р как
и мы можем вычислить коэффициенты Фурье для f из коэффициентов Фурье для g и h следующим образом:
![a_p=\frac{-a_r^g-a_r^h}{\sqrt2}\cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right) +\frac{b_r^g-b_r^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right),\\
b_p=\frac{ab_r^g-b_r^h}{\sqrt2}\cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right) +\frac{a_r^g-a_r^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right)](/sites/default/files/tex_cache/c27f350e07328aec6dc19f84fb776202.png)
Давайте выразим тригонометрические множители в правой части в терминах r:
![\cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right)=\cos\left(\frac{(2^n-2r-1)\pi}{2^{n+1}}\right)=\cos\left(\frac{\pi}{2}-\frac{(2r+1)\pi}{2^{n+1}}\right)=\sin\left(\frac{(2r+1)\pi}{2^{n+1}}\right)](/sites/default/files/tex_cache/05945714bf8fb5155353b14209aa3afc.png)
На последнем шаге мы использовали тождество . Аналогично:
![\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right)=\cos\left(\frac{(2r+1)\pi}{2^{n+1}}\right)](/sites/default/files/tex_cache/0f82585a78eb958035c6c5a2dc98b2c8.png)
Теперь для , где
, получим:
![a_p=\frac{-a_r^g-a_r^h}{\sqrt2}\sin\left(\frac{(2r+1)\pi}{2^{n+1}}\right)+\frac{b_r^g-b_r^h}{\sqrt2}\cos\left(\frac{(2r+1)\pi}{2^{n+1}}\right),\\
b_p=\frac{b_r^g+b_r^h}{\sqrt2}\sin\left(\frac{(2r+1)\pi}{2^{n+1}}\right)+\frac{a_r^g-a_r^h}{\sqrt2}\cos\left(\frac{(2r+1)\pi}{2^{n+1}}\right)](/sites/default/files/tex_cache/dcdf1b430698a03515f72872f8828d60.png)