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

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(e jZ ) actúa como un filtro que selecciona las frecuencias de la señal de entrada: 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. 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 x[n] h[n] [] [][ ] k yn hkxn k f f ¦ X(e jZ ) H(e jZ ) Y(e jZ )=H(e jZ )X(e jZ ) ( ) j LP H e Z ( ) j HP H e Z ( ) j BP H e Z ( ) j BR H e Z -S S 0 -S S 0 Z 1 Z 2 -Z 2 -Z 1 -S S 0 Z 1 Z 2 Z 1 Z 2 -S S 0 Z 1 Z 2 -Z 2 -Z 1 Z 1 Z 2 -Z 2 -Z 1 Pasa-bajos Pasa-altos Pasa-banda Rechaza-banda ( ) j He Z Z 1 Z 2 Z 1 Z 2 -S S 0 Otro

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

Page 1: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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(ej ) actúa como un filtro que selecciona las frecuencias de la señal de entrada:

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 2 radianes por muestra.

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

x[n] h[n] [ ] [ ] [ ]k

y n h k x n k

X(ej ) H(ej ) Y(ej )=H(ej )X(ej )

( )jLPH e

( )jHPH e

( )jBPH e

( )jBRH e

- 0

- 0

1 2- 2 - 1- 0

1 21 2- 0

1 2- 2 - 1

1 2- 2 - 1

Pasa-bajos

Pasa-altos

Pasa-banda

Rechaza-banda

( )jH e

1 21 2- 0

Otro

Page 2: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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, ] 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.

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

10

cjd

c

H e

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(ej ) es la DTFT de la respuesta al impulso del filtro hd[n], podemos encontrar dicha respuesta al impulso mediante la DTFT inversa:

sin( )1 1 1 1 1[ ]2 2 2 2

c c cc

cc

jn jnj jn jn jn c

d dne eh n H e e d e d e

jn n j n

multiplicando numerador y denominador por c/ ,

[ ] sincc cdh n n

¡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 c y bloquea todas las frecuencias por encima de c. Claro, la forma de convergencia de Hd(ej ) hace que la ganancia en un intervalo

x[n]

h[n]

g[n]

y[n]

z[n]

Pasa-bajos a 7 /30

Pasa-altos a 7 /30

0 100 200 300 400 500 600 700 800-1

0

1

x[n]

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

|X(e

j)|,

|H(e

j)|,

|G(e

j)|

0 100 200 300 400 500 600 700 800-1

0

1

y[n]

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

|Y(e

j)|,

|H(e

j)|

0 100 200 300 400 500 600 700 800-1

0

1

z[n]

tiempo n, en muestras0 0.5 1 1.5 2 2.5 3

0

0.5

1

1.5

|Z(e

j)|,

|G(e

j)|

frecuencia , en radianes por muestra

Page 3: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

infinitesimal alrededor de las discontinuidades c, 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(ej ) 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.

Figura 157. Respuesta al impulso y respuesta en frecuencia de filtros h[n]=sinc(n* c/ )* c/

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:

[ ] Filtro ideal IIR no causal (irrealizable)[ ] [ ] [ ] [ 1] Filtro FIR no causal (irrealizable en tiempo real)

[ ] [ ] [ ] [ 2 1] Filtro FIR causal (realizable en tiempo real)

d

F d

FC d

h nh n h n u n N u n N

h n h n N u n u n N

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

-10 0 10-0.2

0

0.2

0.4

0.6

hd[n], wc=0.62832

-2 0 2

0

0.5

1

Hd(ejw ), wc=0.62832

-10 0 10-0.2

0

0.2

0.4

0.6

hd[n], wc=1.2566

-2 0 2

0

0.5

1

Hd(ejw ), wc=1.2566

-10 0 10-0.2

0

0.2

0.4

0.6

hd[n], wc=1.885

-2 0 2

0

0.5

1

Hd(ejw ), wc=1.885

-10 0 10-0.2

0

0.2

0.4

0.6

hd[n], wc=2.5133

-2 0 2

0

0.5

1

Hd(ejw ), wc=2.5133

Page 4: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 -9 , que corresponde al retardo en la respuesta al impulso.

