
Последние 3 слагаемых равны 0, и w2 w2 50 . Продолжая эти вычисления, убедимся, что для всех k выполняются равенства wk wk , и линей-
ная свертка совпадает с круговой.
Теперь проведем формальные рассуждения. Пусть даны две последовательности: (a) длины т и (b) длины п. Присоединим к первой последовательности п – 1 нулей, а ко второй т – 1 нулей. Тогда длины обеих последовательностей сравняются и будут равны N = m + n – 1.
Таким образом, мы ввели 2 новых вектора длины N = m + n – 1:
a ak kN 01 |
, причем ak |
a , |
0 k m 1, |
|
b bk kN 01 , при- |
|||
k |
m k N 1 m n 2 |
, и |
||||||
|
|
|
|
0, |
|
|
||
|
|
bk , |
0 k n 1, |
|
|
. |
|
|
чем b |
|
n k N 1 m n 2 |
|
|
||||
k |
|
0, |
|
|
|
Можно доказать, что круговая свертка этих новых векторов равна линейной свертке данных последовательностей, так как все «наддиагональные» элементы формул для круговой свертки равны нулю.
3. БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ (БПФ)
Этим термином обозначается нахождение дискретного спектра данного временного сигнала (т. е. прямого дискретного преобразования Фурье) с помощью формул, уменьшающих число умножений. Если преобразование Фурье производится непосредственно по формуле w = Fz, то для получения
результата требуется n2 умножений комплексных чисел, где п – порядок матрицы F. Заметим, что на каждое такое умножение компьютер тратит примерно в 140 раз больше времени, чем на сложение. Было выяснено, что если п – простое число, то число умножений уменьшить нельзя.
Если же п – составное число, то число умножений можно существенно уменьшить. Кроме того, было доказано, что наиболее существенно число
умножений можно уменьшить при n = N = 2s, поэтому обычно БПФ осуществляется при таком N. В этом случае БПФ называют еще «прореживанием», которое можно проводить либо по времени, либо по частоте.
Здесь мы сделаем только один шаг для «прореживания» по частоте и приведем формулы для БПФ и комментарии к ним.
Итак, пустьN = 2s ипустьсигнал(временнаяпоследовательность) имеет
значения Обозначим 2 2 2 i . На- f0 , f1, f2 , , fN 1 . w wN cos N i sin N e N
помним, что wN = 1 и что последовательность 1, w, w2 , , wN 1 – это все-
возможные корни степени N из единицы (всего их N) и сумма всех этих корней равна 0.
18

