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.

Modelado paramétrico

Qué es el modelado paramétrico

Las técnicas de modelado paramétrico encuentran los parámetros de un modelo matemático que describe una señal, sistema o proceso. Estas técnicas utilizan información conocida sobre el sistema para determinar el modelo. Las aplicaciones para el modelado paramétrico incluyen síntesis de voz y música, compresión de datos, estimación espectral de alta resolución, comunicaciones, fabricación y simulación.

Funciones de modelado paramétrico disponibles

Las funciones de modelado paramétrico de la caja de herramientas funcionan con el modelo de función de transferencia racional. Dada la información adecuada sobre un sistema desconocido (datos de respuesta de impulso o frecuencia, o secuencias de entrada y salida), estas funciones encuentran los coeficientes de un sistema lineal que modela el sistema.

Una aplicación importante de las funciones de modelado paramétrico está en el diseño de filtros que tienen una respuesta de tiempo o frecuencia prescrita.

Este es un resumen de las funciones de modelado paramétrico en esta caja de herramientas.

Dominio

Funciones

Descripción

hora

arburg

Genere coeficientes de filtro de todo polo que modelen una secuencia de datos de entrada utilizando el algoritmo Levinson-Durbin.

arcov

Genere coeficientes de filtro de todo polo que modelen una secuencia de datos de entrada minimizando el error de predicción hacia delante.

armcov

Genere coeficientes de filtro de todo polo que modelen una secuencia de datos de entrada minimizando los errores de predicción hacia delante y hacia atrás.

aryule

Genere coeficientes de filtro de todo polo que modelen una secuencia de datos de entrada utilizando una estimación de la función de autocorrelación.

,lpclevinson

Codificación predictiva lineal. Genere un filtro recursivo de todo el polo cuya respuesta de impulso coincida con una secuencia determinada.

prony

Genere el filtro IIR cuya respuesta de impulso coincida con una secuencia determinada.

stmcb

Busque el filtro IIR cuya salida, dada una secuencia de entrada especificada, coincida con una secuencia de salida determinada.

Frecuencia

,invfreqzinvfreqs

Genere coeficientes de filtro digitales o analógicos dados datos complejos de respuesta de frecuencia.

Modelado basado en dominio de tiempo

Las funciones , , y encuentran los coeficientes de una función de transferencia racional digital que se aproxima a una respuesta de impulso de dominio de tiempo determinada.lpcpronystmcb Los algoritmos difieren en complejidad y precisión del modelo resultante.

Predicción lineal

El modelado de predicción lineal supone que cada muestra de salida de una señal, , es una combinación lineal de las salidas pasadas (es decir, se puede predecir linealmente a partir de estas salidas), y que los coeficientes son constantes de una muestra a la muestra:x(k)n

Un modelo de todo polo de la orden de una señal esnx

a = lpc(x,n) 

Para ilustrar , cree una señal de muestra que sea la respuesta de impulso de un filtro de todo polo con ruido blanco aditivo:lpc

x = impz(1,[1 0.1 0.1 0.1 0.1],10) + randn(10,1)/10; 

Los coeficientes de un filtro de cuatro polos de cuarto orden que modela el sistema son

a = lpc(x,4) 

primero llama a encontrar una estimación sesgada de la función de correlación de , y luego utiliza la recursividad Levinson-Durbin, implementada en la función, para encontrar los coeficientes del modelo.lpcxcorrxlevinsona La recursividad Levinson-Durbin es un algoritmo rápido para resolver un sistema de ecuaciones lineales simétricas de Toeplitz. 's algoritmo completo para el algoritmo eslpcn4

r = xcorr(x); r(1:length(x)-1) = [];      % Remove corr. at negative lags a = levinson(r,4) 

Podría formar los coeficientes de predicción lineal con otros supuestos pasando una estimación de correlación diferente a , como la estimación de correlación sesgada:levinson

r = xcorr(x,'biased'); r(1:length(x)-1) = [];      % Remove corr. at negative lags a = levinson(r,4) 

Método de Prony (Modelado ARMA)

el función modela una señal utilizando un número especificado de polos y ceros.prony Dada una secuencia y las órdenes numerador y denominador y , respectivamente, la declaraciónxnm

[b,a] = prony(x,n,m) 

encuentra los coeficientes numerador y denominador de un filtro IIR cuya respuesta de impulso se aproxima a la secuencia.x

La función implementa el método descrito en Parks y Burrus (pgs.prony[4] 226-228). Este método utiliza una variación del método de covarianza del modelado AR para encontrar los coeficientes del denominador y, a continuación, encuentra los coeficientes del numerador para los que la respuesta de impulso del filtro resultante coincide exactamente con la primera + muestras de .abn1x El filtro no es necesariamente estable, pero potencialmente puede recuperar los coeficientes exactamente si la secuencia de datos es realmente un proceso de media móvil autoregresiva (ARMA) del orden correcto.

Nota

Las funciones y (descritas a continuación) se describen con mayor precisión como modelos ARX en terminología de identificación del sistema.pronystmcb El modelado ARMA asume el ruido solamente en las entradas, mientras que ARX asume una entrada externa. y conocer la señal de entrada: es un impulso para y es arbitrario para .pronystmcbpronystmcb

Un modelo para la secuencia de prueba (del ejemplo anterior) utilizando un filtro IIR de tercer orden esxlpc

[b,a] = prony(x,3,3) 

El comando muestra qué tan bien la respuesta de impulso de este filtro coincide con la secuencia original:impz

format long [x impz(b,a,10)] 

