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.

levinson

Recursión Levinson-Durbin

Sintaxis

a = levinson(r)
a = levinson(r,n)
[a,e] = levinson(r,n)
[a,e,k] = levinson(r,n)

Descripción

La recursividad Levinson-Durbin es un algoritmo para encontrar un Filtro IIR con una secuencia de autocorrelación determinista prescrita. Tiene aplicaciones en diseño de filtros, codificación y estimación espectral. El filtro que produce es la fase mínima.levinson

a = levinson(r) encuentra los coeficientes de un proceso lineal autoregresivo de orden que tiene como secuencia de autocorrelación. es una secuencia de autocorrelación determinista real o compleja.length(r)-1rr Si es una matriz, busca los coeficientes para cada columna de y los devuelve en las filas de . es el orden predeterminado del polinomio denominador ( ); Es decir.rlevinsonran=length(r)-1Aza = [1 a(2) ... a(n+1)] Los coeficientes de filtro se ordenan en poderes descendentes dez–1.

H(z)=1A(z)=11+a(2)z1++a(n+1)zn.

a = levinson(r,n) devuelve los coeficientes para un modelo de orden autoregresivo.n

[a,e] = levinson(r,n) devuelve el error de predicción, e, de la orden n.

[a,e,k] = levinson(r,n) devuelve los coeficientes de reflexión como un vector de columna de longitud.kn

Nota

se calcula internamente mientras se calculan los coeficientes, por lo que devolver simultáneamente es más eficiente que convertir a con .kakaktf2latc

Ejemplos

contraer todo

Estimar los coeficientes de un proceso autoregresivo dado por

<math display="block">
<mrow>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mn>0</mn>
<mo>.</mo>
<mn>1</mn>
<mspace width="0.16666666666666666em"></mspace>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
<mo>-</mo>
<mn>0</mn>
<mo>.</mo>
<mn>8</mn>
<mspace width="0.16666666666666666em"></mspace>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo>-</mo>
<mn>2</mn>
<mo stretchy="false">)</mo>
<mo>+</mo>
<mi>w</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>.</mo>
</mrow>
</math>

a = [1 0.1 -0.8];

Generar una realización del proceso filtrando el ruido blanco de la varianza 0.4.

rng('default') v = 0.4; w = sqrt(v)*randn(15000,1); x = filter(1,a,w);

Estimar la función de correlación. Deseche los valores de correlación a desajustes negativos. Utilice la recursividad Levinson-Durbin para estimar los coeficientes del modelo.

[r,lg] = xcorr(x,'biased'); r(lg<0) = [];  ar = levinson(r,numel(a)-1)
ar = 1×3

    1.0000    0.0957   -0.8026

Algoritmos

resuelve el sistema simétrico Toeplitz de ecuaciones linealeslevinson

[r(1)r(2)*r(n)*r(2)r(1)r(n1)*r(n)r(2)r(1)] [a(2)a(3)a(n+1)]=[r(2)r(3)r(n+1)],

donde (1) ( + 1) es el vector de autocorrelación de entrada, y ( )r = [r ... rn]ri* denota el complejo conjugado de ( ).ri La entrada es típicamente un vector de coeficientes de autocorrelación donde el lag 0 es el primer elemento, (1).rr

Nota

Si no es una secuencia de autocorrelación válida, la función podría devolver s incluso si la solución existe.rlevinsonNaN

El algoritmo requiere O(n2) flops y por lo tanto es mucho más eficiente que el comando de barra diagonal inversa para grandes archivos .MATLAB®n Sin embargo, la función se utiliza para órdenes bajas para proporcionar la ejecución más rápida posible.levinson\

Referencias

[1] Ljung, Lennart. System Identification: Theory for the User. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

Capacidades ampliadas

Consulte también

| | | |

Introducido antes de R2006a