Está en la página 1de 20

APUNTES SEÑALES Y SISTEMAS IE

Elaborado por:
- Dr. Luis A. Raygoza P.
-
-

4 UNIDAD TEMÁTICA IV: FILTRADO (24 HORAS)

4.1 Introducción (1/2 horas).


Introducir al alumno al el concepto de filtrado y sus aplicaciones, presentando y recordando las
bases matemáticas necesarias para el análisis de filtros (variable compleja). Por ejemplo, en
aplicaciones de comunicaciones, instrumentación, audio, etc

4.2 Concepto de filtro (2 horas).


Un filtro es un dispositivo diseñado para separar, pasar, o suprimir un grupo de señales o de un
conjunto de las mismas. Este dispositivo es selectivo en frecuencia y se diseña de manera
específica y predecible.

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.

Los siguientes son filtros compuestos (LPF x HPF):


- Filtro pasa-banda o BPF solo permite el paso de un grupo selectivo de frecuencias, por
ejemplo solo la voz o solo ciertos instrumentos musicales en un sistema de audio.
- Filtro rechaza-banda BSF(Notch), es contrario al BPF y no permite el paso de un grupo
selectivo de frecuencias, por ejemplo solo la voz o solo ciertos instrumentos musicales 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)

Donde fc es la frecuencia de corte

Filtros compuestos, pasa-banda (Band pass filter) y rechaza-banda (band stop filter)

Donde fc1 y fc2 son las frecuencias de corte y f0 es la frecuencia de resonancia.


La respuesta real en frecuencia de los filtros es:
Selectividad y atenuación de un filtro real

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.

4.4 Descripción de filtros en frecuencia continua (5 horas)

Analizar, simular y aplicar filtros en frecuencia continua pasa-altas, pasa-bajas, pasa-banda y


rechaza-banda por medio de variable compleja y su respuesta en frecuencia.

4.5.1 Filtro pasa-altas y pasa-bajas RC y RL (LPF y HPF)

Ver archivo Hw_LPF.docx

4.5.2 Filtros compuestos pasa-banda y rechaza-banda RC y RL (BPF y BSF)

Ver archivo Hw_BPF.docx

4.5.3 Aplicaciones y simulaciones


Actividad:
- Simular en el dominio de la frecuencia diversos filtros en matlab y pspice (AC sweep)
- Simular en pspice en el dominio de la frecuencia el siguiente ecualizador analógico:
4.5 Diseño de Filtros digitales (10 horas)

4.5.1 Causalidad y consecuencias


Sea h(n) la respuesta al impulso de un filtro paso bajo ideal, tal que en el dominio de la frecuencia:

1 |𝜔| ≤ 𝜔
𝐻(𝑤) =
0 𝜔 <𝜔≤𝜋

En el domino del tiempo se define como:


𝜔
𝑛=0
𝜋
ℎ(𝑛) = 𝜔 𝑠𝑒𝑛(𝜔 𝑛)
𝑛≠0
𝜋 𝜔𝑛

Si ωc = π se obtiene una respuesta como se muestra


Es claro que este filtro es no causal por tener coeficientes hasta n = ∞ y por lo tanto no es realizable. Existen
algunos esquemas o soluciones que hacen posible la implementación de filtros ideales en reales, por ejemplo
hacer que Sea h(n)=0 para n < n0, sin embargo, la respuesta obtenida nunca será la respuesta de un filtro
ideal (se obtiene el fenómeno de Gibs o rizado) como se aprecia en la siguiente figura:

Es evidente que cuando la banda de transición tiende a cero, la respuesta del filtro desarrolla un mayor
rizado.

4.5.2 Filtros FIR (Respuesta Finita al Impulso)


Los filtros FIR tienen diversas estructuras, sin embargo, la estructura de la forma directa se define como una
ecuación en diferencias no recursiva por medio de la convolución:

𝑦[𝑛] = ℎ[𝑘]𝑥[𝑛 − 𝑘] = 𝑏 𝑥[𝑛 − 𝑘]

𝑦[𝑛] = 𝑏 𝑥[𝑛] + 𝑏 𝑥[𝑛 − 1] + ⋯ + 𝑏( ) 𝑥[𝑛 − 𝑀 + 1]

Donde la respuesta temporal al impulso del sistema h[k] en función de los coeficientes del filtro se define
como:

𝑏 0 ≤ 𝑛 ≤ 𝑀−1
ℎ[𝑘] =
0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

En el dominio de la frecuencia, la respuesta del filtro se obtiene de:

( )
𝐻[𝑧] = 𝑏 𝑧 =𝑏 +𝑏 𝑧 +𝑏 𝑧 , … , 𝑏( )𝑧

