Вторая пачка часть 96
Поэтому он может быть эффективно использован и для вычисления ОДПФ с незначительными изменениями, которые следуют из сравнения формул для ДПФ (9.14а) и ОДПФ (9.14б):
1) множители W заменяются на комплексно-со¬пря¬жен¬ные W*;
2) опускаются множители 1/N, стоящие после по¬след¬ней итерации.
Такие изменения обычно предусматриваются в еди¬ной процедуре, по которой вычисляются в за¬ви¬си¬мос¬ти от зна¬че-ния некоторого задаваемого пользователем клю-ча БПФ либо ОБПФ.
Как видно из вышеизложенного, рассмотренный ал¬горитм включает ~N log2N (т.е. порядка N) ариф¬ме¬ти¬ческих операций, что, по сравнению с 2 опускаются множители 1/N, стоящие после последней итерации.
Отметим, что реализация алгоритма БПФ, пред¬ло¬жен¬ная в работе А.А.Белашовой и В.Ю.Белашова [1990] и выполненная на языке МНЕМОКОД в опе¬ра¬ци¬онной сис¬теме АСПО СМ ЭВМ, позволяет сэ¬ко¬но¬мить (не в ущерб времени выполнения вычислений) еще N ячеек па¬мяти по сравнению с пред¬ло¬жен¬ной Дж.Кули и Дж.Тьюки [1965] и мо¬ди¬фи¬ка¬ци¬ями алгоритма, рас¬смот¬¬ренными в работах Н.М.Бреннера [1967], Дж. Р.Фишера [1970] и Р. Синг¬лтона [1969]. Отметим так¬же, что рас¬смот-рен¬ный алгоритм БПФ значительно умень¬ша¬ет ошиб¬ку округления, связанную с ариф¬ме¬ти¬чес-к謬ми опе¬ра¬циями. По сравнению с прямым ме-то¬дом он сни¬жает ее в N/log2N раз [Ахмед, Рао, 1980].
Представленная процедура реализует БПФ для по¬сле¬довательностей комплексных ли-бо дей¬ст¬вительных (в этом случае полагается ImX(m)= = 0) чисел с про¬из¬воль¬ной в пределах ресурсов памяти ЭВМ, дли¬ной массива входных данных. При этом для N ? =2 обрабатывается количество членов ряда, рав¬ное максимальному N' = 2n < N.
Формальные параметры процедуры. Входные: x (тип real) - двумерный массив x[1:n,1:2], в ко¬то¬ром x[m,1] = Re X(m) и x[m,2] = ImX(m) - при вы¬чис¬лении прямого БПФ, или x[m,1] = ReCx(k) и x[m,2] = ImCx(k) - при вычислении обратного БПФ, соответственно; t, ns (тип word) - од¬но¬мер¬ные массивы размерностью [1:n], ис¬поль¬зу¬ю¬щи¬е¬ся для перестановки (инверсии) данных; n (тип word) - длина обрабатываемой реализации; sign (тип integer) - ключ, значение которого опреде¬ля¬ет вид преобразования: при sign = -1 вы¬пол¬ня¬ет¬ся пря¬мое, а при sign = 1 - обратное БПФ
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа