Текст подпрограммы и версий
rss3r_p.zip
Тексты тестовых примеров
trss3r_p.zip

Подпрограмма:  RSS3R (модуль RSS3R_p)

Назначение

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

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

Подпрограмма RSS3R реализует один из способов уменьшения дисперсии спектральных оценок и, тем самым, повышения их точности, который состоит в усреднении значений спектрального ряда S ( I ),  I = 1, 2, ..., NC на каждой частоте  I по 2Р + 1 соседним частотам [1].
Величина  P имеет смысл полуширины усредняющего фильтра. Усреднение производится с равными весами и усредненное значение приписывается центральной частоте.

Процесс усреднения проводится итерационно, а именно: усредненнное значение для  I - ой частоты получается из усредненного значения для ( I - 1) - ой частоты путем прибавления и вычитания неусредненных значений для соответствующих крайних частот. При этом спектр  S доопределяется (внутри подпрограммы) симметрично или антисимметрично относительно концов 1 и NC - в зависимости от задаваемого значения управляющего параметра  Q.

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

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

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

procedure RSS3R(var S :Array of Real; NC :Integer; P :Integer;
                Q :Real; var W :Array of Real);

Параметры

S - одномерный массив длины NC, содержащий заданные чения усредняемого спектрального ряда (тип: вещественный);
NC - количество заданных значений исходного ряда (тип: целый);
P - заданная величина, определяющая число соседних частот 2P + 1, по которым производится усреднение, 0 < P < NC (тип: целый);
Q - заданный управляющий параметр (тип: вещественный):
при Q =  1. - усредняется симметричный относительно 1 и NC спектральный ряд,
при Q = -1. - усредняется антисимметричный относительно 1 и NC спектральный ряд;
W - одномерный массив длины NC, содержащий вычисленные значения усредненного ряда (тип: вещественный).

Версии: нет

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

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

  B случае антисимметричного спектра  S (Q = - 1.) должны выполняться условия: S (1) = 0., S (NC) = 0. .

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

Unit TRSS3R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, RSS3R_p;

function TRSS3R: String; 

implementation

function TRSS3R: String;
var
P,NC,_i :Integer;
Q :Real;
W1 :Array [0..8] of Real;
W2 :Array [0..8] of Real;
const
S :Array [0..8] of Real = ( 9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0,1.0 );
begin
Result := '';
NC := 9;
P := 3;
Q := 1.0;
RSS3R(S,NC,P,Q,W1);
Result := Result + #$0D#$0A;
for _i:=0 to 8 do
 begin
  Result := Result + Format('%20.16f ',[W1[_i]]);
  if ( ((_i+1) mod 3)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
S[0] := 0.0;
S[8] := 0.0;
Q := -1.0;
RSS3R(S,NC,P,Q,W2);
Result := Result + #$0D#$0A;
for _i:=0 to 8 do
 begin
  Result := Result + Format('%20.16f ',[W2[_i]]);
  if ( ((_i+1) mod 3)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
UtRes('TRSS3R',Result);  { вывод результатов в файл TRSS3R.res }
exit;
end;

end.

Результаты:

     W1  =  ( 7.142857,  7.,  6.571429,  5.857143,  5.,  4.,  3.285714, 
                   2.857143,  2.714286 ) , 

     W2  =  ( 0.,  1.571429,  3.142857,  4.714286,  5.,  3.857143, 
                   2.571429,  1.285714,  0. )