determinacion de coeficientes lpc en …148.206.53.84/tesiuami/uami12902.pdf · iv. 1 la...

38
DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006

Upload: vuongtuyen

Post on 03-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

División de Ciencias Básicas e Ingeniería Departamento de Ingeniería Eléctrica

Proyecto Final de Ingeniería Electrónica

“Determinación de coeficientes lpc en tiempo real utilizando un DSP de TI, para señales de voz”

P r e s e n t a

Juan Manuel Ortiz Soriano

Asesor: Dr. Enrique Escamilla Hernández

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 2

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

ÍNDICE

ÍNDICE.................................................................................................................................. 3

INTRODUCCIÓN ................................................................................................................. 4

CAPITULO I. La Predicción Lineal..................................................................................... 6 I.1 Correlación de señales............................................................................................... 6 I.1.1 Autocorrelación y correlación cruzada .................................................................. 6 I.1.2 La secuencia de autocorrelación ............................................................................ 8 I.2 La predicción lineal................................................................................................. 10 I.2.1 Predicción lineal hacia delante y hacia atrás........................................................ 10 I.2.2 Predicción lineal hacia delante............................................................................. 10 I.2.3 Predicción lineal hacia atrás................................................................................. 13 I.3 Los coeficientes de reflexión óptimos..................................................................... 16 I.4 El algoritmo de Levinson-Durbin ........................................................................... 17

CAPITULO II. El Ventaneo ............................................................................................... 22 II.1 Funciones de ventana............................................................................................. 22 II.2 Diferentes tipos de Ventanas ................................................................................. 23 II.2.1 Ventana rectangular ............................................................................................ 23 II.2.2 Ventana de Hanning............................................................................................ 24 II.2.3 Ventana de Hamming ......................................................................................... 24 II.2.4 Ventana Blackman.............................................................................................. 25 II.2.5 Ventana Blackman-Harris o Blackman 4 términos ............................................ 26 II.2.6 Ventana Kaiser-Bessel ........................................................................................ 26 II.2.7 Ventana Gauss .................................................................................................... 27 II.2.8 Ventana Bernstein-Rogozinskii .......................................................................... 28 II.2.9 Ventana Dolph-Chebyshev ................................................................................. 29

CAPITULO III. Determinación de los Coeficientes de Predicción Lineal ....................... 30 III.1 El manejo de la señal ............................................................................................ 30 III.2 La técnica de procesamiento................................................................................. 30 III.3 El procedimiento utilizado.................................................................................... 31

CAPITULO IV. Resultados................................................................................................. 34 IV. 1 La simulación en MATLAB................................................................................ 34 IV.2 SIMULINK .......................................................................................................... 35

CAPITULO V. Conclusiones .............................................................................................. 37

CAPITULO VI. Referencias ............................................................................................... 38

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 3

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

INTRODUCCIÓN Cuando era niño, me gustaba observar la naturaleza y sobretodo me imaginaba como era en tiempos pasados cuando la mano del hombre no la había alcanzado. Desde su existencia el hombre ha tratado de explicar a la naturaleza de diferentes formas e inventado tecnología para lograr este propósito. En la actualidad una de las técnicas mas diseminadas en el estudio e interpretación de la naturaleza es por medio de señales, esto es, que cualquier objeto en el universo que se mueve genera señales y estas pueden ser interpretadas de diferentes formas. Pero lo mas importante es como podemos modelar los movimientos naturales y darles la interpretación de señales. Por ejemplo, un pez al nadar mueve sus músculos y en consecuencia el agua que le rodea, este movimiento se propaga a través del agua hasta que la energía se disipa en la inmensidad del océano; hoy en día sabemos que el movimiento del pez genera una señal de tipo “senoidal” que se transmite al agua y que se puede percibir en forma de ondas u olas, si el pez esta lo suficientemente cerca de la superficie del agua. Así como el pez genera señales en su movimiento nosotros también, la diferencia radica en el medio que nos rodea que en ocasiones hace un poco mas difícil de percibir estas señales. El hablar se considera uno de nuestros movimientos y la forma en que percibimos esta señal es por medio del oído. Nuestra boca es un ingenioso dispositivo creado por la naturaleza que nos permite emitir señales llamadas “voz”. La voz es uno de los medios de comunicación más importantes que ha desarrollado el hombre por lo cual a través del tiempo se ha estudiado y tratado de caracterizar (medir) para tener un modelo de su comportamiento. Actualmente con la ayuda de dispositivos electrónicos, cada vez más sofisticados, se ha tratado de emular el tracto vocal que crea y emite los sonidos que componen la voz. Así mismo, por medio de dispositivos se ha tratado de verificar e identificar la voz de las personas, para lo cual se han diseñado y perfeccionado algoritmos computacionales que permiten realizar grandes cantidades de operaciones en muy poco tiempo lo que da como resultado identificaciones y/o verificaciones en tiempo real. Hoy en día el verificar e identificar (reconocer) a un usuario de cualquier sistema es una de las herramientas de seguridad de cualquier empresa, ya que, permite tener la certeza de que el operador del sistema esta autorizado para realizar alguna tarea en específico. Entre las diferentes técnicas de reconocimiento tenemos: reconocimiento facial, reconocimiento dactilar, reconocimiento de iris, reconocimiento de ADN, reconocimiento de voz, entre otros.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 4

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Para el reconocimiento de voz se trabajan diferentes técnicas que permiten identificar a un hablante de entre varios. Los sistemas utilizados, básicamente se componen de un micrófono y un banco de datos o diccionario, que se creo previamente por el usuario. Las técnicas de reconocimiento son de dos tipos, de identificación y de verificación. En la identificación, el sistema decide si el hablante esta o no en el banco de datos conformado por un grupo de personas y por lo tanto identificar de quien se trata. En el caso de la verificación, el sistema tiene que verificar si el hablante es quien dice ser. El individuo es aceptado por el sistema si se trata de la misma persona quien dice ser o es rechazado si se trata de un impostor. Una parte fundamental del reconocimiento de hablantes es la determinación de los coeficientes de predicción lineal (LPC), que permiten obtener, por técnicas matemáticas, los vectores que darán por resultado el diccionario o banco de datos del hablante, lo que a su vez, permitirá realizar la verificación del mismo en el futuro. El presente trabajo trata acerca de la obtención de los coeficientes de predicción lineal (LPC’s) basado en el algoritmo de Levinson-Durbin, para ello se utilizan dos herramientas: una, la simulación por medio del software MATLAB y sus aplicaciones (SIMULINK), la otra, la implementación en tiempo real utilizando un dispositivo llamado Procesador Digital de Señales de punto flotante (DSP) de Texas Instruments (TI) [TMS320C6711]. El capitulo I trata acerca de la predicción lineal, sus características, sus aplicaciones y las diferentes formas de obtenerla. En el capitulo II hablamos del ventaneo que es una técnica que permite disminuir el efecto de los bordes de una señal. En el capitulo III se describe la forma en que se obtienen los coeficientes de predicción lineal (LPC’s), primero se describe el proceso de simulación y las herramientas utilizadas para continuar con la aplicación en el TMS320C6711. La señal con que se trabajará, ya viene preprocesada, esto es, ya paso por técnicas de muestreo, amplificación y filtrado de tal manera que solo se reciben señales sin ruido y con el preenfasis necesario para obtener los LPC’s. A su vez, estos LPC’s serán entregados a una tercera etapa para conformar todo el sistema de verificación del hablante. En tanto en el capitulo IV se presentan los resultados obtenidos en ambos procesos, simulación y aplicación. Aunado a lo anterior, en el capitulo V se exponen las conclusiones del trabajo. Finalmente en el capitulo VI se proporciona la bibliografía utilizada para la realización del presente.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 5

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

CAPITULO I. La Predicción Lineal