Figura 158. Filtro pasa-bajos a /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).

Figura 159. Filtro FIR causal pasa-bajos a /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.

-30 -20 -10 0 10 20 30-0.2

0

0.2

0.4

hd[n] (IIR, no causal)

-30 -20 -10 0 10 20 30-0.2

0

0.2

0.4

hf[n] (FIR, no causal)

-30 -20 -10 0 10 20 30-0.2

0

0.2

0.4

hfc[n] (FIR, causal)

-3 -2 -1 0 1 2 30

0.5

1

|Hd(ejw )|

-3 -2 -1 0 1 2 30

0.5

1

|Hf(ejw )|

-3 -2 -1 0 1 2 30

0.5

1

|Hfc(ejw )|

-3 -2 -1 0 1 2 30

1

2

3

fase(Hd(ejw ))

-3 -2 -1 0 1 2 30

1

2

3

fase(Hf(ejw ))

-3 -2 -1 0 1 2 3-30

-20

-10

0

fase(Hfc(ejw ))

x[n]

y[n]

z-1 z-1 z-2 z-2 z-2 z-2z-2 z-2 z-2 z-2

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]

b9 b7 b5 b3 b1 b0 b1 b3 b5 b7 b9

bk=sinc(k/2)/2+ + + + + + + + +

Page 5: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

Figura 160. Respuesta en frecuencia de filtros reales e ideales pasa-bajos a /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.

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 1= 2=0.09, independientemente de N. Este efecto se debe a que usamos una ventana rectangular para truncar la longitud del filtro:

[ ] [ ] [ 1][ ] [ ] [ ]

r

r d rw n u n N u n N

h n h n w n

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:

[ ] (0.54 0.46cos( / )) [ ][ ] [ ] [ ]

h r

h d hw n n N w n

h n h n w n

0 0.5 1 1.5 2 2.5 3-0.2

0

0.2

0.4

0.6

0.8

1

frecuencia

Respuesta en frecuencia

IdealN=29N=9N=5

1+ 1

1- 1

2

- 2

L Hc

1

H(ej )

0

Page 6: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

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 1, 2, L y H. La siguiente es una tabla con algunas ventanas típicas y su efecto sobre un filtro pasa-bajos con frecuencia de corte /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 = . Sin embargo, el primer cruce por cero de esa respuesta en frecuencia se da en =0.27 , que es un valor muy cercano a la frecuencia de corte

/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 = . Pero el primer cruce por cero se da en =0.31 , 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 = 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 =0.37 . Así pues, entre estas ventanas la preferible parece ser la Hamming, a menos que se requiera un rizado

-30 -20 -10 0 10 20 30

0

0.5

1

n

w[n

]

ventana con N=9

RectangularHamming

0 0.5 1 1.5 2 2.5 3

0

0.5

1

H(e

j)

Respuesta en frecuencia con N=9

RectangularHamming

-30 -20 -10 0 10 20 30

0

0.5

1

n

w[n

]

ventana con N=21

RectangularHamming

0 0.5 1 1.5 2 2.5 3

0

0.5

1

H(e

j)

Respuesta en frecuencia con N=21

RectangularHamming

Page 7: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 /4 Nombre y

Expresión para w[n], |n| N Respuesta en frecuencia de un filtro pasabajos de 61

coeficientes (N=30) Rectangular

1

Hanning[1+cos( n/N)]/2

Hamming 0.54+0.46cos( n/N)

Blackman 0.42+0.5cos( n/N)+0.08cos(2 n/N)

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 c= f, usando una ventana

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

0

0.2

0.4

0.6

0.8

1

0 0.5 1 1.5 2 2.5 3

0

0.2

0.4

0.6

0.8

1

H(e

j)

filtro pasabajos con ventana Rectangular

0 0.5 1 1.5 2 2.5 3-120

-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

filtro pasabajos con ventana Rectangular

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

0

0.2

0.4

0.6

0.8

1

0 0.5 1 1.5 2 2.5 3

0

0.2

0.4

0.6

0.8

1

H(e

j)

filtro pasabajos con ventana Hanning

0 0.5 1 1.5 2 2.5 3-120

-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

filtro pasabajos con ventana Hanning

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

0

0.2

