Está en la página 1de 31

Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A.

Alzate 214

17 Diseño de filtros FIR de fase lineal mediante ventanas

De acuerdo con las propiedades de la DTFT vistas en la clase 14, un sistema LTI con respuesta en
frecuencia H(ejZ) actúa como un filtro que selecciona las frecuencias de la señal de entrada:
f
x[n] h[n] y[n] ¦ h[k ]x[n  k ]
k f

X(ejZ) H(ejZ) Y(ejZ)=H(ejZ)X(ejZ)


Figura 154. Sistema LTI como filtro selectivo en frecuencia
Esta selección le permitiría, por ejemplo, dejar pasar sólo las frecuencias bajas (filtro pasa-bajos),
sólo las frecuencias altas (filtro pasa-altos), o sólo una banda (filtro pasa-banda). Más aún, podría
eliminar una banda (filtro rechaza-banda) o hacer cualquier otra cosa, como muestra la siguiente
figura. En ella hemos supuesto que los coeficientes de los filtros son reales (por eso la simetría par)
y que tienen fase cero (la respuesta en frecuencia es real). Como la DTFT es periódica, este patrón
se repite cada 2S radianes por muestra.
H LP (e jZ )

Pasa-bajos
-S -Z2 -Z1 0 Z1 Z2 S

H HP (e jZ )

Pasa-altos
-S -Z2 -Z1 0 Z1 Z2 S

H BP (e jZ )

Pasa-banda
-S -Z2 -Z1 0 Z1 Z2 S

H BR (e jZ )

Rechaza-banda
-S Z1 Z2 0 Z1 Z2 S

H (e jZ )

Otro
-S Z1 Z2 0 Z1 Z2 S
Figura 155. Algunos filtros selectivos en frecuencia
Por ejemplo, considerando la señal de voz femenina de la segunda clase, la siguiente es una
representación del efecto que tienen un filtro pasa-bajos y un filtro pasa-altos sobre una porción de
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 215

la señal. El rango de frecuencias que se muestran corresponde al intervalo [0,S] porque, según la
propiedad de conjugación, como la señal es real (y los coeficientes de los filtros son reales), la
magnitud de la DTFT tiene simetría par.
Pasa-bajos a 7S/30

h[n] y[n]
x[n]
g[n] z[n]
Pasa-altos a 7S/30

|X(ejZ )|, |H(ejZ )|, |G(ejZ )|


1 1.5

1
x[n]

0
0.5

-1 0
0 100 200 300 400 500 600 700 800 0 0.5 1 1.5 2 2.5 3

1 1.5

|Y(ejZ )|, |H(ejZ )|


1
y[n]

0
0.5

-1 0
0 100 200 300 400 500 600 700 800 0 0.5 1 1.5 2 2.5 3

1 1.5
|Z(ejZ )|, |G(ejZ )|

1
z[n]

0
0.5

-1 0
0 100 200 300 400 500 600 700 800 0 0.5 1 1.5 2 2.5 3
tiempo n, en muestras frecuencia Z, en radianes por muestra

Figura 156. Efecto de pasar una señal de voz por un filtro pasa-bajos y un filtro pasa-altos
Para ver cómo se diseñaron los filtros utilizados en la figura anterior, consideremos un filtro pasa-
bajos ideal con frecuencia de corte Zc:
­°1 Z  Zc
H d e jZ ®
°̄0 Z ! Zc
El subíndice d se refiere a que ésta es la respuesta deseada y nos deberemos aproximar a ella lo más
que podamos. Como Hd(ejZ) es la DTFT de la respuesta al impulso del filtro hd[n], podemos
encontrar dicha respuesta al impulso mediante la DTFT inversa:
Z
1 ª 1 jnZ º c 1 ª e jnZc  e jnZc º sin(nZc )
H d e jZ e jnZ dZ
1 S 1 Zc
hd [n]
2S ³S 2S ³Z c
e jnZ dZ
2S «¬ jn
e »
¼ Zc S n «¬ 2j
»
¼ Sn
multiplicando numerador y denominador por Zc/S,
Zc § Z ·
hd [n] sinc ¨ n c ¸
S © S ¹

¡Y Listo! Hemos diseñado nuestro primer filtro al encontrar la respuesta al impulso de un sistema
LTI que permite pasar todas las frecuencias por debajo de Zc y bloquea todas las frecuencias por
encima de Zc. Claro, la forma de convergencia de Hd(ejZ) hace que la ganancia en un intervalo
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 216

infinitesimal alrededor de las discontinuidades rZc, no sea uno y cero, aunque el área debajo de la
curva de error es cero: el fenómeno de Gibbs que estudiamos en el contexto de la serie de Fourier.
En efecto, si consideramos que Hd(ejZ) es una señal periódica en un dominio continuo, hd[n] es
simplemente su serie de Fourier es un dominio discreto y aperiódico.

hd[n], wc =0.62832 hd[n], wc =1.2566 hd[n], wc =1.885 hd[n], wc =2.5133

0.6 0.6 0.6 0.6


0.4 0.4 0.4 0.4
0.2 0.2 0.2 0.2
0 0 0 0
-0.2 -0.2 -0.2 -0.2
-10 0 10 -10 0 10 -10 0 10 -10 0 10

Hd(ejw ), wc =0.62832 Hd(ejw ), wc =1.2566 Hd(ejw ), wc =1.885 Hd(ejw ), wc =2.5133

1 1 1 1

0.5 0.5 0.5 0.5

0 0 0 0
-2 0 2 -2 0 2 -2 0 2 -2 0 2
Figura 157. Respuesta al impulso y respuesta en frecuencia de filtros h[n]=sinc(n*Zc/S)*Zc/S
Ese fenómeno de Gibbs nos revela un problema con nuestro flamante diseño: La expresión de hd[n]
debe evaluarse para cualquier n entero, lo cual implica que debimos empezar a responder a cada
señal de entrada desde un tiempo infinito antes de que la señal se presentara, y que nunca podremos
dejar de responder: Este es un filtro IIR no-causal cuya respuesta al impulso empieza desde menos
infinito! Sabemos que muchos filtros IIR se pueden implementar de manera recursiva mediante
estructuras ARMA, pero éste no es el caso. Así que nuestro primer filtro digital no es realizable.

Una forma de salir de esta dificultad es truncando la respuesta al impulso entre –N y N para algún
valor de N que nos permita satisfacer las características tolerables del filtro. Esto lo vuelve un filtro
FIR de 2N+1 coeficientes, pero sigue siendo no causal. Lo podríamos volver causal si añadimos un
retardo de N muestras en la respuesta al impulso. La siguiente expresión muestra ambos
procedimientos:
hd [n] Filtro ideal IIR no causal (irrealizable)
hF [n] hd [n] u[n  N ]  u[n  N  1] Filtro FIR no causal (irrealizable en tiempo real)
hFC [n] hd [n  N ] u[n]  u[n  2 N  1] Filtro FIR causal (realizable en tiempo real)
Como vimos cuando analizamos la convergencia de la serie de Fourier, truncar la respuesta al
impulso genera oscilaciones alrededor de las frecuencias de corte en la respuesta en frecuencia. Y
según la propiedad de desplazamiento en tiempo, la causalización del filtro genera un cambio lineal
de la fase de la respuesta al impulso. Estos efectos se muestran en la siguiente figura, que se refiere
a un filtro pasa-bajos con frecuencia de corte S/2 en el que la respuesta ideal al impulso se trunca
entre n=-9 y n=9 para obtener un filtro FIR de 19 coeficientes, y después se causaliza desplazándolo
9 muestras. Como en los casos del filtro ideal y del filtro truncado existe simetría par en la respuesta
al impulso, la respuesta en frecuencia es real pero los cambios de signo se ven como saltos de S
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 217

radianes en la fase. Los mismos cambios de signo se ven en la fase del filtro causalizado,
superpuestos a un desfase lineal de -9Z, que corresponde al retardo en la respuesta al impulso.
hd[n] (IIR, no causal) |Hd(ejw )| fase(Hd(ejw ))

1 3
0.4
2
0.2
0.5
0 1

-0.2 0 0
-30 -20 -10 0 10 20 30 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
jw
hf [n] (FIR, no causal) |Hf (e )| fase(Hf (ejw ))

1 3
0.4
2
0.2
0.5
0 1

-0.2 0 0
-30 -20 -10 0 10 20 30 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
jw
hfc [n] (FIR, causal) |Hfc (e )| fase(Hfc (ejw ))

1 0
0.4
-10
0.2
0.5
0 -20

-0.2 0 -30
-30 -20 -10 0 10 20 30 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3

Figura 158. Filtro pasa-bajos a S/2. Ideal, truncado y causalizado


Claro, el último filtro es directamente implementable para ser evaluado en tiempo real, como se
muestra en el siguiente diagrama, en el que hemos aprovechado que varios de los coeficientes de la
respuesta al impulso son cero (sinc(k/2)=0 cuando k es un número par diferente de cero).

x[n-2] x[n-4] x[n-6] x[n-8] x[n-9] x[n-10] x[n-12] x[n-14] x[n-16] x[n-18]

x[n] z-2 z-2 z-2 z-2 z-1 z-1 z-2 z-2 z-2 z-2

b9 b7 b5 b3 b1 b0 b1 b3 b5 b7 b9
+ + + + + + + + +
bk=sinc(k/2)/2
y[n]
Figura 159. Filtro FIR causal pasa-bajos a S/2
De ahora en adelante omitiremos el paso de causalización y supondremos que la respuesta en
frecuencia es real. Después de todo, si deseamos implementar el filtro en tiempo real, sólo
necesitamos desplazar la respuesta al impulso con lo que obtendremos un retardo a la salida o, lo
que es lo mismo, una fase lineal en la respuesta en frecuencia.

La siguiente figura permite observar el efecto de truncar la respuesta ideal al impulso, el cual ya
habíamos estudiado en el contexto de la convergencia de la serie de Fourier.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 218

Respuesta en frecuencia

Ideal
1 N=29
N=9
N=5
0.8

0.6

0.4

0.2

-0.2
0 0.5 1 1.5 2 2.5 3
frecuencia Z
Figura 160. Respuesta en frecuencia de filtros reales e ideales pasa-bajos a S/2
Podemos notar que, a diferencia de la respuesta ideal, las respuestas reales incluyen un rizado en las
bandas pasante y detenida y una banda de transición entre ellas, como se muestra en la siguiente
figura.
H(ejZ)

1+G1
1
1-G1

G2
Z
-G2

0 ZL Zc ZH S
Figura 161. Forma general de la respuesta de un filtro pasabajos
Con el diseño que realizamos, el parámetro N nos permite ajustar el ancho de la banda de transición,
pero no nos permite ajustar el rizado en las bandas pasante y detenida porque el fenómeno de Gibbs
implica que G1=G2=0.09, independientemente de N. Este efecto se debe a que usamos una ventana
rectangular para truncar la longitud del filtro:

hr [n] hd [n]wr [n]


wr [ n ] u[ n  N ]u[ n  N 1]

pero podríamos usar otra ventana que reduzca el cambio brusco de uno a cero. Por ejemplo,
consideremos la ventana Hamming, definida de la siguiente manera:

hh [n] hd [n]wh [n]


wh [ n ] (0.54  0.46cos(S n / N )) wr [ n ]
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 219

La siguiente figura compara las dos ventanas y su efecto en la respuesta en frecuencia del filtro
pasabajos truncado.
ventana con N=9 Respuesta en frecuencia con N=9

1 Rectangular 1 Rectangular
Hamming Hamming

H(ejZ )
w[n]

0.5 0.5

0 0

-30 -20 -10 0 10 20 30 0 0.5 1 1.5 2 2.5 3


n Z
ventana con N=21 Respuesta en frecuencia con N=21

1 Rectangular 1 Rectangular
Hamming Hamming

H(ejZ )
w[n]

0.5 0.5

0 0

-30 -20 -10 0 10 20 30 0 0.5 1 1.5 2 2.5 3


n Z
Figura 162. Efecto de la forma de la ventana en la respuesta en frecuencia del filtro pasa-bajos FIR
Efectivamente, en comparación con la ventana rectangular, la ventana Hamming reduce el rizado en
la banda pasante y en la banda suprimida, pero a costa de ensanchar la banda de transición. El
diseño de filtros FIR mediante ventanas se limita a escoger la forma de la ventana y su longitud para
que satisfaga los criterios de diseño G1, G2, ZL y ZH.

La siguiente es una tabla con algunas ventanas típicas y su efecto sobre un filtro pasa-bajos con
frecuencia de corte S/4.La tabla muestra también la magnitud de la respuesta en frecuencia del filtro
pasa-bajos en decibeles, con la intención de ver con mayor claridad el efecto de la ventana. Por
ejemplo, las grandes oscilaciones alrededor de la frecuencia de corte de la ventana rectangular se
deben a la amplitud de cerca de -20.5 dB (una ganancia de 0.095) del primer lóbulo lateral, la cual
sólo se reduce a -40 dB (una ganancia de 0.01) en Z=S. Sin embargo, el primer cruce por cero de
esa respuesta en frecuencia se da en Z=0.27S, que es un valor muy cercano a la frecuencia de corte
S/4. Con la ventana Hanning, en cambio, el primer lóbulo lateral tiene una amplitud de -45 dB
(ganancia 0.006), y los demás lóbulos se atenúan rápidamente hasta alcanzar -123 dB en Z=S. Pero
el primer cruce por cero se da en Z=0.31S, indicando un ancho de la banda de transición mucho
mayor. Desafortunadamente, el hecho de que el primer lóbulo tenga una amplitud de -45 dB es el
que determina el parámetro de rizado del filtro, de manera que atenuar tanto las demás frecuencias
de la banda rechazada no parece tan buena idea. Por eso se usa la ventana Hamming, que tiene una
ganancia más pareja en toda la banda rechazada, pero con una amplitud de -55 dB en el lóbulo
principal (ganancia de 0.0018): El rizado se reduce tres veces, aunque en Z=S la amplitud sólo se
haya reducido a -62 dB. El ancho de la banda de transición es semejante al filtro con ventana
Hanning por lo que, normalmente, la ventana Hamming se prefiere a la ventana Hanning. Por
último, la ventana Blackman consigue reducir la ganancia del primer lóbulo lateral a -75 dB
(0.00018) con los mismos 61 coeficientes, pero el primer cruce por cero ocurre en Z=0.37S. Así
pues, entre estas ventanas la preferible parece ser la Hamming, a menos que se requiera un rizado
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 220

muy pequeño y se pueda tolerar una lenta transición entre la banda pasante y la banda rechazada, en
cuyo caso la ventana Blackman sería la adecuada.

Tabla 17. Algunas ventanas y sus efectos en un filtro pasa-bajos a S/4


Nombre y Respuesta en frecuencia de un filtro pasabajos de 61
Expresión para w[n], |n|dN coeficientes (N=30)
filtro pasabajos con ventana Rectangular filtro pasabajos con ventana Rectangular
Rectangular 0
1 1
-20
0.8
1

20log |H(ejZ )|
-40
0.6

H(ejZ )
0.8

10
-60
0.4
0.6
-80
0.2
0.4
-100
0
0.2
-120
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
0 Z Z
-20 -15 -10 -5 0 5 10 15 20

filtro pasabajos con ventana Hanning filtro pasabajos con ventana Hanning
Hanning 0

[1+cos(Sn/N)]/2 1
-20
0.8

20log |H(ejZ )|
1 -40
0.6
H(ejZ )

0.8

10
-60
0.4
0.6
-80
0.2
0.4
-100
0
0.2
-120
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
0 Z Z
-20 -15 -10 -5 0 5 10 15 20

filtro pasabajos con ventana Hamming filtro pasabajos con ventana Hamming
Hamming 0

0.54+0.46cos(Sn/N) 1
-20
0.8
20log |H(ejZ )|

1 -40
0.6
H(ejZ )

10

0.8 -60
0.4
0.6 -80
0.2
0.4
-100
0
0.2
-120
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
0 Z Z

-20 -15 -10 -5 0 5 10 15 20

filtro pasabajos con ventana Blackman filtro pasabajos con ventana Blackman
Blackman 0

0.42+0.5cos(Sn/N)+0.08cos(2Sn/N) 1
-20
0.8
20log |H(ejZ )|

1 -40
0.6
H(ejZ )

0.8 -60
10

0.4
0.6
-80
0.2
0.4
-100
0
0.2
-120
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
0 Z Z
-20 -15 -10 -5 0 5 10 15 20

Existen muchas otras clases de ventanas, algunas de ellas, como la ventana Kaiser o la ventana
Tuckey, con parámetros configurables que permiten balancear los compromisos que existen entre la
amplitud del rizado y al ancho de la banda de transición.
La instrucción de matlab h=fir1(N,f) usa el método de la ventana para diseñar un filtro FIR
pasa-bajos con N+1 coeficientes, fase lineal y frecuencia de corte Zc=Sf, usando una ventana
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 221

Hamming. Se pueden definir múltiples bandas y escoger diferentes ventanas. Use >>help fir1
para ver los detalles.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 222

18 Otras técnicas de diseño de filtros FIR

El método de diseño de filtros FIR de fase lineal mediante ventanas es simple, directo y sencillo,
pero no es óptimo de ninguna manera. La excepción, como vimos, ocurre cuando queremos
aproximar la respuesta deseada en frecuencia, Hd(ejZ), con un número fijo de coeficientes en la
respuesta al impulso, de manera que se minimice el error cuadrado promedio entre la respuesta
deseada y la respuesta obtenida. En ese caso obtenemos que la mejor aproximación ocurre al truncar
con una ventana rectangular los coeficientes de la transformada inversa de Fourier en tiempo
discreto de Hd(ejZ), pero esa es una solución intolerable debido a la alta ganancia en el primer lóbulo
lateral.

Una técnica muy interesante es el muestreo en frecuencia. Dada la respuesta deseada Hd(ejZ),
tomamos N muestras entre 0 y 2S, esto es, construimos Hk=Hd(ejZk) con Zk = 2Sk/N,
k{0,1,2,…,N}. Con estas muestras podemos especificar la respuesta al impulso gracias a la IDFT
(clase 17):
1 N 1
h[n] ¦
Nk 0
H k e j 2S kn / N

Entonces podemos evaluar la verdadera respuesta del sistema en cualquier frecuencia continua:
N 1 N 1
§1 N 1
· n 1 N 1 § N 1 1 j 2S k / N n ·
H ( z) ¦ h[n]z
n 0
n
¦ ¨© N ¦ H e
n 0 k 0
k
j 2S kn / N
¸z
¹
¦ H k ¦ z e ¸¹
N k 0 ¨© n 0
La suma interior se puede calcular fácilmente:
N 1
§ N 1 · N 1 1 U N
¦ U n 1 U  U 2   U N 1 1  U 1  U  U 2 
 U N 2 1  U ¨ ¦ U n  U N 1 ¸ Ÿ ¦ U n
