Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Elaborado por:
- Dr. Luis A. Raygoza P.
-
-
En general, se clasifican cinco tipos de filtros, dos de ellos son filtros base:
- Filtro pasa-bajas o LPF solo permite el paso de frecuencias graves (tonos bajos), por
ejemplo el bajeo en un sistema de audio.
- Filtro pasa-altas o HPF solo permite el paso de frecuencias agudas (tonos altos), por
ejemplo los twiters en un sistema de audio.
El último tipo de filtros solo se usa para modificar las fases: Filtro pasa todo.
4.3 Filtros ideales y reales (2 horas)
Respuesta ideal de los filtros graficando amplitud de salida (Función de transferencia) logarítmica
contra frecuencia (en décadas).
Filtros simples, pasa-bajas (Low pass filter) y pasa-altas (high pass filter)
Filtros compuestos, pasa-banda (Band pass filter) y rechaza-banda (band stop filter)
La selectividad de un filtro se relaciona con la atenuación / década, por ejemplo, un filtro de primer
orden tendrá una caída de -20dB por cada década, uno de segundo orden tendrá una caída de -
40dB por cada década de frecuencia y así sucesivamente. Si el orden del filtro tiende a infinito,
entonces se convierte en un filtro ideal.
1 |𝜔| ≤ 𝜔
𝐻(𝑤) =
0 𝜔 <𝜔≤𝜋
Es evidente que cuando la banda de transición tiende a cero, la respuesta del filtro desarrolla un mayor
rizado.
Donde la respuesta temporal al impulso del sistema h[k] en función de los coeficientes del filtro se define
como:
𝑏 0 ≤ 𝑛 ≤ 𝑀−1
ℎ[𝑘] =
0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
( )
𝐻[𝑧] = 𝑏 𝑧 =𝑏 +𝑏 𝑧 +𝑏 𝑧 , … , 𝑏( )𝑧
Cuando un sistema FIR tiene una fase lineal, la respuesta al impulso unitario del sistema satisface
bien la condición de simetría o la condición de antisimetría:
H[n] = ±h[M−1−n]
Respuesta simétrica: h[n] = h[M -1- n], en el dominio de la frecuencia H[𝜔] puede expresarse como:
( )
𝐻[𝜔] = 𝐻 [𝜔]𝑒 (7)
( )/
𝑀−1 𝑀−1
𝐻 [𝜔] = ℎ +2 ℎ[𝑛]𝑐𝑜𝑠 𝜔 −𝑛 ,
2 2
( )/
𝐻 [0] = ℎ + 2∑ ℎ[𝑛], M impar (8)
𝑀−1
𝐻 [𝜔] = 2 ℎ[𝑛]𝑐𝑜𝑠 𝜔 −𝑛 ,
2
Y la fase es:
𝑀−1
−𝜔 𝑠𝑖 𝐻 [𝜔] > 0
∅[𝜔] = 2 (10)
𝑀−1
−𝜔 +𝜋 𝑠𝑖 𝐻 [𝜔] < 0
2
𝑀−1
ℎ =0
2
Para M par, cada término de h[n] tiene el término correspondiente de signo opuesto:
( )
𝐻[𝜔] = 𝐻 [𝜔]𝑒 (11)
Donde
( )/
𝑀−1
𝐻 [𝜔] = 2 ℎ[𝑛]𝑠𝑒𝑛 𝜔 −𝑛 ,
2
𝐻 [0] = 0 y 𝐻 [𝜋] = 0 M impar (12)
𝑀−1
𝐻 [𝜔] = 2 ℎ[𝑛]𝑠𝑒𝑛 𝜔 −𝑛 ,
2
𝐻 [0] = 0 M par (13)
−𝜔 𝑠𝑖 𝐻 [𝜔] > 0
∅[𝜔] = (14)
−𝜔 𝑠𝑖 𝐻 [𝜔] < 0
𝐻 [𝜔] = ℎ [𝑛]𝑒
En general la respuesta al impulso tiene longitud infinita en duración (no causal) y debe truncarse
en algún punto, por ejemplo en n=M - 1 y proporcionar así un filtro causal FIR de longitud M. Esto
equivale a multiplicar hd[n] por una ventana rectangular en el dominio del tiempo definida como:
1, 𝑛 = 0,1, … , 𝑀 − 1
𝑤[𝑛] =
0, 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
Entonces
ℎ [𝑛] 𝑛 = 0,1, … , 𝑀 − 1
ℎ[𝑛] = ℎ [𝑛]𝑤[𝑛] =
0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
1−𝑒 ( )/
𝑠𝑒𝑛(𝜔𝑀/2)
𝑊[𝜔] = 𝑤[𝑛]𝑒 = 𝑒 = =𝑒
1−𝑒 𝑠𝑒𝑛(𝜔/2)
En la figura se muestra la respuesta en frecuencia de la ventana cuadrada con M=31 y 61, el lóbulo
principal tiene un ancho de 4𝜋/𝑀.
El efecto que se tiene con la ventana rectangular es el de suavizar Hd[n]. Cuando M aumenta W[]
se hace más estrecha y el suavizado se reduce. Los grandes lobulos secundarios dan lugar a
efectos de rizados no deseados en la respuesta del filtro. Estos efectos se eliminan usando
ventanas que no tengan discontinuidades abruptas, como los mostrados en la siguiente tabla:
( )/
1𝑒 , 0 ≤ |𝜔| ≤ 𝜔
𝐻 [𝑤] =
0, 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
𝑀−1
1 𝑠𝑒𝑛 𝜔 𝑛− 𝑀−1
ℎ [𝑛] = 𝑒 𝑑𝜔 = 2 , 𝑝𝑎𝑟𝑎 𝑛 ≠
2𝜋 𝑀−1 2
𝜋 𝑛−
2
Sin embargo este filtro es no causal por tener duración infinita, al multiplicar por una ventana
cuadrada se obtiene: la misma respuesta pero con M acotada.
𝑀−1
𝑠𝑒𝑛 𝜔 𝑛− 𝑀−1
ℎ[𝑛] = 2 , 𝑝𝑎𝑟𝑎 0 ≤ 𝑛 ≤ 𝑀 − 1, 𝑛 ≠
𝑀−1 2
𝜋 𝑛−
2
𝑀−1 𝜔 𝑀−1
ℎ = , 𝑝𝑎𝑟𝑎 𝑀 𝑖𝑚𝑝𝑎𝑟, 𝑛 =
2 𝜋 2
El comportamiento oscilatorio en las proximidades del extremo de la banda del filtro se conoce
como fenómeno de Gibbs.
Si se desea utilizar una ventana diferente a la cuadrada, entonces de realiza la multiplicación
punto a punto (n) en el dominio del tiempo por la respuesta del filtro, por ejemplo, si la respuesta
del filtro es:
𝑀−1
1 𝑠𝑒𝑛 𝜔 𝑛− 𝑀−1
ℎ [𝑛] = 𝑒 𝑑𝜔 = 2 , 𝑝𝑎𝑟𝑎 𝑛 ≠
2𝜋 𝑀−1 2
𝜋 𝑛−
2
𝑀−1
𝑠𝑒𝑛 𝜔 𝑛− 2𝜋𝑛 𝑀−1
ℎ[𝑛] = 2 0.54 − 0.46𝑐𝑜𝑠 , 𝑝𝑎𝑟𝑎 0 ≤ 𝑛 ≤ 𝑀 − 1, 𝑛≠
𝑀−1 𝑀−1 2
𝜋 𝑛−
2
𝑀−1
𝑘 = 0,1, … , , 𝑀 𝑖𝑚𝑝𝑎𝑟
2
2𝜋 𝑀
𝜔 = (𝑘 + 𝛼), 𝑘 = 0,1, … , − 1, 𝑀 𝑝𝑎𝑟
𝑀 2
1
𝛼=0 𝑜
2
Y resolvemos para obtener la respuesta al impulso unidad h(n) del filtro FIR a partir de esta
especificación en frecuencia. Para reducir los lóbulos secundarios, es deseable optimizar la
especificación en frecuencia en la banda de transición del filtro. Esta optimización puede llevarse a
cabo numéricamente utilizando una computadora digital y aplicando técnicas de programación
lineal, como puede verse en Rabiner et al. (1970).
𝐻[𝜔] = ℎ[𝑛]𝑒
1 ( )
ℎ[𝑛] = 𝐻(𝑘 + 𝛼)𝑒 𝑝𝑎𝑟𝑎 𝑛 = 0,1, … , 𝑀 − 1
𝑀
Esta relación nos permite calcular los valores de la respuesta al impulso unidad h(n) a partir
de la especificación de las muestras en frecuencia H(k+α ), k = 0, 1, . . . ,M−1. Observe que cuando
α = 0, 𝐻(𝑘 + 𝛼) se reduce a la transformada discreta de Fourier (DFT) de la secuencia {h(n)} y la
ecuación h(n) es la DFT inversa (IDFT).
La condición de simetría en 𝐻(𝑘 + 𝛼), junto con las condiciones de simetría para {h(n)}, pueden
emplearse para reducir las especificaciones de frecuencia de M puntos a (M +1)/2 puntos para M
impar y a M/2 puntos para M par. Se obtienen las siguientes tablas:
Ejemplo:
c) Diseño de filtros FIR usando Matlab y muestreo en frecuencia
La función Fir2 calcula los coeficientes de un filtro FIR por el método de muestreo en frecuencia y
adiciona una ventana (por omisión Hamming).
b = fir2(n,f,m) returns an nth-order FIR filter with frequency-magnitude characteristics specified in the
vectors f and m. The function linearly interpolates the desired frequency response onto a dense grid and then
uses the inverse Fourier transform and a Hamming window to obtain the filter coefficients.
Ejemplo:
Diseñar un filtro rechaza-banda con las siguientes especificaciones en frecuencia y una frecuencia
de muestreo de 44100Hz, la frecuencia de Nyquist es 22050Hz y el orden del filtro es 32 (32
coeficientes):
M=[3.28 3.28 3.28 3.28 1 1 1 0.25 0.25 0.25 1 1 1 3.28 3.28 3.28];
F=[0 0.05 0.1 0.1999 0.2 0.3 0.4 0.4001 0.5 0.6 0.6001 0.7 0.8 0.8001 0.85 1 ];
Como se aprecia es un filtro antisimetrico, aún así solo se usaran 32 coeficientes sin ningún problema.
Existen varias formas de encontrar la respuesta al impulso de un filtro descrito por h[n] o sea bk En
la frecuencia:
i=1:100; % contador
s(i)=0; % impulso
s(32)=1; % impulso invertido
figure(1)
plot(i,M3) % graficar respuesta al impulso
grid on; % usar rejilla
hold on; % sostener figura
plot(i,M,'r'); % graficar respuesta deseada
Se obtiene la siguiente gráfica, cuya escala vertical es la ganancia lineal y las frecuencias lineales
normalizadas. En color rojo se presenta la respuesta deseada y en azul la obtenida. Es evidente
que entre mayor sea el orden del filtro, mayor será la similitud entre ambas.
- Otra forma se realiza usando la función freqz()
figure(2)
freqz(B)
Para obtener la respuesta en el dominio del tiempo de nuestro filtro se debe usar la convolución, en este
ejemplo se usa la función impulso invertido (desplazado), pero puede utilizar cualquier señal que desee:
yo = filter(B,1,s);
t=1:100;
figure(3)
subplot(2,1,1)
plot(t,s)
title('Original Signal')
subplot(2,1,2)
plot(t,yo)
title('Filtered Signal')
xlabel('Time (s)')
- El otro método consiste en obtener la convolución usando código propio
N=100;
i=1:N; % contador
s(i)=0; % impulso
s(32)=1; % impulso en 32, también puede estar en 1 o donde sea
- Graficar ambas señales, la entrada x[n] esta en color rojo y su respuesta y[n] en azul
t=1:N;
figure(4)
plot(t,yf,'-b');
hold on
plot(t,s,'-r');
hold off;