Donde z-1 representa un retardo en el dominio del tiempo.


Observe que esta estructura requiere M −1 posiciones de memoria para almacenar las M −1
entradas anteriores y tiene una complejidad de M multiplicaciones y M−1 sumas por punto de
salida. Puesto que la salida está formada por una combinación lineal ponderada de M−1 valores
pasados de la entrada y el valor actual ponderado de la entrada, la realización en la forma directa a
menudo se denomina filtro transversal o de línea de retardo con toma central.

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]

En un sistema como éste, el número de multiplicaciones se reduce de M a M/2 para M par y a


(M−1)/2 para M impar.
4.5.3 Diseño y simulación de filtros FIR de fase lineal
Un filtro FIR tiene fase lineal si su respuesta satisface la condición

ℎ[𝑛] = ∓ℎ[𝑀 − 1 − 𝑛], 𝑝𝑎𝑟𝑎 𝑛 = 0,1, … , 𝑀 − 1

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

𝐻 [0] = 2 ∑ ℎ[𝑛], M par (9)

Y la fase es:
𝑀−1
−𝜔 𝑠𝑖 𝐻 [𝜔] > 0
∅[𝜔] = 2 (10)
𝑀−1
−𝜔 +𝜋 𝑠𝑖 𝐻 [𝜔] < 0
2

Respuesta antisimetrica: h[n] = - h[M-1-n] .


Para M impar, el punto central de la secuencia h[n] es n = (M - 1)/2, por lo tanto

𝑀−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)

La fase característica es:

−𝜔 𝑠𝑖 𝐻 [𝜔] > 0
∅[𝜔] = (14)
−𝜔 𝑠𝑖 𝐻 [𝜔] < 0

Nota: La respuesta antisimetrica no se debe usar en filtros paso-bajo ni paso-alto.


a) Diseño de filtros FIR de fase lineal utilizando ventanas

A partir de la frecuencia deseada Hd( ) en el dominio de la frecuencia

𝐻 [𝜔] = ℎ [𝑛]𝑒

Se determina la correspondiente respuesta al impulso unidad hd[n] a partir de la transformada de


Fourier:
1
ℎ [𝑛] = 𝐻 [𝜔]𝑒 𝑑𝜔
2𝜋

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 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

Al multiplicar la función ventana en el tiempo, es equivalente a convolucionar en la frecuencia para


obtener un filtro FIR truncado
1
𝐻[𝜔] = 𝐻 [𝑣]𝑊[𝜔 − 𝑣]𝑑𝑣
2𝜋

Donde ventana en el dominio de la frecuencia es:

1−𝑒 ( )/
𝑠𝑒𝑛(𝜔𝑀/2)
𝑊[𝜔] = 𝑤[𝑛]𝑒 = 𝑒 = =𝑒
1−𝑒 𝑠𝑒𝑛(𝜔/2)

El módulo y la fase lineal de la ventana son:


| ( / )|
−𝜔 𝑐𝑢𝑎𝑛𝑑𝑜 𝑠𝑒𝑛(𝜔𝑀/2) ≥ 0
|𝑊[𝜔]| =
|
para −𝜋 ≤ 𝜔 ≤ 𝜋 ∅[𝜔] =
( / )|
−𝜔 +𝜋 𝑐𝑢𝑎𝑛𝑑𝑜 𝑠𝑒𝑛 <0

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:

En comparación con la ventana cuadrada, estas funciones de ventana proporcionan más


suavizado a través de la operación de convolución en el dominio de la frecuencia y, como
resultado, la región de transición de la respuesta del filtro FIR es más ancha. Para reducir la
anchura de esta región de transición, podemos simplemente aumentar la longitud de la ventana, lo
que da lugar a un filtro más grande.
La respuesta en frecuencia se muestra a continuación para el filtro FIR con diferentes ventanas:
Ejemplo: Diseñar un filtro FIR paso-bajo simétrico de fase lineal cuya respuesta en frecuencia
sea:

( )/
1𝑒 , 0 ≤ |𝜔| ≤ 𝜔
𝐻 [𝑤] =
0, 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

La respuesta obtenida será

𝑀−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

Aplicando la ventana Hamming se tendrá lo siguiente:

𝑀−1
𝑠𝑒𝑛 𝜔 𝑛− 2𝜋𝑛 𝑀−1
ℎ[𝑛] = 2 0.54 − 0.46𝑐𝑜𝑠 , 𝑝𝑎𝑟𝑎 0 ≤ 𝑛 ≤ 𝑀 − 1, 𝑛≠
𝑀−1 𝑀−1 2
𝜋 𝑛−
2

