Глава 9. Математическая обработка экспериментальных данных (спектральный анализ временных рядов)
цифровую регистрацию и обработку данных на ЭВМ,
чаще всего приходится иметь дело с временными по-
следовательностями. При этом для исследования спектра
в качестве ортогонального преобразования используется
дискретное преобразование Фурье (ДПФ) этих
последовательностей и соответствующие формулы (9.9)
принимают вид:
() ()
Ck
N
Xm W
x
km
m
N
=⋅
=
−
∑
1
0
1
, k = 0, 1, ..., N -1
, (9.14a)
() ()
Xm C k W
x
km
m
N
=⋅
−
=
−
∑
0
1
, m = 0, 1, ..., N -1
, (9.14б)
We
iN
=
− 2π
, i = -1
.
Операция (9.14а) называется
дискретным преобразова-
нием Фурье
(ДПФ) последовательности X(m), обратная
операция (9.14б) -
обратным ДПФ (ОДПФ), соответст-
венно спектр мощности, амплитудный и фазовый Фурье-
спектры определяются, в отличие от выражений (9.10) -
(9.12), формулами
() () () ()
Pk C k Pk
x
=
2
, p k =
, (9.15)
()
()
[]
()
[]
ψ
x
x
x
k
Ck
Ck
= arctg
Im
Re
, k = 0, 1, ..., N -1
. (9.16)
Отметим, что непосредственное применение формул
(9.14) сопряжено с большим объемом вычислительной
работы и требует выполнения примерно 2N
2
арифметичес-
ких операций (комплексных умножений с последующим
сложением или вычитанием), что приводит при уве-
личении N к резкому росту временных затрат. Это об-
стоятельство обусловило, начиная с работы Дж.Кули и
Дж.Тьюки [1965], интерес к поиску "быстрых" алгоритмов
вычисления ДПФ - реализации так называемого быстрого
преобразования Фурье (БПФ). В настоящее время имеется
большое количество алгоритмов БПФ, минимизирующих
как время выполнения процедуры, так и объем требуемой
памяти (описание некоторых из них приведено в книге
Н.Ахмеда и К.Р.Рао [1980], эффективная реализация БПФ
в ряде конкретных систем обработки данных - в работах
О.В. Гулинского, В.Ю.Белашова, Л.И.Дормана и др.
[1988], А.А.Белашовой и В.Ю.Белашова [1990]). Рассмот-
рим реализацию алгоритма Кули - Тьюки вычисления БПФ,
предложенную в последней из цитированных выше работ,
сделав несколько предварительных замечаний.
Будем предполагать, что в формулах (9.14) N = 2, n= 1,
2, ..., n
max
. При этом общность не теряется, поскольку N
выбирается достаточно большим для того, чтобы
удовлетворять теореме Котельникова
1
N
≥
2BL, где B (Гц)
- полоса частот сигнала x(t), L (с) - его длительность.
При расчете коэффициентов Фурье по формуле (9.14а)
индексные выражения k, если их представить в двоичном
виде, появляются в C
x
(k) в инвертированном порядке, в
отличие от индексных выражений m в X(m), где они
1
В зарубежной литературе обычно употребляются другие названия -
"теорема отсчетов", "теорема дискретизации".
представлены в естественном порядке [Ахмед, Рао, 1980].
Вызывающая в общем случае большие затраты времени
двоичная инверсия может быть при N = 2
n
эффективно
осуществлена с помощью метода перестановки данных,
использующего только десятичную арифметику в
соответствии с алгоритмом, предложенным Н.Ахмедом и
К.Р.Рао [1980], суть которого заключается в следующем.
1. Число N выражается в терминах n множителей:
n
s
= N/2
s
, s=1,2,......, n=log
2
N. (9.17)
2. Формируется таблица T следующего вида:
0
n
1
n
2
(n
1
+ n
2
)
n
3
(n
1
+ n
3
) (n
2
+ n
3
) (n
1
+ n
2
+ n
3
)
n
4
(n
1
+ n
4
) (n
2
+ n
4
) (n
1
+ n
2
+ n
4
) ...
. . .
n
n
,
элементы которой представляют собой двоичную инвер-
сию
{k} = {0, n
1
, n
2
, (n
1
+ n
2
), n
3
, (n
1
+ n
3
), ..., (n
1
+ n
2
+ ... + n
n
) }
исходной "естественной" последовательности {m}. Напри-
мер, для N=8 имеем: n
1
=4, n
2
=2, n
3
=1 и вместо исход-
ной последовательности {m}={0,1,2,3,4,5,6,7} получим
инвертированную: {k}={0,4,2,6,1,5,3,7}.
Принимая во внимание изложенное, процедуру, реали-
зующую алгоритм Кули - Тьюки вычисления БПФ, можно
сформулировать следующим образом [Белашова,
Белашов, 1990].
1. Получение методом перестановки инвертированной
последовательности {k} из ряда {m}, представленного в
естественном порядке, в соотвествии с формулой (9.17).
2. Получение последовательности степеней W (см. фор-
мулы (9.14)) с показателями, представляющими собой
последовательность {k}:
)
()
WW
k
⎧
⎨
⎩
⎫
⎬
⎭
=
0
,,, W W ..., W
kk
k
12
N/ 2-i
3. Выполнение n = log
2
N итераций согласно графу,
пример которого для N = 8 показан на рис. 9.1. При этом
каждой группе i-й итерации соответствует свой
множитель из последовательности {W
W
k
i
(k)
}. Получен-
ные после i-й итерации промежуточные значения за-
писываются на место исходного массива {X(m)}, что, как
видно из рис. 9.1, вполне осуществимо при итерационном
методе реализации алгоритма БПФ и дает значительную
экономию оперативной памяти.
4. Вычисление коэффициентов C
x
(k) по формуле
(9.14а).
Замечание. Рассмотренный алгоритм БПФ не зависит
от того, являются ли исходные величины X(m) действи-
тельными или комплексными. Поэтому он может быть
эффективно использован и для вычисления ОДПФ с
незначительными изменениями, которые следуют из
сравнения формул для ДПФ (9.14а) и ОДПФ (9.14б):
1) множители W заменяются на комплексно-сопряжен-
ные W
*
;
2) опускаются множители 1/N, стоящие после послед-
ней итерации.
152