Автокорреляционная функция экспоненциальной последовательности

Вычислите автокорреляционную функцию экспоненциальной последовательности с 28 выборками, x=0.95n для n0.

a = 0.95;

N = 28;
n = 0:N-1;
lags = -(N-1):(N-1);

x = a.^n;
c = xcorr(x);

Определить c аналитически проверять правильность результата. Используйте большую частоту дискретизации, чтобы симулировать непрерывную ситуацию. Автокорреляционная функция последовательности x(n)=an для n0, с |a|<1,

c(n)=1-a2(N-|n|)1-a2×a|n|.

fs = 10;
nn = -(N-1):1/fs:(N-1);

dd = (1-a.^(2*(N-abs(nn))))/(1-a^2).*a.^abs(nn);

Постройте последовательности на той же фигуре.

stem(lags,c);
hold on
plot(nn,dd)
xlabel('Lag')
legend('xcorr','Analytic')
hold off

Повторите вычисление, но теперь найдите объективную оценку автокорреляции. Проверьте, что объективной оценкой дают cu(n)=c(n)/(N-|n|).

cu = xcorr(x,'unbiased');

du = dd./(N-abs(nn));

stem(lags,cu);
hold on
plot(nn,du)
xlabel('Lag')
legend('xcorr','Analytic')
hold off

Повторите вычисление, но теперь найдите смещенную оценку автокорреляции. Проверьте, что смещенной оценкой дают cb(n)=c(n)/N.

cb = xcorr(x,'biased');

db = dd/N;

stem(lags,cb);
hold on
plot(nn,db)
xlabel('Lag')
legend('xcorr','Analytic')
hold off

Найдите оценку автокорреляции, значение которой в нулевой задержке является единицей.

cz = xcorr(x,'coeff');

dz = dd/max(dd);

stem(lags,cz);
hold on
plot(nn,dz)
xlabel('Lag')
legend('xcorr','Analytic')
hold off

Смотрите также

Функции