Коэффициенты прямого дискретного преобразования Фурье будем обозначать сп, п = 0, 1, 2, …, N – 1:
|
|
|
N 1 |
|
|
|
2 k n i |
|
|
|
|
N |
1 |
|
|
2 k n i |
|
|
N 1 |
|
|
|
|
|
|
|
|
|
|
2 k n i |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
N 2 fk e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
cn fk e |
|
|
N fk e N . |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
k |
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сделаемвовторойсуммезаменуиндекса k k |
N |
, |
|
k 0, 1, 2, ..., |
|
N |
1. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 |
|
2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Тогда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
2 k n i |
|
|
|
1 |
|
|
|
|
2 k n i |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 k |
|
|
n i |
|
|
|
|
|
|
||||||||||||||||||||||||
N 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
cn fk e |
|
N |
|
2 fk e |
N |
|
|
|
|
|
2 f |
|
|
|
N e |
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
k 0 |
|
|
|
|
|
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
Будем писать во второй сумме k вместо k : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
N 1 |
2 k n i |
|
|
N |
1 |
|
|
|
|
|
|
|
2 k n i |
|
|
N |
1 |
|
|
|
|
|
|
|
|
2 k n i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
2 fk e N |
2 f |
|
N e N |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
cn fk e N |
|
|
e n i . |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
k 0 |
|
|
|
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
k 0 |
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
Так как e i n 1 |
при четном п и e i n |
1 при нечетном п, то рассмот- |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
рим отдельно коэффициенты с |
|
|
|
и c |
2l + 1 |
при l = 0, 1, 2, …, |
|
N |
1: |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2l |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 k n i |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
c2l |
fk |
f |
|
|
|
|
|
N |
e |
|
|
|
|
N |
|
fk |
|
|
f |
|
|
|
N |
|
w2kl ; |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 2l 1 i |
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
c2l 1 fk |
f |
|
N |
e |
|
|
|
|
|
|
N |
|
fk |
|
f |
|
|
|
|
|
N wk 2l 1 . |
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
Очевидно, что в предыдущих двух формулах сделано |
|
N |
|
|
N |
|
N ум- |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2 |
2 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
ножений комплексных чисел (мы перешли от сп |
к с2l |
и c2l |
+ 1). Если |
в каждой сумме мы проделаем подобную операцию, то у нас получатся формулы (правда, пока не окончательные) для 4 коэффициентов: с4l, c4l + 1,
c4l + 2 и c4l + 3. Число умножений здесь также равно N N4 4. Таким обра-
зом, для окончательных формул всего понадобится s log2 N шагов, и на каждом шаге будет произведено N умножений. Это значит, что общее чис-
19
ло умножений не будет превосходить N log2 N (при условии, что числа wk
вычислены заранее).
Приведем без вывода (который, строго говоря, должен проводиться методом математической индукции) формулы для БПФ.
Итак, пусть N = 2s, L меняется от 1 до s, при каждом фиксированном L
M = 2s – L и R = 2L – 1; |
j = 0, 1, 2,…, M – 1, k = 0, 1, 2,…, R – 1. |
||||||||
В следующих формулах цикл проводится по L, внутри которого проводятся |
|||||||||
циклы по j и k в любом порядке: |
|
|
|
|
|
|
|||
f |
j 2Mk |
f |
j 2Mk |
M |
f |
|
2Mk |
|
|
|
|
|
j |
. |
(3.1) |
||||
|
|
|
|
|
|
|
f j 2Mk M |
||
f j 2Mk f j 2Mk w jR |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
Если L в цикле было меньше s, то после выполнения формул (3.1) мы |
|||||||||
заменяем L на L + 1, а f j 2Mk на fj + 2Mk и |
|
f j 2Mk M на fj + 2Mk + M (впрочем, |
в программах это совершается автоматически) и повторяем процедуру. При L = s мы получаем ответ, т. е. ДПФ, но он записан в двоично-инверсионном виде (что в технической литературе обычно изображается так называемой «бабочкой»). Именно, индекс у f j , j 0, 1, 2, ..., N 1, переводят в двоич-
ную систему, затем эту запись читают справа налево и получают уже нужный индекс k у коэффициента Фурье ck. Например, при s = 4 (N = 16)
f0 c0 , |
f15 c15, |
f6 c6 , |
f9 c9 , так как двоичные индексы для этих ин- |
|
|
|
|
дексов читаются одинаково слева направо и справа налево. Далее, f14 c7 , так как 14 в двоичной системе записывается в виде 1110, а 7 – в виде 0111.
Это означает также, что f7 c14 . Аналогично |
f13 c11, |
f11 c13 и т. д. |
|
|
|
Замечание 1. При использовании БПФ для обратного ДПФ используются «почти» те же формулы (заменяется только w на комплексно сопряженное число и в ответе все координаты делятся на N).
Замечание 2. При использовании современных математических программ, где ДПФ и БПФ встроены автоматически, не обязательно знать, как устроены эти программы, но нам кажется, что пользователь должен понимать, как действуют эти программы, чтобы при необходимости уметь приспособить их к несколько другим ситуациям.
Замечание 3. Еще проще производится БПФ при «прореживании по времени». Оно основывается на отделении слагаемых ДПФ с четными и нечетными индексами:
|
|
|
|
N |
|
|
|
N |
|
|
|
||
N 1 |
|
2 k n i |
|
|
1 |
|
2 2k n i |
|
|
1 |
|
2 (2 k 1) n i |
|
|
|
2 |
|
2 |
|
|
|||||||
cn fk e |
|
N |
f2k e |
|
N |
fk e |
|
N |
, |
||||
k 0 |
|
|
|
k 0 |
|
|
|
k 0 |
|
|
|
т. е.
20