I.1 Correlación de señales Una operación matemática muy parecida a la convolución es la correlación. Al igual que en el caso de la convolución, la correlación es una operación entre dos secuencias. Pero al contrario que la convolución, el objetivo de la correlación es medir el parecido que existe entre dos señales y así extraer información que dependera de la aplicación concreta considerada. La correlación de señales es una operación que se realiza con frecuencia en distintas áreas de la ingeniería y la ciencia. En concreto, supongamos que tenemos dos secuencias x(n) e y(n) que queremos comparar. En radar, por ejemplo, x(n) puede representar muestras de la señal que transmitimos e y(n) muestras de la señal que recibimos a la salida del conversor analógico-digital (A/D). Si existe un blanco en el espacio explorado por el radar, la señal recibida y(n) es una versión retardada de la señal transmitida, reflejada por el blanco y corrompida por ruido aditivo. Podemos representar la señal recibida como

y(n) = αx(n-D) + w(n) (1.1) donde α es un factor de atenuación que contiene las perdidas debidas al trayecto de ida y vuelta recorrido por la señal x(n), D es el retardo debido al trayecto de ida y vuelta y se supone que es un múltiplo entero del intervalo de muestreo, y w(n) representa el ruido aditivo captado por la antena y cualquier otra componente de ruido generada por los componentes electrónicos y los amplificadores del receptor. Por otro lado, si no existe ningún blanco en el espacio explorado, la señal recibida constará únicamente de ruido. Teniendo las dos secuencias, x(n), que se denomina señal de referencia, e y(n), la señal recibida, el problema radar consiste en determinar si existe algún blanco comparando x(n) con y(n) y, si es así, determinar el retardo en el tiempo D y a partir de él la distancia a la que se encuentra el blanco. En la practica, la señal x(n-D) se encuentra fuertemente corrompida por ruido, de manera que la observación visual de y(n) no permite determinar la presencia o ausencia de blanco. La correlación nos proporciona una forma de extraer esta información de y(n).

I.1.1 Autocorrelación y correlación cruzada Suponga que tenemos dos secuencias reales x(n) e y(n). La correlación cruzada de las secuencias, es la secuencia rxy(l), que se define como

∑∞

−∞=

−=n

