В этом примере показано, как выполнить спектральную оценку на данных временных рядов. Мы используем тест Марпла (Комплексные данные в Л. Марпле: С.Л. Марпл младший, Цифровой Спектральный анализ с Приложениями, Prentice Hall, Englewood Cliffs, NJ 1987.)
Давайте начнем путем загрузки тестовых данных:
load marple
Большинство стандартных программ в System Identification 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);
Давайте теперь попробуем подход Blackman-Tukey к оценке спектра:
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'})
Кроме того, ARMA-моделирование покрытий System Identification Toolbox спектров:
ta44 = armax(marple,[4 4]); % 4 AR-parameters and 4 MA-parameters spectrumplot(t5,ta44,w,opt); legend({'Modified covariance','ARMA'})