|
N 1 |
N |
1 |
|
|
N |
1 |
||||
|
|
|
|
|
|||||||
|
2 f2k wN2kn wNk 2 f2k 1wN2kn , |
||||||||||
cn fk wNkn |
|||||||||||
иными словами |
k 0 |
k 0 |
|
|
k 0 |
||||||
|
|
N |
|
|
|
N |
|
|
|
||
|
|
|
1 |
|
|
1 |
|
|
|||
|
|
|
|
|
|
|
|
|
|||
|
|
cn 2 f2k wNkn wNk |
2 f2k 1wNkn . |
||||||||
|
|
|
k 0 |
2 |
k 0 |
2 |
|||||
|
|
|
|
|
|
|
|||||
Видим, что ДПФ свелось к сумме двух новых ДПФ для 2-х новых век- |
|||||||||||
торов размерности |
N |
: z(1)={f0, f2, f4, …,fN – 2} и z(2)={f1, f3, f5, …, fN – 1}. По- |
|||||||||
2 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
вторяя эту процедуру для каждого из получившихся 2-х векторов, получим
сумму 4-х новых ДПФ для 4-х новых векторов размерности |
N |
|
и т. д. На |
||||||||||||||||||||||||||||||||||||||
4 |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
(s – 1)-м шаге получим сумму |
новых ДПФ для |
|
новых векторов раз- |
||||||||||||||||||||||||||||||||||||||
|
|
|
2 |
|
|||||||||||||||||||||||||||||||||||||
мерности 2. |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
При реализации на практике этого алгоритма идем в обратном поряд- |
||||||||||||||||||||||||||||||||||||||
ке: считаем, что в начальный момент даны N = 2s |
|
1-мерных векторов |
|||||||||||||||||||||||||||||||||||||||
|
zk(0) fk fk(0) , |
k 0, |
1, |
..., N, |
на первом шаге вычисляем |
N |
ДПФ для |
||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
N |
двумерных векторов zk(1) fk(1)0 |
, fk(1)1 , причем, так как корней второй сте- |
||||||||||||||||||||||||||||||||||||||
2 |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
пени из |
единицы |
всего |
2: |
|
1 и |
–1, |
то |
эти ДПФ |
|
сводятся |
к равенствам |
||||||||||||||||||||||||||||||
|
fk(1)0 |
fk f |
N , |
|
fk(1)1 fk f |
|
N , на втором шаге вычисляем |
N |
|
ДПФ для |
|
|
N |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
k |
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
4 |
|
|||
|
|
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
векторов |
zk(2) fk(2),0 , fk(2),1 |
, fk(2),2 , fk(2),3 , |
|
k 0, 1, 2, ..., |
N |
, |
|
причем, |
так |
как |
|
4 1 |
|
||||||||||||||||||||||||||||
|
4 |
|
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
есть 1, –i, –1, i |
|
то |
f (2) f (1) f (1) |
|
|
, |
f (2) |
f (1) if (1) |
|
, f (2) f (1) |
f (1) |
|
, |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
k,0 |
k,0 |
|
|
k |
|
N |
,0 |
|
k,1 |
k,1 |
k |
N |
,1 |
k,3 |
k,0 |
k |
N |
|
,0 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
4 |
|
|
|
|
|
|
4 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
f (2) |
f (1) |
if |
(1) |
|
, и т. д. Все эти формулы легко объединяются в одну уни- |
|||||||||||||||||||||||||||||||||||
|
k,4 |
k,1 |
k |
N |
,1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
версальную формулу, удобную для создания вычислительного цикла: на
шаге |
с |
|
номером |
р |
вычисляются |
2s–p=N/2p |
|
|
векторов |
||||||
( p) |
|
( p) |
|
( p) |
|
( p) |
, каждый размерности 2 |
р |
, причем к-й из этих |
||||||
zk |
fk,0 |
, |
fk,1 |
, ..., |
fk,2 p 1 |
|
|||||||||
векторов имеет j-ю координату, вычисляемую по формуле |
|
|
|
||||||||||||
|
|
fk(,pj) fk(,pj 1) |
wpj fk(,pj |
1) , |
j 0, 1, ..., 2 p , |
k 0, 1,..., 2s p |
N |
, |
(3.2) |
||||||
|
|
2 p |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21

