Main Content

lpc

Coeficientes del filtro de predicción lineal

Descripción

ejemplo

[a,g] = lpc(x,p) encuentra los coeficientes de un predictor lineal de p-ésimo orden, un filtro FIR que predice el valor actual de la serie de tiempo de valor real x en base a muestras pasadas. La función también devuelve g, la varianza del error de predicción. Si x es una matriz, la función trata cada columna como un canal independiente.

Ejemplos

contraer todo

Estime una serie de datos mediante un predictor hacia delante de tercer orden. Compare la estimación con la señal original.

Primero, cree los datos de señal como salida de un proceso autorregresivo (AR) impulsado por ruido blanco gaussiano normalizado. Use las últimas 4096 muestras de la salida del proceso AR para evitar transitorios de inicio.

noise = randn(50000,1);
x = filter(1,[1 1/2 1/3 1/4],noise);
x = x(end-4096+1:end);

Calcule los coeficientes del predictor y la señal estimada.

a = lpc(x,3);
est_x = filter([0 -a(2:end)],1,x);

Compare la señal predicha con la señal original representando las últimas 100 muestras de cada una.

plot(1:100,x(end-100+1:end),1:100,est_x(end-100+1:end),'--')
grid
xlabel('Sample Number')
ylabel('Amplitude')
legend('Original signal','LPC estimate')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original signal, LPC estimate.

Calcule el error de predicción y la secuencia de autocorrelación del error de predicción. Represente la autocorrelación. El error de predicción es aproximadamente ruido blanco gaussiano, lo esperado para un proceso de entrada AR de tercer orden.

e = x-est_x;
[acs,lags] = xcorr(e,'coeff');

plot(lags,acs)
grid
xlabel('Lags')
ylabel('Normalized Autocorrelation')
ylim([-0.1 1.1])

Figure contains an axes object. The axes object contains an object of type line.

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector o matriz. Si x es una matriz, la función trata cada columna como un canal independiente.

Orden polinomial del filtro de predicción, especificado como entero positivo. p debe ser menor que o igual a la longitud de x.

Argumentos de salida

contraer todo

Coeficientes del predictor lineal, devueltos como un vector fila o una matriz. Los coeficientes relacionan las p muestras pasadas de x con el valor actual:

x^(n)=a(2)x(n1)a(3)x(n2)a(p+1)x(np).

Varianza del error de predicción, devuelta como escalar o vector.

Más acerca de

contraer todo

Error de predicción

El error de predicción, e(n), puede considerarse como la salida del filtro del error de predicción A(z), donde

  • H(z) es el predictor lineal óptimo.

  • x(n) es la señal de entrada.

  • x^(n) es la señal predicha.

Algoritmos

lpc determina los coeficientes de un predictor lineal hacia delante minimizando el error de predicción en el sentido de los mínimos cuadrados. Tiene aplicaciones en el diseño de filtros y la codificación de voz.

lpc utiliza el método de autocorrelación de modelado autorregresivo (AR) para encontrar los coeficientes del filtro. Es posible que el filtro generado no modele el proceso de forma exacta, incluso aunque la secuencia de datos sea realmente un proceso AR del orden correcto, ya que el método de autocorrelación dispone en ventanas implícitamente los datos. En otras palabras, el método asume que las muestras de la señal más allá de la longitud de x son 0.

lpc calcula la solución de mínimos cuadrados a Xa = b, donde

X=[x(1)00x(2)x(1)x(2)0x(m)x(1)0x(m)x(2)00x(m)],a=[1a(2)a(p+1)],b=[100],

y m es la longitud de x. Resolver el problema de mínimos cuadrados mediante las ecuaciones normales XHXa=XHb lleva a las ecuaciones de Yule-Walker

[r(1)r(2)r(p)r(2)r(1)r(2)r(p)r(2)r(1)][a(2)a(3)a(p+1)]=[r(2)r(3)r(p+1)],

donde r = [r(1) r(2) ... r(p+1)] es una estimación de autocorrelación para x calculada mediante xcorr. El algoritmo de Levinson-Durbin (consulte levinson) resuelve las ecuaciones de Yule-Walker en O(p2) flops.

Referencias

[1] Jackson, L. B. Digital Filters and Signal Processing. 2nd Edition. Boston: Kluwer Academic Publishers, 1989, pp. 255–257.

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | |