1

5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros Digitales
Filtros Digitales
(
(
Parte
Parte
2)
2)
Ì Ì Filtros Filtros FIR FIR
x x Secuencias Simétricas Secuencias Simétricas
x x Técnicas Técnicas de de Diseño Diseño de de Filtros Filtros FIR FIR
3 3 Método Método de de las las Series de Fourier Series de Fourier
3 3 Método Método de de Muestreo Muestreo en en Frecuencia Frecuencia
3 3 Métodos Iterativos basados Métodos Iterativos basados en en condiciones óptimas condiciones óptimas
x x Diseño Diseño de de Filtros Filtros FIR con MATLAB FIR con MATLAB
2
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Secuencias Simétricas
Secuencias Simétricas
Ì El diseño de filtros FIR requieren la selección de la secuencia que mejor
representa la respuesta a impulso de un filtro ideal.
Ì Los filtros FIR son siempre estables y son capaces de tener una respuesta
de fase que es lineal, lo que equivale a decir que su respuesta tiene un
retraso constante.
Ì El mayor problema de los filtros FIR es que para unas especificaciones
dadas requieren un filtro de orden mucho mayor que los filtros IIR.
Ì Un filtro FIR de longitud M con entrada x[n] y salida y[n] se describe
mediante la ecuación diferencia:
donde b
k
son los coeficientes del filtro.
[ ] [ ] [ ] [ ] [ ] y n b x n b x n b x n M b x n k
M k
k
M
· + − + + − + · −

·


0 1 1
0
1
1 1
3
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Secuencias Simétricas
Secuencias Simétricas
Ì Por otra parte podemos expresar la salida del filtro y[n] como una
convolución de la entrada x[n] con la respuesta a impulso del filtro h[n]:
Ì Ya que estas dos ecuaciones son idénticas, y por tanto, los coeficientes
b
k
=h[k].
Ì Se puede demostrar que la respuesta de un filtro FIR es de fase lineal si los
coeficientes h[n] cumplen :
Es decir los coeficientes tienen algún tipo de simetría.
Ì La función de Transferencia Z del filtro FIR, aplicando esta condición es :
[ ] [ ] [ ] y n h k x n k
k
M
· ⋅ −
·


0
1
[ ] [ ] h n h M n n M · t − − · − 1 0 1 1 , , ,
( ) [ ] [ ] [ ] [ ] [ ]
( )
[ ]
( )
( )
[ ]
( ) ( )
[ ]
( )
( )
[ ]
( ) ( )
[ ]
( )

par
impar
2
1
1 2 2 1 0
2 / 1
0
2 / 2 1 2 / 2 1 2 / 1
2 / 3
0
2 / 2 1 2 / 2 1 2 / 1
1 2 2 1
1
0
¹
¹
¹
¹
¹
'
¹
t
¹
'
¹
¹
'
¹
t +
]
]
]


·
· ⋅ − + ⋅ − + + ⋅ + ⋅ + · ⋅ ·




·
− − − − − − −

·
− − − − − − −
− − − − − −

·

M z z k h z
M z z k h
M
h z
z M h z M h z h z h h z k h z H
M
k
k M k M M
M
k
k M k M M
M M
M
k
k

4
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Secuencias Simétricas
Secuencias Simétricas
Ì De esta última expresión se deduce que
lo que significa que la raíces de H(z) son las mismas que las de H(z
-1
). Es
decir las raíces (en este caso, los ceros) ocurren en pares recíprocos. Si z
1
es un cero de H(z), 1/z
1
es también un cero.
Además, si z
1
es un cero complejo, su conjugado z
1
*
es también un cero,
así como 1/z
1
*
.
( )
( )
( )
z H z H z
M − − −
· t
1 1
-1 -0.5 0 0.5 1 1.5 2 2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
5
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Secuencias Simétricas
Secuencias Simétricas
Ì La longitud N de una secuencia simétrica puede ser par o impar. Esto
significa que el punto medio cae en un punto de la secuencia si N es impar
y entre dos puntos si N es par. Como tengo dos tipos de simetría (par o
impar), tendré cuatro posibles tipos de secuencias simétricas, las cuales se
muestran en la Tabla 1 junto con la DTFT de cada secuencia.
Secuencias Simétricas
L=½(N-1), M=½N, F es la frecuecia digital=f/f
s
, donde f
s
es la frecuencia de muestreo
Tipo Simetría N H(F) |H(0)| |H(½)|
1 Par Impar [ ] [ ] ( ) h h k k F
k
L
0 2 2
1
+
·

cos π [ ] [ ] h h k
k
L
0 2
1
+
·

[ ] ( ) [ ] h h k
k
k
L
0 2 1
1
+ −
·

2 Par Par
[ ] ( ) [ ]

·

M
k
k F k h
1
2
1
2 cos 2 π
[ ] 2
1
h k
k
L
·

0
3 Impar Impar [ ] ( ) −
·

j h k k F
k
L
2 2
1
sin π
0 0
4 Impar Par
[ ] ( ) [ ]

·
− −
M
k
k F k h j
1
2
1
2 sin 2 π 0
( ) [ ] − −
·

2 1
1
k
k
M
h k
4
Tabla 1: Secuencias Simétricas
6
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Secuencias Simétricas
Secuencias Simétricas
Ì De esta tabla se pueden sacar las siguientes conclusiones acerca de la
aplicabilidad de cada una de los tipos de secuencia.
x Para las secuencias del tipo 2 |H(½)|=0, por lo que sólo pueden ser
utilizadas para filtros pasabaja y pasabanda.
x Las secuencias del tipo 3 (|H(0)|=0=|H(½)|) sólo pueden ser utilizadas
para filtros pasabanda.
x Las secuencias tipo 4 (|H(0)|=0) son apropiadas para filtros pasaalta y
pasabanda.
x La secuencia tipo 1 puede implementar cualquier tipo de filtro. Es el
único tipo capaz de realizar filtros parabanda.
Aplicaciones de las Secuencias Simétricas
Tipo |H(F)| Aplicación
1 Todo tipo de filtros
2 |H(½)=0| Sólo LP y BP
3 |H(0)|=0=|H(½)| Sólo BP
4 |H(0)=0| Sólo HP y BP
7
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ì Hay tres métodos de diseño de filtros FIR:
x Método de las Series de Fourier.
x Método del Muestreo en Frecuencia.
x Métodos Iterativos basados en condiciones óptimas de diseño.
Ì Método de las Series de Fourier
x El método se basa en seleccionar la respuesta a impulso h
N
[n] como
una versión truncada de la respuesta a impulso h[n] de un filtro ideal
con repuesta frecuencial H(F).
x Proceso de Diseño de Filtros FIR por este método:
3 Normalización de frecuencias por la frecuencia de muestreo.
3 Conversión de especificaciones a la de un Prototipo de Filtro Pasobajo.
3 Truncamiento de la respuesta a impulso de un filtro ideal h[n]=2F
C
sinc(2nF
C
) a
h
N
[n] de longitud N. El orden del filtro es N-1.
3 Selecionar una ventana w[n] de N puntos para obtener h
w
[n]=h
N
[n]· w[n] .
3 Convertir del Protipo de Filtro Pasobajo al Filtro deseado h
F
[n].
3 Retrasar h
F
[n] para asegurarse que el filtro es causal.
8
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ì Nos planteamos realizar un filtro pasobajo ideal (digital) con una frecuencia de corte F
c
, tal y
como indica la figura.
F
F
c
- F
c
| H(F)|
1
0. 5 0. 5
Si expresamos matemáticamente la respuesta frecuencial
deseada:
( )
H F
e F F
F F
d
j F N
c
c
·

>
¹
'
¹
− − 2 1 2
0
π ( )/


Haciendo la Transformada inversa de Fourier discreta en
el tiempo de esta función H
d
(F), nos queda:
[ ] ( )
h n
F
H F e dF e dF
j
N
n
e
j
j
N
n
F
N
n F
F
N
s
d
j Fn
j F
N
n
F
F j F
N
n
F
F
c c
c
c
c
c
c
· ⋅ · ·



|
.

`
,

]
]
]
·
·




|
.

`
,




|
.

`
,

]
]
]
·




|
.

`
,

− −



|
.

`
,


∫ ∫
1 1
2
1
2
2
2
1
2
2
1
2
2
2
1
2
2
2
1
2
1 2
1 2 2
1
2 π
π π
π
π
π
π
sin
sin −
|
.

`
,

]
]
]


|
.

`
,

·
·


|
.

`
,

]
]
]
n
F
N
n
F F
N
n
c
c c
2
1
2
2 2
1
2
π
sinc
9
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ì La función sinc(x) está definida para todo valor de x, y además decae muy
lentamente. Utilizar los valores de h[n] definidos por la ecuación anterior como
coeficientes del filtro FIR, dará lugar a sobreimpulsos en la respuesta frecuencial
del filtro. Debido a la lentitud de la función sinc(x), necesitaré un filtro de elevado
orden (gran número de puntos) para diseñar filtros con transiciones rápidas entre
bandas.
0 5 10 15 20 25
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
10
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x Necesidad de utilizar ventanas espectrales : El truncamiento de h[n] equivale a
multiplicar h[n] por una ventana rectangular w[n] de longitud N. El espectro
de h
N
[n]=h[n]· w[n] es la convolución de H(F) y W(F). La función W(F) va a
producir rizados y sobreimpulsos en la señal de salida, de la misma forma que
se producía el efecto Gibbs al reconstruir una señal discontinua con un número
finito de coeficientes espectrales. Aquí el efecto Gibbs se da en el dominio
frecuencial al usar un truncamineto de la respuesta a impulso. Para reducir los
efectos de un truncamiento abrupto se utilizan ventanas espectrales que
tienden a suavizar esos efectos.
x Por ejemplo, en el caso de una ventana rectangular, en la que w[n]=1, para
n=0,...,N-1, la DTFT es,
( ) [ ] ( )
( )
( )
( ) F
FN
e
e e
e e
e
e
e
e
e e e k w F W
N F j
F j F j
N F j N F j
F j
N F j
F j
FN j
N
k
k
F j
N
k
Fk j
N
k
Fk j
π
π
π
π π
π π
π
π
π
π
π π π
sin
sin
1
1
2 1 2
2 2 2 2
2 2 2 2
2 2
2 2
2
2
1
0
2
1
0
2
1
0
2
⋅ ·