Observe que las primeras cuatro muestras coinciden exactamente. Para un ejemplo de recuperación exacta, recupere los coeficientes de un filtro Butterworth de su respuesta de impulso:

[b,a] = butter(4,.2); h = impz(b,a,26); [bb,aa] = prony(h,4,4); 

Pruebe este ejemplo; verá que y hacer coincidir los coeficientes de filtro originales dentro de una tolerancia de 10bbaa-13.

Método Steiglitz-McBride (Modelado ARMA)

La función determina los coeficientes para el sistema ( )/ ( ) dado una respuesta de impulso aproximado, así como el número deseado de ceros y polos.stmcbbzazx Esta función identifica un sistema desconocido basado en secuencias de entrada y salida que describen el comportamiento del sistema, o simplemente la respuesta de impulso del sistema. En su modo predeterminado, funciona como .stmcbprony

[b,a] = stmcb(x,3,3) 

también encuentra sistemas que coinciden con las secuencias de entrada y salida dadas:stmcb

y = filter(1,[1 1],x);     % Create an output signal. [b,a] = stmcb(y,x,0,1) 

En este ejemplo, identifica correctamente el sistema utilizado para crear a partir de .stmcbyx

El método Steiglitz-McBride es un algoritmo iterativo rápido que resuelve simultáneamente los coeficientes del numerador y del denominador en un intento de minimizar el error de señal entre la salida del filtro y la señal de salida dada. Este algoritmo suele converger rápidamente, pero es posible que no converja si el orden del modelo es demasiado grande. En cuanto a , 's filtro resultante no es necesariamente estable debido a su enfoque de modelado exacto.pronystmcb

proporciona control sobre varios parámetros algorítmicos importantes; modificar estos parámetros si tiene problemas para modelar los datos.stmcb Para cambiar el número de iteraciones del valor predeterminado de cinco y proporcionar una estimación inicial para los coeficientes denominadores:

n = 10;             % Number of iterations a = lpc(x,3);       % Initial estimates for denominator [b,a] = stmcb(x,3,3,n,a); 

La función utiliza un modelo de todo polo creado como estimación inicial cuando no se proporciona uno propio.prony

Para comparar las funciones , , y , calcular el error de señal en cada caso:lpcpronystmcb

a1 = lpc(x,3); [b2,a2] = prony(x,3,3); [b3,a3] = stmcb(x,3,3); [x-impz(1,a1,10)  x-impz(b2,a2,10)  x-impz(b3,a3,10)] 

Al comparar las capacidades de modelado para un modelo IIR de orden determinado, el último resultado muestra que para este ejemplo, funciona mejor, seguido de , a continuación, .stmcbpronylpc Este rendimiento relativo es típico de las funciones de modelado.

Modelado basado en dominios de frecuencia

Las funciones y las implementan las operaciones inversas de y ; encuentran una función de transferencia analógica o digital de un orden especificado que coincide con una respuesta de frecuencia compleja determinada.invfreqsinvfreqzfreqsfreqz Aunque los siguientes ejemplos muestran , la discusión también se aplica a .invfreqzinvfreqs

Para recuperar los coeficientes de filtro originales de la respuesta de frecuencia de un filtro digital simple:

[b,a] = butter(4,0.4)         % Design Butterworth lowpass

[h,w] = freqz(b,a,64);        % Compute frequency response
[b4,a4] = invfreqz(h,w,4,4)   % Model: n = 4, m = 4

El vector de frecuencias tiene las unidades en rad/sample, y las frecuencias no necesitan estar igualmente espaciadas. encuentra un filtro de cualquier orden para ajustarse a los datos de frecuencia; un ejemplo de tercer orden eswinvfreqz

[b4,a4] = invfreqz(h,w,3,3)   % Find third-order IIR 

Ambos filtros de diseño con coeficientes reales; para un punto de datos a frecuencia positiva, las funciones se ajustan a la respuesta de frecuencia tanto en ambos como en .invfreqsinvfreqzff-f

De forma predeterminada, utiliza un método de error de ecuación para identificar el mejor modelo a partir de los datos.invfreqz Esto encuentra y enba

creando un sistema de ecuaciones lineales y resolviéndolas con el operador.MATLAB®\ Aquí ( ( )) y ( ( )) están las transformaciones de Fourier de los polinomios y respectivamente en la frecuencia ( ), y es el número de puntos de frecuencia (la longitud de y ). ( ) pondera el error en relación con el error en diferentes frecuencias.AwkBwkabwknhwwtk La sintaxis

invfreqz(h,w,n,m,wt) 

incluye un vector de ponderación. En este modo, no se garantiza que el filtro resultante sea estable.invfreqz

proporciona un algoritmo superior ("error de salida") que resuelve el problema directo de minimizar la suma ponderada del error cuadrado entre los puntos de respuesta de frecuencia reales y la respuesta deseadainvfreqz

Para utilizar este algoritmo, especifique un parámetro para el recuento de iteraciones después del parámetro vectorial de peso:

wt = ones(size(w));   % Create unit weighting vector [b30,a30] = invfreqz(h,w,3,3,wt,30)  % 30 iterations 

El filtro resultante siempre es estable.

Compare gráficamente los resultados del primer y segundo algoritmos con el filtro Butterworth original con FVTool (y seleccione las respuestas de magnitud y fase):

fvtool(b,a,b4,a4,b30,a30) 

Para verificar la superioridad del ajuste numéricamente, escriba

sum(abs(h-freqz(b4,a4,w)).^2)    % Total error, algorithm 1 sum(abs(h-freqz(b30,a30,w)).^2)  % Total error, algorithm 2