0.4

0.6

0.8

1

0 0.5 1 1.5 2 2.5 3

0

0.2

0.4

0.6

0.8

1

H(e

j)

filtro pasabajos con ventana Hamming

0 0.5 1 1.5 2 2.5 3-120

-100

-80

-60

-40

-20

020

log 10

|H(e

j)|

filtro pasabajos con ventana Hamming

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

0

0.2

0.4

0.6

0.8

1

0 0.5 1 1.5 2 2.5 3

0

0.2

0.4

0.6

0.8

1

H(e

j)

filtro pasabajos con ventana Blackman

0 0.5 1 1.5 2 2.5 3-120

-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

filtro pasabajos con ventana Blackman

Page 8: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

Page 9: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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(ej ), 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(ej ), 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(ej ), tomamos N muestras entre 0 y 2 , esto es, construimos Hk=Hd(ej k) con k = 2 k/N, k {0,1,2,…,N}. Con estas muestras podemos especificar la respuesta al impulso gracias a la IDFT (clase 17):

12 /

0

1[ ]N

j kn Nk

kh n H e

N

Entonces podemos evaluar la verdadera respuesta del sistema en cualquier frecuencia continua: 1 1 1 1 1

2 / 1 2 /

0 0 0 0 0

1 1( ) [ ]N N N N N nn j kn N n j k N

k kn n k k n

H z h n z H e z H z eN N

La suma interior se puede calcular fácilmente: 1 1 1

2 1 2 2 1

0 0 0

11 1 1 11

NN N Nn N N n N n

n n n

N 11

0

2 21 2 221 2 22 221 2 22 21 222 22 221 2 22 22211 1 11 1 1111 2 22 2222111

de manera que, en términos de las muestras de frecuencia, se puede calcular la respuesta completa del filtro:

1 2 /1 1

1 2 / 1 2 /0 0

1 1 ( ) 1( )1 1

j k N N NN Nk

k j k N j k Nk k

Hz e zH z HN z e N z e

y así podemos calcular la respuesta completa H(ej ) a partir de las N muestras {Hk, k=0,1,2,…,N-1}. Si nos limitamos a las muestras Hk=Hd(ej k), 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í:

1

21*

(2 / )00

1arg min 11k

j N Nk

j k NH k

HeH dN e

y utilizar algún método de programación matemática para resolverlo. Por ejemplo, podemos diseñar un filtro pasa-bajos a /2 si escogemos 17 muestras k = 2 k/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.47 ]. La siguiente figura muestra algunos resultados intermedios.

Page 10: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

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.

Figura 164. La respuesta del filtro es máximamente plana para | |<0.47 cuando H8 =0.975 y H9 =0.575

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

0 0.5 1 1.5 2 2.5 3

0

0.5

1

|H(ej16 /33)| = 1, |H(ej18 /33)| = 0, error = 0.0012948

0 0.5 1 1.5 2 2.5 3

0

0.5

1

|H(ej16 /33)| = 0.9, |H(ej18 /33)| = 0.35, error = 2.3802e-005

0 0.5 1 1.5 2 2.5 3

0

0.5

1

|H(ej16 /33)| = 0.6, |H(ej18 /33)| = 0.1, error = 0.0018652

0 0.5 1 1.5 2 2.5 3

0

0.5

1

|H(ej16 /33)| = 0, |H(ej18 /33)| = 0, error = 0.020725

0.50.55

0.60.65

0.70.75

0.9

0.95

1-22

-20

-18

-16

-14

-12

-10

|H(ej18 /33)||H(ej16 /33)|

log 2(E

rror)

Page 11: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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, 1dh W H1h W H1HH , donde W está dada por la DFT dH WhH WhWh :

2 (1/ ) 2 (2/ ) 2 (( 1)/ )

2 (2/ ) 2 (4/ ) 2 (2( 1)/ )

2 (511/ ) 2 ((511)2/ ) 2 (511( 1)/ )

[0] 1 1 1 1 [0][1] 1 [1][2] 1 [2]

[511] 1 [ ]

dj N j N j N N

dj N j N j N N

d

j N j N j N Nd

H hH e e e hH e e e h

H e e e h N