где wp e 2 p i1 . Так как для шага с номером р – 1 вычисляется всего 2р– 1 координат, то в формуле (3.2) считаем, что при j > 2p – 1 – 1 координата
fk(,pj |
1) f ( p 1)p 1 (это следует из обоснования метода). На шаге с номером p |
||||
|
k, j 2 |
|
|
|
|
= s получится всего один вектор |
|
|
|
||
|
(s) |
(s) |
(s) |
|
(s) |
|
z0 |
f0,0 |
, f0,1 |
,..., f |
0,2s 1 , |
который и является ДПФ исходного вектора.
Итак, на каждом из s = log2N шагов производится N умножений, так
что всего для ДПФ производится Nlog2N умножений (вместо N2 при использовании стандартных формул ДПФ).
Применение БПФ выгодно и при вычислении свертки двух последовательностей, если они достаточно длинны. Например, при N = 2n = 256 (n = 8)
стандартная круговая свертка требует ≈N2⁄2 ≈ 128·256 умножений, а переход к БПФ, почленное умножение результатов и обратное БПФ требуют ≈2
· 4 · Nlog2N + N = 8 · 256 · 8 + 256 = 65 · 256 умножений, что гораздо меньше, чем предыдущее число (появление множителя 4 объясняется тем, что при перемножении 2 комплексных чисел требуется перемножить 4 пары вещественных чисел). При увеличении числа N выгода будет только нарастать.
4.ДВА ПРИМЕРА ИСПОЛЬЗОВАНИЯ ДПФ
ИИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ К ЭТИМ ПРИМЕРАМ
Mы начнем этот раздел с примера, который очень полезен для понимания того, что происходит при применении ДПФ. Заметим, что аналогичные рассуждения и выкладки приходится неоднократно повторять для разработок конкретных устройств при нахождении их переходных характеристик (разумеется, при гораздо большем числе параметров, например, при N = 1024, и при разных длинах рассматриваемых последовательностей).
Пример 1. Какова должна быть переходная характеристика линейного устройства, которое переводит последовательность (0, 1, 2, 3) в последова-
тельность (0, 1, 1, 0)?
Замечание. На самом деле этот вопрос можно поставить и так: даны две последовательности чисел одинаковой длины; найти третью последовательность той же длины так, чтобы круговая свертка первой и третьей последовательностей равнялась второй последовательности. Непосредственно эту задачу можно решить, как систему 4 линейных уравнений с 4 неизвест-
22
ными. Эта система не всегда имеет решение, а иногда ее решение не единственно. Мы предлагаем решить эту задачу при помощи ДПФ (или БПФ), что особенно актуально при больших длинах данных последовательностей (в этом примере мы не касаемся вопросов «уравнивания» длин 1-й и 2-й последовательностей, хотя часто, и мы это отмечали, 2-я последовательность длиннее 1-й).
Итак, схема решения нашего примера:
1)Вычисляем ДПФ 1-й и 2-й последовательностей. Заметим, что если данная задача не имеет решения (или решение не единственно), то в ДПФ 1-й последовательности одна из координат равна 0 (что означает, что определитель соответствующей системы уравнений равен 0). В наших примерах ДПФ 1-й последовательности не содержит нулей.
2)В теории мы отмечали, что покоординатное произведение ДПФ временного сигнала и переходной характеристики устройства дает координаты ДПФ круговой свертки этих последовательностей. Так как оно нами найдено, то мы можем получить ДПФ искомой переходной характеристики покоординатным делением ДПФ 2-й последовательности на ДПФ 1-й.
3)СпомощьюобратногоДПФнаходимискомуюпоследовательность.
4)Делаем проверку полученного результата (т. е. непосредственно на-
ходим круговую свертку 1-й и полученной последовательностей и убеждаемся, что получили 2-ю данную последовательность).
Теперь приведем решение по указанной схеме нашего конкретного примера. Нам даны последовательности у = (0, 1, 2, 3) и z = (0, 1, 1, 0). Надо
найти такую последовательность х = (х0, х1, х2, х3), что y x z . 1) Находим ДПФ для у:
|
1 |
1 1 1 0 |
|
6 |
|||
yˆ F y 1 i 1 |
i |
1 |
|
2 2i . |
|||
4 |
1 1 1 1 |
2 |
|
2 |
|||
|
1 |
i 1 i |
|
3 |
|
2 2i |
Видно, что yˆ не содержит нулевых координат и содержит 2 комплексно сопряженных элемента. Теперь найдем
|
1 |
1 1 1 0 |
|
2 |
||
zˆ F z 1 i 1 |
i |
1 |
|
1 i . |
||
4 |
1 1 1 1 1 |
|
0 |
|||
|
1 |
i 1 i |
0 |
|
1 i |
(в ДПФ zˆ имеется нулевая координата, но это не играет роли).
23