В этом примере показано, как выполнять спектральную оценку данных временных рядов. Мы используем тестовый случай Марпла (сложные данные в L. Marple: S.L. Marple, Jr, Digital Spectral Analysis with Applications, Prentice-Hall, Englewood Cliffs, NJ 1987.)
Начнем с загрузки тестовых данных:
load marpleБольшинство процедур в Toolbox™ идентификации системы поддерживают сложные данные. Однако для построения графика мы рассматриваем действительную и мнимую части данных отдельно.
Сначала взгляните на данные:
subplot(211),plot(real(marple)),title('Real part of data.') subplot(212),plot(imag(marple)),title('Imaginary part of data.')

На предварительном этапе анализа проверим периодограмму данных:
per = etfe(marple); w = per.Frequency; clf h = spectrumplot(per,w); opt = getoptions(h); opt.FreqScale = 'linear'; opt.FreqUnits = 'Hz'; setoptions(h,opt)

Поскольку запись данных представляет собой только 64 выборки, а периодограмма вычисляется для 128 частот, мы ясно видим колебания из узкого частотного окна. Поэтому мы применяем некоторое сглаживание к периодограмме (соответствующее частотному разрешению 1/32 Гц):
sp = etfe(marple,32); spectrumplot(per,sp,w);

Давайте теперь попробуем подход Блэкмана-Туки к оценке спектра:
ssm = spa(marple); % Function spa performs spectral estimation spectrumplot(sp,'b',ssm,'g',w,opt); legend({'Smoothed periodogram','Blackman-Tukey estimate'});

Длина окна по умолчанию дает очень узкое окно задержки для этого небольшого объема данных. Мы можем выбрать окно с большим запаздыванием:
ss20 = spa(marple,20); spectrumplot(sp,'b',ss20,'g',w,opt); legend({'Smoothed periodogram','Blackman-Tukey estimate'});

Параметрическая AR-модель 5-го порядка вычисляется следующим образом:
t5 = ar(marple,5);
Сравните с оценкой периодограммы:
spectrumplot(sp,'b',t5,'g',w,opt); legend({'Smoothed periodogram','5th order AR estimate'});

Команда AR фактически охватывает 20 различных методов оценки спектра. Выше было то, что известно как «модифицированная оценка ковариации» в книге Марпл.
Некоторые другие хорошо известные получают с помощью:
tb5 = ar(marple,5,'burg'); % Burg's method ty5 = ar(marple,5,'yw'); % The Yule-Walker method spectrumplot(t5,tb5,ty5,w,opt); legend({'Modified covariance','Burg','Yule-Walker'})

AR-моделирование также может быть выполнено с использованием подхода Инструментальная переменная. Для этого используется функция ivar:
ti = ivar(marple,4);
spectrumplot(t5,ti,w,opt);
legend({'Modified covariance','Instrumental Variable'})
Кроме того, System Identification Toolbox охватывает ARMA-моделирование спектров:
ta44 = armax(marple,[4 4]); % 4 AR-parameters and 4 MA-parameters spectrumplot(t5,ta44,w,opt); legend({'Modified covariance','ARMA'})
