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.

Implementación del filtro

Convolución y filtrado

La base matemática del filtrado es la convolución. Para un filtro de respuesta de impulso finito (FIR), la salida y(k) de una operación de filtrado es la convolución de la señal de entrada x(k) con la respuesta de impulso h(k):

y(k)=l=h(l)x(kl).

Si la señal de entrada también es de longitud finita, puede implementar la operación de filtrado utilizando la función.MATLAB®conv Por ejemplo, para filtrar un vector aleatorio de cinco muestras con un filtro de promedio de tercer orden, puede almacenar x(k) en un vector,x h(k) en un vector, y herramienta los dos: la longitud de es uno menos que la suma de las longitudes de y.h

x = randn(5,1); h = [1 1 1 1]/4;   % A third-order filter has length 4 y = conv(h,x) 
y =    -0.3375     0.4213     0.6026     0.5868     1.1030     0.3443     0.1629     0.1787
yxh

Filtros y funciones de transferencia

La función de transferencia de un filtro es la transformada Z de su respuesta de impulso. Para un filtro FIR, la transformación Z de la salida y, Y(z), es el producto de la función de transferencia y X(z), la transformación Z de la entrada x:

Y(z)=H(z)X(z)=(h(1)+h(2)z1++h(n+1)zn)X(z).

Los coeficientes polinómicos h(1), h(2), …, h(n + 1) corresponden a los coeficientes de la respuesta de impulso de un filtro de orden TH.n

Nota

Los índices de coeficiente de filtro se ejecutan de 1 a (+ 1), en lugar de 0 a.nn Esto refleja el esquema de indexación estándar utilizado para los vectores.MATLAB

Los filtros FIR también se denominan filtros All-Zero, no recursivos o de media móvil (MA).

Para un filtro de respuesta de impulso infinito (IIR), la función de transferencia no es un polinomio, sino una función racional. Las transformaciones Z de las señales de entrada y salida están relacionadas por

Y(z)=H(z)X(z)=b(1)+b(2)z1+...+b(n+1)zna(1)+a(2)z1+...+a(m+1)zmX(z),

Where () y () son los coeficientes del filtro.biai En este caso, el orden del filtro es el máximo de y.nm Los filtros IIR con = 0 también se denominan filtros All-Pole, recursivos o autorregresivos (AR).n Los filtros IIR con ambos y mayores que cero también se denominan filtros de poste-cero, recursivo o de media móvil autorregresiva (ARMA).nm Los acrónimos AR, MA, y ARMA se aplican generalmente a los filtros asociados con los procesos estocásticos filtrados.

Filtrado con la funciónfilter

Para los filtros IIR, la operación de filtrado se describe no por una convolución simple, sino por una ecuación de diferencia que se puede encontrar a partir de la relación de función de transferencia. Supongamos que a(1) = 1, mueve el denominador hacia el lado izquierdo y toma la transformada Z inversa para obtener

y(k)+a(2)y(k1)++a(m+1)y(km)=b(1)x(k)+b(2)x(k1)++b(n+1)x(kn).

En términos de entradas actuales y pasadas, y salidas pasadas, () esyk

y(k)=b(1)x(k)+b(2)x(k1)++b(n+1)x(kn)a(2)y(k1)a(m+1)y(km),

que es la representación de dominio de tiempo estándar de un filtro digital. Comenzando con (1) y asumiendo un sistema causal con cero condiciones iniciales, la representación es equivalente ay

y(1)=b(1)x(1)y(2)=b(1)x(2)+b(2)x(1)a(2)y(1)y(3)=b(1)x(3)+b(2)x(2)+b(3)x(1)a(2)y(2)a(3)y(1)y(n)=b(1)x(n)++b(n)x(1)a(2)y(n1)a(n)y(1).

Para implementar esta operación de filtrado, puede usar la función. almacena los coeficientes en dos vectores de fila, uno para el numerador y otro para el denominador.MATLABfilterfilter Por ejemplo, para resolver la ecuación de diferencia

y(n)0.9y(n1)=x(n)Y(z)=110.9z1X(z)=H(z)X(z),

puede utilizar le da tantas muestras de salida como hay muestras de entrada, es decir, la longitud de es la misma que la longitud de.

b = 1; a = [1 -0.9]; y = filter(b,a,x);
filteryx Si el primer elemento de no es 1, a continuación, divide los coeficientes por (1) antes de implementar la ecuación de diferencia.afiltera

Consulte también

Aplicaciones

Funciones