n 0 ©n 0 ¹ n0 1 U
de manera que, en términos de las muestras de frecuencia, se puede calcular la respuesta completa
del filtro:
1 N 1 § 1  ( z 1e j 2S k / N ) N · 1  z  N N 1
H
H ( z) ¦ ¨ H k 1  z 1e j 2S k / N ¸ N
N k 0©
¦1 z k
1 j 2S k / N
¹ k 0 e
jZ
y así podemos calcular la respuesta completa H(e ) a partir de las N muestras {Hk, k=0,1,2,…,N-1}.
Si nos limitamos a las muestras Hk=Hd(ejZk), obtendremos los mismos resultados que con la ventana
rectangular, pero podemos ensanchar la banda de transición seleccionando las muestras cercanas a
la frecuencia de corte para obtener una respuesta máximamente plana en la banda pasante, por
ejemplo. Para N impar, el problema se podría plantear así:
2
Z1 1  e jZ N N 1
Hk
H* arg min ³ 1 
Hk 0 N
¦1 e
k 0
j (2S k / N Z )
dZ

y utilizar algún método de programación matemática para resolverlo. Por ejemplo, podemos diseñar
un filtro pasa-bajos a S/2 si escogemos 17 muestras Zk = 2Sk/33, k=0,1,2,…,16. Para aproximar un
filtro pasa-bajos ideal, escogeríamos Hk = 1 para k=0,1,2,…,8, y Hk = 0 para k=9,10,…,18. Sin
embargo, podemos escoger los valores de H8 y H9 para minimizar el error cuadrado promedio en la
banda [0, 0.47S]. La siguiente figura muestra algunos resultados intermedios.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 223

|H(ej16S/33)| = 1, |H(ej18S/33)| = 0, error = 0.0012948 |H(ej16S/33)| = 0.9, |H(ej18S/33)| = 0.35, error = 2.3802e-005

1 1

0.5 0.5

0 0

0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3

|H(ej16S/33)| = 0.6, |H(ej18S/33)| = 0.1, error = 0.0018652 |H(ej16S/33)| = 0, |H(ej18S/33)| = 0, error = 0.020725

1 1

0.5 0.5

0 0

0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3


Figura 163. Controlando los parámetros H8 y H9 se puede optimizar la respuesta en frecuencia del filtro
Y la siguiente figura muestra el logaritmo del error en función de H8 y H9, alrededor del mínimo,
que se obtiene con H8 =0.975 y H9 =0.575.

-10

-12

-14
log (Error)

-16
2

-18

-20

-22
1
0.75
0.7
0.95 0.65
0.6
0.55
j16S/33 0.9 0.5
|H(e )| |H(ej18S/33)|

Z|<0.47S cuando H8 =0.975 y H9 =0.575


Figura 164. La respuesta del filtro es máximamente plana para |Z
La instrucción de matlab h=fir2(N,f,m) usa el método del muestreo en frecuencia para diseñar
filtros FIR con N+1 coeficientes y fase lineal, de manera que se satisfaga la característica
frecuencia-magnitud dada por los puntos (f,m). La respuesta en frecuencia deseada se interpola
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 224

