Текст подпрограммы и версий ( Фортран )
rss1r.zip
Тексты тестовых примеров ( Фортран )
trss1r.zip
Текст подпрограммы и версий ( Си )
rss1r_c.zip
Тексты тестовых примеров ( Си )
trss1r_c.zip
Текст подпрограммы и версий ( Паскаль )
rss1r_p.zip
Тексты тестовых примеров ( Паскаль )
trss1r_p.zip

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

Назначение

Построение автопериодограмм и взаимных периодограмм двух вещественных случайных процессов по одному отрезку их реализаций.

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

Пусть заданы реализации двух вещественных, стационарных, центрированных случайных процессов  Xq,  Yq,  q = 0, 1, ..., M - 1 на сетке по оси времени  tq = q * DT с шагом DT > 0. Рассмотрим отрезки этих реализаций длины  N:  1 ≤ N ≤ M, левые границы которых  a, b:  0 ≤ a ≤ M - N,  0 ≤ b ≤ M - N, вообще говоря, различны, т.е. отрезки вида:  Xa + s,  Yb + s,  s = 0, 1, ..., N - 1, и вычислим их дискретные преобразования Фурье  Am, Bm:

                  N-1
      Am  =    ∑   Xa + s exp(- i λm ts )  =
                  s=0
                                                              N-1
                                                          =   ∑   Xa + s exp(- 2π i m s / N) ,
                                                              s=0
                  N-1
      Bm  =    ∑   Yb + s exp(- i λm ts )  =
                  s=0
                                                              N-1
                                                          =   ∑   Yb + s exp(- 2π i m s / N) ,
                                                              s=0 

где   λm = m * Δλ,   m = 0, 1, ..., N - 1,   Δλ = 2π/(N * DT),   i = √-1.

Соответствующие автопериодограммы и взаимные периодограммы строятся по формулам [1]:

    PXm    =  (DT / N) | Am | 2 ,            PYm  =  (DT / N)  | Bm | 2 ,

    PXYm  =  (DT / N)  A*m Bm ,             m  =  0, 1, ..., N -1 , 

где * - знак комплексного сопряжения, при этом функции РХm, PYm и PXY1m = Re PXYm симметричны относительно точки  m = N/2, а функция PXY2m = Im PXYm  антисимметрична относительно  m = N/2.

Периодограммы, полученные по одному отрезку реализаций, являются при N → +∞ асимптотически несмещенными оценками спектров случайных процессов, но эти оценки асимптотически несостоятельны.

Полное описание реализованного алгоритма содержится в статье [2] (подпрограмма PERSEG).

1.  Дж.Бендат, А.Пирсол, Измерение и анализ случайных процессов, Изд - во "Мир", M., 1974.
2.  М.В.Арефьева, Корреляционный и спектральный анализ стационарных случайных процессов (часть 1), сб. "Численный анализ на ФОРТРАНе", вып.15. Изд - во МГУ, M., 1976.

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

    SUBROUTINE  RSS1R (X1, Y1, N, DT, PX, PY, PXY1, PXY2) 

Параметры

X1, Y1 - одномерные мссивы длины N + 1, первые  N элементов которых содержат значения исходных реализаций случайных процессов Xa + s,  Yb + s, s = 0, 1, ..., N - 1 (тип: вещественный);
N - количество заданных значений каждого из двух исходных рядов, N ≥ 4 - целая степень числа два (тип: целый);
DT - заданный шаг сетки по оси времени, DT > 0 (тип: вещественный);
PX - одномерный массив длины N/2 + 1, содержащий вычисленные значения автопериодограммы процесса  X (тип: вещественный);
PY - одномерный массив длины N/2 + 1, содержащий вычисленные значения автопериодограимы процесса  Y (тип: вещественный);
PXY1 - одномерный массив длины N/2 + 1, содержащий вычисленные значения вещественной части взаимной периодограммы процессов X, Y (тип: вещественный);
PXY2 - одномерный массив длины N/2 + 1, содержащий вычисленные значения мнимой части взаимной периодограммы процессов X, Y (тип: вещественный).

Версии: нет

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

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

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

  1. 

После выхода из подпрограммы RSS1R значения исходных случайных процессов в массивах X1, Y1 не сохраняются.

  2. 

B частном случае построения автопериодограммы одного случайного процесса  X в массив Y1 следует заслать нули, при этом допустимы совпадения параметров: PX = PY = PXY1 = PXY2.

  3.  B частном случае построения только автопериодограмм двух случайных процессов X, Y без вычисления их взаимной периодограммы допустимы совпадения параметров: P = PXY1 = PXY2.

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

       DIMENSION  X1(5), Y1(5), PX(3), PY(3), PXY1(3), PXY2(3)
       DATA  X1(1), X1(2), X1(3), X1(4), X1(5) /1., 2., 3., 4., 0./
       DATA  Y1(1), Y1(2), Y1(3), Y1(4), Y1(5) /4., 3., 2., 1., 0./
       N = 4
       DT = 1.
       CALL  RSS1R (X1, Y1, N, DT, PX, PY, PXY1, PXY2)

Результаты:

       PX  =  (25.,   2.,   1) ,           PY  =  (25.,  2.,  1.) , 

       PXY1  =  (25., - 2., - 1.) ,     PXY2  =  ( 0.,  0.,  0.)