exponenta event banner

Оценка спектра с использованием сложных данных - тестовый пример Марпла

В этом примере показано, как выполнять спектральную оценку данных временных рядов. Мы используем тестовый случай Марпла (сложные данные в 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.')

Figure contains 2 axes. Axes 1 with title Real part of data. contains an object of type line. Axes 2 with title Imaginary part of data. contains an object of type line.

На предварительном этапе анализа проверим периодограмму данных:

per = etfe(marple);
w = per.Frequency;
clf
h = spectrumplot(per,w);
opt = getoptions(h);
opt.FreqScale = 'linear';
opt.FreqUnits = 'Hz';
setoptions(h,opt)

Figure contains an axes. The axes with title From: e@y1 To: y1 contains an object of type line. This object represents per.

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

sp = etfe(marple,32);
spectrumplot(per,sp,w);

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent per, sp.

Давайте теперь попробуем подход Блэкмана-Туки к оценке спектра:

ssm = spa(marple); % Function spa performs spectral estimation
spectrumplot(sp,'b',ssm,'g',w,opt);    
legend({'Smoothed periodogram','Blackman-Tukey estimate'});

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent Smoothed periodogram, Blackman-Tukey estimate.

Длина окна по умолчанию дает очень узкое окно задержки для этого небольшого объема данных. Мы можем выбрать окно с большим запаздыванием:

ss20 = spa(marple,20);
spectrumplot(sp,'b',ss20,'g',w,opt);
legend({'Smoothed periodogram','Blackman-Tukey estimate'});

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent Smoothed periodogram, Blackman-Tukey estimate.

Оценка авторегрессионной (AR) модели

Параметрическая AR-модель 5-го порядка вычисляется следующим образом:

t5 = ar(marple,5);

Сравните с оценкой периодограммы:

spectrumplot(sp,'b',t5,'g',w,opt); 
legend({'Smoothed periodogram','5th order AR estimate'});

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent 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'})

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 3 objects of type line. These objects represent Modified covariance, Burg, Yule-Walker.

Оценка модели AR с использованием подхода инструментальных переменных

AR-моделирование также может быть выполнено с использованием подхода Инструментальная переменная. Для этого используется функция ivar:

ti = ivar(marple,4); 
spectrumplot(t5,ti,w,opt);
legend({'Modified covariance','Instrumental Variable'})

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent Modified covariance, Instrumental Variable.

Модель авторегрессионно-движущегося среднего (ARMA) спектра

Кроме того, 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'})

Figure contains an axes. The axes with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent Modified covariance, ARMA.