linealmente sobre una grilla densa (de 512 puntos por defecto) uniformemente espaciada a la que se
aplica la DFT inversa, h W 1H d , donde W está dada por la DFT H d Wh :
ª H d [0] º ª1 1 1 1 º ª h[0] º
« H [1] » «1 e j 2S (1/ N ) e j 2S (2/ N )
e j 2S ((( N 1)/ N ) » « »
« d » « » « h[1] »
« H d [2] » «1 e j 2S (2/ N ) e j 2S (4/ N ) e j 2S (2(2( N 1)/ N )
» « h[2] »
« » « »« »
« » « »« »
«¬ H d [511]»¼ «¬1 e j 2S (511/ N ) e j 2S ((511)2/ N ) e j 2S (51 1 N 1)/ N ) » «
((511(
¼¬ h[ N ]¼»
Si N es menor que 511, el sistema está sobredeterminado por lo que se escoge la solución que
minimiza la norma del error, esto es, la obtenida mediante la pseudo-inversa de W,
W W W H H d , donde WH es la matriz transpuesta conjugada de W. Muchos parámetros
H 1
h
como el número de puntos en la grilla se pueden configurar, como se puede leer al usar >> help
fir1.

Con el muestreo en frecuencia se pueden conseguir filtros óptimos en algún sentido escogido por el
diseñador. Sin embargo, si de optimalidad se trata, el filtro truncado con ventana rectangular es
óptimo en el sentido MSE (como vimos en la clase 10), pero eso no significa que sea un buen filtro.
Por esta razón, sería ideal disponer de un método de diseño que permita encontrar el filtro más
eficiente (mínimo número de coeficientes) que satisfaga unos criterios de diseño dados, G1, G2, ZL y
ZH. Este es el objetivo del algoritmo de Parks-McClellan (PM).

El primer aspecto fundamental del algoritmo PM es poder interpretar la DTFT de una respuesta al
impulso FIR de fase cero con 2N+1 coeficientes como un polinomio:
N N N N
H (e jZ ) ¦ h[n]e
n N
 jZ n
h[0]  2¦ h[n]cos(nZ )
n 1
¦a
k 0
k cos k (Z) ¦a x
k 0
k
k

x cos(Z )
P( x)
x cos(Z )

donde tomamos cos(nZ) como el n-ésimo polinomio de Chebyshev del primer tipo evaluado en
cos(Z), esto es, si definimos iterativamente la secuencia de polinomios Tn(x) así,
T0 ( x) 1, T1 ( x) x, Tn1 ( x) 2 xTn ( x)  Tn1 ( x), n ! 0
podemos encontrar que Tn(cos(Z))=cos(nZ):
T0 cos(Z ) 1 cos(0 ˜ Z )
T1 cos(Z ) cos(Z ) cos(1 ˜ Z )
T2 cos(Z ) 2 cos(Z )[cos(Z )]  1 2 cos 2 (Z )  1 cos(2 ˜ Z )
T3 cos(Z ) 2 cos(Z )[2 cos 2 (Z )  1]  cos(Z ) 4 cos 3 (Z )  3cos(Z ) cos(3 ˜ Z )
T4 cos(Z ) 2 cos(Z )[4 cos 3 (Z )  3cos(Z )]  [2 cos 2 (Z ) 1] 8cos 4 (Z )  8cos 2 (Z )  1 cos(4 ˜ Z )
etc.

de donde resulta fácil encontrar una relación lineal simple entre los coeficientes del polinomio, ak, y
los coeficientes del filtro, h[n]. Ahora, el problema de diseño del filtro se ha convertido en un
problema de aproximación de funciones mediante polinomios.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 225

Suponga que deseamos aproximar una función f(x) en un intervalo [a, b] mediante un polinomio de
grado no mayor a k que pase por los puntos {(xi, yi), xi[a,b], yi = f(xi)), i=0,1,…,k} con xizxj si izj.
Por supuesto, solamente existe un polinomio que satisface esas condiciones, pues disponemos de
k+1 ecuaciones para determinar k+1 coeficientes. Una de las maneras más comunes para expresar
ese polinomio es en la forma de Lagrange (o polinomio de interpolación de Lagrange), que consiste
en una combinación lineal de los polinomios base de Lagrange,
k
x  xi
l j ( x) –x ,j 0,..., k
i 0 j  xi
iz j

Donde los coeficientes de la combinación son los puntos a interpolar, yj,


k
L( x ) ¦ y l ( x)
j 0
j j

En efecto, cada uno de los polinomios base de Lagrange es de grado k, de manera que L(x) también
es de grado k. Además, lj(xi) es uno si i = j, ó cero si i z j, de manera que L(x) pasa por lo puntos de
interpolación {(xi,yi)}. La función InterpolacionLagrange (que no es un buen ejemplo de
programación en matlab®) evalúa dicho polinomio.
function Ejemplo_InterpolacionLagrange
xi = (0:9)*pi/9; yi = (xi<pi/2); % Puntos a interpolar
x = (0:255)*pi/255; % Rango de interpolación
y = InterpolacionLagrange(xi,yi,x);
plot(x,y,'b-') % Representación gráfica
hold on
stem(xi,yi,'ro')

function y = InterpolacionLagrange(xi,yi,x)
% Retorna la evaluación en los puntos x del polinomio de grado length(xi)-1
% que pasa por los puntos (xi,yi)
xi = xi(:); yi = yi(:);
k = length(xi);
y = zeros(size(x));
for j=1:k
w=ones(size(x));
for i=1:k
if i~=j
w = w.*(x - xi(i))/(xi(j) - xi(i));
end
end
y = y + yi(j)*w;
end

La siguiente figura muestra el polinomio interpolador de grado 9 que aproxima a la función f(x) =
I(x<S/2) en el intervalo [0,S] con base en 10 puntos equidistantes que incluyen las cotas del
intervalo. Tal vez hubiéramos querido una interpolación más suave, pues la evaluación del
polinomio en valores de x distintos a las muestras resulta muy lejana a la idea de un filtro pasa-
bajos. Para mejorar la aproximación usaremos un algoritmo iterativo: el intercambio de Remez.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 226

Interpolación de la función y = 1(x<pi/2) a partir de 10 muestras uniformemente espaciadas en [0,pi]


2
Interpolacion y = p10(x)
muestras y i = f(x i)
1.5

0.5

-0.5

-1
0 0.5 1 1.5 2 2.5 3

Figura 165. Interpolación de Lagrange a partir de diez muestras del filtro pasa-bajos ideal
El algoritmo de Remez es un procedimiento iterativo para encontrar la mejor aproximación a una
función f(x) en un intervalo [a, b] en la norma Lf, mediante un polinomio de grado no mayor a k,
P(x). Se empieza con un conjunto de k+1 muestras (generalmente uniformemente espaciadas en el
intervalo), luego se encuentra el polinomio interpolador y se determinan los puntos locales de
máximo error,
^x `
*
arg max f ( x)  P( x)
x[ a ,b ]

Si todos los máximos locales del error |f(x)-P(x)| tienen la misma magnitud y alternan sus signos,
P(x) es el mejor polinomio en el sentido minimax (norma Lf). En otro caso, se remplazan las
muestras a interpolar por los puntos {x*} y se repite desde la búsqueda del polinomio interpolador.
Al terminar, el algoritmo habrá retornado el polinomio de mejor aproximación en el sentido
minimax: es el polinomio P(x) de grado k que minimiza el máximo error entre f(x) y P(x). En
efecto, el teorema de la alternancia establece que una condición necesaria y suficiente para que
P(x) sea el único polinomio de orden k que minimiza el máximo error entre f(x) y P(x) en [a,b] es
que existan al menos k+2 valores de x en [a,b], x0 < x1 < … < xk+1 tales que f(xk) - P(xk) = P(xk+1) -
f(xk+1) = rmaxx[a,b]|f(x) - P(x)|.

La siguiente función (que tampoco es un gran ejemplo de cómo se debe programar en matlab)
muestra las primeras cuatro iteraciones para el ejemplo anterior. Aquí no usamos
InterpolacionLagrange sino PolinomioDeLagrange, que devuelve los coeficientes del polinomio
para poder calcular la derivada del error y, consecuentemente, sus extremos (como la función a
interpolar es constante a tramos, la derivada del error es la misma derivada del polinomio).

function P = UsandoRemez
xi = (0:9)*pi/9; % Puntos a interpolar
x = (0:255)*pi/255; % Puntos a evaluar
for i=1:4
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 227

yi = (xi<pi/2); % ordenada de los puntos a interpolar


P=PolinomioDeLagrange(xi,yi); % Calcula los coeficientes de Lagrange
y = polyval(P,x); % Y lo evalúa
subplot(2,2,i);
muestre(x,y,xi,yi);
D = P(1:9).*(9:-1:1); % Calcula la derivada del polinomio
xi = [0; roots(D); pi]'; % En cuyas raíces están los extremos
end

function muestre(x,y,xi,yi)
plot(x,y,'b-')
hold on
stem(xi,yi,'ro')
axis([0 pi -1 2])

function P=PolinomioDeLagrange(xi,yi)
% Encuentra el polinomio de grado k-1 que pasa por los k puntos (xi,yi)
% P es un vector que contiene los coeficientes del polinomio
k=length(xi);
L=zeros(k);
for i=1:k
q=1;
for j=1:k
if i~=j
q=conv(q,poly(xi(j)))/(xi(i)-xi(j));
end
end
L(i,:)=q;
end
P=yi*L;
2 2

1 1

0 0

-1 -1
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3

2 2

1 1

0 0

-1 -1
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
Figura 166. Aplicación del algoritmo de intercambio de Remez para optimizar la interpolación de la figura anterior
Ahora bien, esta teoría de aproximación la podemos aplicar a la función de respuesta en frecuencia
del filtro, pues ya vimos que es posible expresarla como un polinomio en cos( Z), aprovechando que
cos(nZ) es el n-ésimo polinomio de Chebyshev del primer tipo evaluado en cos(Z) :

H e jZ
N N N N

¦
n N
h[n]e jnZ h[0]  2¦ h[n]cos(nZ )
n 1
¦ ak cosk (Z)
k 0
¦a x
k 0
k
k

x cos(Z )

donde existe una relación lineal muy simple entre los coeficientes del polinomio ak y los
coeficientes del filtro h[n].
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 228

El algoritmo desarrollado por James McClellan y Thomas Parks in 1972 supone que el orden del
filtro, N, es conocido. Empieza escogiendo N+2 frecuencias extremas (normalmente se inicia con
puntos equidistantes), y calcula los coeficientes del correspondiente polinomio de interpolación de
Lagrange, con lo cual puede evaluar la respuesta a la frecuencia en un conjunto denso de muestras
en frecuencia (por ejemplo, en 16N muestras). Luego determina los nuevos N+2 puntos extremos y
repite desde el proceso de interpolación hasta que se satisfaga el teorema de la alternancia. Entonces
calcula los 2N+1 coeficientes del filtro a partir de los coeficientes del polinomio óptimo.

La satisfacción del teorema de la alternancia implica que los máximos locales del error tienen la
misma magnitud y, por eso, estos filtros resultan ser equi-rizado: La amplitud de los lóbulos
laterales es constante en cada banda. La siguiente figura muestra el resultado del diseño mediante
Parks-McClellan de un filtro pasa-bajos con frecuencia de corte S/4 y 61 coeficientes, con el
propósito de compararlo con el diseño mediante ventana Hamming con el mismo número de
coeficientes. Mientras en las gráficas de la izquierda escogimos un filtro para lograr el mismo ancho
de la banda de transición y minimizar el rizado, en las gráficas de la derecha buscamos el mismo
rizado minimizando el ancho de la banda de transición, siempre conservando el orden del filtro. Las
gráficas evidencian las ventajas del método PM sobre el método de las ventanas.
Ventana Hamming y PM (con el mismo ancho de banda de transición) Ventana Hamming y PM (con el mismo rizado)
0 0
Ventana Hamming Ventana Hamming
-20 Parks-McClellan -20 Parks-McClellan
20log |H(ejZ )|

20log |H(ejZ )|

-40
-40
-60
10

10

-60
-80
-80 -100

-100 -120
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
Z Z
(...detalle de la figura de arriba) (...detalle de la figura de arriba)
0 0
Ventana Hamming Ventana Hamming
-20 Parks-McClellan -20 Parks-McClellan
20log |H(ejZ )|

20log |H(ejZ )|

-40 -40
10

10

-60 -60

-80 -80

-100 -100
0.7 0.8 0.9 1 1.1 1.2 0.7 0.8 0.9 1 1.1 1.2
Z Z

Figura 167Comparación de filtros diseñados mediante ventana Hamming y mediante Parks-McClellan


En matlab®, el diseño de filtros FIR de fase lineal mediante el algoritmo Parks-McClellan se hace
en dos pasos. Primero se usa la instrucción firpmord para estimar el orden del filtro que satisfaga
las especificaciones:
[n,fo,mo,w]=firpmord(f,m,dev)

El vector f contiene los bordes de las bandas de interés. Para un filtro pasabajos como el de la
Figura 167, f = [ZL, ZH]/S. El vector m contiene las ganancias del filtro en cada una de las bandas
de interés. Por ejemplo, para el filtro pasabajos, tendríamos m = [1, 0] porque en la banda [0, ZL] la
ganancia es 1 y en la banda [ZH, S] la ganancia es cero (la respuesta en las bandas de transición no
se especifica). El vector dev tiene las máximas desviaciones permitidas en las bandas pasante y
rechazada. En el caso del filtro pasa-bajos, la forma de este vector es dev = [G1, G2]. La instrucción
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 229

firpmord devuelve el orden del filtro, n, los vectores fo y mo para especificar bandas y ganancias,
y el vector w que pondera cada una de las bandas con respecto al requerimiento de desviación. Los
correspondientes coeficientes del filtro se obtienen en una segunda fase con la instrucción firpm:
b=firpm(n,fo,mo,w)
Este par de instrucciones es muy versátil pues permite diseñar filtros con respuestas arbitrarias y
siempre serán filtros óptimos en el sentido de que serán los más cortos que satisfacen las
especificaciones. Por eso se recomienda el uso de esta técnica cuando se necesite diseñar filtros FIR
de fase lineal.

Sólo como un ejemplo elemental, en una próxima clase necesitaremos generar señales con espectros
de amplitud que faciliten ver los efectos de añadir o retirar muestras. Por ejemplo, si queremos una
señal de 512 muestras que tenga un espectro de magnitud simétrico en forma triangular entre -2S/3
y 2S/3, podemos usar el método PM fácilmente:
>> x=firpm(511,[0 0.66 0.67 1],[1 0 0 0]);
>> plot(pi*(-256:255)/256, fftshift(abs(fft(x))))
1

0.8

0.6
|X(ejZ )|

0.4

0.2

0
-3 -2 -1 0 1 2 3
Z
Figura 168. Obtención de señales con espectro arbitrario mediante Parks-McClellan
Con la anterior instrucción le pedimos a matlab una señal cuya espectro de amplitud tiene dos
bandas de interés: Una entre 0 y 0.66S en la que el espectro de amplitud desciende de 0 a 1, y otra
de 0.67S a S en la que el espectro de amplitud permanece en cero. La banda de transición (entre
0.66S y 0.67S) no se especifica. firpm retorna la señal de 512 muestras que mejor se ajusta a estas
especificaciones. Use >>help firpm y >>help firpmord para más detalles.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 240

21 Conexión entre los mundos del tiempo continuo y el tiempo discreto:


El muestreo

Una forma simple de obtener señales en tiempo discreto a partir de señales en tiempo continuo es
mediante el proceso de muestreo. La siguiente figura muestra una señal en tiempo continuo xa(t), de
la cual se ha tomado una muestra cada Ts segundos para obtener la señal xd[n]=xa(nTs) (el subíndice
a es de “análoga” y el subíndice d es de “digital” (aunque no estamos cuantizando la amplitud de las
muestras).
xa(t)
xd[n]=xa(nTs)

0 Ts 2Ts 3Ts 4Ts 5Ts 6Ts 7Ts 8Ts 9Ts


t
Figura 178. Proceso de muestreo
¿Se puede representar una señal en tiempo continuo, xa(t), mediante un conjunto de muestras en
tiempo discreto, xd[n]=xa(nTs)? Como muestra la siguiente figura, en principio la respuesta es no,
porque entre cada par de muestras hay un número infinito no contable de posibles valores. Aunque,
subjetivamente, la señal roja xa1(t) parece ser la más satisfactoria entre las señales de tiempo
continuo que generan xd[n], las señales verde, xa2(t), y morada, xa3(t), también son posibles fuentes
de las mismas muestras xd[n].
xa1(t)
xd[n]=xa1(nTs)=xa2(nTs)=xa3(nTs)
xa2(t)
xa3(t)

0 Ts 2Ts 3Ts 4Ts 5Ts 6Ts 7Ts 8Ts 9Ts


t

Figura 179. En principio, una señal en tiempo continuo no se puede representar por sus muestras periódicas, pues hay
infinitas señales en tiempo continuo capaces de generar las mismas muestras
Lo que necesitamos es alguna regla que nos permita distinguir entre todas las señales posible, cuál
fue la que le dio origen a las muestras en tiempo discreto. Para dilucidar dicha regla, observemos
qué pasa cuando muestreamos la señal xa(t) = Acos(Ωt+T). Primero, nótese que ahora debemos
distinguir la velocidad angular análoga (Ω radianes por segundo) de la velocidad angular digital (Z
radianes por muestra), de la misma manera que debemos distinguir la frecuencia en tiempo continuo
(F = Ω/2S ciclos por segundo) de la frecuencia en tiempo discreto (f = Z/2S ciclos por muestra).
El período de muestreo, esto es, el intervalo entre muestras, se denominará Ts y estará dado en
segundos, lo cual implica que la frecuencia de muestreo (el número de muestras por segundo) será
Fs = 1/Ts. Entonces
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 241

xa (t ) A cos :t  T A cos 2S Ft  T
xd [n] A cos :(nTs )  T A cos 2S F (n / Fs )  T
xd [n] A cos 2S ( F / Fs )n  T A cos 2S fn  T A cos Z n  T
Es decir, la frecuencia de muestreo Fs establece una relación directa entre la frecuencia digital, f, y
la frecuencia análoga, F: f = F/Fs=FTs. Multiplicando por 2S a ambos lados, obtenemos la relación
entre las frecuencias angulares: Z=Ω/Fs.=ΩTs. Es decir, la frecuencia y la velocidad angular en
tiempo discreto son la misma frecuencia y velocidad angular análogos, pero normalizadas por la
frecuencia de muestreo:
Z : ˜ Ts Ÿ 2S f 2S F ˜ Ts Ÿ f F ˜ Ts
radianes radianes segundos ciclos ciclos segundos
× ×
muestra segundo muestra muestra segundo muestra
Para decirlo rápidamente: Aunque es posible distinguir cualquier frecuencia análoga |F| <f (|Ω|
<f), sólo podemos distinguir frecuencias digitales |f| d½ (|Z| dS), de manera que, de acuerdo con
la relación que acabamos de encontrar, si muestreamos la sinusoide análoga con frecuencia F a una
tasa Fs, sólo podremos identificarla a partir de sus muestras si |F| dFs/2. La siguiente figura ilustra
este fenómeno.
F = 10 Hz, Fs = 60 Hz F = 10 Hz, Fs = 40 Hz
1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5

F = 10 Hz, Fs = 20 Hz F = 10 Hz (y 5 Hz), F s = 15 Hz
1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5

Figura 180. Muestreo de una onda senoidal de 10 Hz. La tasa de muestreo debe ser igual o mayor a 20 Hz
La figura muestra una señal de 10 Hz muestreada a tasas de 60, 40, 20 y 15 muestras por segundo.
En los primeros tres casos, la señal muestreada es la señal de menor frecuencia capaz de generar
esas muestras: Si quisiéramos generar las mismas muestras a la misma tasa de muestreo con otra
señal senoidal, deberíamos usar una frecuencia análoga superior a 10 Hz. Pero en el cuarto caso, en
el que F > Fs/2, vemos que podemos muestrear con la misma frecuencia de muestreo una señal
senoidal de 5 Hz para obtener las mismas muestras. En efecto, en cada gráfica obtenemos
xd[n]=xa(n/Fs)=cos((2Sf)n) con ½ t f = 1/6, 1/4 y 1/2 en los tres primeros casos pero, en el cuarto
caso, f = 2/3 > ½, de donde:
xd[n] = cos(2S(10/15)n) = cos(2S(2/3)n) = cos(2Sn - 2S(1/3)n) = cos(2S(1/3)n) = cos(2S(5/15)n)
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 242

Si la regla de selección es buscar la sinusoide análoga de mínima frecuencia que genera las
muestras, en el cuarto caso escogeríamos una señal diferente a la original: El "alias" de F=10Hz
cuando se muestrea un coseno a Fs=15 Hz es FA=5 Hz. Concluiríamos que, si nos aseguramos que
Fs > 2|F| al muestrear una señal sinusoide de F Hz, no habrá incertidumbre sobre cuál fue la señal
análoga que generó las muestras.

En general, si Fs > 2|F| entonces |f|=|F|/Fs<1/2. Pero si la señal análoga contiene una frecuencia
Fk = F + kFs, kԺ, fk será k+F/Fs, que se confundirá con f=F/Fs<1/2, como muestra la siguiente
figura.
f
1/2

-Fs 0 Fs
0 F
-Fs/2 Fs/2

1/2

Limitarse a este rango


para evitar ambigüedades

Figura 181. Frecuencia digital, f, como función de la frecuencia análoga, F


Quiz: Considere x(t) = cos(100St). (a) ¿Cuál es la mínima frecuencia de muestreo? (b) ¿Cuál señal
en tiempo discreto se obtiene con Fs = 200 Hz? (c) ¿Cuál señal en tiempo discreto se obtiene con Fs
= 75 Hz? (d) ¿A qué señal análoga correspondería la última señal en tiempo discreto?

Pasemos de las señales sinusoides a las señales periódicas, representadas por su serie de Fourier:
f
xa (t ) ¦ae
k f
k
j 2S kt /T0

Como ésta es una suma de sinusoides con frecuencias k/T0, cada una de ellas debería muestrearse a
una frecuencia Fs t 2k/T0 pero, dado el rango de valores del índice k, esta señal sólo podría
representarse con un número infinito de muestras por segundo. Por eso se hace necesario limitar el
número de armónicos contenidos en la señal mediante un filtro pasa-bajos que elimine todos los
armónicos con frecuencia superior a N/T0:
N
xˆa (t ) ¦ae
k N
k
j 2S kt /T0

De esta manera, podemos escoger Fs t 2N/T0 = 2Fmáx para poder representar todos los armónicos
contenidos en la señal filtrada.

Si la señal xa(t) es aperiódica, tiene una transformada de Fourier (FT),


f
X a (F ) ³ f
xa (t )e j 2S Ft dt
de donde se puede recuperar la señal en tiempo continuo
f
xa (t ) ³
f
X a ( F )e j 2S Ft dF
y, cuando la muestreemos mediante xd[n] = xa(nTs), la señal resultante tendrá una DTFT
f
X d (e j 2S f ) ¦ x [n]e
n f
d
 j 2S fn

de donde se puede recuperar la señal en tiempo discreto


Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 243

1/2
xd [n] ³1/2
X d (e j 2S f )e j 2S fn df
Pero en esta última relación podemos poner a la izquierda xa(nTs) en vez de xd[n], donde xa(nTs) se
puede recuperar de su FT:
f 1/2
xa (nTs ) ³
f
X a ( F )e j 2S F ( n / Fs ) dF ³ 1/2
X d (e j 2S f )e j 2S fn df xd [n]
Haciendo el cambio de variable f=F/Fs en la segunda integral,
f 1 Fs /2
³ f
X a ( F )e j 2S ( F / Fs ) n dF
Fs ³ Fs /2
X d (e j 2S ( F / Fs ) )e j 2S ( F / Fs ) n dF

En la primera integral, F va de -f a f, rango que podemos recorrer yendo por intervalos de


longitud Fs:
f ( k 1/2) Fs 1
¦³
Fs /2

k f
( k 1/2) Fs
X a ( F )e j 2S ( F / Fs ) n dF
Fs ³ Fs /2
X d (e j 2S ( F / Fs ) )e j 2S ( F / Fs ) n dF

En la integral dentro de la suma podemos hacer el cambio de variable y en vez de F usar F-kFs, de
manera que el intervalo de integración ahora va de –Fs/2 a Fs/2, Xa se evalúa en F-kFs, el diferencial
j 2S ( F kFs )/ Fs
dF no cambia y la exponencial tampoco cambia porque e e j 2S ( F / Fs k ) e j 2S F / Fs :
f
1
¦³
Fs /2 Fs /2

k f
 Fs /2
X a ( F  kFs )e j 2S ( F / Fs ) n dF
Fs ³  Fs /2
X d (e j 2S ( F / Fs ) )e j 2S ( F / Fs ) n dF

Como la integral y la suma son operadores lineales operando en variables distintas, podemos
intercambiar sus posiciones después de multiplicar a ambos lados por Fs:
§ f
· j 2S ( F / Fs ) n
³ Fs /2 ¨© s k¦f X a (F  kFs ) ¸¹ e ³ X
Fs /2 Fs /2
F dF d (e j 2S ( F / Fs ) ) e j 2S ( F / Fs ) n dF
 Fs /2

Comparando las dos expresiones, los términos entre paréntesis en cada integrando deben ser
iguales:
f
X d (e j 2S ( F / Fs ) ) Fs ¦X
k f
a ( F  kFs )

o, en términos de la frecuencia digital,


f
X d (e j 2S f ) Fs ¦ X ( f  k )F
k f
a s

Esta última expresión describe la relación precisa que existe entre la FT de la señal en tiempo
continuo y la DTFT de la señal en tiempo discreto: Xa(F) se repite periódicamente cada Fs Hz y,
después, todas las réplicas se suman. Finalmente, se normaliza el eje horizontal con respecto a Fs y
el eje vertical con respecto a Ts.

Supongamos, por ejemplo, una señal análoga cuyo espectro de amplitud se encuentra limitado entre
0 y B Hz, como muestra la siguiente figura.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 244

xa(t) Xa(F)
A

l
t F
-B 0 B
Figura 182. Señal análoga a muestrear y su espectro de amplitud
Podemos tomar muestras a una tasa Fs superior a 2B, como muestra la parte superior de la siguiente
figura, de manera que las réplicas de Xa(F) cada Fs Hz no se superponen entre ellas y, por
consiguiente, la forma exacta de Xa(F) se puede recuperar de Xd(ej2Sf). Una tasa de muestreo crítica
es Fs = 2B pues en ese caso, como muestra la parte intermedia de la siguiente gráfica, las réplicas de
Xa(F) cada Fs Hz quedan adyacentes: No se superponen pero tampoco hay ningún margen entre
ellas, de manera que la forma exacta de Xa(F) aún se puede observar en Xd(ej2Sf). Sin embargo, si la
tasa de muestras Fs es inferior a 2B, las réplicas se superponen distorsionando irremediablemente la
forma original de Xa(F): Si la señal es real, las frecuencias superiores a 1/2 ciclo por muestra
aparecen reflejadas dentro del intervalo [-½, ½] con la frecuencia alias fa=½ - f. A la frecuencia de
muestreo crítica, Fs = 2B, se le conoce como la frecuencia de Nyquist.
xd[n] Xd(ej2Sf)
AFs

l
t -1-B/Fs -1 -1+B/Fs -B/Fs 0 B/Fs 1-B/Fs 1 1+B/Fs
f
-½ ½
Ts<1/(2B)
xd[n] Xd(ej2Sf)
AFs

l
t -2 -3/2= -1 -1/2= 0 1/2= 1 3/2= 2
f
Ts=1/(2B) -1-B/Fs = -B/Fs = B/Fs = 1+B/Fs =
-2+B/Fs -1+B/Fs 1- B/Fs 2- B/Fs

xd[n] Xd(ej2Sf)
AFs

l
t -2 -1 0 1 2
f
Ts>1/(2B)
-1- B/Fs<-3/2 < -2+B/Fs 1- B/Fs<1/2 < B/Fs 3- B/Fs<5/2 < 2+B/Fs
- B/Fs<-1/2 < -1+B/Fs 2- B/Fs<3/2 < 1+B/Fs

Figura 183. La correcta selección de la frecuencia de muestreo evita la superposición de las réplicas periódicas del
espectro de la señal análoga
En efecto, en los dos primeros casos de la figura anterior, dada Xd(ej2Sf), podemos calcular
­ X (e j 2S ( F / Fs ) ) / Fs | F |d Fs / 2
X a (F ) ® d
¯ 0 | F |! Fs / 2
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 245

y, con ella, reconstruir TODA la señal xa(t), para cualquier valor de tԹ, mediante
Fs /2
xa (t ) ³
 Fs /2
X a ( F )e j 2S Ft dF
Veamos qué expresión resulta para xa(t) como función de las muestras xd[n] cuando aplicamos este
proceso:
f
xa (t ) ³ f
X a ( F )e j 2S Ft dF
Fs /2 ª1 º j 2S Ft
³ Fs /2
« X d ( F / Fs ) » e
¬ Fs ¼
dF

ª1 f
º j 2S Ft
¦ x [n]e
Fs /2
³
 j 2S ( F / Fs ) n
 Fs /2 « F »e
d dF
¬ s n f ¼
ª1 f  j 2S FnTs º j 2S Ft
³ Fs /2 «¬ Fs n¦f xa (nTs )e
Fs /2
»e dF
¼
1 f
¦
Fs /2
xa (nTs ) ³ e j 2S F (t  nTs ) dF
Fs n f  Fs /2

ª º s
f F /2
1 1
¦ x (nT ) « j 2S (t  nT ) e
a s
j 2S F ( t  nTs )
»
Fs n f ¬ s ¼ F  Fs /2
1 f
ª 1 e j 2S (t  nTs ) Fs /2  e  j 2S (t  nTs ) Fs /2 º
¦ a s « S (t  nT )
x ( nT ) »
Fs n f ¬ s 2j ¼
1 f
ª 1 º
¦ x (nT ) « S (t  nT ) sin 2S (t  nT ) / 2T »
a s s s
Fs n f ¬ s ¼
f ª 1 § t  nTs ·º
Ts ¦ x (nT ) « S (t  nT ) sin ¨ S
a s ¸»
n f ¬ s © Ts ¹¼
f ª 1 § t  nTs ·º
¦ x (nT ) « S (t  nT ) / T
a s sin ¨ S ¸»
n f ¬ s s © Ts ¹¼
de manera que
f
§ t  nTs ·
xa (t ) ¦ x (nT )sinc ¨
a s ¸
n f © Ts ¹
Efectivamente, cuando t es un número entero de períodos de muestreo, t=kTs, los términos de la
suma incluyen el factor sinc(k-n) que vale cero para cualquier nzk pero vale uno cuando n=k, de
manera que recuperamos el valor xa(kTs). En los puntos intermedios, es la suma ponderada de
TODAS las funciones sinc la que permite una interpolación perfecta, como muestra la siguiente
figura.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 246

Figura 184. Interpolación de una señal análoga limitada en banda a B Hz, a partir de muestras tomadas a una tasa
superior a 2B
Lo que hemos logrado con el anterior procedimiento es demostrar el teorema del muestreo:
Una señal en tiempo continuo, xa(t), limitada en banda a B Hz puede recuperarse a partir de sus
§ ·
muestras xd[n] = xa(nTs) mediante xa (t ) ¦ xa (nTs )sinc ¨ t  nTs ¸ si Fs=(1/Ts) > 2B.
f

n f © Ts ¹

En la práctica, para asegurar las condiciones del teorema del muestreo, se usa un filtro pasa-bajos
antes del proceso de muestreo, conocido como filtro "anti-alias".
Fs > 2B

H(F)

xa(t) xd[n]

F
B

Figura 185. Proceso de muestreo con filtro anti-alias


Sin embargo, ese filtro análogo es demasiado costoso por las características tan exigentes que se
necesitan de él. Por eso se prefiere usar un filtro análogo sencillo con una frecuencia de corte
superior, muestrear a una tasa más alta y luego, ya en el dominio digital, filtrar con una frecuencia
de corte cercana a Zc=S/2 para sub-muestrear por dos (tomar una de cada dos muestras):
Fs > 4B

xa(t) p2 xd[n]
B 2B B

Figura 186. Proceso de muestreo con un filtro anti-alias análogo mucho más económico y un filtro anti-alias digital
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 249

22 Modelado de señales mediante sistemas LTI

Como hemos mencionado en varias ocasiones, la forma más general de los sistemas LTI causales en
tiempo discreto que se pueden implementar en la realidad, ya sea en hardware o software, son los
sistemas de ecuaciones de diferencias con coeficientes constantes:
N M

¦ ak y[n  k ]
k 0
¦ b x[n  k ]
k 0
k

B( z ) b0  b1 z 1   bM z  M
H ( z)
A( z ) a0  a1 z 1   aN z  N
Cuando N=0, tenemos un sistema FIR en el que los coeficientes bk forman la respuesta al impulso
(suponiendo que a0=1). En este caso, al sistema se le denomina "de sólo ceros" (porque H(z) es un
polinomio cuyas raíces son los ceros del sistema) o "MA – de promedios móviles" (porque y[n] se
puede calcular como una suma ponderada del valor actual y los M valores anteriores de la entrada.
Cuando M=0, tenemos un sistema IIR al que denominamos "de sólo polos" (porque H(z) es el
inverso multiplicativo de un polinomio cuyas raíces son los polos del sistema) o "AR – auto-
regresivo" (porque y[n] se puede calcular como la suma del valor actual de la señal de entrada con
una suma ponderada de los N valores anteriores de la salida misma). En el caso más general con
N>0 y M>0, se trata de un sistema IIR tipo ARMA (autoregresivo de promedios móviles), pues
tiene ambos tipos de componentes.

En las clases anteriores estudiamos algunos elementos para el análisis y diseño de estos sistemas
vistos como filtros digitales selectivos en frecuencia. Pero en esta clase veremos una aplicación
diferente e igualmente poderosa: El modelamiento de señales. La idea es que, dada una señal
{x[n], n=0,1,…,N-1}, podríamos representarla directamente por sus muestras o podríamos estimar
algunos parámetros que la representen. Por ejemplo, si sabemos que la señal obedece a la relación
x[n] = Acos(Zn + T), podría resultar mucho más económico almacenar o transmitir los tres
parámetros A, Z y T que almacenar o transmitir las N muestras de x[n]. En este caso, el
modelamiento de señales se estaría usando para compresión de señales. Pero podríamos ir más allá
y tratar de identificar el sistema que generó la señal misma. Nuevamente, si el número de
parámetros que identifican al sistema es menor que N, estaríamos logrando algún nivel de
compresión para ahorrar espacio de almacenamiento del medio donde guardemos la señal, o para
ahorrar ancho de banda del medio por donde se transmita la señal. Pero mejor aún, dichos
parámetros podrían convertirse en características fundamentales para hacer clasificación,
predicción, estimación, reconocimiento o síntesis de señales.

En esta clase vamos a introducir una técnica muy poderosa de modelamiento de señales de voz, que
se puede aplicar en muchos otros tipos de señales. Los parámetros del modelo se usan igualmente
para hacer compresión de señales de voz en sistemas de comunicaciones, reconocimiento de voz
(para interfaces hombre/máquina –comandos de voz– o conversión de voz a texto, por ejemplo),
verificación de la identidad de personas o, inclusive, identificación de personas mediante sus
señales de voz, síntesis de señales de voz (para interfaces hombre/máquina –respuestas por voz–,
conversión de texto a voz, o traducción automática, por ejemplo), etc.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 250

En una conversación, la persona que habla produce una onda de presión en el aire que viaja de la
boca del hablante al oído de quien lo escucha. El proceso empieza con una idea o un pensamiento
que el hablante quiere entregar al escucha. El hablante convierte la idea en una estructura lingüística
(las palabras adecuadas ordenadas según reglas gramaticales propias del lenguaje escogido), a la
cual le aplica características locales de entonación y énfasis para destacar aspectos importantes del
significado general de su mensaje. De acuerdo con esta conversión de ideas y pensamientos a
mensajes lingüísticos, el cerebro genera comandos motores a los diferentes músculos que
intervienen en la generación de la onda de presión deseada. El escucha ejecuta otro proceso
maravilloso para extraer de la onda de presión la idea o el pensamiento que el hablante quiso
comunicarle. Aunque un sistema de procesamiento de voz debe modelar todos estos fenómenos
psicológicos y lingüísticos, en esta clase nos limitaremos únicamente al proceso fisiológico, el cual
se muestra en la siguiente figura.

Paladar duro

Paladar blando
(velo)
Cavidad nasal

Cavidad
Orificios nasales
faríngea
Cuerdas Labios
vocales
Lengua
Laringe
Dientes

Esófago Cavidad bucal

Quijada

Tráquea

Pulmones

Diafragma

Figura 187. Mecanismo de producción de señales de voz (Deller, 1993)


El diafragma impulsa el aire de los pulmones a través de la tráquea hacia las cavidades bucal, nasal
y faríngea, las cuales forman una estructura resonante que se puede interpretar como un filtro
acústico. Si el velo del paladar está abajo, la cavidad nasal se acopla al filtro acústico, produciendo
sonidos nasales tales como /m/, /n/ o /ñ/. En otro caso, la cavidad nasal se desacopla y sólo
participan las cavidades bucal y faríngea, que se pueden considerar como dos cavidades acopladas
en serie. En la laringe, a la entrada de la cavidad resonante, se encuentran las cuerdas vocales, las
cuales se pueden hacer vibrar para producir una excitación periódica que genera sonidos
vocalizados como /a/, /e/, /i/, /o/, /u/, /m/, /l/, /b/, etc. Si las cuerdas vocales no se hacen vibrar, el
aire pasa directamente a la estructura resonante donde se puede someter a obstrucciones debidas a
los dientes, la lengua o los labios, produciendo sonidos no vocalizados como /s/, /f/, /ch/. El
movimiento de la quijada, la lengua, los labios, y el velo determinan la forma del tracto vocal entero
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 251

y, correspondientemente, las frecuencias de resonancia del filtro acústico. Estas formas permiten
clasificar los fonemas en bilabiales, labiodentales, dentales, alveolares, palatales, velares, uvulares,
faríngeos, glotales, epiglotales, nasales, chasquidos, oclusivos, implosivos, explosivos, fricativos,
eyectivos, africados, etc. (donde el "etc." implica posibles combinaciones de varios de ellos en un
solo fonema). Un idioma es una técnica de codificación que convierte ideas, sentimientos,
sensaciones, conceptos y pensamientos en secuencias de sonidos como estos.

La siguiente figura muestra tres segmentos de la señal de voz femenina que estudiamos en la
segunda clase, indicando la versatilidad del aparato fonador humano para producir sonidos. La
primera corresponde al fonema fricativo /f/. El aire pasa a la cavidad bucal sin que vibren las
cuerdas vocales, pero se obstruye con el labio inferior y los dientes del maxilar superior para
producir una turbulencia de baja energía y alta frecuencia. La segunda figura corresponde al sonido
vocalizado /e/. La posición de la quijada deja un tamaño intermedio de la boca (no tan abierta como
para pronunciar la /a/ ni tan cerrada como para pronunciar la /i/), la lengua se ensancha y se pone a
una altura intermedia y se hace pasar el aire modulado por la vibración de las cuerdas vocales,
produciendo una señal periódica de alta energía y baja frecuencia. La tercera figura es un sonido
explosivo /k/ que se consigue obstruyendo completamente el paso del aire entre la lengua y el
paladar para acumular energía por un breve lapso de tiempo y después liberarla repentinamente.
Sonido fricativo /f/ Sonido vocalizado /e/ Sonido explosivo /k/

0.4 0.4 0.4


0.3 0.3 0.3
0.2 0.2 0.2
0.1 0.1 0.1
amplitud

amplitud

amplitud

0 0 0
-0.1 -0.1 -0.1
-0.2 -0.2 -0.2
-0.3 -0.3 -0.3
-0.4 -0.4 -0.4
-0.5 -0.5 -0.5

0 10 20 30 0 10 20 30 0 10 20 30
tiempo en milisegundos tiempo en milisegundos tiempo en milisegundos
Figura 188. Algunos tipos de sonidos producidos por el aparato fonador humano
De acuerdo con la discusión anterior, si omitimos el posible acople de la cavidad nasal, el aparato
fonador humano se puede representar como una cavidad resonante alimentada por un flujo de aire al
que se le puede añadir o no un vibrador en la entrada:

Flujo de aire proveniente


Labios
de los pulmones

Cuerdas
Tráquea vocales

Tracto vocal

Figura 189. Representación esquemática del aparato fonador humano


Las relaciones de presión y volumen del aire en el tracto vocal obedecen con alguna precisión a la
de un modelo de tubos sin pérdidas acoplados, cada uno de los cuales aporta una frecuencia de
resonancia (un par de polos conjugados). Estas frecuencias de resonancia del tracto vocal (o
formantos) son una característica fundamental tanto de la señal de voz (para codificación,
reconocimiento o síntesis de voz) como de la persona que pronuncia los sonidos (para identificación
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 252

o verificación de identidad de personas). Las longitudes y áreas de los tubos acoplados varían con el
tiempo de acuerdo con la secuencia de fonemas que se pronuncian, donde las variaciones implican
fenómenos de coarticulación (en medio de la pronunciación de un fonema aún no se ha terminado
de pronunciar el anterior fonema cuando ya se empieza a pronunciar el siguiente fonema). Si
suponemos que para cada fonema existe un período de estacionariedad en el que el tracto vocal
mantiene una función de área relativamente constante, durante dicho período el sistema fonador se
podría representar mediante un filtro de sólo polos (modelo AR), como se muestra en la siguiente
figura.
Período

vocalizado
b0
H ( z) p
1  ¦ ak z  k
k 1
no
vocalizado

coeficientes
Varianza

Figura 190. Modelo en tiempo discreto para la producción de voz


Para estimar el modelo deberemos incluir técnicas para determinar si la señal es vocalizada o no (lo
cual se suele hacer a partir de los niveles de energía y la tasa de cruces por cero, por ejemplo) y para
estimar el tono de las señales vocalizadas (que es un problema aún no resuelto dado el gran rango
dinámico de los tonos de las señales de voz, aunque existen muchas técnicas aproximadas que van
desde la detección de picos en la función de auto-correlación hasta métodos multi-escala). Sin
embargo, como en esta clase nos interesa la aplicación del filtro digital de sólo polos (modelo
autoregresivo), nos limitaremos a estimar los coeficientes del filtro, {ak, k=1,2,..,p}.

Si la entrada al filtro que modela la respuesta del tracto vocal la llamamos x[n] y la señal de voz
correspondiente es y[n], la relación auto-regresiva que queremos establecer es
p q
½ p

¦ ak y[n  k ] ¦ bk x[n  k ] ° y [ n ] b 0 x[ n ]  ¦ ak y[n  k ]


k 0 k 0 ° k 1
¾
B( z ) b0  b1 z 1   bq z  q ° H ( z) b0 b0
H ( z)
A( z ) a0  a1 z 1   ap z p B( z) b0
° A( z ) 1  a1 z   a p z  p
1
a0 1
¿
Si pudiésemos excitar el sistema con un impulso unitario, después de la primera muestra la señal de
voz obedecería a la relación
p
y[n] ¦ ak y[n  k ], n ! 0
k 1

pero, claro, no nos es permitido realizar semejante experimento. Sin embargo, podemos imaginar la
posibilidad de predecir cada muestra de la señal de voz como una combinación lineal de las
anteriores p muestras,
p
yˆ[n] ¦ aˆk y[n  k ]
k 1
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 253

con lo cual cometeríamos un error


p
e[n] y[n]  yˆ[n] y[n]  ¦ aˆk y[n  k ]
k 1

Comparando con el modelo general, si los coeficientes de la predicción correspondieran


exactamente con los coeficientes del modelo, aˆk ak , el error sería exactamente la señal de
entrada, b0x[n]. Claro, no podemos esperar tanta exactitud, pero si tratamos de minimizar el error de
la predicción, los coeficientes que obtengamos van a representar toda la información mutua de tipo
lineal que haya en las p muestras anteriores de la señal de voz con respecto a la muestra actual. Así
pues, supongamos que tenemos N muestras de un segmento estacionario de la señal de voz,
{y[n], n=0,1,…,N-1} y queremos obtener los coeficientes predictores que minimizan el error
cuadrado promedio,
2
1 N 1 1 N 1 § p
·
¦ y[n]  yˆ[n] ¦ ¨ y[n]  ¦ aˆk y[n  k ] ¸
2
MSE
Nn0 N n 0© k 1 ¹
Como este MSE es una función convexa (una parábola) en cada uno de los coeficientes predictores,
para minimizar el MSE es suficiente con igualar la derivada con respecto a dichos coeficientes a
cero:
2
w 1 N 1
w § p
· 2 §
N 1 p
·
waˆm
MSE ¦
n 0 wa
¨
ˆm ©
y[ n ]  ¦ aˆk y[n  k ] ¸ ¦ ¨ y[ n ]  ¦ aˆk y[n  k ] ¸ y[n  m] 0, m 1, 2,..., p
N k 1 ¹ N n 0© k 1 ¹
que conduce al siguiente sistema de ecuaciones:
N 1 p
§ N 1
·
¦ y[n] y[n  m]  ¦ ¨© aˆ ¦ y[n  k ] y[n  m] ¸¹
n 0 k 1
k
n 0
0, m 1, 2,..., p

La primera suma es lo que hemos llamado la autocorrelación de la señal y[n] evaluada después de
un desplazamiento de m muestras, ry[m]. Viendo este problema desde el punto de vista geométrico
de las clases 9 y 10, ry[m] es exactamente el producto interno entre el vector {y[n], n=0,1,..,N-1} y
el vector {y[n-m], n=0,1,..,N-1}, lo cual significa que estamos proyectando el vector y[n] sobre su
versión desplazada m muestras. El resultado nos dirá qué tan parecidos (colineales) o diferentes
(perpendiculares) son los dos vectores. La suma interior del término de la derecha es la correlación
entre los vectores {y[n-k], n=0,1,..,N-1} y {y[n-m], n=0,1,..,N-1} que, por la suposición de
estacionariedad, debe ser igual a ry[m-k]. Entonces, el sistema de ecuaciones que satisfacen los
coeficientes predictores es
p
ry [m]  ¦ aˆk ry [m  k ] 0, m 1, 2,..., p
k 1

que se pueden escribir simultáneamente así:


ª ry [0] ry [1] ry [2] ry [[1  p] º ª aˆ1 º ª ry [1] º
« r [1] ry [0] ry [1] » «
[2  p]» « aˆ2 »
ry [2 » « r [2] »
« y « y »
« ry [2] ry [1] ry [0] [3  p] » « aˆ3 »  « ry [3] »
ry [3
« »« » « »
« »« » « »
« ry [ p  1] ry [ p  2] ry [ p  3] [0] »¼ «¬ aˆ p »¼
ry [0 « ry [ p]»
¬ ¬ ¼
Si escribimos este sistema de ecuaciones como R â = –r, la solución es inmediata: â = –R-1r. Dada
la estructura particular de la matriz de correlación (es una matriz Toeplitz: Los términos en cada
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 254

diagonal son iguales), su inversión se puede calcular muy eficientemente mediante un algoritmo
denominado Levinson-Durbin (que no vamos a estudiar en esta clase). Veamos un ejemplo.

La señal Voz Femenina de la segunda clase tiene N=512 muestras de un fonema estacionario entre
la muestras 1645 y 2156 (de 205.625 ms a 269.5 ms, pues el intervalo entre muestras es de 125
microsegundos), correspondiente al sonido /e/. Pasando dicho segmento por una ventana Hamming
de 512 muestras, obtenemos la señal que se muestra en la gráfica de la izquierda de la siguiente
figura.
0.5 8

0.4
6

0.3
4
0.2

2
0.1

Correlación
Amplitud

0 0

-0.1
-2

-0.2
-4
-0.3

-6
-0.4

-0.5 -8
0 10 20 30 40 50 60 0 1 2 3 4 5 6 7 8
tiempo (ms) tiempo (ms)

Figura 191(a) Fonema /e/ pronunciado por una mujer y pasado por una ventana Hamming. (b) Función de
autocorrelación
Suponiendo que la cavidad oral tiene un formanto por cada kHz, necesitaríamos considerar 8 polos
(dos polos complejos conjugados especifican una frecuencia de resonancia). Si añadimos dos polos
más para representar la forma del onda del impulso glotal y otros dos para representar el acople a la
salida, entre los labios y el medio ambiente, el orden del filtro sería p=12. Entonces necesitamos
calcular la función de autocorrelación con desplazamientos en el tiempo desde 0 hasta p=12
muestras (1.25 ms):
N 1
ry [k ] ¦ y[n] y[n  k ]
n k
N 512, p 12
k 0,1,..., p

El resultado se ve en la gráfica de la derecha de la figura anterior, donde se consideraron


desplazamientos en tiempo de 64 muestras (8 ms), pero sólo las muestras de la 0 a las 12 (de 0 a 1.5
ms) se usarán en la estimación de los coeficientes predictores. Con un simple cambio de variable se
puede verificar que ry[-k]=ry[k], de manera que el sistema de ecuaciones que define a los
coeficientes de la predicción lineal es el siguiente (se transcribe para que los estudiantes comparen
con sus propios resultados, ya que disponen de la señal de voz que se analizó y se han descrito
detalladamente los procedimientos).
^
a1
^
a2
^
a3
^
a4
^
a5
^
a6
^
a7 = -
^
a8
^
a9
^
a10
^
a11
^
a12
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 255

El anterior resultado sugiere el siguiente modelo para el tracto vocal:

b0
H ( z)
1  0.8904 z 1 +0.8563z 1  2.2188 z 1 +1.8568 z 1  1.4553z 1 +2.4994 z 1  1.7292 z 1 +1.2281z 1  1.3221z 1 +0.6500 z 1  0.4049 z 1 +0.2656 z 1

Cuando comparamos la respuesta en frecuencia del filtro estimado, |H(ejZ)|, con la composición
espectral de la señal de voz, |Y(ejZ)|, encontramos que la primera es la envolvente de la segunda,
como muestra la siguiente figura (el término de ganancia, b0, se escogió para hacer coincidir los
picos de |H(ejZ)| y |Y(ejZ)|, lo cual condujo a b0=0.4316 (-7.3 dB)).
30
|H(ejZ )|
20
|Y(ejZ )|

10

0
Amplitud (dB)

-10

-20

-30

-40

-50

-60
0 0.5 1 1.5 2 2.5 3 3.5
Z (radianes/muestra)
Figura 192. Espectro de amplitud de la señal de voz y respuesta en frecuencia del modelo AR del tracto vocal
A los coeficientes del denominador de H(z) se les conoce como coeficientes LPC (Linear Predictive
Coding) porque con ellos se puede estimar la siguiente muestra de la señal de voz como una
combinación de las anteriores p muestras. Además de la poderosa teoría que subyace detrás de
ellos, los coeficientes LPC tienen una gran aplicabilidad en muchas áreas. Por ejemplo, para
compresión de señales de voz, reconocimiento de voz, identificación de personas y síntesis de voz.

Compresión: En vez de enviar 512 muestras de la señal de voz en 64 ms, que equivale a 64kbps si
cada muestra se cuantiza con 8 bits, podemos enviar los coeficientes (12*8 = 96 bits), la
clasificación de sonido vocalizado o no vocalizado (un bit), el tono o la varianza según el caso (7
bits) y la ganancia (8 bits), para un total de 112 bits en 64 ms, que equivale a menos de 1.8 kbps
para una señal perfectamente inteligible. Se podría recuperar la señal exacta si enviamos también el
residuo de la predicción (la señal de error), pero este residuo se puede submuestrear y cuantificar
con menos bits, pues su rango dinámico es mucho menor. Por ejemplo, si se toman 2000 muestras
por segundo a 6 bits por muestra, podemos generar voz con calidad telefónica a 16 kbps.

Reconocimiento de voz: En reconocimiento de señales un aspecto de pre-procesamiento


fundamental es la extracción de características discriminantes para poder clasificar la señal dentro
de un conjunto de tipos de señales. En procesamiento de voz, los parámetros LPC y la condición de
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 256

vocalizado/no-vocalizado forman un conjunto de características que permite determinar el fonema


que se está pronunciando con un alto nivel de certeza. La información de cuáles son los fonemas
más probables y cuál es su probabilidad se puede obtener, por ejemplo, de una red neuronal. A
niveles posteriores se analizan aspectos del léxico, la sintaxis y la semántica (junto con otros
aspectos pragmáticos) para determinar el discurso completo.

Identificación de personas: Como los coeficientes LPC traen datos sobre la forma de la cavidad
oral, en una secuencia de coeficientes LPC hay mucha información sobre las características
anatómicas de la persona que habla. La información de tono también es muy útil en este tipo de
aplicaciones.

También podría gustarte