2 (2 ((2 (222 ((

2 (22 (2(22 (2222

2 ( 12 (51(5122 (512 (5122

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,

1H Hdh W W W HHh W WH H , donde WH es la matriz transpuesta conjugada de W. Muchos parámetros

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, 1, 2, L y

H. 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:

1 0 0 cos( ) cos( )

( ) [ ] [0] 2 [ ]cos( ) cos ( ) ( )N N N N

j j n k kk k

n N n k k x xH e h n e h h n n a a x P x

donde tomamos cos(n ) como el n-ésimo polinomio de Chebyshev del primer tipo evaluado en cos( ), esto es, si definimos iterativamente la secuencia de polinomios Tn(x) así,

0 1 1 1( ) 1, ( ) , ( ) 2 ( ) ( ), 0n n nT x T x x T x xT x T x n

podemos encontrar que Tn(cos( ))=cos(n ):

0

1

22

2 33

3 24

cos( ) 1 cos(0 )

cos( ) cos( ) cos(1 )

cos( ) 2cos( )[cos( )] 1 2cos ( ) 1 cos(2 )

cos( ) 2cos( )[2cos ( ) 1] cos( ) 4cos ( ) 3cos( ) cos(3 )

cos( ) 2cos( )[4cos ( ) 3cos( )] [2cos ( ) 1] 8c

T

T

T

T

T 4 2os ( ) 8cos ( ) 1 cos(4 )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.

Page 12: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 xi xj si i j. 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,

0

( ) , 0,...,k

ij

i j ii j

x xl x j kx x

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

0

( ) ( )k

j jj

L x y l x

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 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< /2) en el intervalo [0, ] 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.

Page 13: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

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 L , 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, *

[ , ]arg max ( ) ( )

x a bx f x P x

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 L ). 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) = maxx [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

0 0.5 1 1.5 2 2.5 3-1

-0.5

0

0.5

1

1.5

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

Interpolacion y = p10(x)

muestras yi = f(xi)

Page 14: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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;

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( ), aprovechando que cos(n ) es el n-ésimo polinomio de Chebyshev del primer tipo evaluado en cos( ) :

1 0 0 cos( )

[ ] [0] 2 [ ]cos( ) cos ( )N N N N

j jn k kk k

n N n k k xH e h n e h h n n a a x

donde existe una relación lineal muy simple entre los coeficientes del polinomio ak y los coeficientes del filtro h[n].

0 0.5 1 1.5 2 2.5 3-1

0

1

2

0 0.5 1 1.5 2 2.5 3-1

0

1

2

0 0.5 1 1.5 2 2.5 3-1

0

1

2

0 0.5 1 1.5 2 2.5 3-1

0

1

2

Page 15: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 /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.

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 = [ L, H]/ . 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, L] la ganancia es 1 y en la banda [ H, ] 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 = [ 1, 2]. La instrucción

0 0.5 1 1.5 2 2.5 3-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

Ventana Hamming y PM (con el mismo ancho de banda de transición)

0.7 0.8 0.9 1 1.1 1.2-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

(...detalle de la figura de arriba)

0 0.5 1 1.5 2 2.5 3-120

-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

Ventana Hamming y PM (con el mismo rizado)

0.7 0.8 0.9 1 1.1 1.2-100

-80

-60

-40

-20

0

20lo

g 10|H

(ej

)|

(...detalle de la figura de arriba)

Ventana HammingParks-McClellan

Ventana HammingParks-McClellan

Ventana HammingParks-McClellan

Ventana HammingParks-McClellan

Page 16: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 -2 /3 y 2 /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))))

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.66 en la que el espectro de amplitud desciende de 0 a 1, y otra de 0.67 a en la que el espectro de amplitud permanece en cero. La banda de transición (entre 0.66 y 0.67 ) 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.

-3 -2 -1 0 1 2 30

0.2

0.4

0.6

0.8

1

|X(e

j)|

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

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

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

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+ ). Primero, nótese que ahora debemos distinguir la velocidad angular análoga (Ω radianes por segundo) de la velocidad angular digital ( radianes por muestra), de la misma manera que debemos distinguir la frecuencia en tiempo continuo (F = Ω/2 ciclos por segundo) de la frecuencia en tiempo discreto (f = /2 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

tTs 2Ts 3Ts 4Ts 5Ts 6Ts 7Ts 8Ts 9Ts0

xa(t)

xd[n]=xa(nTs)

tTs 2Ts 3Ts 4Ts 5Ts 6Ts 7Ts 8Ts 9Ts0

xa1(t)

xd[n]=xa1(nTs)=xa2(nTs)=xa3(nTs)xa2(t)xa3(t)

Page 18: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

( ) cos cos 2

[ ] cos ( ) cos 2 ( / )

[ ] cos 2 ( / ) cos 2 cos

a

d s s

d s

x t A t A Ft

x n A nT A F n F

x n A F F n A fn A n

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 2 a ambos lados, obtenemos la relación entre las frecuencias angulares: =Ω/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:

Para decirlo rápidamente: Aunque es posible distinguir cualquier frecuencia análoga |F| < (|Ω| < ), sólo podemos distinguir frecuencias digitales |f| ½ (| | ), 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| Fs/2. La siguiente figura ilustra este fenómeno.

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((2 f)n) con ½ 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(2 (10/15)n) = cos(2 (2/3)n) = cos(2 n - 2 (1/3)n) = cos(2 (1/3)n) = cos(2 (5/15)n)

sT

radianes radianes segundos×muestra segundo muestra

sf F T

ciclos ciclos segundos×muestra segundo muestra

2 2 sf F T

0 0.1 0.2 0.3 0.4 0.5-1

-0.5

0

0.5

1F = 10 Hz, Fs = 60 Hz

0 0.1 0.2 0.3 0.4 0.5-1

-0.5

0

0.5

1F = 10 Hz, Fs = 40 Hz

0 0.1 0.2 0.3 0.4 0.5-1

-0.5

0

0.5

1F = 10 Hz, Fs = 20 Hz

0 0.1 0.2 0.3 0.4 0.5-1

-0.5

0

0.5

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

Page 19: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

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

Quiz: Considere x(t) = cos(100 t). (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:

02 /( ) j kt Ta k

kx t a e

Como ésta es una suma de sinusoides con frecuencias k/T0, cada una de ellas debería muestrearse a una frecuencia Fs 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:

02 /ˆ ( )N

j kt Ta k

k Nx t a e

De esta manera, podemos escoger Fs 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),

2( ) ( ) j Fta aX F x t e dt

de donde se puede recuperar la señal en tiempo continuo2( ) ( ) j Ft

a ax t X F e dF

y, cuando la muestreemos mediante xd[n] = xa(nTs), la señal resultante tendrá una DTFT

2 2( ) [ ]j f j fnd d

nX e x n e

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

F

f

1/2

1/2

0Fs

Fs/20

-Fs/2-Fs

Limitarse a este rangopara evitar ambigüedades

Page 20: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

1/2 2 2

1/2[ ] ( )j f j fn

d dx n X e e 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:

1/22 ( / ) 2 2

1/2( ) ( ) ( ) [ ]sj F n F j f j fn

a s a d dx nT X F e dF X e e df x n

Haciendo el cambio de variable f=F/Fs en la segunda integral, /22 ( / ) 2 ( / ) 2 ( / )

/2

1( ) ( )ss s s

s

Fj F F n j F F j F F na dF

s

X F e dF X e e dFF

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

( 1/2) /22 ( / ) 2 ( / ) 2 ( / )

( 1/2) /2

1( ) ( )s ss s s

s s

k F Fj F F n j F F j F F na dk F F

k s

X F e dF X e e dFF

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 dF no cambia y la exponencial tampoco cambia porque 2 ( )/ 2 ( / ) 2 /s s s sj F kF F j F F k j F Fe e e :

/2 /22 ( / ) 2 ( / ) 2 ( / )

/2 /2

1( ) ( )s ss s s

s s

F Fj F F n j F F j F F na s dF F

k s

X F kF e dF X e e dFF

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:

/2 /22 ( / ) 2 ( / ) 2 ( / )

/2 /2( ) ( )s s

s s s

s s

F Fj F F n j F F j F F ns a s dF F

kF X F kF e dF X e e dF

Comparando las dos expresiones, los términos entre paréntesis en cada integrando deben ser iguales:

2 ( / )( ) ( )sj F Fd s a s

kX e F X F kF

o, en términos de la frecuencia digital,

2( ) ( )j fd s a s

kX e F X f k F

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.

Page 21: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

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(ej2 f). 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(ej2 f). 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.

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(ej2 f), podemos calcular

2 ( / )( ) / | | / 2( )

0 | | / 2

sj F Fd s s

as

X e F F FX F

F F

xa(t) Xa(F)

t F-B 0 B

A

xd[n] Xd(ej2 f)

t -B/Fs 0 B/Fs

AFs

f1-B/Fs 1 1+B/Fs-1-B/Fs -1 -1+B/Fs -½ ½ Ts<1/(2B)

xd[n] Xd(ej2 f)

t

AFs

fTs=1/(2B)

1/2=B/Fs =1- B/Fs

0-1 -1/2=-B/Fs =-1+B/Fs

-2 21 3/2=1+B/Fs =2- B/Fs

-3/2=-1-B/Fs =-2+B/Fs

xd[n] Xd(ej2 f)

t

AFs

fTs>1/(2B)

1- B/Fs<1/2 < B/Fs

0-1-2 21

- B/Fs<-1/2 < -1+B/Fs

-1- B/Fs<-3/2 < -2+B/Fs

2- B/Fs<3/2 < 1+B/Fs

3- B/Fs<5/2 < 2+B/Fs

Page 22: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 /2 2

/2( ) ( )s

s

F j Fta aF

x t X F e dF

Veamos qué expresión resulta para xa(t) como función de las muestras xd[n] cuando aplicamos este proceso:

2

/2 2

/2

/2 2 ( / ) 2

/2

/2 2 2

/2

/2 2 ( )

/2

( ) ( )

1 ( / )

1 [ ]

1 ( )

1 ( )

s

s

ss

s

ss

s

ss

s

j Fta a

F j Ftd sF

s

F j F F n j FtdF

ns

F j FnT j Fta sF

ns

F j F t nTa s F

ns

x t X F e dF

X F F e dFF

x n e e dFF

x nT e e dFF

x nT e dFF

/22 ( )

/2

2 ( ) /2 2 ( ) /2

1 1( )2 ( )

1 1( )( ) 2

1 1( ) sin 2 ( ) / 2( )

1( ) sin( )

s

s

s

s s s s

Fj F t nT

a sn F Fs s

j t nT F j t nT F

a sns s

a s s sns s

ss a s

s

x nT eF j t nT

e ex nTF t nT j

x nT t nT TF t nT

t nTT x nTt nT

1( ) sin( ) /

n s

sa s

n s s s

T

t nTx nTt nT T T

de manera que

( ) ( )sinc sa a s

n s

t nTx t x nTT

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 n k 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.

Page 23: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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 ( ) ( )sinc sa a s

n s

t nTx t x nTT

si Fs=(1/Ts) > 2B.

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".

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 c= /2 para sub-muestrear por dos (tomar una de cada dos muestras):

Figura 186. Proceso de muestreo con un filtro anti-alias análogo mucho más económico y un filtro anti-alias digital

F

H(F)

B

Fs > 2B

xa(t) xd[n]

B

xa(t)2B

Fs > 4B

xd[n]B

2

Page 24: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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:

0 01

0 11

0 1

[ ] [ ]

( )( )( )

N M

k kk k

MM

NN

a y n k b x n k

b b z b zB zH zA z a a z a z

MMb zMb

NNa zN

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( n + ), podría resultar mucho más económico almacenar o transmitir los tres parámetros A, y 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.

Page 25: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

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

Paladar duro

Paladar blando(velo)

Cavidadfaríngea

Laringe

Esófago

Diafragma

Pulmones

Tráquea

Quijada

Cavidad bucal

Dientes

Lengua

Labios

Orificios nasales

Cavidad nasal

Cuerdasvocales

Page 26: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

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:

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

0 10 20 30

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

tiempo en milisegundos

ampl

itud

Sonido fricativo /f/

0 10 20 30

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

tiempo en milisegundos

ampl

itud

Sonido vocalizado /e/

0 10 20 30

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

tiempo en milisegundos

ampl

itud

Sonido explosivo /k/

TráqueaCuerdasvocales

Tracto vocal

LabiosFlujo de aire proveniente

de los pulmones

Page 27: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

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

00

00 0 1

10 00 1

1( )11 10 1

[ ] [ ] [ ] [ ] [ ]

( ) ( )( )( ) 1( )

p q p

k k kk k k

qq

pB z bpa pp

a y n k b x n k y n b x n a y n k

b bb b z b zB z H zH zA z a z a zA z a a z a z

qqb zqb

ppa zp

ppa zp

Si pudiésemos excitar el sistema con un impulso unitario, después de la primera muestra la señal devoz obedecería a la relación

1[ ] [ ], 0

p

kk

y n a y n k n

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,

1

ˆ ˆ[ ] [ ]p

kk

y n a y n k

vocalizado

novocalizado

Período

Varianza

0

1

( )1

pk

kk

bH za z

coeficientes

Page 28: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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

con lo cual cometeríamos un error

1

ˆ ˆ[ ] [ ] [ ] [ ] [ ]p

kk

e n y n y n y n a y n k

Comparando con el modelo general, si los coeficientes de la predicción correspondieran exactamente con los coeficientes del modelo, ˆk ka a , 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,

21 12

0 0 1

1 1ˆ ˆ[ ] [ ] [ ] [ ]pN N

kn n k

MSE y n y n y n a y n kN N

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:

21 1

0 1 0 1

1 2ˆ ˆ[ ] [ ] [ ] [ ] [ ] 0, 1,2,...,ˆ ˆ

p pN N

k kn k n km m

MSE y n a y n k y n a y n k y n m m pa N a N

que conduce al siguiente sistema de ecuaciones: 1 1

0 1 0

ˆ[ ] [ ] [ ] [ ] 0, 1,2,...,pN N

kn k n

y n y n m a y n k y n m m 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

1

ˆ[ ] [ ] 0, 1,2,...,p

y k yk

r m a r m k m p

que se pueden escribir simultáneamente así:

1

2

3

ˆ[0] [ 1] [ 2] [1 ] [1]ˆ[1] [0] [ 1] [2 ] [2]ˆ[2] [1] [0] [3 ] [3]

ˆ[ 1] [ 2] [ 3] [0] [ ]

y y y y y

y y y y y

y y y y y

y y y y p y

r r r r p a rr r r r p a rr r r r p a r

r p r p r p r a r p

[1[1[1[1yy[[[2[2y[2y[[2[2[2

y

[3[3yy[[3[3y

y y yy

[0y[0y[0[0[0

Si escribimos este sistema de ecuaciones como R a = –r, la solución es inmediata: a = –R-1r. Dada la estructura particular de la matriz de correlación (es una matriz Toeplitz: Los términos en cada

Page 29: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.

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

1

512, 120,1,...,

[ ] [ ] [ ]N

yN pn k k p

r k y n y n k

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

0 10 20 30 40 50 60-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

tiempo (ms)

Am

plitu

d

0 1 2 3 4 5 6 7 8-8

-6

-4

-2

0

2

4

6

8

tiempo (ms)

Cor

rela

ción

^^^^^^^^^^^^

a1a2a3a4a5a6a7a8a9a10a11a12

= -

Page 30: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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:

01 1 1 1 1 1 1 1 1 1 1 1( )

1 0.8904 +0.8563 2.2188 +1.8568 1.4553 +2.4994 1.7292 +1.2281 1.3221 +0.6500 0.4049 +0.2656bH z

z z z z z z z z z z z z

Cuando comparamos la respuesta en frecuencia del filtro estimado, |H(ej )|, con la composición espectral de la señal de voz, |Y(ej )|, 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(ej )| y |Y(ej )|, lo cual condujo a b0=0.4316 (-7.3 dB)).

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

0 0.5 1 1.5 2 2.5 3 3.5-60

-50

-40

-30

-20

-10

0

10

20

30

(radianes/muestra)

Am

plitu

d (d

B)

|H(ej )|

|Y(ej )|

Page 31: 17 Diseño de filtros FIR de fase lineal mediante ventanas

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.