Взаимная корреляция двух экспоненциальных последовательностей

Вычислите и постройте взаимную корреляцию двух экспоненциальных последовательностей с 16 выборками, xa=0.84n и xb=0.92n, с n0.

N = 16;
n = 0:N-1;

a = 0.84;
b = 0.92;

xa = a.^n;
xb = b.^n;

r = xcorr(xa,xb);

stem(-(N-1):(N-1),r)

Определить c аналитически проверять правильность результата. Используйте большую частоту дискретизации, чтобы моделировать непрерывную ситуацию. Функция взаимной корреляции последовательностей xa(n)=an и xb(n)=bn для n0, с 0<a,b<1,

c_ab (n) = \frac1-(ab) ^N-| n|1-ab \times\casesa^n, & n>0,

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

cn = (1 - (a*b).^(N-abs(nn)))/(1 - a*b) .* ...
     (a.^nn.*(nn>0) + (nn==0) + b.^-(nn).*(nn<0));

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

hold on
plot(nn,cn)

xlabel('Lag')
legend('xcorr','Analytic')

Проверьте, что переключение порядка операндов инвертирует последовательность.

figure

stem(-(N-1):(N-1),xcorr(xb,xa))

hold on
stem(-(N-1):(N-1),fliplr(r),'--*')

xlabel('Lag')
legend('xcorr(x_b,x_a)','fliplr(xcorr(x_a,x_b))')

Сгенерируйте экспоненциальную последовательность с 20 выборками xc=0.77n. Вычислите и постройте его взаимные корреляции с xa и xb. Выведите задержки, чтобы сделать графический вывод легче. xcorr добавляет нули в конце более короткой последовательности, чтобы совпадать с длиной более длинной.

xc = 0.77.^(0:20-1);

[xca,la] = xcorr(xa,xc);
[xcb,lb] = xcorr(xb,xc);

figure

subplot(2,1,1)
stem(la,xca)
subplot(2,1,2)
stem(lb,xcb)
xlabel('Lag')

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

Функции