|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/r_htm_p/rss3r_p.htm
Дата изменения: Mon Apr 4 09:43:24 2011 Дата индексирования: Mon Oct 1 22:37:32 2012 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий rss3r_p.zip |
Тексты тестовых примеров trss3r_p.zip |
Построение сглаженных оценок спектров случайных процессов путем усреднения по частотам.
Подпрограмма 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. )