Текст подпрограммы и версий ( Фортран )
ftfcr.zip
Тексты тестовых примеров ( Фортран )
tftfcr.zip
Текст подпрограммы и версий ( Си )
ftfcr_c.zip
Тексты тестовых примеров ( Си )
tftfcr_c.zip
Текст подпрограммы и версий ( Паскаль )
ftfcr_p.zip
Тексты тестовых примеров ( Паскаль )
tftfcr_p.zip

Подпрограмма:  FTFCR

Назначение

Вычисление коэффициентов Фурье по системе четных тригонометрических функций вещественного ряда длины, на 1 большей степени двух, с использованием метода быстрого преобразования Фурье.

Математическое описание

Пусть длина  N преобразуемого вещественного ряда  X удовлетворяет условию:  N = 2 M + 1. Ряд  X преобразуется в вещественный ряд  A по формуле (прямое преобразование):

                                    N-2             
     A r  =  1/2 * X0 +    ∑    X n * cos (π r * n/(N - 1) ) + 1/2 * (- 1)r * XN-1  ,
                                    n=1
      r = 0, 1, ..., N - 1 

Так как система функций  cos (π r x),  r = 0, ..., N ортогональна на сетке  Xn = n / N с весами (1/2, 1, 1, ..., 1, 1/2), но не ортонормирована, обратное преобразование совпадает с прямым с точностью до постоянного множителя.

B вычислениях используется метод быстрого преобразования Фурье [1]. Ряд коэффициентов Фурье  A получается на месте исходного ряда  X без использования дополнительной рабочей памяти. При больших  N число операций пропорционально  N * log2N.

1.  В.А.Морозов, Н.Н.Кирсанова, А.Ф.Сысоев. Комплекс алгоритмов быстрого преобразования Фурье дискретных рядов. Сб. "Численный анализ на ФОРТРАНе", вып. 15, Изд. МГУ, 1976.

Использование

    SUBROUTINE  FTFCR (X, N) 

Параметры

X - вещественный вектоp длины  N; перед началом работы подпрограммы содержит преобразуемый ряд  X; по окончании работы подпрограммы содержит преобразованный ряд  A;
N - заданная длина массива  X (тип: целый).

Версии: нет

Вызываемые подпрограммы

FTF1C - вычисление дискретного или обратного дискретного преобразования Фурье комплексного ряда длины, равной степени двух, методом быстрого преобразования Фурье.

Замечания по использованию

  Длина  N преобразуемого ряда должна удовлетворять условию  N = 2 M + 1,  M > 2, целое. B противном случае pезультат работы подпрограммы не определен.

Пример использования

      DIMENSION X(9)
      DATA  X /1., 2., 3., 4., 5., 6., 7., 8., 9./
      N = 9
      CALL  FTFCR (X, N)

Результаты:

   X = ( 40.,  -13.13707,  0.,  -1.6199,  0.,  -0.723231,  0., -0.519783065,  0. )