b) Diseño basado en el muestreo en frecuencia

Se especifica la respuesta en frecuencia deseada H(𝜔) en un conjunto de frecuencias equiespaciadas:

𝑀−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).

La respuesta en frecuencia deseada del filtro es Hd[ω]= H[ω],

𝐻[𝜔] = ℎ[𝑛]𝑒

Sustituyendo las frecuencias deseadas:


2𝜋 ( )
𝐻(𝑘 + 𝛼) = 𝐻 (𝑘 + 𝛼) = ℎ[𝑛]𝑒 𝑝𝑎𝑟𝑎 𝑘 = 0,1, … , 𝑀 − 1
𝑀

Aplicando la inversa, se obtienen los coeficientes:

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):

Por lo tanto se generan dos vectores y se manda llamar la función fir2:

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 ];

B=fir2(31,F,M); % calculo de coeficientes

Arroja los siguientes coeficientes B[k]=bk:


b0= -0,0017461 b1=0,00026523 b2=0,0036249 b3=0,00037987
b4=0,029361 b5=-0,0011678 b6=-0,0010829 b7=-0,0018064
b8=-0,11293 b9=0,0016632 b10=-0,045417 b11=0,0023771
b12=0,088964 b13=0,0023309 b14=0,79993 b15=-0,0040241
b16=1,759 b17=-0,0040241 b18=0,79993 b19=0,0023309
b20=0,088964 b21=0,0023771 b22=-0,045417 b23=0,0016632
b24=-0,11293 b25=-0,0018064 b26=-0,0010829 b27=-0,0011678
b28=0,029361 b29=0,00037987 b30=0,0036249 b31=0,00026523 b32=-0,0017461

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:

- Crear un vector impulso invertido (vale 1 en 32 y no en 1)

i=1:100; % contador
s(i)=0; % impulso
s(32)=1; % impulso invertido

- Obtener la convolucion (invertida) del impulso con los coeficientes

for n=1:32 % calcular la respuesta al impulso


y(n)=0; % limpiar acumulación
for k=1:32 % obtener mac
y(n)=y(n)+s(n+k-1).*B(k);
end;
end;

- Calcular la FFT de la respuesta al impulso invertido

M1=abs(fft(y)); % FFT respuesta al impulso

- Obtener solo 32/2=16 puntos de la FFT por ser simetrica

i=1:16; % contador hasta 32/2


M3=M1(1:16);

- Graficar la respuesta deseada y la obtenida

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)

Esta grafica además de proporcionar la ganancia en escala logarítmica, también proporciona la


fase y como puede verse es lineal.

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:

- Usando la función filter

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

se=[ones(1,32)*0,s]; %introducir 32 ceros antes de la señal s


for n=32:N+31 % calcular la respuesta al impulso, comienza en las 32 adquiridas
yf(n-31)=0; % limpiar acumulación
for k=1:32 % obtener mac
yf(n-31)=yf(n-31)+B(k).*se(n-k+1);
end;
end;

% La convolución expandida para 32 coeficientes tiene la forma:


% yf(n-31)=B(1) *se(n-0) + B(2) *se(n-1) + B(3) *se(n-2) + B(4) *se(n-3)+...
% B(5) *se(n-4) + B(6) *se(n-5) + B(7) *se(n-6) + B(8) *se(n-7)+...
% B(9) *se(n-8) + B(10)*se(n-9) + B(11)*se(n-10)+ B(12)*se(n-11)+...
% B(13)*se(n-12)+ B(14)*se(n-13)+ B(15)*se(n-14)+ B(16)*se(n-15)+...
% B(17)*se(n-16)+ B(18)*se(n-17)+ B(19)*se(n-18)+ B(20)*se(n-19)+...
% B(21)*se(n-20)+ B(22)*se(n-21)+ B(23)*se(n-22)+ B(24)*se(n-23)+...
% B(25)*se(n-24)+ B(26)*se(n-25)+ B(27)*se(n-26)+ B(28)*se(n-27)+...
% B(29)*se(n-28)+ B(30)*se(n-29)+ B(31)*se(n-30)+ B(32)*se(n-31);

- 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;

4.5.7 Ejemplos de aplicación en un sistema embebido


LEYENDA: “Los siguientes códigos fueros desarrollados por Luis Antonio Raygoza Pérez. Se permite el uso de los mismos
para cualquier fin bajo la única condición de que esta leyenda ocupe el encabezado del código a realizar”.

- Realizar Proyecto Final (Práctica 9)

También podría gustarte