xy lnynxlr )()()( l = 0,±1,±2,... (1.2)

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 6

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

o, equivalentemente, como

∑∞

−∞=

+=n

xy nylnxlr )()()( l = 0,±1,±2,... (1.3)

el índice l es el parámetro de desplazamiento o retardo en el tiempo y los subíndices xy de la secuencia de autocorrelación rxy(l) indican las señales que han sido correladas. El orden de los subíndices, con x precediendo a y indica la dirección en que una secuencia es desplazada con respecto a la otra. Es decir, la secuencia x(n) no se desplaza y la secuencia y(n) se desplaza l muestras hacia la derecha si l es positivo y l muestras a la izquierda si l es negativo. De forma análoga, en (1.3) la secuencia y(n) no se desplaza y lo hace la secuencia x(n) l muestras hacia la izquierda si l es positivo y l hacia la derecha si l es negativo. Desplazar x(n) l muestras hacia la izquierda con relación a y(n) es equivalente a desplazar y(n) l muestras hacia la derecha con relación a x(n), de aquí que (1.2) y (1.3) produzcan idénticas secuencias de correlación cruzada. Si invertimos los papeles de x(n) e y(n) en (1.2) y (1.3) y por tanto, invertimos también el orden de los subíndices xy, obtenemos la secuencia de correlación cruzada

∑∞

−∞=

−=n

yx lnxnylr )()()( (1.4)

o, equivalentemente

∑∞

−∞=

+=n

yx nxlnylr )()()( (1.5)

comparando (1.2) con (1.5) o (1.3) con (1.4), concluimos que

)()( ll rr yxxy −= (1.6) por tanto, ryx(l) es simplemente la versión reflejada de rxy(l), donde la reflexión se hace con respecto a l=0. En el caso especial de que y(n) = x(n), tenemos la autocorrelación de x(n) que se define como la secuencia

∑∞

−∞=

−=n

xx lnxnxlr )()()( (1.7)

o, equivalentemente, como

∑∞

−∞=

+=n

xx nxlnxlr )()()( (1.8)

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 7

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Al tratar con señales de duración finita es costumbre expresar tanto la autocorrelación como la correlación cruzada mediante sumatorios finitos. En particular, si x(n) e y(n) son secuencias causales de longitud N (es decir, x(n) = y(n) = 0 para n<0 y n≥N), la autocorrelación y la correlación cruzada pueden expresarse como

∑−−

=

−=1

)()()(kN

inxy lnynxlr (1.9)

y

∑−−

=

−=1

)()()(kN

inxx lnxnxlr (1.10)

donde i = l, k = 0 para l ≥ 0, e i = 0, k = l para l < 0.

I.1.2 La secuencia de autocorrelación Cuando la densidad espectral de potencia del proceso aleatorio estacionarios es una función racional, existe una relación básica entre la secuencia de autocorrelación {γxx(m)} y los parámetros {ak} y {bk} del filtro lineal que genera el proceso filtrando la secuencia de ruido blanco w(n). Así tenemos

[ ] [ ] [∑∑==

−−+−−−=−q

kk

p

kk mnxknwEmnxknxEmnxnxE ba

0

*

1

** )()()()()()( ] (1.11)

por lo tanto,

∑∑==

−+−−=q

kwxk

p

kxxkxx

kmkmm ba01

)()()( γγγ (1.12)

donde γwx(m) es la secuencia de correlación cruzada entre w(n) y s(n). La correlación cruzada γwx(m) se relaciona con la respuesta impulsional del filtro. Esto es,

[ ]

)(

)()()(

)()()(

2

0

*

*

mh

mnwknwkhE

mnwnxEm

w

k

wx

−=

⎥⎦

⎤⎢⎣

⎡+−=

+=

∑∞

=

σ

γ (1.13)

donde, en el ultimo paso hemos usado el hecho de que la secuencia w(n) es blanca. Por lo tanto,

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 8

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

⎩⎨⎧

≤−>

=0)(0,0

)( 2 mmhm

mw

wx σγ (1.14)

combinando (1.14) y (1.12), obtenemos la relación deseada

⎪⎪⎪

⎪⎪⎪

<−

≤≤+−−

>−−

= ∑ ∑

=

=+

=

0)(

0,)()(

),(

)(*

1 0

2

1

mm

qmkhkm

qmkm

m

xx

p

k

mq

kmkwxxk

p

kxxk

xx ba

a

γσγ

γ

γ (1.15)

Esto representa una relación no lineal entre γxx(m) y los parámetros {ak} y {bk}. Para un proceso autoregresivo AR, (1.15) se simplifica a

⎪⎪⎪

⎪⎪⎪

<−

=+−−

>−−

= ∑

=

=

0)(

0,)(

0),(

)(*

1

2

1

mm

mkm

mkm

m

xx

p

kwxxk

p

kxxk

xx a

a

γσγ

γ

γ (1.16)

Así, tenemos una relación lineal entre γxx(m) y los parámetros {ak}. Estas ecuaciones, denominadas las ecuaciones de Yule-Walker, se pueden expresar en la forma matricial

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

−−

+−−

−−−

0

0

1

)0()2()1()(

)1()1()0()1(

)()2()1()0( 2

1

ΜΜ

ΛΜΜΜΜ

Λ

Λ σ

γγγγ

γγγγγγγγ

w

pxxxxxxxx

xxxxxxxx

xxxxxxxx

a

a

ppp

p

p

(1.17)

Esta matriz de correlación es Toeplitz, y , por lo tanto, se puede invertir. Finalmente, haciendo ak = 0,1 ≤ k ≤ p, h(k) = bk, 0 ≤ k ≤ q, en (1.15), obtenemos las relaciones para la secuencia de autocorrelación en el caso de un proceso de medias móviles MA, a saber,

⎪⎪

⎪⎪

<−

>

≤≤

=

∑=

+

0),(,0

0,

)(*

1

2

mmqm

qm

m

xx

p

kmkkw

xx

bb

γ

σγ (1.18)

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 9

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

I.2 La predicción lineal El diseño de filtros para realizar estimación de señales es un problema que aparece frecuentemente en el diseño de sistemas de comunicación, sistemas de control, en geofísica y en muchas otras cosas. En las paginas siguientes se presenta el diseño de los filtros óptimos para la predicción lineal. La predicción lineal es un tema importante en el procesamiento digital de señales con una gran variedad de aplicaciones, tales como las señales de voz, procesado de imágenes y supresión de ruido en sistemas de comunicación. Una decisión muy importante es la elección del filtro lineal óptimo para la predicción, para ello, debemos resolver una serie de ecuaciones lineales que tienen una simetría especial. Para obtener la solución de estas ecuaciones se pueden utilizar dos algoritmos, el algoritmo Levinson-Durbin y el algoritmo de Schür, que proporcionan la solución a las ecuaciones a través de procedimientos eficientes de cálculo que explotan las propiedades de simetría. En el presente trabajo solo mencionaremos el algoritmo Levinson-Durbin.

I.2.1 Predicción lineal hacia delante y hacia atrás La predicción lineal es un tema importante en el procesado digital de señales con muchas aplicaciones prácticas. A continuación se considerará el hecho de predecir linealmente el valor de un proceso aleatorio estacionario tanto hacia delante como hacia atrás en el tiempo. Lo anterior conduce a la construcción de estructuras de filtro en celosía y conexiones con modelos paramétricos de la señal.

I.2.2 Predicción lineal hacia delante Comencemos con querer conocer el valor futuro de un proceso aleatorio estacionario a partir de las observaciones de valores pasados del proceso. Considerando el predictor lineal hacia delante de una muestra, que forma la predicción del valor s(n) mediante una combinación lineal ponderada de los valores pasados s(n-1),s(n-2),...s(n-p). En consecuencia, el valor predicho linealmente de s(n) es:

∑=

−−=p

kp knskns a

1)()()(ˆ (1.19)

donde los {-ak} representan los pesos de la combinación lineal. Estos pesos se denominan los coeficientes de predicción del predictor lineal hacia delante de una muestra de orden k. El signo negativo en la definición de s(n) es una conveniencia matemática y esta de acuerdo con la practica habitual en la literatura técnica. En la figura I.1 se representa la predicción lineal hacia delante.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 10

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

z-1 Predictor lineal haciadelante

+

s(n)s(n-1)

fp(n)s(n) +

-

Figura I.1 Predicción lineal hacia delante. La diferencia entre el valor s(n) y el valor predicho ŝ(n) se denomina el error de predicción hacia delante, denotado como fp(n):

fp(n) = s(n)- ŝ(n)

(1.20) ∑=

−+=p

k

k

p za kns1

)()(

Vemos la predicción lineal como una equivalencia en la que el predictor esta imbuido en el filtro lineal, como se ve en la figura I.1. Esto se denomina un filtro de error de predicción con secuencia de entrada {s(n)} y secuencia de salida {fp(n)}. Una realización equivalente para el filtro de error de predicción se muestra en la figura I.2. Esta figura muestra un filtro FIR (Finite Impulse Respond)_[Respuesta Finita al Impulso] en forma directa con función de transferencia

∑=

−=p

k

k

pp zaA kz0

)()( (1.21)

donde por definición, ap(0)=1.

+

z-1 z-1 z-1 z-1

fp(n)

s(n)

1 ap(1) ap(2) ap(3) ap(p-1) ap(p)

Figura I.2. Filtro de error de predicción

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 11

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

El filtro FIR es equivalente al filtro en celosía todo ceros. El filtro en celosía se describe mediante el siguiente conjunto de ecuaciones recursivas de orden descendente

f0(n) = g0(n) = s(n) fm(n) = fm-1(n) + Kmgm-1(n-1) m=1,2,…….,p (1.22) gm(n) = K*mfm-1(n) + gm-1(n-1) m=1,2,…….,p

donde {Km} son los coeficientes de reflexión y gm(n) es el error de predicción hacia atrás que vamos a definir. Podemos ver que para datos complejos usamos el conjugado de Km en la ecuación de gm(n). La figura I.3 muestra un filtro en celosía de p etapas en diagrama de bloques junto con una etapa que muestra los cálculos dados por (1.22).

Primeraetapa

Segunda etapa

p-ésimaetapag2(n)

f2(n)

x(n)

f1(n)

g1(n)

f0(n)

g0(n)

fp(n)

gp(n)

+

+

fm(n)

gm(n)gm-1(n)z-1

fm-1(n)

K*m

Km

Figura I.3. Etapa p del filtro en celosía Como consecuencia de la equivalencia del filtro FIR de error de predicción en forma directa y el filtro FIR en celosía, la salida de la etapa p-ésima, se expresa como

∑ −=

=p

kpp knxaf kz

0)()()( ap(0)=1 (1.23)

como (1.23) es una convolución, la relación en la transformada z es

Fp(z) = Ap(z)X(z) (1.24) El valor cuadrático medio del error de predicción lineal hacia delante fp(n) es

( ) ( )∑∑∑= ==

−+⎥⎦

⎤⎢⎣

⎡+=

⎥⎦

⎤⎢⎣

⎡=

p

k

p

lxxpp

p

kxxpxx

p

f

p

klklkk

nE

aaa

f

1 1

*

0

*

2

)()()(Re2)0(

)(

γγγ

ε (1.25)

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 12

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

ε f

p es una función cuadrática de los coeficientes del predictor y su minimización lleva al

conjunto de ecuaciones lineales

∑=

−−=p

kxxpxx

klkl a1

)()()( γγ l = 1,2,...,p (1.26)

Estas ecuaciones se denominan las ecuaciones normales para los coeficientes del predictor lineal. El mínimo error cuadrático de predicción es

[ ] ∑Ε=

−+=≡p

kxxpxx

fp

f

p kka1

)()()0(min γγε (1.27)

I.2.3 Predicción lineal hacia atrás Supongamos que tenemos la secuencia de datos s(n), s(n-1),....,s(n-p+1) a partir de un proceso aleatorio estacionario y deseamos predecir el valor s(n-p) del proceso. Ahora utilizamos un predictor lineal hacia atrás de una muestra de orden p. Por lo tanto

∑−

=

−−=−1

0)()()(ˆ

p

kp knskpns b (1.28)

La diferencia entre el valor s(n-p) y el estimado ŝ(n-p) se denomina el error de predicción, denotado como gp(n):

=

=

−=

−+−=

p

kp

p

kpp

knxk

knskpnxn

b

bg

0

1

0

)()(

)()()()( bp(p) = 1 (1.29)

El predictor lineal hacia atrás se puede lograr tanto con una estructura de filtro FIR de forma directa similar a la mostrada en la figura I.1 o con una estructura en celosía. La estructura en celosía mostrada en la figura I.3 proporciona tanto el predictor lineal hacia atrás como el predictor lineal hacia delante. Los coeficientes de ponderación en el predictor lineal hacia atrás son los complejos conjugados de los coeficientes para el predictor lineal hacia delante, pero ocurren en orden inverso. Asi, tenemos

bp(k) = a*p(p-k) k=0,1,…..,p (1.30) en el dominio z, la convolución se convierte en

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 13

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Gp(z) = Bp(z)X(z) (1.31)

Donde Bp(z) representa la función de transferencia del filtro FIR con coeficientes bp(k). Como bp(k)=a*(p-k), Gp(z) se relaciona con Ap(z):

( )

( )zAz

zaz

za

zbB

pp

p

k

k

p

p

p

k

k

p

p

k

k

pp

k

kp

knskz

1*0

*

0

*

0

)(

)(

)()(

−−

=

=

=

=

=

−=

−=

(1.32)

La relación en (1.32) implica que los ceros del filtro FIR con función de transferencia Bp(z) son los recíprocos (conjugados) de los ceros de Ap(z). Por lo tanto, Bp(z) se denomina el polinomio inverso o recíproco de Ap(z). Volviendo a las ecuaciones recursivas de la celosía y transformándolas ala dominio de z, tenemos

F0(z) = G0(z) = X(z) Fm(z) = Fm-1(z) + Kmz-1Gm-1(z) m=1,2,…….,p (1.33) Gm(z) = K*mFm-1(z) + z-1Gm-1(z) m=1,2,…….,p

si dividimos cada ecuación por X(z), obtenemos los resultados deseados en la forma

A0(z) = B0(z) = 1 Am(z) = Am-1(z) + Kmz-1Bm-1(z) m=1,2,…….,p (1.34) Bm(z) = K*mAm-1(z) + z-1Bm-1(z) m=1,2,…….,p

Así, un filtro en celosía se describe en el dominio de z mediante la ecuación matricial

( )⎥⎦

⎤⎢⎣

⎥⎥⎦

⎢⎢⎣

⎡=⎥

⎤⎢⎣

−−

)()(1

)( 1

11*

1

zz

zz

BA

zKzK

BA

m

m

m

m

m

m (1.35)

Las relaciones en (1.33) para Am(z) y Bm(z) nos permiten obtener los coeficientes del filtro FIR en forma directa {am(k)} a partir de los coeficientes de reflexión {Km}, y viceversa. La estructura en celosía con parámetros K1, K2,....Kp se corresponde a una clase de p filtros FIR con funciones de transferencia A1(z), A2(z),...,Ap(z). Una caracterización de p filtros FIR en forma directa requiere p(p+1)/2 coeficientes del filtro. En cambio, la caracterización en celosía requiere solo los p coeficientes de reflexión {Ki}. La razón de que la celosía proporcione una representación más compacta para la clase de p filtros FIR es que

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 14

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

añadiendo etapas a la celosía no se alteran los parámetros de las etapas previas. Por otro lado, añadiendo la etapa p-ésima a una celosía con (p-1) etapas es equivalente a incrementar la longitud de un filtro FIR por un coeficiente. El filtro FIR resultante tiene con función de transferencia Ap(z) tiene coeficientes totalmente diferentes de los coeficientes del filtro FIR de menor orden con función de transferencia Ap-1(z). La fórmula para determinar los coeficientes del filtro {ap(k)} recursivamente se deriva a partir de las relaciones polinómicas (1.34), así

∑∑∑−

=

+−

=

−=

−−+=

+=1

0

)1(*

1

1

01

0

11

1

)1()()(

)()()(m

k

k

mm

m

k

k

m

m

k

k

m

mmmm

zaKzazaBzKAA

kmkk

zzz (1.36)

Igualando los coeficientes de las mismas potencias de z-1 y recordando que am(0)=1 para m=1,2,....,p, obtenemos las ecuaciones recursivas para los coeficientes del filtro FIR en la forma

am(0) = 1 am(m) = Km (1.37) am(k) = am-1(k)+ Kma*m-1(m-k) = am-1(k)+ am(m)a*m-1(m-k) 1 ≤ k ≤ m-1

m = 1,2,…,p la formula de conversión de los coeficientes del filtro FIR en forma directa {ap(k)} a los coeficientes de reflexión de la celosía {Ki} también es muy simple. Para la etapa p-ésima de la celosía obtenemos inmediatamente el coeficiente de reflexión Kp = ap(p). Para obtener Kp-1,...,K1, necesitamos los polinomios Am(z) para m=p-1,...,1. a partir de (1.35) obtenemos

211

)()()(

KBKAA

m

mmmm

zzz

−=

− m = p,...,1 (1.38)

que es una recursión en orden descendente. Ahora se calculan todos los polinomios de menor grado Am(z) empezando con Ap-1(z) y obtenemos los coeficientes de reflexión de la celosía deseados a partir de la relación Km = am(m). El procedimiento funciona mientras │Km│≠1 para m = 1,2,...,p-1. a partir de esta recursión en orden descendente se puede obtener una fórmula para calcular recursiva y directamente Km, m = p-1,...,1. Para m = p-1,...,1 tenemos

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 15

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

2

*

21

)(1

)()()(

1

)()()(

)(

m

kmmk

kkk

m

aaaaK

bKaa

aK

m

mmm

m

mmmm

mm

−−=

−=

=

− (1.39)

que es la recursión en el test de estabilidad Schür-Cohn para el polinomio Am(z). Si ocurre que │Km│=1, indica que el polinomio Am-1(z) tiene una raíz localizada en el circulo unitario. Esta raíz se puede factorizar en Am-1(z) y el proceso iterativo en (1.39) se puede llevar a cabo para el sistema de orden reducido. Finalmente, consideramos la minimización del error cuadrático medio en un predictor lineal hacia atrás. El error de predicción hacia atrás es

=

=

+−+−=

−+−=

p

kp

p

kpp

kpnskpns

knskpnsn

a

bg

1

*

1

0

)()()(

)()()()( (1.40)

y su valor cuadrático medio es

⎥⎦

⎤⎢⎣

⎡=2

)(nE g p

b

pε (1.41)

La minimización de con respecto a los coeficientes de predicción produce el mismo

conjunto de ecuaciones lineales que (1.29). En consecuencia, el mínimo error cuadrático medio es

ε b

p

[ ] EE f

pbp

b

p=≡εmin (1.42)

I.3 Los coeficientes de reflexión óptimos En los apartados anteriores obtuvimos las ecuaciones lineales para los coeficientes de predicción que minimizan el valor cuadrático medio del error de predicción. Ahora veremos el problema de optimizar los coeficientes de reflexión en el predictor en celosía y los expresamos en función de los errores de predicción hacia delante y hacia atrás. El error de predicción hacia delante en el filtro en celosía se expresa como

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 16

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

fm(n) = fm-1(n) + Kmgm-1(n-1)

La minimización de E[│fm(n)│2] con respecto a los coeficientes de reflexión Km produce el resultado

⎥⎦⎤

⎢⎣⎡ −

⎥⎦⎤

⎢⎣⎡ −−

=

−−

2

1

*

11

)1(

)1()(

nE

nnE

g

gfK

m

mm

m (1.43)

o, equivalentemente

EEgf

K bm

fm

mm

m

nnE

11

*

11)1()(

−−

−− ⎥⎦⎤

⎢⎣⎡ −−

= (1.44)

donde Ef

m-1 = Ebm-1 = E[│gm-1(n-1)│2] = E[│fm-1(n)│2].

Se observa que la elección óptima de los coeficientes de reflexión en el predictor en celosía es el negativo de los coeficientes de correlación cruzada (normalizados) entre los errores hacia delante y hacia atrás de la celosía1. Se puede observar que el mínimo valor cuadrático medio del error de predicción, se expresa en forma recursiva como Ef

m = (1-│Km │2)Efm-1 │ Km │≤1 (1.45)

I.4 El algoritmo de Levinson-Durbin El algoritmo Levinson-Durbin es un algoritmo computacionalmente eficiente para resolver las ecuaciones normales en (1.46) para los coeficientes de predicción.

1)0(,...,2,1

0)()(0

=

=

=−∑=

a

a

p

p

kxxp

pl

klk γ (1.46)

El algoritmo explota la simetría especial en la matriz de autocorrelación

1 Los coeficientes normalizados de correlación cruzada entre el error hacia delante y hacia atrás en la celosía (es decir, {-Km}) se denominan a menudo los coeficientes de correlación parcial (PARCOR).

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 17

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

−−

=Γ)0()2()1(

)2()0()1(

)1()1()0(*

**

γγγ

γγγγγγ

xxxxxx

xxxxxx

xxxxxx

p

pp

p

p

ΛΜΜ

Λ

Λ

(1.47)

Debemos notar que Γp(i,j) = Γp(i-j), así, la matriz de autocorrelación es una matriz Toeplitz, como Γp(i,j) = Γ*p(i,j), la matriz también es hermítica. La clave de la solución del método de Levinson-Durbin, consiste en proceder recursivamente empezando con un predictor de orden m=1 (un coeficiente) y después incrementar el orden recursivamente, usando las soluciones de orden menor para obtener la solución al siguiente orden superior. La solución al predictor de primer orden al resolver (1.46) es

)0(

)1()1(1 γ

γxx

xxa −= (1.48)

Y el mínimo error cuadrático medio es

)1()1()0(11 −+= γγ xxxx

f aE (1.49)

Recordar que a1(1)=K1, el primer coeficiente de reflexión en el filtro en celosía. El siguiente paso es resolver para los coeficientes {a2(1), a2(2)} del predictor de segundo orden y expresar la solución en función a1(1). Las ecuaciones obtenidas son

)2()0()2()1()1(

)1()1()2()0()1(

22

*

22

γγγγγγ

xxxxxx

xxxxxx

aaaa

−=+

−=+ (1.50)

Por medios algebraicos y utilizando los resultados anteriores obtenemos la solución

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

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

*

1212

1

12

aaaaEaa f

xxxx

+=

+=

γγ (1.51)

De esta forma encontramos los coeficientes del predictor de segundo orden.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 18

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Procediendo de esta forma, podemos expresar los coeficientes del predictor de orden m en función de los coeficientes del predictor de orden m-1. Ahora escribimos el vector de coeficientes am como la suma de dos vectores,

⎥⎥⎥

⎢⎢⎢

+⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=−−

K

da

a

aa

am

mm

m

m

m

m

m

ΚΚΜ

11

0)(

)2()1(

(1.52)

Donde am-1 es el vector de coeficientes de predicción del predictor de orden m-1 y el vector dm-1 y el escalar Km tienen que ser determinados. Dividiendo la matriz de autocorrelación mxmΓxx como

⎥⎥

⎢⎢

⎡=

−−ΓΓ)0(

1

*

11

γγγ

xx

bt

m

b

mmm (1.53)

Donde γbt

m-1 = [γxx(m-1) γxx(m-2) ... γxx(1)] = (γbm-1)t, el asterisco (*) denota el complejo

conjugado, y γtm denota la traspuesta de γm. El superíndice b en γm-1 denota el vector γt

m-

1=[γxx(1) γxx(2) ... γxx(m-1)] con elementos tomados en orden inverso. La solución a la ecuación Γmam= -γm se expresa como

⎥⎥⎦

⎢⎢⎣

⎡−=

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡⎥⎥

⎢⎢

⎡−−−

−−Γ)(0)0(

111

1

*

11

mxx

m

m

mm

xx

bt

m

b

mm

Kda

γγ

γγγ

(1.54)

Este es el paso clave en el algoritmo de Levinson-Durbin, con ello obtenemos dos ecuaciones

γγ 1

*

11111 −−−−−−−=++ ΓΓ m

b

mmmmmm Kda (1.55)

)()0(1111

mxxxxmm

bt

mm

bt

m Kda γγγγ −=++−−−−

(1.56)

Como Γm-1am-1= -γm-1, (1.55) produce la solución

γ *

1

111

b

mmmm Kd −

−− Γ−= (1.57)

Pero γb*

m-1es exactamente γm-1 con los elementos tomados en orden inverso y conjugados. Así, la solución en (1.57) es

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 19

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

==

−−

)1(

)2()1(

*

1

*

1

*

1

*

11

a

aa

KaKdm

m

m

m

b

mmm

mm

Μ (1.58)

La ecuación escalada (1.56) se puede usar para obtener Km. Si eliminamos dm-1 en (1.56) usando (1.58), obtenemos

aaK b

m

bt

mxx

m

bt

mxxm

m*

11

11

)0(

)(

−−

−−

+

+−=

γγγγ

(1.59)

Sustituyendo las soluciones de (1.58) y (1.59) en (1.52), obtenemos la recursión deseada para los coeficientes predictores en el algoritmo de Levinson-Durbin como

Ea

aaKa f

m

m

bt

mxxb

m

bt

mxx

m

bt

mxxmm

mmm 11

*

11

11)(

)0(

)()( −−

−−

−−+

−=+

+−==

γγγγγγ

(1.60)

)()()(

)()()(*

11

*

11

kmmk

kmkk

aaaaKaa

mmm

mmmm

−+=

−+=

−−

−−

pm

mk,...,2,1

1,...,2,1=

−= (1.61)

Finalmente, determinemos la expresión para el mínimo error cuadrático medio. Para el predictor de orden m, obtenemos

[ ] = (1.62)

)1()(1

)()()()()0(

)()()0(

2

1

2

1

1

*

11

1

KEaE

aaa

aE

mfmm

fm

m

kxxmmmxx

m

kxxmxx

fm

m

kkmmk

kk

−=⎥⎦⎤

⎢⎣⎡ −=

−−++=

−+=

−−

=−−

=

γγ

γγ

pm ,...,2,1

Donde Ef

0 = γxx(0). Como los coeficientes de reflexión satisfacen la propiedad de que │Km │≤1, el mínimo error cuadrático medio para la secuencia de predictores satisface la condición

EEEE fp

fff ≥≥≥≥ Λ210 (1.63)

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 20

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Esto concluye la derivación del algoritmo de Levinson-Durbin para resolver las ecuaciones lineales Γmam = -γm, para m = 0,1,...,p. Observamos que las ecuaciones lineales tienen la propiedad especial de que el vector del lado derecho también aparece como un vector en Γm. La recursión de Levinson-Durbin dada por (1.61) requiere O(m) multiplicaciones y sumas (operaciones) para pasar de la etapa m a la etapa m+1. Para p etapas requiere del orden de 1+2+3+...+p(p+1)/2, o O(p2), operaciones para encontrar los coeficientes del filtro de predicción, o los coeficientes de reflexión, comparadas con O(p3) operaciones si no explotáramos la propiedad Toeplitz de la matriz de correlación. Si el algoritmo de Levinson-Durbin se implementa en una computadora en serie o procesador de señales, el cálculo requerido es del orden de O(p2) unidades de tiempo. Por otro lado, si el procesado se realiza en paralelo utilizando tantos procesadores como sea necesario para explotar el paralelismo completo en el algoritmo, las multiplicaciones y las sumas requeridas se pueden llevar a cabo simultáneamente; así, este cálculo se puede realizar en O(p) unidades de tiempo. Pero, el cálculo en (1.60) para los coeficientes lleva un tiempo adicional. Consecuentemente, los cálculos en el algoritmo de Levinson-Durbin, cuando se realizan mediante p procesadores en paralelo, se pueden lograr en O(plog[p]) unidades de tiempo.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 21

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

CAPITULO II. El Ventaneo

II.1 Funciones de ventana Se usan funciones de ventana (Ventanas) en análisis para reducir los efectos indeseables relacionados con la pérdida espectral. Estas ventanas impactan en muchos aspectos de los procesos armónicos; incluyen detectabilidad, resolución, intervalo dinámico, esperanza y facilidad de realización. Aunque una cierta porción de la influencia de los datos se elimina o se disminuye, y a pesar de la pérdida de resolución, estas ventanas son a menudo el mejor recurso para la valoración exacta de componentes espectrales, especialmente cuando es necesaria una alta gama dinámica. El uso de ventanas permite la disminución de los lóbulos laterales pero al mismo tiempo el ancho del lóbulo principal es aumentado y por lo tanto la resolución puntual es degradada. La elección de una ventana en particular es determinada por el compromiso entre el cambio en el nivel de ruido en el dominio de los lóbulos laterales. Así, si los componentes espectrales de la señal con respecto a las amplitudes, están situados en las vecindades y lejos de la componente débil, entonces pueden elegirse las ventanas con igual nivel en los lóbulos laterales. Señales con espectros suaves no requieren ningún tipo de ventana. Esencialmente una señal con Transformada de Fourier )(tf )(ωF limitada en banda puede ser descrita por un muestreo uniforme de datos . Estos datos definen el espectro periódicamente extendido por su expansión en serie de Fourier definida como:

)(nTf)(ωTF

dttjtfF ∫∞

∞−

−= )exp()()( ωω , (2.1)

∑∞

−∞=

−=n

T nTjnTfF )exp()()( ωω , (2.2)

∫−

=2

22)exp()()(

π

ππ

ωωω dtjFtf T , (2.3)

Con las siguientes propiedades ( ) ,0=ωF [ ]T

πω 221≥ ,

donde . )()( ωω FF T = La ecuación (2.1) en el caso de valores reales la sumatoria tiene que tener un número finito de términos. Lo cual se puede escribir de la siguiente forma:

∑+=

−=

−=2

2

)exp()()(N

N

n

n

nTjnTfF ωω , . (2.4) parN

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 22

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Modificando los índices de la sumatoria finalmente obtenemos

∑−

=

−=1

0)exp()()(

N

nkks nTjnTfF ωω , . (2.5) parN

donde: 1,,1,0,2 −== NkykNTk Κπω . Si aplicamos una ventana arbitraria a (2.1)

∑∞

−∞=

−=n

w nTjnTfnTwF )exp()()()( ωω , (2.6)

donde parNnnTw N ,,0)( 2>= y .0)(,),()( 22 =≠−= TwnnTwnTw NN Si examinamos la estimación espectral de la ventana aplicada, de (2.6) vemos que la transformada )(ωwF es la transformada de un producto. Como lo indica (2.7) es equivalente a la convolución de las transformadas correspondientes.

∫∞

∞−

−= πωω 2)()()( dxxWxFFw , (2.7)

ó )()()( ωωω WFFw ∗= . (2.8)

La ecuación (2.7) nos muestra los efectos del procesamiento de un número finito de datos. Donde el valor de )(ωwF para una ω en particular, es decir 0ωω = , es la suma de todas las contribuciones espectrales para cada ventana de ω para la ventana centrada a 0ω y medida en ω .

II.2 Diferentes tipos de Ventanas

II.2.1 Ventana rectangular La ventana rectangular es unitaria en el intervalo de observación, definida como:

( ) 1=nw . (2.9) La grafica y el espectro de esta ventana se muestran en la Figura II.1. y la Figura II.2. La amplitud máxima de los lóbulos laterales ocurre en el primer lóbulo el cual tiene una magnitud de 13.98 dB por debajo del pico del lóbulo principal. La pendiente de atenuación de los lóbulos es de 6 dB/octava, la ganancia de esta ventana es unitaria.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 23

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Figura II.1.Ventana rectangular.

Figura II.2. Espectro de ventana rectangular.

II.2.2 Ventana de Hanning La ventana Hanning llamada por su inventor Von Hann, tiene la forma de un ciclo de una onda cosenoidal, la cual puede ser escrita como la suma de secuencias indicada en la siguiente ecuación. Cada secuencia de esta ventana tiene una transformada de Fourier fácil de calcular, donde se puede observar que tenemos un pulso rectangular de amplitud 0.5 y la transformada de un coseno.

( ) ⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎠⎞

⎜⎝⎛

−−=

12cos15.0

Nnnw π . (2.10)

La ventana y el espectro se muestran en la Figura II.7 y la Figura II.8. La amplitud máxima de los lóbulos lateras es de 31.48 dB por debajo del lóbulo principal, la pendiente de atenuación de esta ventana es de 18 dB/octava, el ancho del lóbulo principal a los 3 dB de la amplitud máxima es de 1.48.

Figura II.3. Ventana de Hanning.

Figura II.4 Espectro de ventana de Hanning.

II.2.3 Ventana de Hamming

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 24

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

La siguiente ventana a considerar es la ventana de Hamming, que puede ser considerada como la ventana de Hanning modificada para eliminar mejor los lóbulos laterales; Durante muchos años considerada como la mejor ventana para el procesamiento digital de señales.

( ) ⎟⎠⎞

⎜⎝⎛

−−=

12cos46.054.0

Nnnw π , (2.11)

En la Figura II.5 y la Figura II.6 se muestran la ventana y el espectro de esta ventana. La amplitud máxima de los lóbulos laterales es de aproximadamente 42 dB.

Figura II.5 Ventana de Hamming.

Figura II.6 Espectro de ventana de

Hamming.

II.2.4 Ventana Blackman A continuación se muestra la ventana de Blackman

( ) ⎟⎠⎞

⎜⎝⎛

−+⎟

⎠⎞

⎜⎝⎛

−−=

14cos08.0

12cos5.042.0

Nn

Nnnw ππ

. (2.12)

La ventana y el espectro se muestran en la Figura II.7 y la Figura II.8 esta ventana tiene una amplitud máxima de los lóbulos laterales de -58.18 dB y un decrecimiento asintóticos de lóbulos laterales de -18 dB/oct.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 25

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Figura II.7 Ventana de Blackman. Figura II.8. Espectro de ventana Blackman.

II.2.5 Ventana Blackman-Harris o Blackman 4 términos Con la ventana Blackman de 4 términos se logra una mayor atenuación en los lóbulos laterales según la ecuación (2.13)

( ) ⎟⎠⎞

⎜⎝⎛

−−⎟

⎠⎞

⎜⎝⎛

−+⎟

⎠⎞

⎜⎝⎛

−−= n

Nn

Nn

Nnw

16cos01168.0

14cos14128.0

12cos48829.035875.0 πππ

.(2.1

3) La ventana y el espectro se muestran en la Figura II.9 y la Figura II.10. La amplitud máxima en los lóbulos laterales es de -98.28 dB.

Figura II.9 Ventana Blackman-Harris.

Figura II.10 Espectro de ventana Blackman-

Harris.

II.2.6 Ventana Kaiser-Bessel El compromiso entre la anchura del lóbulo principal y el área de los lóbulos laterales se puede cuantificar buscando la función de ventana que esté concentrada de forma máxima alrededor de 0=ω en el dominio de la frecuencia. Este asunto se ha considerado en

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 26

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

profundidad durante largo tiempo. Entre 1966 a 1974, Kaiser descubrió que se puede formar una venta cuasi-óptima utilizando la función de Bessel modificada de primera especie. Esta función ventana esta definida como:

( ) ( )α

α

o

o

I

NnI

nw⎟⎟

⎜⎜

⎛⎟⎠⎞

⎜⎝⎛ −

−−

=

2

11

21

. (2.14)

A diferencia de las otras ventanas, la ventana de Kaiser variando α se puede ajustar la amplitud de los lóbulos laterales y el ancho del lóbulo principal. La amplitud máxima de -28.78 dB y -40.28 dB en los lóbulos laterales se da para valores de

respectivamente. Ver Figuras II.11 a II.14. 53 == αα y

Figura II.11 Ventana Kaiser-Bessel, 3=α .

Figura II.12 Espectro de ventana Kaiser-Bessel,

con α =3.

Figura II.13 Ventana Kaiser-Bessel, 5.3=α .

Figura II.14 Espectro de ventana Kaiser-Bessel

con α=3.5.

II.2.7 Ventana Gauss

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 27

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

( ) ( )( )2/exp 2nTnw α−= . (2.15) En esta ventana de Gauss la amplitud máxima de lóbulos laterales es de -56.08 dB para

3=α , ver las Figuras 2.15 a 2.18.

Figura II.15 Ventana Gauss, 5.2=α .

Figura II.16 Espectro de ventana Gauss con

α=2.5.

Figura II.17 Ventana Gauss, 5.3=α .

Figura II.18 Espectro de ventana Gauss con

α=3.5.

II.2.8 Ventana Bernstein-Rogozinskii

( ) ⎟⎠⎞

⎜⎝⎛=

2cos nTnw π . (2.16)

La máxima amplitud en los lóbulos laterales de -23.19 dB, con una ganancia de la ventana de 0.6375. Ver Figuras 2.19 y 2.20

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 28

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Figura II.19 Ventana Bernstein-Rogozinskii.

Figura II.20 Espectro de ventana Bernstein-

Rogozinskii.

II.2.9 Ventana Dolph-Chebyshev La ventana de Dolph-Chebyshev es una excepción a todas las ventanas clásicas anteriores. Produce un pico lo más estrecho posible para un nivel de los lóbulos laterales dado (armónico adyacente). Construido en el dominio de la frecuencia, el control ajustable especifica este nivel lateral máximo del lóbulo directamente. Esta ventana está definida como (2.17). Con el valor 5.3=α obtenemos una máxima amplitud de los lóbulos laterales de 70 dB. Ver las Figuras 2.21 y 2.22.

( ) ( ) ( )[ ]⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎟⎟⎠

⎞⎜⎜⎝

⎛⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ −⋅

−= −−

α

α

β

πβ

11 2

1coscos1

chNchNnarN

Fnw n ( ) ⎥⎦⎤

⎢⎣⎡= − α

αβ 101 1chN

ch . (2.17)

Figura II.21 Ventana Dolph-Chebyshev.

Figura II.22 Espectro de ventana Dolph-

Chebyshev.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 29

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

CAPITULO III. Determinación de los Coeficientes de Predicción Lineal

III.1 El manejo de la señal La señal de voz básicamente está constituida por ondas de presión producidas por el aparato humano. La manera obvia de capturar este tipo de señal se realiza mediante un micrófono, el cual se encargará de convertir la onda de presión sonora en una señal eléctrica. La siguiente etapa será aquella que se encargue de amplificar las señales a niveles que sean manejables. La señal vocal tiene componentes frecuenciales que pueden llegar a los 10 kHz, sin embargo la mayor parte de los sonidos vocales tiene energía espectral significativa hasta los 5 kHz solamente los sonidos fricativos poseen componentes que pueden llegar a los 10 kHz. La frecuencia de muestreo dependerá del tipo de aplicación, para señales de voz se adopta un rango de 6 a 20 kHz dependiendo de la resolución que se desee. Otra consideración a tener en cuenta es la cuantificación de la señal, que involucra la conversión de la amplitud de los valores muestreados a forma digital usando un número determinado de bits. El número de bits usados afectará a la calidad de la voz muestreada y determinará la cantidad de información a almacenar. Para cada instante de muestreo, el convertidor analógico digital compara la señal muestreada con una serie de niveles de cuantificación predefinidos. El número de niveles N a usar determina la precisión del análisis y por tanto el número de bits necesarios Se hace necesario para el análisis realizar un preprocesamiento de la señal vocal. Esto se realiza a través de técnicas que permitan extraer la información acústica directamente a partir de la señal vocal emitida. Esto se realiza mediante la técnica de preénfasis. La etapa de preénfasis se realiza con el propósito de suavizar el espectro y reducir las inestabilidades de cálculo asociadas con las operaciones aritméticas de precisión finita. Además se usa para compensar la caida de -6 dB que experimenta la señal al pasar a través del tracto vocal. En la etapa siguiente, la señal preacentuada se toma cada 10ms por espacio de 20 ms y se la somete a una ventana de Hamming con el objeto de suavizar la señal en los bordes de dicha ventana.

III.2 La técnica de procesamiento Una de las técnicas más usadas en el procesamiento de señales de voz es el análisis de predicción lineal. Esta técnica ha probado ser muy eficiente debido a la posibilidad de

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 30

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

parametrizar la señal con un número pequeño de patrones con los cuales es posible reconstruirla adecuadamente. Los parámetros obtenidos mediante este método se caracterizan por variar lentamente durante las ventanas de tiempo de análisis. Mediante esta técnica podemos representar a la señal vocal mediante parámetros que varían en el tiempo y que están relacionados con la función de transferencia del tracto vocal y las características de la fuente sonora. Otra ventaja es que no requiere demasiado tiempo de procesamiento, lo que es importante a la hora de la implementación. El análisis de predicción lineal permite aproximar una señal a partir de señales pasadas. Existen dos métodos para calcular los LPC’s: autocorrelación y covarianza. Ambos se resumen en los siguientes pasos:

• El método de la autocorrelación: 1. Toma una ventana de voz y fuera de ella asume ceros. 2. Requiere proceso de ventaneo. 3. Da lugar a una matriz Toeplitz. 4. Los LPC’s pueden ser calculados eficientemente O(p2) mediante el

algoritmo de Levinson-Durbin. 5. Implementación en celosía a través de los PARCOR. 6. El filtro es siempre estable.

• El método de la covarianza:

1. Minimiza los errores al cuadrado sobre una ventana fija. 2. No requiere proceso de ventaneo ya que no “extrapola” la señal con ceros. 3. Da lugar a una matriz simétrica pero no Toeplitz. 4. Los LPC’s pueden ser calculados eficientemente O(p3) mediante la

descomposición de Cholesky. 5. No siempre da un filtro estable.

¿Por qué se determinó utilizar el análisis de autocorrelación? La función de autocorrelación proporciona una medida de la correlación de la señal con una copia desfasada en el tiempo de si misma. De aquí se extraen los p coeficientes de autocorrelación, valores típicos de p pueden ser entre 10 y 15. Podemos identificar los coeficientes de autocorrelación en las ecuaciones que minimizan los errores en la estimación de la señal predicha. Para resolver este conjunto de ecuaciones se recurre al algoritmo de Levinson-Durbin que permite resolver el sistema de ecuaciones de una forma eficiente. Teniendo los coeficientes del filtro {ak} se dispone, para la ventana de análisis, de la función de transferencia del modelo del tracto vocal en ese instante, es decir se dispone de la forma con la que la cavidad vocal se comporta y que junto con la señal de excitación se obtiene el sonido emitido en ese momento.

III.3 El procedimiento utilizado

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 31

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

El proceso descrito anteriormente, se aplica en el presente trabajo para obtener los LPC´s de la señal de voz recibida. Es importante hacer notar que la señal de voz recibida ya viene preprocesada, es decir, ya paso por la etapa de preénfasis y llega a esta parte sin espacios en blanco. En la figura III.1, se presenta el modelo utilizado para realizar la simulación en MATLAB y el posterior desarrollo en el software SIMULINK, para finalmente aplicarlo al DSP 6711 de TI.

Señal dearchivo wav

Análisis detraslapes

Ventana deHamming

Autocorre_lación

AlgoritmoLevinson_

DurbinLPC´s

Figura III.1. Modelo de simulación en MATLAB

A continuación se presenta el programa de simulación (figura III.2), se utilizan funciones de la biblioteca de MATLAB, para el ventaneo, la correlación y el algoritmo de Levinson-Durbin, en el resultado final se puede observar en una ventana los LPC’s y como van cambiando conforme avanza la señal. clear all s=wavread('Juan_manuel.wav'); plot(s); v=hamming(240); v=rot90(v); n=(length(s)/240); m=[length(s)/n]; t=length(v)/2; a=length(v)-t; ini=0; k=0; for j=ini:n, for i=1:m, r(i)=s(i+k); end k=k+120; w=r.*v; figure(1) plot(r); figure(2) plot(w); c=xcorr(w); figure(3) plot(c); ak=levinson(c,12); figure(4) plot(ak); end

figura III.2 Programa en MATLAB para calculo de LPC

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 32

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Después de realizada la simulación, se utiliza SIMULINK de MATLAB para colocar los bloques que calculan los LPC’s (figura III.3), para posteriormente configurar el DSP para la aplicación en tiempo real.

Figura III.3 Cálculo de LPC’s con bloques en SIMULINK Una vez que se configura el DSP se pasa la señal por el mismo para obtener los LPC’s en tiempo real. La siguiente imagen (figura III.4), corresponde al dispositivo utilizado, un DSP modelo TMS320C6711GFN de TI.

Figura III.4 Imagen del DSP TMS320C6711GFN de TI.

En el siguiente capitulo abordare los resultados de las acciones anteriores. Para finalmente dar paso a las conclusiones obtenidas.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 33

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

CAPITULO IV. Resultados

IV. 1 La simulación en MATLAB En los capítulos pasados se expuso la teoría y los métodos para hallar los LPC’s de una señal de voz, en el presente capitulo vamos a exponer los resultados obtenidos conforme al capitulo anterior. Los resultados se van a presentar en forma de ventanas y tablas de valores de los LPC’s. A continuación en la figuras IV.1 y IV.2, se muestran un par de ventanas que representan los coeficientes simulados en MATLAB por el algoritmo del capitulo anterior. En forma inmediata se presenta a cada figura su tabla con los valores obtenidos de los LPC’s. Como se puede observar en ambas ventanas, el numero de coeficientes encontrados (vectores) es de 12, esto se manifiesta por el numero de cortes (quiebres) que tiene la línea. Hay que recordar que para una buena recuperación de la señal, el numero ideal de coeficientes se da entre 10 y 15, en este caso se cumple. Es importante mencionar que cuando se solicita a MATLAB los valores de los ak (linea 27 del programa), el sistema entrega 13 valores, esto se debe a que en MATLAB la función “levinson(obj,n)” da en forma automática un coeficiente mas del n ingresado, por lo tanto, al final obtenemos los 12+1. El primer valor de los coeficientes que entrega el sistema siempre es uno y se debe a que lo utiliza como origen de los vectores. Los valores subsecuentes que entrega, son los vectores deseados de los coeficientes buscados.

VECTOR 1 2 3 4 5 6 7 8 9 10 11 12 13 VALOR 1.000 -0.303 -1.068 -.0534 4.552 -4.048 0.992 -0.341 1.919 -1.189 -2.601 3.736 -1.907

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 34

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Figura IV.1 Coeficientes simulados por MATLAB

VECTOR 1 2 3 4 5 6 7 8 9 10 11 12 13 VALOR 1.000 -0.216 0.622 -0.042 -0.268 -0.213 -0.771 -0.259 -0.374 0.100 0.243 0.067 0.882

Figura IV.2 Coeficientes simulados por MATLAB

IV.2 SIMULINK Continuando con los resultados obtenidos, ahora se muestran las ventanas con sus tablas respectivas (figuras IV.3 y IV.4), obtenidos al hacer pasar la señal por SIMULINK.

VECTOR 1 2 3 4 5 6 7 8 9 10 11 12 13 VALOR 0.2144 0.1432 -0.0524 0.1654 0.2213 0.3888 0.3013 0.1404 0.172 0.1395 0.2661 0.2240 0.3529

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 35

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

Figura IV.3 Coeficientes obtenidos mediante SIMULINK

COLUMNA 1 2 3 4 5 6 7 8 9 10 11 12 13 VECTOR 0.0769 0.0773 -0.208 0.0727 0.0794 0.1032 0.0348 -0.001 0.0613 0.0267 0.1746 0.2288 0.2575

Figura IV.4 Coeficientes obtenidos mediante SIMULINK

La tabla de valores obtenidos por SIMULINK es un vector que incluye todos los valores obtenidos durante el paso de la señal. Los valores obtenidos en las dos tablas anteriores son iguales a las vistas al poner a funcionar el DSP.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 36

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

CAPITULO V. Conclusiones Es muy importante el saber configurar el DSP para evitar problemas a la hora de realizar la aplicación en tiempo real. Para poder realizar una configuración correcta se debe acudir al CODE COMPOSER de TI. Para realizar este trabajo se trabajo con una señal ya trabajada, es decir, que antes de introducirla al DSP ya había sido filtrada y preenfatizada. La elección de la ventana es muy importante, ya se menciono en el capitulo 2 que esta acción nos permitirá reducir el efecto en los bordes. Para nuestro caso se selecciono la ventana de Hamming debido a su practicidad y funcionalidad. En casos en que se requiere de un mejor trabajo en los bordes de la señal se recomienda usar otro tipo de ventana como las mencionadas en el capitulo respectivo. Cuando se realiza la simulación en MATLAB, debemos tener presente el numero de coeficientes con los que vamos a estar trabajando, ya que, el sistema asigna un valor de uno al inicio del primer coeficiente u origen de los vectores (LPC’s). Lo anterior es mas evidente al observar las gráficas que se obtuvieron en la simulación (capitulo 4). Debido al origen de los vectores (LPC’s), debemos de colocar el valor deseado de coeficientes mas uno en el programa. De esta forma seguro tendremos el número de coeficientes deseados y podremos recuperar mejor la señal. Por otro lado, el grado de definición de la grafica no siempre nos permitirá observar la existencia de los coeficientes buscados, motivo por el cual, siempre debemos respaldar la grafica con información de los valores de los mismos. También es importante tener en cuenta la velocidad de procesamiento de la PC en donde se emplea el MATLAB, ya que el tiempo de respuesta varia con respecto al tamaño de la señal. Al realizar la aplicación en SIMULINK me pude percatar que la simulación me había orientado correctamente acerca de lo que esperaba observar. El uso de una herramienta que nos permite ahorrar tiempo, es muy importante siempre y cuando tengamos hayamos realizado una simulación que nos de una idea de la respuesta que vamos a obtener. Como puede observarse en las figuras del capitulo anterior, la similitud existente entre los LPC’s simulados y los obtenidos por SIMULINK, en cuanto a su tipo y no su forma, nos permiten decir que las acciones llevadas a cabo para obtener los LPC’s de una señal son los correctos. Al aplicar la señal al DSP y junto con el diagrama a bloques de SIMULINK, obtenemos los LPC’s buscados que nos permitirán realizar el reconocimiento de voz.

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 37

DETERMINACION DE COEFICIENTES LPC EN TIEMPO REAL UTILIZANDO UN DSP DE TI, PARA SEÑALES DE VOZ

CAPITULO VI. Referencias

1. John G. Proakis, Dimitris G. Manolakis; “Tratamiento digital de señales”; 3a. Edición; Prentice Hall; 1988. 2. Enrique Escamilla H.; “Procesamiento de señales en tiempo real con FPGA para radares con compresión de pulso”; Tesis doctoral ESIME-Culhuacán, IPN; 2006 3. Grupo de tratamiento avanzado de señal (GTAS), Universidad de Cantabria; “Predicción lineal de la señal de voz <Linear Predictive Coding> (LPC)”. 4. “Reconocimiento de voz automatico”;http://www.euskalnet.net/iosus/speech/speech.html

JUAN MANUEL ORTIZ SORIANO MARZO DEL 2006 38