Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

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