Main Content

Función de autocorrelación de la secuencia exponencial

Calcular la función de autocorrelación de una secuencia exponencial de 28 muestras,

<math display="block">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mn>0</mn>
<mo>.</mo>
<mn>9</mn>
<msup>
<mrow>
<mn>5</mn>
</mrow>
<mrow>
<mi>n</mi>
</mrow>
</msup>
</mrow>
</math>
Para
<math display="block">
<mrow>
<mi>n</mi>
<mo></mo>
<mn>0</mn>
</mrow>
</math>
.

a = 0.95;  N = 28; n = 0:N-1; lags = -(N-1):(N-1);  x = a.^n; c = xcorr(x);

Determinar

<math display="block">
<mrow>
<mi>c</mi>
</mrow>
</math>
analíticamente para comprobar la exactitud del resultado. Utilice una frecuencia de muestreo mayor para simular una situación continua. La función de autocorrelación de la secuencia
<math display="block">
<mrow>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mrow>
<mi>a</mi>
</mrow>
<mrow>
<mi>n</mi>
</mrow>
</msup>
</mrow>
</math>
Para
<math display="block">
<mrow>
<mi>n</mi>
<mo></mo>
<mn>0</mn>
</mrow>
</math>
Con
<math display="block">
<mrow>
<mo>|</mo>
<mi>a</mi>
<mo>|</mo>
<mo><</mo>
<mn>1</mn>
</mrow>
</math>
Es

<math display="block">
<mrow>
<mi>c</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mfrac>
<mrow>
<mn>1</mn>
<mo>-</mo>
<msup>
<mrow>
<mi>a</mi>
</mrow>
<mrow>
<mn>2</mn>
<mo stretchy="false">(</mo>
<mi>N</mi>
<mo>-</mo>
<mo>|</mo>
<mi>n</mi>
<mo>|</mo>
<mo stretchy="false">)</mo>
</mrow>
</msup>
</mrow>
<mrow>
<mn>1</mn>
<mo>-</mo>
<msup>
<mrow>
<mi>a</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mfrac>
<mo>×</mo>
<msup>
<mrow>
<mi>a</mi>
</mrow>
<mrow>
<mo>|</mo>
<mi>n</mi>
<mo>|</mo>
</mrow>
</msup>
<mo>.</mo>
</mrow>
</math>

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

Trazar las secuencias en la misma figura.

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

Repita el cálculo, pero ahora busque una estimación de la autocorrelación.Imparcial Verifique que la estimación imparcial sea dada por

<math display="block">
<mrow>
<msub>
<mrow>
<mi>c</mi>
</mrow>
<mrow>
<mi>u</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mi>c</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>/</mo>
<mo stretchy="false">(</mo>
<mi>N</mi>
<mo>-</mo>
<mrow>
<mo>|</mo>
<mi>n</mi>
<mo>|</mo>
</mrow>
<mo stretchy="false">)</mo>
</mrow>
</math>
.

cu = xcorr(x,'unbiased');  du = dd./(N-abs(nn));  stem(lags,cu); hold on plot(nn,du) xlabel('Lag') legend('xcorr','Analytic') hold off

Repita el cálculo, pero ahora busque una estimación de la autocorrelación.Parcial Verifique que la estimación sesgada sea dada por

<math display="block">
<mrow>
<msub>
<mrow>
<mi>c</mi>
</mrow>
<mrow>
<mi>b</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mi>c</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>/</mo>
<mi>N</mi>
</mrow>
</math>
.

cb = xcorr(x,'biased');  db = dd/N;  stem(lags,cb); hold on plot(nn,db) xlabel('Lag') legend('xcorr','Analytic') hold off

Encuentre una estimación de la autocorrelación cuyo valor en cero desajuste es la unidad.

cz = xcorr(x,'coeff');  dz = dd/max(dd);  stem(lags,cz); hold on plot(nn,dz) xlabel('Lag') legend('xcorr','Analytic') hold off

Consulte también

Funciones