⋅ ·
·


· · · ⋅ ·
− −







·


·


·

∑ ∑ ∑
11
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x El módulo de esta función (llamada función de Dirichlet) se muestra en la
figura de la página siguiente.
x Las ventanas más comunmente utilizadas en el diseño de filtros FIR están
listadas en la Tabla 2. Sus características espectrales principales se especifican
en la Tabla 3.
x De los espectros de las ventanas se hacen notar dos cosas:
3 El ancho del lóbulo principal y el de transición decrece al aumentar N.
3 La amplitud de los lóbulos de los lados permanece constante con N.
x Idealmente el espectro de una ventana debe estar confinado en el lóbulo
principal, sin casi energía en los lóbulos de los lados.
12
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x A continuación se muestran algunas ventanas espectrales y sus espectros
0 0.1 0.2 0.3 0.4 0.5
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
Frecuencia Digital f/fs
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
Boxcar
Hamming
13
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
vonHann
Blackman
14
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
Bartlett
Papoulis
15
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
0 0.1 0.2 0.3 0.4 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Frecuencia Digital f/fs
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
-10 -5 0 5 10
0
0.2
0.4
0.6
0.8
1
Indice n
Kaiser
β=2
Parzen-2
16
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x Las ventanas más utilizadas son vonHann, Hamming y Kaiser.
x A la hora de escoger la ventana adecuada tendremos un cuenta dos
criterios principales de diseño :
1 Asegurarse que el parámetro P
S
de la ventana esté por encima de la
atenuación A
s
especificada para la parabanda del filtro. Como mucho
puede estar unos 8 dB por encima. Es decir P
s
≥ A
s
-8.
2 Una transición más ancha permite utilizar un filtro de menor orden, pero a
costa de una menor atenuación en los lóbulos.
x Ejemplo: Diseñar un filtro FIR pasobajo con una frecuencia de corte
de 5KHz y una frecuencia de muestreo de 20KHz.
h
N
[n]=2F
C
sinc(2nF
C
)=2· (5/20)· sinc(2n5/20)=0.5· sinc(0.5n).
(a) Con N=9, -4≤n≤4, y una ventana tipo Bartlett :
[ ] [ ] { ¦ { ¦
[ ] { ¦ { ¦
[ ] { ¦ [ ] [ ] { ¦ { ¦ 0 , 0265 . 0 , 0 , 2387 . 0 , 5 . 0 , 2387 . 0 , 0 , 0265 . 0 , 0
0 , 1061 . 0 , 0 , 3183 . 0 , 5 . 0 , 3183 . 0 , 0 , 1061 . 0 , 0
0 , 1 , 2 , 3 , 4 , 3 , 2 , 1 , 0
4
1
1
2
1
− − · ·
− − ·
· →

− ·
n w n h n h
n h
n w
N
n
n w
N W
N
17
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Para que el filtro sea causal tendremos que retrasar 4 muestreos, por lo
que el filtro a aplicar es:
Como el primer muestreo de h
W
[n]=0, podemos hacer
(b) Con N=6, -2.5≤ n≤ 2.5 y una ventana vonHann
( ) H z z z z z z
z z z z z
· − + + + + + − + ·
· − + + + −
− − − − −
− − − − −
0 0 0265 0 0 2387 0 5 0 2387 0 0 0265 0
0 0265 0 2387 0 5 0 2387 0 0265
1 3 4 5 7
1 3 4 5 7
. . . . .
. . . . .
( ) H z z z z z · − + + + −
− − − −
0 0265 0 2387 0 5 0 2387 0 0265
2 3 4 6
. . . . .
[ ] ( )
[ ]
[ ] { ¦ { ¦
[ ]
{ ¦
{ ¦
[ ]
{ ¦
[ ] [ ]
{ ¦
{ ¦
( )
w n n N
w n
h n
h n h n w n
H z z z z
N
W N
· + −
·
· − −
· ·
· + + +
− − −
0 5 0 5 2 1
0 0 3455 0 9045 0 9045 0 3455 0
0 09 01501 0 4502 0 4502 01501 0 09
0 0 0518 0 4072 0 4072 0 0518 0
0 0518 0 4072 0 4072 0 0518
1 2 3
. . cos
, . , . , . , . ,
. , . , . , . , . , .
, . , . , . , . ,
. . . .
π
18
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.1 0.2 0.3 0.4 0.5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
magnitude vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-200
-100
0
100
200
phase in degrees vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-600
-400
-200
0
unwrapped phase in degrees vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
magnitude vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-200
-100
0
100
200
phase in degrees vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-300
-200
-100
0
unwrapped phase in degrees vs digital frequency F
Bartlett
N=9
vonHann
N=6
19
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Parámetro β Atenuación en lóbulo
de los lados (dB)
Ancho de Banda de
la Transición
Máximo Rizado en
Parabanda (dB
2.0 -19 2π 1.5/N -29
3.0 -24
2π 2.0/N
-37
4.0 -30 2π 2.6/N -45
5.0 -37
2π 3.2/N
-54
6.0 -44 2π 3.8/N -63
7.0 -51
2π 4.5/N
-72
8.0 -59 2π 5.1/N -81
9.0 -67
2π 5.7/N
-90
10.0 -74 2π 6.4/N -99
Window Atenuación en lóbulo
de los lados (dB)
Ancho de Banda de
la Transición
Máximo Rizado en
Parabanda (dB)
Rectangular -13
2π 0.9/N
-21
Hanning -31 2π 3.1/N -44
Hamming -41
2π 3.3/N
-53
Blackman -57
2π 5.5/N
-74
Características de la ventana Kaiser para distintos parámetros
Características de algunas ventanas espectrales
20
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ì Podemos estimar la longitud del filtro (N) a partir del ancho de banda en la
transición (∆ω). Por ejemplo, si se pide un filtro con una transición entre ω
p
y ω
s
,
llamamos banda de transición a la diferencia normalizada por la frecuencia de
muestreo F
m
, entre las frecuencias de parabanda y pasabanda (en rad/s),
Ì Para el caso de un filtro de Kaiser hay que calcular la longitud del filtro y el valor
del parámetro β. Esto se realiza mediantes las siguientes ecuaciones,
( )
F
k k
N
N
k
F
m
p s

·

≈ ⇒ ·

· ∆
ω
π π
ω ω
ω
2 2
( )
( ) ( )
¹
'
¹
< < − ⋅ + − ⋅
≥ − ⋅
·
∆ ⋅


50 20 , 21 07886 . 0 21 5842 . 0
50 , 7 . 8 1102 . 0
36 . 14
95 . 7
4 . 0
s s s
s s
s
A A A
A A
F
A
N
β
21
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x Otro criterio es tomar N de acuerdo a la siguiente fórmula, donde W
S
es la mitad de la anchura del lóbulo principal (Tabla 2), y F
p
y F
s
la
frecuencias digitales de pasabanda y parabanda.
x Transformaciones Espectrales : Se trata de convertir diseños de filtros
pasobajo a otras formas y viceversa. Las tablas 1 y 2 del apéndice
muestran todas las posibles transformaciones.
Ejemplo : Diseñar un filtro pasobajo con las siguientes especificaciones
f
p
=1KHz, f
s
=2KHz, S
f
=10KHz, A
p
=2 dB y A
s
=40dB.
x Las frecuencias digitales son F
p
=f
p
/S
f
=0.1, F
s
=f
s
/S
f
=0.2. Aplicando este
último criterio y acudiendo a las tablas vemos que de acuerdo a los valores de
P
S
, los filtros más adecuados son vonHann, Hamming y Blackman. Aplicando
la fórmula de N para cada uno de estos filtros obtenemos,
( )
N
W
F F
S
s p


22
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
29 1 . 0 82 . 2 : Blackman
20 1 . 0 91 . 1 : Hamming
19 1 . 0 87 . 1 : vonHann
≈ ·
≈ ·
≈ ·
N
N
N
A partir de aquí procedemos por el científico méto-
do de intentar y errar. De la Tabla 1, obtenemos
h
N
[n] para una frecuencia de corte que no se nos
[ ]
( )
( ) h n F nF n
N C C
· · 2 2 0 24sinc 0 24 sinc . .
especifica claramente. Sólo se nos da las frecuencias en los bordes de la pasaban-
da y la parabanda. Por ello escogemos una frecuencia de corte un 20% superior a
f
p
, es decir f
C
=1.2 KHz.
Ahora se intenta con cada uno de los filtros partiendo de la longitud calculada y
se observa si se cumplen las especificaciones. En caso de no cumplirse, debe au-
mentarse el orden del filtro o modificar la frecuencia de corte elegida y volver
comprobar las especificaciones. Este proceso ha sido utilizado en este problema
y hemos llegado a los siguientes resultados:
vonHann: N=23 F
C
=0.137 Ap=1.9 dB As=40dB
Hamming: N=23 F
C
=0.132 Ap=1.58 dB As=40.1dB
Blackman: N=29 F
C
=0.128 Ap=1.98 dB As=40.1dB
El filtro Blackman tiene la mayor longitud y un mayor ancho de transición pero
el nivel de los lóbulos de los lados es el menor.
23
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-140
-120
-100
-80
-60
-40
-20
0
20
Frecuencia Digital
vonhann - hamming - blackman
M
a
g
n
i
t
u
d

(
d
B
)
24
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ejemplo : Diseñar un filtro pasabanda con las siguientes especificaciones:
Pasabanda [4,8]KHz, Parabanda [2,12]KHz A
p
=3dB A
s
=45dB S
F
=25KHz
Calculamos primero la frecuencia central f
0
=6KHz. Para hacer que la Paraban-
da tenga una frecuencia central igual a la Pasabanda por lo que cambiamos la
frecuencia de 12KHz por una frecuancia de 10KHz. Normalizamos las frecuen-
cias y aplicamos las fórmulas de la Tabla 2, para pasarlo al protipo pasobajo :
PasaBanda[0.16,0.32] ParaBanda[0.08,0.4] F
0
=0.24
F
p
=(F
p2
-F
p1
)/2=0.08 F
s
=(F
s2
-F
s1
)/2=0.16
Utilizamos el filtro de Hamming, para el que N≈ W
S
/(F
s
-F
p
)≈ 24 y comenzamos
el proceso de intentar y errar hasta que llegamos a una solución aceptable. Una
vez determinada la secuencia h
w
[n] que especifica el filtro, lo convertimos a un
filtro pasabanda a través de la relación de la Tabla 1:
h
BP
[n]=2cos(2πnF
0
)· h
w
[n]=2cos(0.48πn)· h
w
[n].
El resultado final obtenido es un filtro con N=27, F
C
=0.0956, A
p
=3.01dB a
4 KHz y 8 KHz, A
s
=45.01dB a 2KHz y 73.47 dB a 12 KHz.
25
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-120
-100
-80
-60
-40
-20
0
Frecuencia Digital
Filtro Pasabanda usando una ventana de Hamming
26
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x Filtros FIR de Media Banda : Veamos qué sucede si diseñamos un
filtro pasabaja en el que la frecuencia de corte es F
C
=0.25. La respues-
ta a impulso es h[n]=2F
C
sinc(2nF
C
)=0.5sinc(0.5n), de forma que si el
orden N es impar, h[n]=0 para n par (ver ejemplo T11). En este caso
la frecuencia de muestreo debe ser S
F
=4f
c
(o 4f
0
). La función de
Transferencia H(F) tiene antisimetría respecto a F=0.25 :
H(F)=1-H(0.25-F)
Filtros de Media Banda usando la ventana Kaiser : Para esta ventana
con N=9 y β=0.5,
w[n]={0.5818,0.7497,0.8838,0.9702,1,0.9702,0.8838,0.7497,0.5818},
y h
N
[n]· w[n]={0,-0.0795,0,0.3088,0.5, 0.3088,0,-0.0795,0}=h
w
[n].
H(z)=-0.0795+0.3088z
-2
+0.5z
-3
+0.3088z
-4
-0.0795z
-6
.
Este tipo de filtros con la ventana Kaiser muestra un rizado tanto en la
pasabanda (δ
p
) como en la parabanda (δ
s
). Estos dependerán de las
atenuaciones especificadas en las dos bandas. Con estos datos se
diseña la ventana Kaiser con el parámetro β más adecuado.
27
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Dos importantes características de los filtros de media banda son :
3 Su implementación requiere sólo de aprox. N/2 multiplicadores debido a
los ceros de los coeficientes del filtro.
3 Se puede obtener un filtro pasoalto a partir del espectro complementario :
H
HP
(z)=z
-(N-1)/2
H
co
(z).
1+δ
p
1-δ
p
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
Frecuencia Digital
δ
s
−δ
s
28
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ejemplo : Diseñar un filtro parabanda de media banda con las siguientes
especificaciones : Parabanda [2 KHz-3 KHz], Pasabanda [1 KHz-4 KHz],
A
p
=1dB y A
s
=50dB.
3 Calculamos la frecuencia de muestreo necesaria para realizar el filtro.
S
F
=4f
0
=4(3+2)/2=10 KHz.
3 Ahora se determinar las frecuencias digitales Fp y Fs de acuerdo con la
Tabla 2, diseñandose un prototipo de filtro pasabaja.
3 Una vez obtenido se transforma a un filtro parabanda con las expresiones de
la Tabla 1. El resultado final para un filtro de este tipo con una ventana
Kaiser es : N=31, A
p
=0.046 dB a 2 KHz y 3 KHz y A
s
=53.02 dB a 1 y 4
KHz.
x Los pasos a realizar no se muestran explicitamente puesto que este tipo de dise-
ño se realiza de forma automática por métodos de CAD. En concreto, haremos
estos diseños utilizando MATLAB. Especificaremos el tipo de filtro a realizar
(pasobajo, pasoalto, etc), la frecuencia de muestreo, las frecuancias de pasaban-
da y parabanda y sus respectivas atenuaciones, así como el tipo de ventana que
deseamos utilizar. Con estos datos el programa realiza el diseño del filtro pro-
porcionando el orden, los coeficientes y las especificaciones reales del filtro.
29
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-100
-90
-80
-70
-60
-50
-40
-30
-20
-10
0
Digital Freq F
kaiser window: n = 31 Fc = 0.1 ap = -0.04629 as = -53.02
30
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Ì Método del Muestreo Frecuencial
x Se trata de reconstruir el espectro continuo X(F) de una señal discreta a
partir de los muestreos de la función X(F). El espectro reconstruido
X
N
(F) será igual a X(F) sólo en las frecuencias de muestreo.
x Se puede considerar el DFT de la señal h
N
[n] de longitud N como N
muestreos de su DTFT (H(F)) en F=k/N, k=0,1,...,N-1.
La respuesta a impulso h
N
[n] se calcula con el IDFT,
x Proceso de diseño
3 Los muestreos deben hacerse en un periodo (0,1) de la extensión periódica
de H(F).
3 La fase de H(F) es lineal y por tanto cada uno de los muestreos tiene una
fase dada por φ(k)=-πk(N-1)/N, k=1,...,N.
( ) [ ] ( ) [ ] [ ] ( ) H F h n j nF dF H k h n j nk N
N N N N
k
N
· · −


·

exp exp 2 2
0
1
0
1
π π
[ ] [ ] ( ) h n
N
H k j nk N
N N
k
N
·
·


1
2
0
1
exp π
31
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
3 Para minimizar el efecto Gibbs en las discontinuidades, permitimos que
los valores de muestreo varíen lentamente en las discontinuidades.
3 Ejemplo : Diseñar un filtro pasobajo dado por la respuesta frecuencial de
la figura.
3 Tomamos 10 muestras. La fase de cada una de las muestras es -πk(N-1)/N
– H[0]=1 H[1]=exp(-j0.9π) H[2]=exp(-j1.8π) H[3]=0 H[4]=0 H[5]=0.
– H[1]=-0.9511-j0.3090 H[2]=0.8090+j0.5878.
– Los valores H[5] ... H[9] se calculan teniendo en cuenta que la respuesta
frecuencial debe ser simétrica en módulo y asimétrica en fase: H[6]=0
H[7]=0 H[8]= 0.8090-j0.5878 H[9]=-0.9511+j0.3090.
– Haciendo la IDFT de estos H[k] obtenemos la secuencia h[n],
h[n]={0.0716,-0.0794,-0.1,0.1558,0.452,0.452,0.1558,-0.1,-0.0794 ,0.0716}
– En la respuesta frecuencial de este filtro se observa que efectivamente pasa
por los puntos de muestreo pero a costa de un sobreimpulso. Para suavizarlo,
se puede sustituir los muestreos H[3] por 0.5exp(-j2.7π). Haciendo el IDFT
de la nueva secuencia de muestreos H[k] obtenemos el filtro,
h[n]={0.0128,0.0157,-0.1,0.0606,0.5108,0.5108,0.0606, -0.1,0.0157,0.0128}
32
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
0
0.2
0.4
0.6
0.8
1
1.2
Frecuencia Digital
Filtro Pasobajo usando Muestreo Frecuencial
33
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x Podemos combinar las ventajas del diseño con ventanas estudiado an-
teriormente y el método de muestreo frecuencial para tener un método
de diseño de filtros de respuesta frecuencial arbitraria.
x Se muestrea la respuesta frecuencial deseada con un número alto de
puntos (M=512). Hacemos el IDFT y obtenemos la respuesta h[n].
3 h[n] es demasiado largo, así que debemos truncarlo a una secuencia más
pequeña con una ventana.
3 Si el diseño no cumple las especificaciones podemos cambiar N, el ancho
de pasabanda o ajustar los muestreos en la zona de transición.
Ì Métodos Basados en criterios de optimización
x Se trata de utilizar criterios para minimizar el máximo error en la apro-
ximación. Hay tres importantes conceptos en diseño óptimo,
x El error entre la aprox. H(F) y la respuesta deseada D(F) debe tener
igual rizado.
34
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
3 La respuesta frecuencial H(F) de un filtro cuya respuesta a impulso h[n]
es una secuencia simétrica puede ponerse como
donde M está relacionado con la longitud del filtro N. Esta forma es un
polinomio de Chebyshev. Debemos escogerα
n
para que el diseño se
óptimo.
3 El teorema de la alternancia ofrece una pista para seleccionarα
n
.
x El Teorema de la Alternancia : Aproximamos D(F) por una forma
polinomial de Chebyshev obteniendo H(F). Se define el error
ponderado en la aproximación ε(F) como ε(F)=W(F)[D(F)-H(F)]
El teorema dice que se pueden encontrar al menos M+2 frecuencias
F
k
, k=1,2,...,M+2 llamadas frecuencias extremas donde
3 El error varía entre dos máximos y mínimos iguales
ε(F
k
) = -ε(F
k+1
) k=1,2,...,M+1
3 El error en la frecuencia F
k
es igual al máximo error absoluto.
|ε(F
k
)|=|ε(F)|
max
k=1,2,...,M+2
( ) ( ) ( ) H F F nF
n
k
M
·
·

α π cos 2
0
35
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
Existe un algoritmo llamado Parks-McClellan (PM) para determinar
esas frecuencias. Este algoritmo necesita los siguientes datos: las
frecuencias F
p
y F
s
, la relación δ
1

2
de los errores en la pasabanda y
en la parabanda y la longitud N del filtro. Devuelve los coeficientes α
n
y los valores reales de δ
1
y δ
2
.
El filtro parabanda diseñado anteriormente ha sido rediseñado
utilizando este algoritmo. El resultado es un filtro de N=21,
δ
1
=0.2225dB y δ
2
=56.79 dB.
La respuesta frecuencial se muestra en la figura.
36
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-80
-70
-60
-50
-40
-30
-20
-10
0
Digital Frequency F
Length N = 21 PB/SB Attn from 0dB = [ 0.2225 56.79 ] dB
37
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Técnicas
Técnicas
de
de
Diseño
Diseño
de
de
Filtros
Filtros
FIR
FIR
x Filtros FIR de horizontalidad máxima
3 Se trata de diseñar un filtro cuyas 2L-1 derivadas en F=0 y sus 2K-1
derivadas en F=0.5 sean cero. La longitud del filtro viene dada por
N=2(K+L)-1 y es por tanto impar. Los enteros K y L se determinan a
partir de las frecuencias de pasabanda y parabanda que corresponden a
atenuaciones de 0.5 dB y 26 dB.
3 Por ejemplo, se pide un filtro pasobajo cuyas frecuencias digitales F
p
=0.2
y F
s
=0.4. Obtenemos un filtro de N=27.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
0
0.2
0.4
0.6
0.8
1
1.2
Frecuencia Digital
Filtro Pasobajo de Horizontalidad Máxima
38
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros
Filtros
FIR con MATLAB
FIR con MATLAB
Ì Funciones de MATLAB para realizar filtros FIR:
x Función FIR1
>> B = fir1(N,Wn,type,window);
Diseña un filtro FIR pasobajo de orden N (longitud N+1) y
frecuencia de corte Wn (normalizada con respecto a la frecuencia
de Nyquists, 0 ≤ Wn ≤ 1). Se pueden especificar otro tipo de
filtros de la misma forma que con los filtros IIR mediante el
parámetro type. Por ejemplo, para un filtro parabanda:
>> B = fir1(N,[W1 W2],'stop');
Por defecto la función FIR usa la ventana de Hamming. Otro tipo
de ventanas pueden también especificarse:
>> B = fir1(N,Wn,bartlett(N+1));
>> B = fir1(N,Wn,'high',chebwin(N+1,R));
x Función FIR2
>> B = fir2(N,F,M,window);
Diseña un filtro FIR utilizando el método del muestreo
frecuencial. Los parámetros de entrada es el orden del filtro N
(longitud N+1) y dos vectores F y M que especifican la
frecuencia y la magnitud, de forma que “plot(F,M)” es una
gráfica de la respuesta deseada del filtro.
39
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros
Filtros
FIR con MATLAB
FIR con MATLAB
Se pueden indicar saltos bruscos en la respuesta frecuencial
duplicando el valor de la frecuencia de corte.
F debe estar entre 0 y 1, en orden creciente, siendo el primer
elemento igual a 0 y el último 1. El parámetro window indica el
tipo de ventana a utilizar. Por defecto, usa la ventana de
Hamming.
>> B = fir2(N,F,M,’bartlett(N+1)’);
Se pueden especificar más parámetros en esta función,
>> B = fir2(N,F,M,npt,lap,window);
La función fir2 interpola la respuesta frecuencial deseada (F,M)
con npt puntos (por defecto, npt=512). Si dos valores sucesivos
de F son iguales, se crea una región de lap puntos alrededor de
este punto (por defecto, lap=25).
x Función FIRLS
>> B = firls(N,F,M);
Diseño de filtros FIR usando la minimización del error por
mínimos cuadrados. Los argumentos de entrada son el orden del
filtro N, y dos vectores F y M, cuyo formato difiere de los
análogos en la función fir2. El filtro obtenido es la mejor
aproximación a (F,M) por mínimos cuadrados.
40
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros
Filtros
FIR con MATLAB
FIR con MATLAB
F es un vector que indica los límites de las bandas de
frecuencia en parejas (por tanto el tamaño de F debe ser par), y
en orden ascendente entre 0 y 1. M es un vector del mismo tamaño
que F que indica la magnitud deseada para cada banda de
frecuencias. La respuesta deseada es la línea que conecta los
puntos (F(k),M(k)) y (F(k+1),M(k+1)) para k impar. Las bandas de
frecuencia entre F(k+1) y F(k+2) para k impar son tratadas por
firls como bandas de transición.
También existe un argumento opcional que consiste en un vector W
cuyo tamaño es la mitad de F. W es un factor de ponderación del
error para cada banda de frecuencias.
>> B = firls(N,F,M,W);
F( 1) =0 F( 2) F( 6) =1 F( 5) F( 4) F( 3)
Bandas de
Tr ansi ci ón
F
H( F)
M( 1)
M( 6)
M( 5)
M( 4)
M( 3)
M( 2)
41
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros
Filtros
FIR con MATLAB
FIR con MATLAB
x Algoritmo de Parks-McClellan
Hay dos funciones en MATLAB para realizar este algoritmo: remezord
y remez.
>> [N,Fo,Mo,W] = remezord(F,M,DEV,Fs)
Calcula el orden N, las bandas de frecuencia normalizadas Fo,
las magnitudes en esas bandas Mo y los factores de ponderación W
que luego serán utilizados como argumentos de entrada de la
función remez. Estos valores cumplen las especificaciones dadas
por F, M, DEV. F es un vector de frecuencias de corte en Hz, en
orden ascendente entre 0 y Fs/2. Si no se especifica Fs, Fs=2
por defecto. El primer elemento de F es siempre 0 y el último es
siempre Fs/2, pero no deben ser especificados en el vector F. El
vector M indica la respuesta deseada en cada banda. Por tanto,
el vector M tiene un tamaño igual a (length(F)+2)/2. DEV es un
vector que indica el máximo rizado permitido en cada banda. Ver
la gráfica de la página siguiente.
>> b = remez(N,Fo,Mo,W);
Con los valores obtenidos en la función remezord, podemos
implemantar el algoritmo de Parks-McClellan. Fo y Mo son dos
vectores de igual magnitud. Fo(k) y Fo(k+1) k impar especifica
bandas de frecuencia y Mo(k) y Mo(k+1) la correspondiente
magnitud para cada frecuencia. El filtro obtenido es la mejor
aproximación por minimax.
42
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros
Filtros
FIR con MATLAB
FIR con MATLAB
F=0 F( 1) F=F
s
/ 2 F( 4) F( 3) F( 2)
Bandas de
Tr ans i ci ón
F
H( F)
M( 1)
M( 3)
M( 2)
x Ejemplo 1: Diseñar un filtro FIR pasabanda a frecuencias de 30 Hz y 3500 Hz
por cada uno de los diferentes métodos. Utilizar un mismo orden de filtro (por
ejemplo N=44) y comparar las respuestas frecuenciales.
x >> N=44;Fs=11020;Fny=Fs/2;
>> Bfir1 = fir1(N,[30 3500]/Fny);
>> Bfir2 = fir2(N,[0 10 30 3500 3600 Fny]/Fny,[0 0 1 1 0 0]);
>> Bfirls = firls(N,[0 10 30 3500 3600 Fny]/Fny,[0 0 1 1 0 0]);
>> Bremez = remez(N,[0 10 30 3500 3600 Fny]/Fny,[0 0 1 1 0 0]);
43
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Diseño
Diseño
de
de
Filtros
Filtros
FIR con MATLAB
FIR con MATLAB
>> F=0:10:5000;
>> Hfir1=abs(freqz(Bfir1,1,F,Fs);
>> Hfir2=abs(freqz(Bfir2,1,F,Fs);
>> Hfirls=abs(freqz(Bfirls,1,F,Fs);
>> Hremez=abs(freqz(Bremez,1,F,Fs);
>> semilogy(F,Hfir1,'r',F,Hfir2,'g',F,Hfirls,'y',F,Hremez,'m');
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
10
-6
10
-5
10
-4
10
-3
10
-2
10
-1
10
0
10
1
Respuesta frecuencial: -- fir1, -- fir2, -- firls, -- remez
44
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Apéndice
Apéndice
Tablas Tablas de de Transformaciones Espectrales Transformaciones Espectrales
45
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Transformaciones de Filtros pasobajo
Tipo H(F) ideal Respuesta a Impulso
h[n]
Pasobajo ( )
( )
H F F F
LP C
· rect 2
[ ] ( )
h n F nF
LP C C
· 2 2 sinc
Pasoalto ( ) ( ) H F H F
HP LP
·1-
[ ] [ ] [ ] h n n h n
HP LP
· − δ
Pasoalto ( ) ( ) ( )
[ ]
H F H F F F
HP LP C
· − ·
1
2
1
2
2 rect -
( ) [ ] −1
n
LP
h n
Pasabanda
( )
( )
[ ]
( )
[ ]
H F
F F F
F F F
BP
C
C
·
+ +

rect
rect
0
0
2
2
( ) [ ] n h nF
LP 0
2 cos 2 π
Parabanda
( ) ( ) H F H F
BS BP
· − 1 [ ] [ ] δ n h n
BP

Tabla 1
46
5º Curso-Tratamiento Digital de Señal
Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17/11/99
Transformaciones a Prototipos de Pasobajo
F
p1
, F
p2
, F
s1
y F
s2
= límites de pasabanda y parabanda, F
0
= Frecuencia Central
Para BS y BP se asume que tienen simetría respecto a F
0
Transformación
Límite de
Pasabanda
Límite de
Parabanda
Frecuencia Central
HP2LP
F F
p sHP
· F F
s pHP
· Si h
HP
[n]=δ[n]-h
LP
[n]
HP2LP pHP p
F F − ·
2
1
sHP s
F F − ·
2
1
Si h
HP
[n]=(−1)
n
h[n]
BP2LP
( )
F F F
p p p
· −
1
2 2 1
( )
F F F
s s s
· −
1
2 2 1
( )
F F F
p p 0
1
2 2 1
· +
BS2LP
( )
F F F
p s s
· −
1
2 2 1
( )
F F F
s p p
· −
1
2 2 1
( )
F F F
p p 0
1
2 2 1
· +
Tabla 2

5º Curso-Tratamiento Digital de Señal

Secuencias Simétricas
Ì Ì

Ì

Ì

El diseño de filtros FIR requieren la selección de la secuencia que mejor representa la respuesta a impulso de un filtro ideal. Los filtros FIR son siempre estables y son capaces de tener una respuesta de fase que es lineal, lo que equivale a decir que su respuesta tiene un retraso constante. El mayor problema de los filtros FIR es que para unas especificaciones dadas requieren un filtro de orden mucho mayor que los filtros IIR. Un filtro FIR de longitud M con entrada x[n] y salida y[n] se describe mediante la ecuación diferencia:

y[ n] = b0 x[ n] + b1 x[ n − 1]++bM −1 x[ n − M + 1] =
donde bk son los coeficientes del filtro.

∑ b x[n − k ]
k =0 k

M −1

17/11/99

Capítulo 9: Diseño de Filtros Digitales (Parte 2)

2

5º Curso-Tratamiento Digital de Señal

Secuencias Simétricas
Ì

Por otra parte podemos expresar la salida del filtro y[n] como una convolución de la entrada x[n] con la respuesta a impulso del filtro h[n]:
y[ n] =
M −1 k =0

∑ h[ k ] ⋅ x[n − k ]

Ì

Ì

Ì

Ya que estas dos ecuaciones son idénticas, y por tanto, los coeficientes bk=h[k]. Se puede demostrar que la respuesta de un filtro FIR es de fase lineal si los coeficientes h[n] cumplen : h[ n ] = ± h[ M − 1 − n ] n = 0,1, , M − 1 Es decir los coeficientes tienen algún tipo de simetría. La función de Transferencia Z del filtro FIR, aplicando esta condición es :
H(z) = ∑h[k]⋅ z−k = h[0]+ h[1]⋅ z−1 + h[2]⋅ z−2 ++ h[M − 2]⋅ z−(M−2) + h[M −1]⋅ z−(M−1) =
k=0 M−1

 −(M−1)/ 2  M −1 (M−3)/ 2 (M−1−2k )/ 2 −(M−1−2k )/ 2  ±z h  M impar z  + ∑h[k] z    2  k=0  = (M−1)/ 2  z−(M−1)/ 2 ∑h[k] z(M−1−2k )/ 2 ± z−(M−1−2k )/ 2 M par  k=0 

[

]

[

]

17/11/99

Capítulo 9: Diseño de Filtros Digitales (Parte 2)

3

5º Curso-Tratamiento Digital de Señal

Secuencias Simétricas
Ì

H (z ) = ± H ( z ) De esta última expresión se deduce que z lo que significa que la raíces de H(z) son las mismas que las de H(z-1). Es decir las raíces (en este caso, los ceros) ocurren en pares recíprocos. Si z1 es un cero de H(z), 1/z1 es también un cero. Además, si z1 es un cero complejo, su conjugado z1* es también un cero, 2 *. así como 1/z1
− ( M −1) −1
1.5 1

0.5

0

-0.5

-1

-1.5

-2 -1

-0.5

0

0.5

1

1.5

2

2.5

17/11/99

Capítulo 9: Diseño de Filtros Digitales (Parte 2)

4

Esto significa que el punto medio cae en un punto de la secuencia si N es impar y entre dos puntos si N es par. Secuencias Simétricas L=½(N-1). Como tengo dos tipos de simetría (par o impar). tendré cuatro posibles tipos de secuencias simétricas.5º Curso-Tratamiento Digital de Señal Secuencias Simétricas Ì La longitud N de una secuencia simétrica puede ser par o impar. F es la frecuecia digital=f/fs. M=½N. las cuales se muestran en la Tabla 1 junto con la DTFT de cada secuencia. donde fs es la frecuencia de muestreo Tipo Simetría N H(F) |H(0)| |H(½)| L L L h[0 ] + 2 ∑ k =1 h[k ]cos(2 kπF ) h[0 ] + 2 ∑ k =1 h[k ] h[0 ] + 2 ∑ k =1 (−1)k h[k ] 1 Par Impar 2 3 4 4 Par Impar Impar Par Impar Par 2 ∑ k =1 h [k ]cos [2π F (k − M 1 2 )] )] − j 2 ∑ k =1 h [k ]sin [2π F (k − M − j 2 ∑ k =1 h[k ]sin(2 kπF ) L 1 2 2 ∑ k =1 h[k ] L 0 0 −2 ∑ k =1 (−1)k h[k ] M 0 0 Tabla 1: Secuencias Simétricas 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 5 .

5º Curso-Tratamiento Digital de Señal Secuencias Simétricas Ì De esta tabla se pueden sacar las siguientes conclusiones acerca de la aplicabilidad de cada una de los tipos de secuencia. x Las secuencias del tipo 3 (|H(0)|=0=|H(½)|) sólo pueden ser utilizadas para filtros pasabanda. x Para las secuencias del tipo 2 |H(½)|=0. Aplicaciones de las Secuencias Simétricas Tipo |H(F)| Aplicación 1 Todo tipo de filtros 2 |H(½)=0| Sólo LP y BP 3 |H(0)|=0=|H(½)| Sólo BP 4 |H(0)=0| Sólo HP y BP 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 6 . por lo que sólo pueden ser utilizadas para filtros pasabaja y pasabanda. x La secuencia tipo 1 puede implementar cualquier tipo de filtro. x Las secuencias tipo 4 (|H(0)|=0) son apropiadas para filtros pasaalta y pasabanda. Es el único tipo capaz de realizar filtros parabanda.

Truncamiento de la respuesta a impulso de un filtro ideal h[n]=2FCsinc(2nFC) a hN[n] de longitud N. Capítulo 9: Diseño de Filtros Digitales (Parte 2) 7 17/11/99 . Proceso de Diseño de Filtros FIR por este método: 3 3 3 Ì Método de las Series de Fourier x x 3 3 3 Normalización de frecuencias por la frecuencia de muestreo. Selecionar una ventana w[n] de N puntos para obtener hw[n]=hN[n]· w[n] . Método del Muestreo en Frecuencia. El orden del filtro es N-1. El método se basa en seleccionar la respuesta a impulso hN[n] como una versión truncada de la respuesta a impulso h[n] de un filtro ideal con repuesta frecuencial H(F).5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ì Hay tres métodos de diseño de filtros FIR: x x x Método de las Series de Fourier. Retrasar hF[n] para asegurarse que el filtro es causal. Métodos Iterativos basados en condiciones óptimas de diseño. Convertir del Protipo de Filtro Pasobajo al Filtro deseado hF[n]. Conversión de especificaciones a la de un Prototipo de Filtro Pasobajo.

5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ì Nos planteamos realizar un filtro pasobajo ideal (digital) con una frecuencia de corte Fc. |H(F)| 1 Si expresamos matemáticamente la respuesta frecuencial deseada: − j 2 πF ( N −1)/ 2 e Hd ( F ) =  0 F ≤ Fc F > Fc F 0. tal y como indica la figura. nos queda: Fc  N −1  − j 2 πF  −n  2  − Fc 1 h[ n] = Fs ∫ 12 −1 2 Hd ( F ) ⋅ e j 2 πFn dF = ∫ e  − j 2πF  N2−1 − n   c   1   dF = e  =  N −1    − Fc − j 2π  − n  2  F   N −1  − n  sin 2πFc   2  −2j   N −1   ⋅ sin 2πFc  − n  = 2 Fc = =  2   N −1   N −1   − n − j 2π  − n 2πFc   2   2    N −1  − n  = 2 Fc sinc 2 Fc     2 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 8 .5 Haciendo la Transformada inversa de Fourier discreta en el tiempo de esta función Hd(F).5 -F c Fc 0.

Utilizar los valores de h[n] definidos por la ecuación anterior como coeficientes del filtro FIR.2 0 5 10 15 20 25 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 9 .1 -0. 0.3 0.4 0. y además decae muy lentamente. dará lugar a sobreimpulsos en la respuesta frecuencial del filtro.5 0. necesitaré un filtro de elevado orden (gran número de puntos) para diseñar filtros con transiciones rápidas entre bandas. Debido a la lentitud de la función sinc(x).1 0 -0.2 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ì La función sinc(x) está definida para todo valor de x.

.N-1.. Por ejemplo. para n=0.. El espectro de hN[n]=h[n]·w[n] es la convolución de H(F) y W(F). La función W(F) va a producir rizados y sobreimpulsos en la señal de salida.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x x Necesidad de utilizar ventanas espectrales : El truncamiento de h[n] equivale a multiplicar h[n] por una ventana rectangular w[n] de longitud N. en la que w[n]=1. la DTFT es. en el caso de una ventana rectangular. de la misma forma que se producía el efecto Gibbs al reconstruir una señal discontinua con un número finito de coeficientes espectrales. Para reducir los efectos de un truncamiento abrupto se utilizan ventanas espectrales que tienden a suavizar esos efectos.. Aquí el efecto Gibbs se da en el dominio frecuencial al usar un truncamineto de la respuesta a impulso. W (F ) = ∑ w[k ]⋅ e k =0 N −1 − j 2πFk = ∑e k =0 N −1 − j 2πFk =∑ e k =0 N −1 ( j 2πF − k ) e − j 2πF N 2 e j 2πF N 2 − e − j 2πF N 2 sin (πFN ) = − j 2π F 2 ⋅ j 2π F 2 − j 2π F 2 = e − j 2πF ( N −1) 2 ⋅ e e −e sin (πF ) 17/11/99 1 − e − j 2πFN = = − j 2πF 1− e Capítulo 9: Diseño de Filtros Digitales (Parte 2) 10 .

Las ventanas más comunmente utilizadas en el diseño de filtros FIR están listadas en la Tabla 2. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 11 . Sus características espectrales principales se especifican en la Tabla 3. sin casi energía en los lóbulos de los lados. Idealmente el espectro de una ventana debe estar confinado en el lóbulo principal.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x x x x El módulo de esta función (llamada función de Dirichlet) se muestra en la figura de la página siguiente. 3 La amplitud de los lóbulos de los lados permanece constante con N. De los espectros de las ventanas se hacen notar dos cosas: 3 El ancho del lóbulo principal y el de transición decrece al aumentar N.

2 0 Boxcar -25 -30 -35 -40 -45 -10 -5 Indice n 0 5 10 -50 0 0.4 0.4 0.5 Frecuencia Digital f/fs 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 12 .1 Frecuencia Digital f/fs 0.6 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x A continuación se muestran algunas ventanas espectrales y sus espectros 0 -5 1 -10 -15 -20 0.5 0 -10 -20 0.2 -70 0 -80 0 -10 -5 Indice n 0 5 10 0.1 0.2 0.8 -30 0.3 0.3 0.2 0.4 0.6 1 Hamming -40 -50 -60 0.4 0.8 0.

4 0.2 0.1 0.3 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 0 -10 -20 0.6 1 vonHann -40 -50 -60 0.5 Indice n Frecuencia Digital f/fs 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 13 .3 0.4 0.5 Indice n Frecuencia Digital f/fs 0 -10 -20 0.2 -70 0 -80 -10 -5 0 5 10 0 0.4 0.4 0.8 -30 0.8 -30 0.1 0.6 1 Blackman -40 -50 -60 0.2 0.2 -70 0 -80 -10 -5 0 5 10 0 0.

3 0.1 0.3 0.4 0.5 Indice n Frecuencia Digital f/fs 0 -10 -20 0.2 -70 0 -80 -10 -5 0 5 10 0 0.2 0.6 1 Bartlett -40 -50 -60 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 0 -10 -20 0.5 Indice n Frecuencia Digital f/fs 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 14 .4 0.2 0.4 0.2 -70 0 -80 -10 -5 0 5 10 0 0.8 -30 0.8 -30 0.1 0.4 0.6 1 Papoulis -40 -50 -60 0.

5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 0 -10 -20 0.4 0.6 1 Parzen-2 -40 -50 -60 0.5 Indice n Frecuencia Digital f/fs 0 -10 -20 0.1 0.8 -30 0.4 0.3 0.3 0.2 -70 0 -80 -10 -5 0 5 10 0 0.4 Kaiser β=2 -40 -50 -60 0.2 0.6 1 0.5 Indice n Frecuencia Digital f/fs 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 15 .2 -70 0 -80 -10 -5 0 5 10 0 0.4 0.8 -30 0.1 0.2 0.

0265.−0. y una ventana tipo Bartlett : w[n] = 1 − { } {h [n]}= {h [n]w[n]}= {0.3183.0} W N 1 {0.5· sinc(0.0265. 2n → {w[n]} = 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 16 .5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x x Las ventanas más utilizadas son vonHann. pero a costa de una menor atenuación en los lóbulos. Como mucho puede estar unos 8 dB por encima.2387.0.1.0.10610.3183.−0. Hamming y Kaiser.0.0.−0.4.5.−0.2.0} N −1 4 hN [n] = {0.2.0.0. (a) Con N=9.1.10610} .5. hN[n]=2FCsinc(2nFC)=2·(5/20)·sinc(2n5/20)=0.0.2387. A la hora de escoger la ventana adecuada tendremos un cuenta dos criterios principales de diseño : 1 2 Asegurarse que el parámetro PS de la ventana esté por encima de la atenuación As especificada para la parabanda del filtro. . -4≤n≤4.5n).3. Es decir Ps≥ As-8. x Ejemplo: Diseñar un filtro FIR pasobajo con una frecuencia de corte de 5KHz y una frecuencia de muestreo de 20KHz. Una transición más ancha permite utilizar un filtro de menor orden.0.0.3.

0265 + 0.0518 + 0.2387z −3 + 0. podemos hacer H (z ) = −0.2387z −2 + 0.2387z −4 − 0.4502.1501.0.09.0.0.0.−0.0.5z −4 + 0.2387z −3 + 0.0265z −1 + 0.4072.9045.0.4072 z −1 + 0.0518z −3 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 17 .5 + 0.0518.0265z −7 Como el primer muestreo de hW[n]=0.4502.0. -2. por lo que el filtro a aplicar es: H (z ) = 0 − 0.3455.0} H (z ) = 0.2387z −5 − 0.0265z −7 + 0 = = −0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Para que el filtro sea causal tendremos que retrasar 4 muestreos.0265z −1 + 0 + 0.4072.5z −3 + 0.0.5 y una ventana vonHann w[n] = 0.3455.0.09} W [n]} = {hN [n]w[n]} = {0.0.5≤ n≤ 2.0} {h {h N [n]} = {−0.2387 z −5 + 0 − 0.0.0265z −6 (b) Con N=6.4072 z −2 + 0.9045.5 cos[2 nπ ( N − 1)] {w[n]} = {0.0518.5z −4 + 0.1501.0.

4 0.1 0.2 0.4 0.5 0.6 0.3 0.5 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 18 .3 0.3 0.2 0.4 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR magnitude vs digital frequency F 1 0.3 0.7 0.5 phase in degrees vs digital frequency F Bartlett N=9 unwrapped phase in degrees vs digital frequency F 0 -200 0 0.1 0.5 magnitude vs digital frequency F 1 0.5 -400 -600 200 100 0 -100 -200 0 0.1 0.2 0.3 0.4 0.2 0.1 0 0 0.1 0 0 0.2 0.2 0.5 -200 -300 200 100 0 -100 phase in degrees vs digital frequency F vonHann N=6 -200 0 0.4 0.2 0.3 0.9 0.6 0.1 0.1 0.1 0.4 0.8 0.5 0.4 0.9 0.8 0.7 0.3 0.4 0.5 unwrapped phase in degrees vs digital frequency F 0 -100 0 0.3 0.2 0.

6/N 5.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Características de algunas ventanas espectrales Window Atenuación en lóbulo Ancho de Banda de Máximo Rizado en de los lados (dB) la Transición Parabanda (dB) Rectangular -13 -21 2π 0.0 -19 -29 2π 1.8/N 7.0 -30 -45 2π 2.2/N 6.5/N Características de la ventana Kaiser para distintos parámetros Parámetro β Atenuación en lóbulo Ancho de Banda de Máximo Rizado en de los lados (dB) la Transición Parabanda (dB 2.9/N Hanning -44 -31 2π 3.5/N 3.7/N 10.3/N Blackman -57 -74 2π 5.0 -51 -72 2π 4.0 -44 -63 2π 3.1/N 9.1/N Hamming -53 -41 2π 3.0/N 4.5/N 8.0 -54 -37 2π 3.4/N 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 19 .0 -59 -81 2π 5.0 -90 -67 2π 5.0 -24 -37 2π 2.0 -74 -99 2π 6.

llamamos banda de transición a la diferencia normalizada por la frecuencia de muestreo Fm. N≈ Ì As ≥ 50 20 < As < 50 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 20 .36 ⋅ ∆F 0. Por ejemplo. entre las frecuencias de parabanda y pasabanda (en rad/s).4 0. si se pide un filtro con una transición entre ωp y ωs.5842 ⋅ (As − 21) + 0.  β = 0.1102 ⋅ (As − 8. Esto se realiza mediantes las siguientes ecuaciones.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ì Podemos estimar la longitud del filtro (N) a partir del ancho de banda en la transición (∆ω). As − 7.07886 ⋅ (As − 21).7 ). (ω s − ω p ) = 2πk ⇒ N ≈ 2πk = k ∆ω = Fm N ∆ω ∆F Para el caso de un filtro de Kaiser hay que calcular la longitud del filtro y el valor del parámetro β.95 14.

5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x Otro criterio es tomar N de acuerdo a la siguiente fórmula. Aplicando este último criterio y acudiendo a las tablas vemos que de acuerdo a los valores de PS. x Las frecuencias digitales son Fp=fp/Sf=0. los filtros más adecuados son vonHann. Fs=fs/Sf=0.2. y Fp y Fs la frecuencias digitales de pasabanda y parabanda. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 21 . N ≈ WS (F s − Fp ) x Transformaciones Espectrales : Se trata de convertir diseños de filtros pasobajo a otras formas y viceversa. donde WS es la mitad de la anchura del lóbulo principal (Tabla 2). Las tablas 1 y 2 del apéndice muestran todas las posibles transformaciones.1. Ejemplo : Diseñar un filtro pasobajo con las siguientes especificaciones fp=1KHz. fs=2KHz. Ap=2 dB y As=40dB. Hamming y Blackman. Aplicando la fórmula de N para cada uno de estos filtros obtenemos. Sf=10KHz.

137 Ap=1. De la Tabla 1.24sinc(0.87 0.24 n) Ahora se intenta con cada uno de los filtros partiendo de la longitud calculada y se observa si se cumplen las especificaciones.98 dB As=40. obtenemos hN[n] para una frecuencia de corte que no se nos especifica claramente.132 Ap=1.1 ≈ 19 Hamming : N = 1.1dB El filtro Blackman tiene la mayor longitud y un mayor ancho de transición pero el nivel de los lóbulos de los lados es el menor.1 ≈ 29 .1dB Blackman: N=29 FC =0.128 Ap=1. hN [n] = 2 FC sinc(2 nFC ) = 0.91 0.1 ≈ 20 Blackman : N = 2.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR A partir de aquí procedemos por el científico método de intentar y errar.58 dB As=40. Sólo se nos da las frecuencias en los bordes de la pasabanda y la parabanda. En caso de no cumplirse.2 KHz. Este proceso ha sido utilizado en este problema y hemos llegado a los siguientes resultados: As=40dB vonHann: N=23 FC=0. debe aumentarse el orden del filtro o modificar la frecuencia de corte elegida y volver comprobar las especificaciones. es decir fC=1. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 22 vonHann : N = 1.9 dB Hamming: N=23 FC =0.82 0. Por ello escogemos una frecuencia de corte un 20% superior a fp.

3 0.5 Frecuencia Digital 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 23 .1 0.2 0.25 0.blackman 0 -20 Magnitud (dB) -40 -60 -80 -100 -120 -140 0 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 20 vonhann .45 0.hamming .4 0.05 0.35 0.15 0.

FC=0. As=45.0.8]KHz. para el que N≈ WS/(Fs-Fp)≈ 24 y comenzamos el proceso de intentar y errar hasta que llegamos a una solución aceptable.4] F0=0. Ap=3. lo convertimos a un filtro pasabanda a través de la relación de la Tabla 1: hBP[n]=2cos(2πnF0)·hw[n]=2cos(0.16 Utilizamos el filtro de Hamming.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ejemplo : Diseñar un filtro pasabanda con las siguientes especificaciones: Pasabanda [4.01dB a 4 KHz y 8 KHz.0956.08. Normalizamos las frecuencias y aplicamos las fórmulas de la Tabla 2.16.32] ParaBanda[0. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 24 .01dB a 2KHz y 73.0.24 Fp=(Fp2-Fp1)/2=0.12]KHz Ap=3dB As=45dB SF=25KHz Calculamos primero la frecuencia central f0=6KHz.08 Fs=(Fs2-Fs1)/2=0. Una vez determinada la secuencia hw[n] que especifica el filtro. El resultado final obtenido es un filtro con N=27.48πn)·hw[n]. Para hacer que la Parabanda tenga una frecuencia central igual a la Pasabanda por lo que cambiamos la frecuencia de 12KHz por una frecuancia de 10KHz. Parabanda [2. para pasarlo al protipo pasobajo : PasaBanda[0.47 dB a 12 KHz.

5 Frecuencia Digital 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 25 .4 0.2 0.15 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Filtro Pasabanda usando una ventana de Hamming 0 -20 -40 -60 -80 -100 -120 0 0.45 0.25 0.1 0.35 0.05 0.3 0.

0.3088z-4-0.0795.25. Capítulo 9: Diseño de Filtros Digitales (Parte 2) 26 17/11/99 .5818.8838. Estos dependerán de las atenuaciones especificadas en las dos bandas.5.1.5z-3+0.0.8838.5n).5. w[n]={0.0.5818}.9702. La función de Transferencia H(F) tiene antisimetría respecto a F=0. Este tipo de filtros con la ventana Kaiser muestra un rizado tanto en la pasabanda (δp) como en la parabanda (δs).0}=hw[n].0.3088. Con estos datos se diseña la ventana Kaiser con el parámetro β más adecuado.3088z-2+0.5sinc(0.0.7497.25 : H(F)=1-H(0.3088.0. La respuesta a impulso es h[n]=2FCsinc(2nFC)=0.0795+0.25-F) Filtros de Media Banda usando la ventana Kaiser : Para esta ventana con N=9 y β=0. 0.-0.0.0.0795z-6. h[n]=0 para n par (ver ejemplo T11).0.0795.7497. y hN[n]·w[n]={0.-0.0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x Filtros FIR de Media Banda : Veamos qué sucede si diseñamos un filtro pasabaja en el que la frecuencia de corte es FC=0.0. En este caso la frecuencia de muestreo debe ser SF=4fc (o 4f0). de forma que si el orden N es impar.9702. H(z)=-0.

4 0.6 0.8 0. Se puede obtener un filtro pasoalto a partir del espectro complementario : HHP(z)=z-(N-1)/2Hco(z).2 0.1 0.05 0.2 δs −δs 0 -0.4 0.25 0.5 Frecuencia Digital Dos importantes características de los filtros de media banda son : 3 3 Su implementación requiere sólo de aprox.2 0 0.15 0.45 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 1.2 1+δp 1-δp 1 0. N/2 multiplicadores debido a los ceros de los coeficientes del filtro.3 0.35 0. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 27 .

Los pasos a realizar no se muestran explicitamente puesto que este tipo de diseño se realiza de forma automática por métodos de CAD.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ejemplo : Diseñar un filtro parabanda de media banda con las siguientes especificaciones : Parabanda [2 KHz-3 KHz]. diseñandose un prototipo de filtro pasabaja. la frecuencia de muestreo. haremos estos diseños utilizando MATLAB. Especificaremos el tipo de filtro a realizar (pasobajo. los coeficientes y las especificaciones reales del filtro. Ap=0. En concreto. 3 Calculamos la frecuencia de muestreo necesaria para realizar el filtro.046 dB a 2 KHz y 3 KHz y As=53. El resultado final para un filtro de este tipo con una ventana Kaiser es : N=31. Capítulo 9: Diseño de Filtros Digitales (Parte 2) 28 x 17/11/99 . Ap=1dB y As=50dB. etc). las frecuancias de pasabanda y parabanda y sus respectivas atenuaciones. 3 Una vez obtenido se transforma a un filtro parabanda con las expresiones de la Tabla 1.02 dB a 1 y 4 KHz. Pasabanda [1 KHz-4 KHz]. así como el tipo de ventana que deseamos utilizar. SF=4f0=4(3+2)/2=10 KHz. pasoalto. Con estos datos el programa realiza el diseño del filtro proporcionando el orden. 3 Ahora se determinar las frecuencias digitales Fp y Fs de acuerdo con la Tabla 2.

25 0.1 0.02 0 -10 -20 -30 -40 -50 -60 -70 -80 -90 -100 0 0.35 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR kaiser window: n = 31 Fc = 0.1 ap = -0.04629 as = -53.45 0.15 0.3 0.2 0.05 0.4 0.5 Digital Freq F 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 29 .

Capítulo 9: Diseño de Filtros Digitales (Parte 2) 30 17/11/99 .N-1... La fase de H(F) es lineal y por tanto cada uno de los muestreos tiene una fase dada por φ(k)=-πk(N-1)/N.. El espectro reconstruido XN(F) será igual a X(F) sólo en las frecuencias de muestreo.1) de la extensión periódica de H(F). k=1..1..N.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Ì Método del Muestreo Frecuencial x x Se trata de reconstruir el espectro continuo X(F) de una señal discreta a partir de los muestreos de la función X(F). k=0. N −1 1 H N ( F ) = ∫ hN [n] exp( j 2πnF )dF H N [k ] = ∑ h N [n]exp(− j 2πn k N ) 0 La respuesta a impulso hN[n] se calcula con el IDFT. Se puede considerar el DFT de la señal hN[n] de longitud N como N muestreos de su DTFT (H(F)) en F=k/N.... 1 N −1 hN [n] = ∑ H N [k ]exp( j 2πn k N ) N k =0 k =0 x Proceso de diseño 3 3 Los muestreos deben hacerse en un periodo (0.

0794.0157.0606.1.0.7π).1.452.9π) H[2]=exp(-j1. Tomamos 10 muestras.-0.0716} – En la respuesta frecuencial de este filtro se observa que efectivamente pasa por los puntos de muestreo pero a costa de un sobreimpulso..-0.0.-0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 3 3 3 Para minimizar el efecto Gibbs en las discontinuidades.5108.0.0716.0.5108.0. La fase de cada una de las muestras es -πk(N-1)/N – H[0]=1 H[1]=exp(-j0.5878 H[9]=-0.-0.1558. – Haciendo la IDFT de estos H[k] obtenemos la secuencia h[n].1.9511+j0. Ejemplo : Diseñar un filtro pasobajo dado por la respuesta frecuencial de la figura.-0.8090-j0. se puede sustituir los muestreos H[3] por 0.452.3090. h[n]={0. Haciendo el IDFT de la nueva secuencia de muestreos H[k] obtenemos el filtro.0128.0.9511-j0.0. H[9] se calculan teniendo en cuenta que la respuesta frecuencial debe ser simétrica en módulo y asimétrica en fase: H[6]=0 H[7]=0 H[8]= 0. – H[1]=-0.0794 .5878.0. – Los valores H[5] .0. permitimos que los valores de muestreo varíen lentamente en las discontinuidades.0606.5exp(-j2.. Para suavizarlo.0.1.1558.0.0. -0. h[n]={0.0157.0128} 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 31 .8π) H[3]=0 H[4]=0 H[5]=0.3090 H[2]=0.8090+j0.

2 0.8 0.15 0.25 0.05 0.35 0.2 Filtro Pasobajo usando Muestreo Frecuencial 1 0.3 0.6 0.5 Frecuencia Digital 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 32 .2 0 0 0.1 0.4 0.4 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 1.45 0.

Hacemos el IDFT y obtenemos la respuesta h[n]. Se muestrea la respuesta frecuencial deseada con un número alto de puntos (M=512). 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 33 . H(F) y la respuesta deseada D(F) debe tener igual rizado. el ancho de pasabanda o ajustar los muestreos en la zona de transición.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x x Podemos combinar las ventajas del diseño con ventanas estudiado anteriormente y el método de muestreo frecuencial para tener un método de diseño de filtros de respuesta frecuencial arbitraria. Ì Métodos Basados en criterios de optimización x x Se trata de utilizar criterios para minimizar el máximo error en la aproximación. Hay tres importantes conceptos en diseño óptimo. Si el diseño no cumple las especificaciones podemos cambiar N. 3 3 h[n] es demasiado largo. El error entre la aprox. así que debemos truncarlo a una secuencia más pequeña con una ventana.

M+2 |ε(Fk)|=|ε(F)|max Capítulo 9: Diseño de Filtros Digitales (Parte 2) 34 17/11/99 .. k=1.2.2.... El teorema de la alternancia ofrece una pista para seleccionarαn.M+2 llamadas frecuencias extremas donde 3 3 El error varía entre dos máximos y mínimos iguales k=1... Esta forma es un polinomio de Chebyshev.. Se define el error ponderado en la aproximación ε(F) como ε(F)=W(F)[D(F)-H(F)] El teorema dice que se pueden encontrar al menos M+2 frecuencias Fk.2. k=1.. Debemos escogerαn para que el diseño se óptimo....5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR 3 La respuesta frecuencial H(F) de un filtro cuya respuesta a impulso h[n] es una secuencia simétrica puede ponerse como H ( F ) = ∑ α n ( F ) cos(2πnF ) M 3 x donde M está relacionado con la longitud del filtro N.. k =0 El Teorema de la Alternancia : Aproximamos D(F) por una forma polinomial de Chebyshev obteniendo H(F).M+1 ε(Fk) = -ε(Fk+1) El error en la frecuencia Fk es igual al máximo error absoluto.

5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Existe un algoritmo llamado Parks-McClellan (PM) para determinar esas frecuencias.2225dB y δ2=56. La respuesta frecuencial se muestra en la figura. El resultado es un filtro de N=21. Devuelve los coeficientes αn y los valores reales de δ1 y δ2. δ1=0.79 dB. El filtro parabanda diseñado anteriormente ha sido rediseñado utilizando este algoritmo. la relación δ1/δ2 de los errores en la pasabanda y en la parabanda y la longitud N del filtro. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 35 . Este algoritmo necesita los siguientes datos: las frecuencias Fp y Fs.

2 0.05 0.79 ] dB 0 -10 -20 -30 -40 -50 -60 -70 -80 0 0.15 0.5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR Length N = 21 PB/SB Attn from 0dB = [ 0.5 Digital Frequency F 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 36 .4 0.45 0.2225 56.1 0.25 0.35 0.3 0.

5º Curso-Tratamiento Digital de Señal Técnicas de Diseño de Filtros FIR x Filtros FIR de horizontalidad máxima 3 3 Se trata de diseñar un filtro cuyas 2L-1 derivadas en F=0 y sus 2K-1 derivadas en F=0.5 sean cero.1 0. Obtenemos un filtro de N=27. se pide un filtro pasobajo cuyas frecuencias digitales Fp=0.35 0.2 y Fs=0.4 0.3 0.2 0 0 0. Los enteros K y L se determinan a partir de las frecuencias de pasabanda y parabanda que corresponden a atenuaciones de 0.5 dB y 26 dB.6 0.45 0. 1.2 0.5 Frecuencia Digital 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 37 .8 0.05 0.2 Filtro Pasobajo de Horizontalidad Máxima 1 0.15 0.4 0. Por ejemplo.25 0. La longitud del filtro viene dada por N=2(K+L)-1 y es por tanto impar.4.

M)” es una gráfica de la respuesta deseada del filtro.Wn. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 38 .F. Diseña un filtro FIR utilizando el método del muestreo frecuencial.window).type.window).R)).'stop').bartlett(N+1)).M. Por defecto la función FIR usa la ventana de Hamming.Wn. Los parámetros de entrada es el orden del filtro N (longitud N+1) y dos vectores F y M que especifican la frecuencia y la magnitud.chebwin(N+1.[W1 W2]. Otro tipo de ventanas pueden también especificarse: >> B = fir1(N. Diseña un filtro FIR pasobajo de orden N (longitud N+1) y frecuencia de corte Wn (normalizada con respecto a la frecuencia de Nyquists. Por ejemplo. Se pueden especificar otro tipo de filtros de la misma forma que con los filtros IIR mediante el parámetro type. 0 ≤ Wn ≤ 1). de forma que “plot(F. x Función FIR2 >> B = fir2(N.5º Curso-Tratamiento Digital de Señal Diseño de Filtros FIR con MATLAB Ì Funciones de MATLAB para realizar filtros FIR: x Función FIR1 >> B = fir1(N.'high'. >> B = fir1(N.Wn. para un filtro parabanda: >> B = fir1(N.

siendo el primer elemento igual a 0 y el último 1. npt=512). Se pueden especificar más parámetros en esta función.F. >> B = fir2(N. El filtro obtenido es la mejor aproximación a (F. Diseño de filtros FIR usando la minimización del error por mínimos cuadrados.’bartlett(N+1)’). en orden creciente.M.F. El parámetro window indica el tipo de ventana a utilizar. Los argumentos de entrada son el orden del filtro N.window).M). cuyo formato difiere de los análogos en la función fir2.M.M) con npt puntos (por defecto. lap=25). >> B = fir2(N.F.M) por mínimos cuadrados. y dos vectores F y M. F debe estar entre 0 y 1. Por defecto. La función fir2 interpola la respuesta frecuencial deseada (F. x Función FIRLS >> B = firls(N.npt. usa la ventana de Hamming. se crea una región de lap puntos alrededor de este punto (por defecto.5º Curso-Tratamiento Digital de Señal Diseño de Filtros FIR con MATLAB Se pueden indicar saltos bruscos en la respuesta frecuencial duplicando el valor de la frecuencia de corte. Si dos valores sucesivos de F son iguales. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 39 .lap.

Las bandas de frecuencia entre F(k+1) y F(k+2) para k impar son tratadas por firls como bandas de transición.M(k)) y (F(k+1). y en orden ascendente entre 0 y 1. >> B = firls(N. H(F) Bandas de Transición M(1) M(2) M(4) M(3) M(5) M(6) F F(1)=0 F(2) F(3) F(4) F(5) F(6)=1 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 40 .M.F.W). W es un factor de ponderación del error para cada banda de frecuencias. La respuesta deseada es la línea que conecta los puntos (F(k). M es un vector del mismo tamaño que F que indica la magnitud deseada para cada banda de frecuencias. También existe un argumento opcional que consiste en un vector W cuyo tamaño es la mitad de F.M(k+1)) para k impar.5º Curso-Tratamiento Digital de Señal Diseño de Filtros FIR con MATLAB F es un vector que indica los límites de las bandas de frecuencia en parejas (por tanto el tamaño de F debe ser par).

las magnitudes en esas bandas Mo y los factores de ponderación W que luego serán utilizados como argumentos de entrada de la función remez. las bandas de frecuencia normalizadas Fo.5º Curso-Tratamiento Digital de Señal Diseño de Filtros FIR con MATLAB x Algoritmo de Parks-McClellan Hay dos funciones en MATLAB para realizar este algoritmo: remezord y remez. El vector M indica la respuesta deseada en cada banda. F es un vector de frecuencias de corte en Hz.Fs) Calcula el orden N. en orden ascendente entre 0 y Fs/2. podemos implemantar el algoritmo de Parks-McClellan. Con los valores obtenidos en la función remezord.M. DEV.Mo. >> b = remez(N. Si no se especifica Fs.Mo. >> [N. Fo y Mo son dos vectores de igual magnitud. Por tanto.W).Fo. pero no deben ser especificados en el vector F. El primer elemento de F es siempre 0 y el último es siempre Fs/2. Estos valores cumplen las especificaciones dadas por F. M. Ver la gráfica de la página siguiente.Fo.DEV. el vector M tiene un tamaño igual a (length(F)+2)/2. DEV es un vector que indica el máximo rizado permitido en cada banda. Fo(k) y Fo(k+1) k impar especifica bandas de frecuencia y Mo(k) y Mo(k+1) la correspondiente magnitud para cada frecuencia.W] = remezord(F. Fs=2 por defecto. El filtro obtenido es la mejor aproximación por minimax. 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 41 .

[30 3500]/Fny).[0 10 30 3500 3600 Fny]/Fny.[0 10 30 3500 3600 Fny]/Fny.[0 10 30 3500 3600 Fny]/Fny.[0 0 1 1 0 0]). Bfir2 = fir2(N.[0 0 1 1 0 0]).Fs=11020.Fny=Fs/2. >> >> >> >> >> N=44.5º Curso-Tratamiento Digital de Señal Diseño de Filtros FIR con MATLAB H(F) Bandas de Transición M(1) M(3) M(2) F F=0 F(1) F(2) F(3) F(4) F = F s /2 x Ejemplo 1: Diseñar un filtro FIR pasabanda a frecuencias de 30 Hz y 3500 Hz por cada uno de los diferentes métodos. Bfirls = firls(N. Utilizar un mismo orden de filtro (por ejemplo N=44) y comparar las respuestas frecuenciales.[0 0 1 1 0 0]). Bfir1 = fir1(N. x 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 42 . Bremez = remez(N.

F. 10 10 10 10 10 10 10 10 1 Respuesta frecuencial: -.1. Hfir2=abs(freqz(Bfir2.F.F.fir1.remez 0 -1 -2 -3 -4 -5 -6 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 43 .'y'.Hfir2.Fs). -.1. Hfirls=abs(freqz(Bfirls.'m').Fs). semilogy(F.Hremez.Fs).firls.'g'.1.F. Hfir1=abs(freqz(Bfir1. -. -.F.Hfirls.Fs).F.Hfir1.1.'r'.fir2. Hremez=abs(freqz(Bremez.F.5º Curso-Tratamiento Digital de Señal Diseño de Filtros FIR con MATLAB >> >> >> >> >> >> F=0:10:5000.

5º Curso-Tratamiento Digital de Señal Apéndice Tablas de Transformaciones Espectrales 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 44 .

HLP ( F ) H HP ( F ) = H LP ( F − 1 ) = rect ( F .5º Curso-Tratamiento Digital de Señal Tabla 1 Transformaciones de Filtros pasobajo Tipo Pasobajo Pasoalto Pasoalto Pasabanda Parabanda H(F) ideal HLP ( F ) = rect(F 2 FC ) HHP ( F ) = 1.1 ) 2 FC 2 2 Respuesta a Impulso h[n] hLP [n] = 2 FC sinc(2nFC ) HBP ( F ) = H BS ( F ) = 1 − H BP ( F ) [ ] rect[( F − F ) 2 F ] 0 C rect ( F + F0 ) 2 FC + [ ] hHP [n] = δ [n] − hLP [n] (−1)n hLP [n] 2 cos (2 π nF 0 )h LP [n ] δ [n] − hBP [n] 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 45 .

5º Curso-Tratamiento Digital de Señal Tabla 2 Transformaciones a Prototipos de Pasobajo Fp1. F0 = Frecuencia Central Para BS y BP se asume que tienen simetría respecto a F0 Límite de Límite de Transformación Frecuencia Central Pasabanda Parabanda Si hHP[n]=δ[n]-hLP[n] Fp = FsHP Fs = FpHP HP2LP HP2LP BP2LP BS2LP Fp = Fp = 1 ( Fp 2 − Fp1 ) 2 1 − FpHP 2 1 − FsHP 2 Fs = 1 ( Fs 2 − Fs1 ) 2 Fs = Si hHP[n]=(−1)nh[n] F0 = 1 ( Fp 2 + Fp1 ) 2 F0 = 1 ( Fp 2 + Fp1 ) 2 Fp = 1 (Fs 2 − Fs1 ) Fs = 1 ( Fp 2 − Fp1 ) 2 2 17/11/99 Capítulo 9: Diseño de Filtros Digitales (Parte 2) 46 . Fp2. Fs1 y Fs2 = límites de pasabanda y parabanda.

Sign up to vote on this title
UsefulNot useful