El diseño del filtro digital es un tema muy amplio y maduro y, como ha mencionado en su pregunta, hay mucho material disponible. Lo que quiero probar aquí es comenzar y hacer que el material existente sea más accesible. En lugar de filtros digitales, en realidad debería estar hablando de filtros de tiempo discreto porque no consideraré aquí la cuantificación de coeficientes y señales. Ya conoce los filtros FIR y IIR, y también conoce algunas estructuras de filtro como DF I y II. Sin embargo, permítanme comenzar con algunos conceptos básicos:
La siguiente ecuación de diferencia puede describir un filtro no recursivo lineal invariante en el tiempo (LTI)
y( n ) = h0 0x ( n ) + h1x ( n - 1 ) + … + hnorte- 1x ( n - N+ 1 ) = ∑k = 0norte- 1hkx ( n - k )(1)
donde es la secuencia de salida, x ( n ) es la secuencia de entrada, n es el índice de tiempo, h k son los coeficientes del filtro y N es la longitud del filtro (el número de tomas). Las tomas de filtro h k también son la respuesta al impulso del filtro porque si la señal de entrada es un impulso, es decir, x ( n ) = δ ( n ) , entonces y ( n ) = h ny( n )x ( n )nortehknortehkx ( n ) = δ( n )y( n ) = hnorte(si la memoria del filtro se ha inicializado con ceros). La ecuación (1) describe un sistema lineal de respuesta al impulso finito (FIR) invariante en el tiempo. La suma en el lado derecho de (1) es una suma de convolución, es decir, la señal de salida se obtiene convolucionando la señal de entrada con la respuesta al impulso. Esto siempre es cierto, pero para los filtros IIR no podemos calcular explícitamente la suma de convolución porque la respuesta al impulso es infinitamente larga, es decir, hay infinitos coeficientes hk. Una ventaja importante de los filtros FIR es que siempre son estables, es decir, para una secuencia de entrada limitada, la secuencia de salida siempre está limitada. Otra ventaja es que los filtros FIR siempre pueden realizarse con una fase exactamente lineal, es decir, no agregarán ninguna distorsión de fase aparte de un retraso puro. Además, el problema de diseño suele ser más fácil, como veremos más adelante.
La siguiente ecuación de diferencia describe un filtro LTI recursivo:
y( n ) = b0 0x ( n ) + b1x ( n - 1 ) + … + bMETROx ( n - M) -- un1y( n - 1 ) - … - anortey( n - N)(2)
La ecuación (2) muestra que la salida no solo se compone de muestras de entrada ponderadas y retrasadas, sino también de muestras de salida pasadas ponderadas. En general, la respuesta al impulso de dicho sistema es infinitamente larga, es decir, el sistema correspondiente es un sistema IIR. Sin embargo, hay casos especiales de filtros recursivos con una respuesta de impulso finita. Tenga en cuenta que la respuesta al impulso ya no está dada por los coeficientes o a k como en el caso de los filtros FIR. Una ventaja de los filtros IIR es que los filtros empinados con una alta atenuación de la banda de detención pueden realizarse con muchos menos coeficientes (y retrasos) que en el caso FIR, es decir, son computacionalmente más eficientes. Sin embargo, hay que tener cuidado con la elección de los coeficientes a ksikunkunk porque el filtro IIR puede ser inestable, es decir, su secuencia de salida puede ser ilimitada, incluso con una secuencia de entrada limitada.
Los filtros se pueden diseñar de acuerdo con las especificaciones en el dominio del tiempo (muestra) o en el dominio de la frecuencia, o en ambos. Como ha mencionado una frecuencia de corte en su pregunta, supongo que está más interesado en las especificaciones en el dominio de la frecuencia. En este caso, debe observar las respuestas de frecuencia de los sistemas FIR y IIR. La respuesta de frecuencia de un sistema es la transformada de Fourier de su respuesta de impulso, suponiendo que existe (que es el caso de los sistemas estables). La respuesta de frecuencia de un filtro FIR es
H( ej θ) = ∑k = 0norte- 1hkmi- j k θ(3)
θ
θ = 2 πFFs
FFs
H( ej θ) = ∑METROk = 0sikmi- j θ1 + ∑nortek = 1unkmi- j θ(4)
unk= 0k = 1 , ... , N
Veamos ahora rápidamente los métodos de diseño de filtros. Para los filtros FIR, puede tomar una transformada inversa de Fourier de la respuesta de frecuencia deseada para obtener la respuesta de impulso del filtro, que corresponde directamente a los coeficientes del filtro. Dado que aproxima la respuesta deseada mediante una respuesta de impulso de longitud finita, debe aplicar una ventana suave a la respuesta de impulso obtenida para minimizar las oscilaciones en la respuesta de frecuencia real debido al fenómeno de Gibbs. Este método se llama método de muestreo de frecuencia.
Para filtros estándar simples como los filtros ideales de paso bajo, paso alto, paso de banda o de parada de banda (y algunos otros), incluso puede calcular analíticamente la respuesta de impulso exacta al tomar la transformada inversa de Fourier de la respuesta ideal deseada:
hk= 12 π∫π- πH( ej θ) ej k θreθ
Esta integral es fácil de evaluar para las respuestas deseadas constantes por partes, como es el caso de los filtros selectivos de frecuencia ideales. Esto le dará una respuesta de impulso no causal infinitamente larga, que debe ser ventana y desplazada para que sea finita y causal. Este método se conoce como diseño de ventana.
Por supuesto, hay muchos otros métodos de diseño de filtros FIR. Un método numérico importante es el famoso algoritmo de intercambio de Parks-McClellan que diseña filtros óptimos con ondas de paso constante y ondas de parada. Es un método de aproximación numérica y hay muchas implementaciones de software disponibles, por ejemplo, en Matlab y Octave.
ssz
Por supuesto, existen muchos métodos más interesantes y útiles, dependiendo del tipo de especificaciones que tenga, pero espero que esto lo ayude a comenzar y haga que cualquier material que encuentre sea más comprensible. Un libro muy bueno (y gratuito) que cubre algunos métodos básicos de diseño de filtros (y muchos más) es Intoduction to Signal Processing de Orfanidis. Puede encontrar varios ejemplos de diseño allí. Otro gran libro clásico es Digital Filter Design de Parks and Burrus.