Está en la página 1de 29

Proyecto Especial 2do Cuat 2009

LPC

SyS (66.74)

19 de Octubre de 2009
NDICE GENERAL

1. Introduccin 5
1.1. Algunos conceptos sobre codificacin . . . . . . . . . . . . . . . . . . . 5
1.2. Prediccin Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Desarrollo del Proyecto 21


2.1. Clculo de los coeficientes de LPC y reconstruccin de la seal . . . . 21
2.2. Reconstruccin de la seal con compresin . . . . . . . . . . . . . . . . 22
2.3. Anlisis de la seal de habla mediante LPC . . . . . . . . . . . . . . . . 23

Bibliografa 25

I
II
Proyecto Especial 2do Cuat 2009, LPC

El objetivo de este proyecto especial es desarrollar algunas tcnicas de trabajo de


procesamiento de seales, incluyendo filtrado FIR e IIR, espectrograma, y lograr una
aproximacin al procesamiento de seales reales como es la seal de habla. Este
proyecto utiliza un mtodo denominado LPC, el cual requiere una base amplia de
conocimientos de procesamiento de seales, que sern desarrollados en este texto
en forma resumida. No se pretende cubrir todos los aspectos tericos necesarios,
sino slo dar un barrido de los temas con la profundidad necesaria para que sea
posible desarrollar el trabajo. Los conocimientos que sern evaluados al entregar el
proyecto pueden abarcar:

Filtrado. Respuesta impulsiva, respuesta en frecuencia, transformada Z, rela-


cin entre todas ellas, caractersticas espectrales de un filtro, filtros FIR e IIR,
diferencias en su implementacin, transitorio de un filtro.

Transformada de Fourier de corto tiempo. espectrograma, reconocimiento en


el espectrograma de propiedades espectro-temporales, variacin del espectro-
grama con la ventana, utilizacin del espectrograma para discriminacin de
propiedades espectrales y temporales.

Transformada Z (de forma racional). Relacin entre forma de polos y ceros y las
propiedades temporales de la seal (causalidad, estabilidad).

ndice general 1
Proyecto Especial 2do Cuat 2009, LPC

2 ndice general
Requisitos para la aprobacin

Este trabajo prctico ser evaluado exclusivamente en la fecha indicada


en el calendario y en el turno en el cual el alumno se halle inscripto. La
fecha de entrega del trabajo es inamovible, el alumno que no entregue su
trabajo en dicha fecha deber considerarse libre. La evaluacin del pro-
yecto es individual y se har en forma oral o escrita por los docentes auxi-
liares. Por ese motivo las evaluaciones podrn fijarse para el da de la en-
trega o posteriores, del modo que lo designen los docentes de cada grupo.
Esto de ninguna manera implica que el trabajo pueda entregarse en fe-
chas posteriores, sino slo que la evaluacin se puede realizar despus,
de acuerdo a la cantidad de alumnos de cada turno. Queda a criterio de
los docentes de cada prctica exigir entregas parciales no definitivas (sin
nota) para regular el desarrollo del trabajo por parte de los alumnos. La
evaluacin final puede incluir preguntas sobre:

Items particulares sobre los ejercicios de esta gua y su implementacin en


Matlab.

Conceptos tericos necesarios para realizar los ejercicios.

Puede requerirse tambin al alumno que implemente alguno de los ejer-


cicios o similares en la computadora en el momento de la evaluacin. Por
lo tanto el alumno debe presentarse el da de la evaluacin con:

Esta gua.

Las soluciones a los problemas planteados: Cuando el problema requiera una


implementacin, la misma debe estar adecuadamente descripta y debidamen-
te justificada. Es decir, si es necesario justificacin terica, sta debe estar desa-
rrollada. Si se pide una implementacin prctica la misma debe estar adecua-
damente documentada de modo que el docente pueda constatar que las es-
pecificaciones requeridas se cumplen. Esto incluye la presentacin del progra-
ma de MATLAB utilizado, y los grficos necesarios para mostrar los resultados

3
Proyecto Especial 2do Cuat 2009, LPC

obtenidos en formato electrnico e impresos. Se sugiere que el formato elec-


trnico no dependa de que funcione internet para poder verse, para evitar in-
convenientes. Todos los grficos debern tener ttulo, comentarios en ambos
ejes sobre la unidad a representar y el eje de abscisas debe estar en unidades de
tiempo o frecuencia segn corresponda.

Nota del trabajo prctico especial


Las notas del tp especial solo podrn tener los siguientes valores:

0: Tp no entregado, con errores conceptuales o errores en la evaluacin que evi-


dencien la no realizacin personal del trabajo prctico. Equivale a la no apro-
bacin de la cursada.

40: Tp en el que el alumno cumple con los mnimos requisitos de aprobacin.

70: Tp en el que el alumno realiza y demuestra conocimiento de todos los pun-


tos solicitados.

100: Tp en el que el alumno demuestra una clara conceptualizacin del trabajo


realizado y excede las pautas solicitadas.

4 ndice general
CAPTULO 1

Introduccin

La codificacin por prediccin lineal (Linear predictive Coding, o abreviadamente


LPC) es una tcnica de codificacin que utiliza la prediccin lineal como mtodo.
Veamos primero unos pocos conceptos acerca de codificacin para luego desarrollar
en detalle el mtodo de prediccin lineal.

1.1 Algunos conceptos sobre codificacin


Entendemos por codificacin una transformacin reversible de una seal a otra re-
presentacin, es decir que nos permita convertir la seal a un cierto cdigo y luego
volver a obtener nuevamente una reproduccin de la seal a partir de ese cdigo.
Las tcnicas de codificacin suelen estar asociadas frecuentemente con la compre-
sin de informacin, es decir supongamos que tenemos una seal en una dada re-
presentacin, por ejemplo sus muestras tomadas a un dado intervalo de tiempo. Si
logramos una codificacin de la seal que utilice menos coeficientes, es decir una
codificacin ms compacta, habremos logrado una compresin. Hay que aclarar que
el concepto de transformacin reversible o invertible no suele ser tan estricto, y en
general se permite en la codificacin cierto grado de irreversibilidad, o degradacin
de la seal reconstruida dentro de ciertos lmites, dada por la aplicacin especfica.
Por ejemplo la codificacin MP3 de audio, no regenera la seal exacta original, sino
una versin que el odo humano perciba como indistiguible.

Breve historia de la transmisin IP de voz


Las tcnicas de LPC fueron concevidas con el objetivo de comprimir la seal de ha-
bla, de modo que la codificacin LPC es una codificacin para compresin. El origen
de las tcnicas de LPC se relaciona con el desarrollo de los protocolos TCP/IP, que
son los que se utilizan actualmente en internet [1]. En sus orgenes en el ao 1976
tres centros de investigacin de Universidades de California estaban empeados en
transmitir voz a travs de la ARPANET, la red de ARPA que es el organismo estatal de
Defensa de los Estados Unidos, y que fue la que sent las bases de la red mundial
Internet o World Wide Web. Se estaban desarrollando en ese momento ciertos pro-
tocolos llamados TCP (Transmission Control Protocol) para que diferentes compu-
tadoras con diferentes hardware y tiempos de procesamiento y diferentes sistemas
operativos pudieran comunicarse entre s. Estos protocolos sin embargo no eran ap-
tos para transmitir seales como el habla porque la gran cantidad de redundancias

5
Proyecto Especial 2do Cuat 2009, LPC

con el que estaba concevido TCP para que la totalidad de la informacin fuera trans-
misible de manera confiable, haca imposible la transmisin en tiempo real de una
seal como la voz. Se extrajo entonces del protocolo original una versin ms simple
aceptable para procesamiento en tiempo real y que se le dio el nombre de IP (In-
ternet Protocol). Esta distincin entre protocolos TCP e IP dio origen a una famosa
frase, de D. Cohen el autor del protocolo IP, cuya traduccin libre sera algo as como:
la leche tiene que transportarse antes de que se heche a perder, aunque se vuelque
un poco en el camino; para el vino podemos hacer un embalaje ms prolijo, dando a
entender que hay una diferencia de requerimientos escencial entre el transporte de
datos en tiempo real como es la seal de habla y el transporte de datos en s (como
por ejemplo una transaccin bancaria). De aqu en adelante los mtodos de codifi-
cacin de voz se realizan por IP, y es lo que se llama VoIP, y la tcnica utilizada es la
codificacin LPC, que da muy buen rendimiento de compresin y que fue desarro-
llada paralelamente al protocolo que la contendra.

Wavecoders y vocoders
Debe tenerse en cuenta sin embargo que los mtodos de codificacin pueden ser
utilizados para representar la misma informacin dispersa de la seal no solo de
una manera ms compacta sino tambin ms conceptual. Como ya veremos ms en
detalle, LPC est especialmente adaptado a seales de habla ya que tiene una re-
lacin muy cercana con la manera en que la seal de habla es generada. Cada una
de las palabras que decimos est asociada a una serie de movimientos nuestro apa-
rato fonador. Cada movimiento particular genera sonidos elementales que en cada
lenguaje tienen significacin como unidad. Los sonidos elementales de nuestro len-
guaje (el sonido correspondiente a la a, a la s, a la n, etc.) podran describirse desde
un punto de vista fsico (en promedio) como una cierta configuracin del aparato fo-
nador para cada uno de ellos. LPC logra asociar a cada una de esas configuraciones
un cdigo diferente. Por lo tanto se la considera no slo una tcnica para codificar
una seal sin importar su contenido, que lleva de nombre de codificador de onda o
en ingls wavecoder, sino una metodologa para conceptualizar el mensaje conteni-
do en la seal, para las cuales se haba acuado desde los comienzos del siglo XX el
termino vocoder. Los coeficientes obtenidos por LPC no slo constituyen un ahorro
de coeficientes de representacin, sino que de alguna manera podran simular los
mismos procesos que hace nuestro cuerpo cuando genera la seal de habla, y por lo
tanto es posible preguntarse si esa representacin no es adecuada para entender el
mensaje inmerso en la seal de habla (reconocimiento de habla). Y realmente lo es,
a tal punto que actualmente los mtodos ms existosos para la representacin de la
seal de habla para reconocimiento estn basados en LPC. Este mtodo tambin es
apto para sntesis, como tambin veremos en este proyecto especial.

1.2 Prediccin Lineal


Dejaremos en suspenso el tema de codificacin y conceptualizacin de la seal de
habla, para dedicarnos en este apartado a entender la metodologa en la cual se basa
LPC: prediccin lineal. Este es un mtodo que intenta obtener una razonable apro-

6 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC

ximacin del valor de una seal en el tiempo actual basado en el valor que esta seal
haba tomado en el pasado. El trmino prediccin debe ser tomado con cuidado en
este contexto: no es una adivinanza, sino que hay evidencias suficientes para tener
certeza de lo que suceder en el instante presente si se conoce informacin del pasa-
do de la seal. Vamos a abrir aqu una bifurcacin en la explicacin y dejar (otra vez)
en suspenso el tema de prediccin para detenernos un poco en la segunda parte del
nombre del mtodo: prediccin lineal.

1.2.1 Interpretacin geomtrica de las transformaciones lineales


Habamos dicho al comienzo de esta introduccin que la codificacin es una tran-
formacin reversible entre una representacin de la seal y otra ms compacta. Una
posibilidad es decidir que esa transformacin sea lineal. Supongamos un ejemplo
abstracto: si tenemos un vector de N componentes expresado en una cierta base,
pero descubrimos que en verdad ese vector tiene componentes de un subespacio de
dimensin pequea (mucho menor que N ), una posible codificacin sera simple-
mente un cambio de base que me divida la seal en las componentes pertenecientes
a ese subespacio y su ortogonal. Esto nos dara una representacin con menos coefi-
cientes porque las componentes en el subespacio ortogonal al que la seal pertenece
darn cero. Supongamos el siguiente ejemplo (abstracto tambin). Tenemos un con-
junto de vectores de 4 dimensiones como el siguiente:

1 3 4 0,5
1
, v2 = 3 , v3 = 4 y v4 = 0,5

v1 =
2 0,8 4 0,5
2 0,8 4 0,5

Si en lugar de representarlos en una base cartesiana hacemos un cambio de base con


la siguiente matriz:

1 1 1 1
1 1 1 1 1
W=
2 1 1 1
1
1 1 1 1

los vectores transformados a esa base tendrn como expresin:



3 3,8 8 0
1 2,2 0
1

W T v1 = T T T
0 , W v2 = 0 , W v3 = 0 y W v4 = 0


0 0 0 0

De estas expresiones podemos ver que todo el conjunto de vectores slo tiene com-
ponentes distintas de cero en los dos primeros vectores de la base. Si por alguna
razn pudiramos saber que todos los vectores con los que trabajaremos siempre
van a tener cero en las ltimas dos componentes de esta base, podramos plantear
una codificacin expresando los vectores en dicha base y reteniendo slo el valor
de las dos primeras componentes. El proceso de reconstruccin bajo esta supues-
ta codificacin consistira en completar con ceros los lugares correspondientes a las

1.2. Prediccin Lineal 7


Proyecto Especial 2do Cuat 2009, LPC

componentes no expresadas en el cdigo, y transformarlas de nuevo a la representa-


cin cartesiana mediante la multiplicacin por la matriz inversa de la anterior. Como
la matriz W es ortogonal, la matriz de reconstruccin es la transpuesta de la que usa-
mos para codificar:

3 1 1   1 1
1 1 1 3
1 3 1 1 1

v1 = W = =
0 2 1 1 1 2 1 2 1
0 1 1 1 1
En esta ltima forma de expresar al vector v1 , hemos usado adems solamente los
dos primeros vectores de la base para generar el vector completo en la base cartesia-
na. Estos dos vectores generan el subespacio de representacin de nuestro cdigo,
mientras que los restantes dos que no usamos generan un subespacio ortogonal a l
(por eso no es necesario usarlos para la representacin). Esta codificacin es venta-
josa, porque permite reducir a la mitad la cantidad de coeficientes necesarios para
expresar la seal.
En el mbito de las seales es frecuente representar las seales en bases distintas
de las originales, bases que tambin consistirn en un conjunto de seales. La serie
de Fourier para seales peridicas constituye una forma de representar a las sea-
les peridicas en una base ortogonal de exponenciales complejas. Si observamos la
ecuacin de sntesis:

j 2 kt
X
y(t) = ak e T 0
k=

para seales continuas, o para discretas


N 1
2
X
y(n) = ak ej N kn
k=0

vemos que presentan la forma siguiente:


X
v= ak ek
k

es decir, una suma de vectores ek multiplicados por coeficientes ak , donde en nuestro


j 2 kt
caso los vectores son funciones exponenciales complejas e T0 para seales conti-
2
nuas o ej N kn para discretas. En la terminologa de codificacin que estamos usando,
las frmulas de sntesis constituyen la reconstruccin de la seal original a partir del
cdigo que est contenido en los coeficientes ak . Como en este caso la base tambin
es ortogonal, los coeficientes se obtienen mediante el producto interno de la seal
sobre cada vector de la base:
Z T0 /2
j 2 kt
ak = y(t) e T0 dt =< y(t), ek (t) > (1.1)
T0 /2

o para el caso discreto,


N 1
2
X
ak = y(n) ej N kn =< y(n), ek (n) >
n=0

8 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC

Ejercicios:
1. Suponga las seales 2 y 5 del ejercicio 11 de la guia 1. Encuentre el subespacio
de seales en el cual estn representados cada una de ellas y su ortogonal. Para
ello escriba la frmula de sntesis de la seal y determine qu elementos de
la base de Fourier tienen coeficientes ak distintos de cero, que constituye el
grupo de vectores del subespacio de representacin. El resto de elementos de la
base generan el subespacio ortogonal. En cual de las dos seales sera ventajoso
utilizar la proyeccin lineal a un subespacio y su ortogonal como mtodo de
compresin?

Aproximaciones a un subespacio
Los mtodos de prediccin lineal pertenecen al tipo de codificacin que puede ser
expresada por una transformacin lineal. En este tipo de transformaciones la seal
debe ser expresable mediante una suma de (una cantidad pequea de) vectores mul-
tiplicados por coeficientes. En el caso del ejercicio anterior nuestras seales queda-
ron totalmente determinadas por la divisin en dos subespacios ortogonales entre
s: el que contiene totalmente a la seal y el que es ortogonal a l. Esto fue porque
nuestras seales en ese ejercicio ya estaban generadas como superposicin lineal
de algunos vectores de esa base. Pero en una seal real cualquiera esto no se puede
lograr en forma exacta, a menos que usemos una cantidad exageradamente gran-
de de elementos, con lo cual la compresin por estos medios deja de ser til. En la
realidad nuestras seales del mundo fsico real nunca podrn ser representadas de
forma exacta en un subespacio de dimensin finita, por lo cual si usamos este tipo
de codificacin lineal deberemos conformarnos con representaciones aproximadas.
Sin embargo, si el error de nuestra aproximacin es pequeo, podremos lograr una
reconstruccin basada en la representacin aproximada que sea aceptable a nues-
tros propsitos. Si la base de representacin es ortogonal siempre es posible saber el
error de aproximacin por el teorema de Parseval.

Ejercicios:
2. Suponga la seal dada por

6 |n| si |n| 5
x(n) =
0 resto

peridica con perodo N = 24. Encuentre el error de aproximacin (expresado


en porcentaje de la energa total de la seal) de representar la seal con 5 coe-
ficientes de Fourier, los correspondientes a ak para k = 2, 1, 0, 1, 2. Realice la
reconstruccin basada en esos 5 coeficientes.

3. Para el mismo caso del ejercicio anterior, determinar el nmero de coeficientes


necesarios para tener un error de aproximacin menor al 2 % de energa total.
Cuntos coeficientes ms se requieren para llegar al 1 %? Dibuje el porcenta-
je acumulado de energa al ir agregando ms coeficientes, y de acuerdo a ello

1.2. Prediccin Lineal 9


Proyecto Especial 2do Cuat 2009, LPC

discuta si puede considerarse esta representacin como beneficiosa desde el


punto de vista de coeficientes a almacenar.

4. Suponga ahora que tenemos la seal dada por



6 |t| si |t| 6
x(t) =
0 resto

peridica con perodo T = 24. Encuentre cuntos coeficientes se deben utilizar


para tener un error menor al 2 % de la energa total. Realice la reconstruccin
basada en estos coeficientes. En base a esta pregunta discuta si el teorema de
muestreo de Nyquist puede considerarse un mtodo de compresin y encuen-
tre el error de aproximacin que cometemos al utilizarlo. Es el muestreo una
transformacin lineal? (Ayuda: para determinar la transformacin lineal perti-
nente siempre debe ser posible representar a la seal como suma de la base de
descomposicin; piense en lo estudiado en interpolacin). Es invariante ante
desplazamientos?

La base de respresentacin de los mtodos de prediccin y las seales


estacionarias
Como se sugiri en el apartado anterior, es bastante frecuente que en los mtodos de
codificacin lineal tengamos que hacer aproximaciones de representacin, es decir
no considerar el subespacio completo de representacin sino slo los vectores cuyos
coeficientes contengan la mayor parte de la energa total de la seal. Si el subespacio
que usamos para hacer la representacin se adapta a nuestra seal, la aproximacin
ser mejor, y la aproximacin de representacin de la seal en ese subespacio ser
mejor, o bien el error de aproximacin menor. En este caso particular sin embargo, la
base donde representaremos nuestros vectores no est fija sino que la elegiremos de
modo de que la representacin nos d el menor error posible de aproximacin. En
este contexto vamos a dar algunas definiciones necesarias para abordar el tema de
prediccin que haba quedado pendiente, y que luego relacionaremos con el tema
de aproximacin que venimos explicando. Llamaremos seales linealmente predeci-
bles a aquellas para las cuales el valor presente que toma la seal en el tiempo actual
est principalmente determinado por sus valores pasados en forma lineal, excepto
algn nico trmino que puede corresponder a alguna otra seal. Estas seales tie-
nen la siguiente expresin:

y(n) = x(n) + b1 y(n 1) + b2 y(n 2) + . . . + bN y(n N ) (1.2)

La expresin anterior corresponde a una seal predecible con pasado finito de or-
den N . Obsrvese que una seal predecible es lo que en nuestra materia conocemos
como la salida de un sistema IIR de orden N , pero con la salvedad de que la entrada
x(n) tenga ciertas caractersticas que hagan que no tenga demasiada relevancia. Ade-
ms, como estamos pensando que la seal y(n) depende de las muestras anteriores
y(nk), con k = 1, . . . , N , estamos asumiendo que este sistema IIR es causal. Es decir,
que en la medida que la seal x(n) no aporte una informacin significativa, si cono-
ciramos el valor de los coeficientes bk con k = 1, . . . , N y el valor de las N muestras

10 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC

pasadas, tendramos una prediccin del valor presente de la seal y(n) salvo por lo
que pueda aportarnos el valor de la seal x(n) en ese instante. En esta terminologa
se denomina a x(n) seal innovacin o secuencia de innovacin, porque justamente
es la parte impredecible de la seal. El mtodo de prediccin lineal consiste en ob-
tener coeficientes ak para una seal estacionaria tales que la seal predicha sea de la
forma

y(n) = a1 y(n 1) + a2 y(n 2) + . . . + aN y(n N ) (1.3)

y que adems cumpla que

y (n) y(n))2 = e2 (n) sea mnimo.


(

Como vemos, si la seal tiene la expresin (1.2), este mtodo nos dara idealmente el
valor de los coeficientes de la ecuacin diferencial asociada a esa expresin , es decir
los ak que nos da el mtodo sern aproximadamente iguales a los bk de la ecuacin
(1.2) (suponiendo que la secuencia de innovacin tiene informacin no contenida
en el pasado de la seal).
Volviendo al tema de aproximacin que habamos explicado en la seccin anterior,
en este caso se puede ver que tenemos una combinacin lineal de elementos que
formarn una aproximacin de nuestra incgnita (la seal en el tiempo presente), y
que sabemos que no vamos a poder representar en forma exacta, sino que existir
un error de aproximacin, el cual debemos minimizar para que todo esto sea til.
Sin embargo en este caso puede resultar un poco oscuro cul sera la base de repre-
sentacin o subespacio de representacin que estamos eligiendo. En los casos del
apartado anterior, habamos visto que las seales se descomponan en bases com-
puestas de otras seales (ya sea la base de exponenciales complejas discretas o con-
tinuas en el caso de la serie de Fourier, o en base de sincs continuas en el caso del
teorema del muestreo). En esos casos todas las descomposiciones estaban basadas
en el producto interno entre funciones. Pero si volvemos a nuestro caso de prediccin
lineal en la frmula (1.3) parecera que estamos expresando muestras de la seal en
trmino de otras muestras anteriores, y no funciones en trminos de otras funcio-
nes. Esto es exactamente as, y la razn es que los mtodos de prediccin lineal estn
desarrollados para seales aleatorias y no determinsticas. En una seal aleatoria los
valores que toma para cada tiempo no pueden expresarse por un valor determinado,
sino por la probabilidad de que la seal tenga ese determinado valor. Asimismo, la
relacin temporal que siguen las muestras no puede expresarse explcitamente co-
mo valor que vara en funcin del tiempo sino por la variacin de la probabilidad del
valor de la seal en funcin del tiempo. La clase ms simple de seales aleatorias o
estocsticas que se puede definir son las seales de segundo orden, en las cuales la
funcin de probabilidad de la seal en funcin del tiempo toma una forma simple,
quedando absolutamente definida por las probabilidades conjuntas de las muestras
de la seal tomadas de a dos. Para este tipo de seales aleatorias toda la informacin
de la seal estar contenido en la funcin de dos variables llamada expectacin de la
densidad conjunta o ms simplemente correlacin:
Z Z
E{y(n), y(m)} = y(n)y (m)pn,m (y(n), y(m)) dy(n) dy(m) = R(n, m)

1.2. Prediccin Lineal 11


Proyecto Especial 2do Cuat 2009, LPC

Si comparamos esta expresin con la expresin (1.1) vemos que tiene semejanza con
un producto interno, y de hecho cumple todas las propiedades necesarias para serlo.
Es decir que la correlacin es el producto interno entre las muestras de la seal. Por
ltimo, de entre las seales aleatorias de segundo orden nos interesa las seales esta-
cionarias. Estas son aquellas en las cuales dos valores de la seal tienen una relacin
debida al tiempo transcurrido entre ellos y no al tiempo absoluto medido con res-
pecto a un origen de tiempos fijo. Es decir que la seal estacionaria perdi nocin de
sus orgenes y solo le incumbe la relacin que cada uno de sus valores guardan con
los previos ordenadamente. En este caso se podr afirmar que la correlacin cumple
Z Z
E{y(l), y(m)} = y(l)y (m)pl,m (y(l), y(m)) dy(l) dy(m) =

Z
y(l)y (n + l)plm (y(l), y(n + l)) dy(l) dy(n + l) = R(l, l + n) = f (n)

es decir, que en las seales aleatorias de segundo orden y estacionarias, la correla-


cin deja de ser una funcin de dos variables, para convertirse en una funcin de una
sola variable que corresponde al distanciamiento entre las muestras en cuestin (n)
y no al origen de tiempos absoluto (l). En estos casos solemos llamar a la correlacin
del modo siguiente:
E{y(l), y(l + n)} = E{y(k), y(k + n)} = R(n)
En general la funcin de probabilidad subyacente a una seal aleatoria es descono-
cida, pero se suelen determinar ciertos estimadores de la misma. Es el mismo prin-
cipio que se usa para saber por ejemplo la probabilidad de una poblacin: se toma
muchos valores de la misma, y se los promedia. Por ejemplo, supongamos que se
quiere establecer la edad promedio de los alumnos de ingeniera, es decir se quiere
calcular la expectacin de la variable aleatoria Y edad de los alumnos:
Z
E{y} = y pY (y) dy
0

Para estimar esta expectacin se tomara a todos los alumnos que se pueda conseguir
y se hara el promedio de los valores de sus edades, es decir:
Z K
1 X
E{y} = y pY (y) dy ' yk
0 K k=0

Para el caso de la correlacin entre dos muestras de una seal aleatoria estacionaria,
lo que se hace es suponer que todos los valores igualmente distanciados en tiempo
tendrn el mismo valor de correlacin 1 . Por lo tanto un estimador de la correlacin
ser

X
R(n) = K y(m)y(m + n)
m=

donde K es un factor de normalizacin.


1
Este tipo de estimadores slo es posible de ser aplicado por la suposicin que estamos haciendo
de que la seal es estacionaria. En estos casos una realizacin de la seal aleatoria tiene la misma
distribucin de probabilidad en el tiempo que cualquier otra realizacin, y por lo tanto el estimador
sobre la realizacin es igual al estimador sobre el ensamble de todas las posibles realizaciones.

12 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC

Ejercicios:
5. Genere con Matlab una seal aleatoria mediante el comando randn. Este co-
mando puede generar una seal aleatoria estacionaria. Calcule mediante el co-
mando xcorr su autocorrelacin y grafquelo (primeramente descuente a toda
la seal el valor medio para evitar los problemas de hacer la autocorrelacin
con ventanas). El tipo de correlacin obtenido nos dar algo parecido a una del-
ta. Esto significa que la seal en cada punto tiene correlacin casi cero con los
puntos anteriores. Es una seal absolutamente descorrelacionada, o tambin
llamada ruido blanco . Genere con dicho vector un archivo .wav y escchelo.
6. Utilice la seal aleatoria generada en el ejercicio anterior como entrada a un
sistema como el propuesto en la gua 2, ejercicio 10a, para A = 0,95, con con-
diciones iniciales de reposo. Calcule nuevamente la correlacin y grafquela.
Genere con la salida de dicho sistema un archivo .wav y escchelo. Nota alguna
diferencia entre ambos sonidos? Cmo explicara el comportamiento escucha-
do a partir del filtro utilizado?

1.2.2 Clculo de los coeficientes de prediccin lineal


El desarrollo terico que sigue explica cmo se calculan los coeficientes de predic-
cin lineal de una seal estacionaria de la forma (1.2), suponiendo conocida su fun-
cin de correlacin. En la prctica esto equivale a contar con un segmento de seal
suficiente como para que los promedios con los que estimamos la correlacin sean
representativos de la verdadera probabilidad. Debe notarse adems que el desarro-
llo que sigue no ser necesario para realizar este proyecto, ya que Matlab cuenta
con una funcin que calcula los coeficientes LPC, que se podr utilizar en este ca-
so. Sin embargo la explicacin siguiente es un ejemplo de clculo de estimacin, y
constituye un punto de partida sencillo para todos los que estn interesados en los
problemas de estimacin de cuadrados mnimos, que aparecen en una infinidad de
problemas de ingeniera.
Como ya anticipamos en los ejercicios la forma de encontrar el predictor lineal y(n)
como en (1.3) sujeto a que la diferencia entre esta estimacin y el valor real y(n) sea
mnimo, es pidiendo que el error de prediccin o innovacin sea perpendicular al
espacio generado por las variables aleatorias correspondientes a las muestras ante-
riores, es decir
E{[y(n) y(n)] hT yn } = 0
donde yn = {y(n 1), y(n 2), . . . , y(n N )}, son las variables aleatorias puestas en
forma de columna, y donde h es un vector cualquiera de dimensin N que nos ayuda
a expresar el hecho de que la innovacin debe ser ortogonal a cualquier combinacin
lineal de los vectores en el conjunto yn de variables. Desarrollando esta expresin:
E{y(n)hT yn }} = E{
y (n) hT yn }
N
X
T
h E{y(n) yn }} = E{ ak y(n k) hT yn }
k=1
h E{y(n) yn }} = E{hT yn ynT a}
T

1.2. Prediccin Lineal 13


Proyecto Especial 2do Cuat 2009, LPC

donde hemos escrito al estimador como el producto ynT a, con a igual al vector co-
lumna formado por los elementos del estimador. De acuerdo a esto,

hT E{y(n) yn }} = hT E{y ynT }a

Como el vector h es arbitrario, debe cumplirse lo anterior independientemente de h.


Entonces, en verdad lo que se debe cumplir es

E{y(n) yn } = E{y ynT }a

que podemos escribir de manera ms compacta como

c = Ra

El vector c estar definido como



E{y(n)y(n 1)} R(1)
E{y(n)y(n 2)} R(2)
c= = (1.4)
... ...
E{y(n)y(n N )} R(N )

y la matriz R es

R(0) R(1) R(2) . . . R(N 1)

R(1) R(0) R(1) . . . R(N 2)

R=
R(2) R(1) R(0) . . . R(N 3)
(1.5)
... ... ... ... ...
R(N 1) . . . R(2) R(1) R(0)

Este tipo de matriz tiene una simetra especial, y es conocida con el nombre de ma-
triz de Toeplitz. En ella las diagonales son todas iguales, y adems es una matriz si-
mtrica. Estas propiedades sern aprovechadas en el algoritmo que explicaremos
a continuacin para agilizar el clculo, obtenido por un algoritmo progresivo. Pero
antes de eso, debemos resaltar que el mtodo de prediccin lineal consiste simple-
mente en encontrar la autocorrelacin R(n) de la seal, formar la matriz R como
se indica arriba, y el vector c con los valores de R(n) para n = 1, . . . , N e invertir la
matriz, para encontrar

a = R1 c

El mtodo de Levinson-Durbin
Si bien para la poca que se desarroll la codificacin por prediccin lineal ya se
conocan mtodos numricos para invertir una matriz, el mtodo se volva intil si
haba que usar esos clculos tan costosos computacionalmente. La idea que se tena
en mente no era solamente codificar la seal de habla para almacenarla, sino para
transmitirla. Y todava ms: el problema era transmitirla en tiempo real. La seal de
habla es una seal que puede ser considerada estacionaria por tramos, pero esos
tramos no son muy largos. Por lo tanto el requerimiento era calcular un juego de
coeficientes LPC por cada tramo estacionario, y eso significaba calcular una inversa

14 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC

de una matriz de orden 20 ms o menos cada 10 mseg. Esto hizo que se aplicaran
viejos mtodos para invertir matrices de esta forma, que luego tom el nombre de
Mtodo de Levinson-Durbin, que explicaremos a continuacin y que logr bajar el
costo computacional en un orden de magnitud.
El mtodo es un caso particular de clculo progresivo: se harn una secuencia
de N clculos que darn una secuencia de N vectores a1 , a2 , . . . , aN de dimensin
1, 2, . . . , N . El ltimo vector de esta secuencia ser el vector predictor verdadero a. El
esquema consiste en resolver N sistemas de ecuaciones reducidas

ck = Rk ak (1.6)

donde ck son los primeros k elementos del vector c, y Rk es la submatriz principal


de dimensin k. En esta reduccin del problema podemos ver que no slo la matriz
R sino todas las submatrices Rk son matrices de Toeplitz, cuya estructura particular
posibilita la existencia de este mtodo. Supongamos que tenemos resuelto hasta el
sistema k anterior, y queremos calcular el siguiente. El sistema que nos queda se
puede descomponer en bloques de la siguiente manera:

ck+1 = Rk+1 ak+1


" #
()
ak+1
  
Rk ck k ck
=
()T
ck R(0) ak+1
k+1 R(k + 1)

()
donde ck es una notacin que significa los elementos del vector ck tomados en or-
den inverso, como fcilmente se puede verificar de las expresiones (1.4) y (1.5), y
donde adems el nuevo vector ak+1 a calcular en este paso fue dividido en sus prime-
ras k componente y la ltima. Esto es lo mismo que tener 2 sistemas de ecuaciones:

()
Rk ak+1
k + ak+1
k+1 ck = ck
()T
(1.7)
ck ak+1
k + ak+1
k+1 R(0) = R(k + 1)

Supongamos que en la primera de estas ecuaciones pudiramos premultiplicar por


la matriz R1
k . Esto nos dara el siguiente sistema:

()
ak+1
k = R1 k+1 1
k ck ak+1 Rk ck (1.8)
1 ()
ak+1
k = ak ak+1
k+1 Rk ck

donde ak es el que calculamos en el paso anterior. En este punto es donde utilizare-


mos el hecho de que la matriz R es Toeplitz. Supongamos que en la ecuacin como
la (1.6) queremos que cada fila del sistema aparezca revertido:

R(k 1) . . . R(2) R(1) R(0)
... ... ... ... ...
()
k
ck = R(2)
R(1) R(0) . . . R(k 3) a
R(1) R(0) R(1) . . . R(k 2)
R(0) R(1) R(2) . . . R(k 1)

1.2. Prediccin Lineal 15


Proyecto Especial 2do Cuat 2009, LPC

Supongamos ahora que queremos que ak aparezca revertido. Esto equivaldra a re-
vertir el orden de las columnas de la matriz anterior:

R(0) R(1) R(2) . . . R(k 1)
R(1) R(0) R(1) . . . R(k 2)
()
k()
ck = R(2) R(1) R(0) . . . R(k 3) a = Rk ak()
... ... ... ... ...
R(k 1) . . . R(2) R(1) R(0)
y entonces,
()
ak() = R1
k ck

Reemplazando este resultado en la ecuacin (1.8),


ak+1
k = ak ak+1
k+1 a
()k
(1.9)
con lo cual podramos calcular el valor de los primeros k elementos del vector actua-
lizado ak+1 si conociramos el valor de ak+1
k+1 , que es la ltima componente del vector
que tenemos que calcular en este paso. Para encontrar este ltimo elemento del vec-
tor ak+1
k+1 utilizaremos la ltima ecuacin del sistema (1.7), que todava no estamos
teniendo en cuenta. Reemplazando el valor encontrado anterior para ak+1 k , tendre-
mos
()T
ak+1
k+1 R(0) + ck ak+1
k = R(k + 1)
()T ()T
ak+1
k+1 R(0) + ck ak ck ak+1
k+1 a
()k
= R(k + 1)
 
()T ()k ()T
ak+1
k+1 R(0) ck a = R(k + 1) ck ak
()T
R(k + 1) ck ak
ak+1
k+1 =
R(0) cTk ak
que como vemos es una expresin que depende slo de valores calculados en el paso
anterior, con lo cual se completara el clculo. Pero es posible encontrar una recur-
sin final que disminuye todava ms el tiempo de computacin, y que adems nos
brindar otras ventajas como veremos ms abajo. Si en esta ltima ecuacin defini-
mos
k+1
ak+1
k+1 =
k+1
()T
donde k+1 = R(0) cTk ak y k+1 = R(k + 1) ck ak , podemos ver lo siguiente:
k+1 = R(0) cTk ak
= R(0) cTk1 akk1 R(k) akk
que, reemplazando la forma de la actualizacin de los primeros k 1 elementos del
vector ak de (1.9), tendremos
k+1 = R(0) cTk1 ak1 akk (R(k) cTk1 a()(k1) )
= k akk k = k 1 (akk )2


k+1 = k 1 (akk )2

(1.10)
Recapitulando y ordenando un poco las cosas, para calcular cada iteracin del vector
ak+1 , hay que realizar los siguientes tres pasos:

16 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC


1. Actualizacin de k+1 = k 1 (akk )2
k+1
2. Clculo de la ltima componente del vector ak+1 , ak+1
k+1 = k+1
, con k+1 = R(k +
()T
1) ck ak .

3. Y por ltimo calcular los k primeros elementos de ak+1 , es decir ak+1


k = ak
k+1 ()k
ak+1 a .

Volviendo a la ecuacin (1.10) para el clculo de k+1 , vamos a mostrar que esta mag-
nitud tiene una relacin interesante con las seales que estamos calculando. Si cal-
culramos la energa de la seal de error, se puede ver que

e(n) = y(n) y(n)


< e(n), e(n) >=< y(n) y(n), y(n) y(n) >= R(0) aT R a = R(0) aT c = N +1

O sea, que podemos decir que la energa del error de prediccin puede ser calculada
al mismo tiempo que vamos calculando los elementos del vector a en cada paso de
manera iterativa tambin, utilizando la recursin de la ecuacin (1.10), que ahora
podremos reescribir como

< ek+1 (n), ek+1 (n) >=< ek (n), ek (n) > 1 (akk )2

(1.11)

Pero esta ltima expresin tiene una implicancia acerca del valor que puede tomar
el coeficiente akk , que es de utilidad en codificacin. Recordando que la expresin
< e(n), e(n) > es una norma, y como tal nunca puede ser un nmero negativo, po-
demos ver que akk tiene que ser un nmero de mdulo comprendido entre 0 y 1. Este
hecho, sumado al de que todo el vector aN final del predictor puede calcularse f-
cilmente a partir del clculo de estos coeficientes, hace que a la hora de codificar la
seal para ser transmitida, se prefiera enviar como cdigo LPC el valor de los coe-
ficientes akk de la recursin del clculo en lugar de los verdaderos coeficientes del
predictor aN , ya que es ms fcil distribuir la codificacin binaria entre nmeros de
magnitud comparable, que entre nmeros cuyos valores no se sabe a ciencia cierta
cual ser su rango de variacin.

LPC y la seal de habla


Vamos a ver ahora porqu decimos que el mtodo de LPC est especialmente adap-
tado a la codificacin y representacin de la seal de habla. Para entenderlo es ne-
cesario comprender cmo se genera esta seal. Los sonidos de la seal de habla son
producidos por el humano en una manera muy similar a la que los intrumentos de
viento producen sus sonidos. El elemento vibrador son las cuerdas vocales, ubica-
das en la laringe, que producen excitaciones cuasiperiodicas por una combinacin
del paso del aire proveniente de los pulmones y la tensin de stas. El aire vibrante es
impulsado a atravesar diversas cavidades en la cabeza (boca, nariz) que hacen las ve-
ces de cmara de resonancia hasta su salida exterior. El conjunto de estas cavidades
se denomina tracto vocal.
La excitacin sonora a la entrada de una cmara resonadora y la onda de salida pro-
ducida se relacionan entre s mediante una ecuacin diferencial. El sistema acstico

1.2. Prediccin Lineal 17


Proyecto Especial 2do Cuat 2009, LPC

Figura 1.1: Sistema de produccin del habla.

productor de seal de habla que describimos anteriormente tambin puede descri-


birse por una ecuacin diferencial cuya entrada es una seal impulsiva cuasiperi-
dica generada en la glotis y su salida son las porciones sonoras de la seal de habla.
Los coeficientes de esta ecuacin diferencial guardan relacin con la forma del trac-
to vocal para cada sonido distinto que emitimos al hablar. Si denominamos G x(t) a
la excitacin sonora, e y(t) a la onda de salida producida, tendremos una expresin
de este tipo
d(N ) y(t) d(N 1) y(t) (1.12)
y(t) = bN + b N 1 + . . . + G x(t)
dt(N ) dt(N 1)
Esta descripcin corresponde a la porcin sonora de la seal de habla, por ejemplo
cuando decimos una vocal o las consonantes sonoras, como la /n/ o la /m/. Pero otro
tanto puede ser pensado para los sonidos ruidosos de la seal de habla, como la /f/,
/s/ o /j/. En este caso las cuerdas vocales estn totalmente abiertas, dejando pasar
el aire de manera libre, es decir que no son las generadoras del sonido. La fuente
sonora en este caso se produce por una oclusin parcial en alguna parte superior del
tracto vocal, como por ejemplo entre la lengua y paladar, o lengua y dientes, lo cual
produce una turbulencia en el flujo de aire que viene de los pulmones, quedando el
tracto vocal o cavidad de resonancia restringido a la parte restante desde la oclusin
hasta la salida del aire. En este caso la dinmica de la seal es la misma, es decir hay
una excitacin que en este caso es ruidosa, o aleatoria, que atraviesa una cavidad de
resonancia, por lo cual la relacin entre entrada y salida tambin corresponde a una
ecuacin diferencial de la forma anterior.

Ejercicios:
7. Determine en la seal fantasia.wav las porciones sonoras y sordas de la seal,
ayudndose de herramientas como wavesurfer. Muestre la segmentasin en

18 Captulo 1. Introduccin
Proyecto Especial 2do Cuat 2009, LPC

forma simultnea en tiempo y en el espectrograma, verificando la distincin


explicada anteriormente entre seal sorda y sonora.

Si ahora pensamos en trminos discretos, es decir en la seal de habla despus de


haber sido muestreada, la dinmica de la ecuacin diferencial queda plasmada en
una ecuacin en diferencias:

y(n) = Gx(n) + d1 y(n 1) + d2 y(n 2) + . . . + dN y(n N ) (1.13)

Si comparamos esta expresin con la de las seales linealmente predecibles (1.2),


vemos que la seal de habla pertenece a esta clase. Por la definicin que dimos del
error de prediccin que deseamos minimizar, podemos escribir

X
y(n) y(n) = Gx(n) + d1 y(n 1) + d2 y(n 2) + . . . + dN y(n N ) a(m) y(n m)
m=1

Por lo tanto, si por algn mtodo de clculo logrramos que nuestro estimador
{a1 , a2 , . . .}, fuera igual a los coeficientes d1 , d2 , . . . , dN , entonces nuestro error se-
ra exactamente la seal generadora Gx(n), que constituye la parte impredecible
de nuestra seal. La pregunta sera si utilizando LPC para calcular los coeficientes
{a1 , a2 , . . .}, obtendremos los verdaderos valores de los coeficientes de la ecuacin
diferencial. La respuesta es que esto ser as en la medida que respetemos las hip-
tesis en las cuales se basa el mtodo de LPC, que bsicamente nos pide dos cosas. Por
un lado se requiere que la seal sea expresable en la forma de las seales linealmen-
te predecibles (1.2), y que por lo que venimos explicando en esta seccin parecera
ser as. Pero por otro lado, el mtodo est desarrollado para seales aleatorias, y ade-
ms nos pide que la secuencia de innovacin sea ortogonal a las muestras pasadas
de la seal a predecir, lo cual se puede demostrar que implica que la secuencia de
innovacin debe ser un ruido blanco. Esta ltima observacin parecera indicar que
LPC sera aplicable slo a los sonidos sordos de la seal de habla, mientras que la
parte sonora de la seal que es ms bien determinstica quedara excluda de las hi-
ptesis. Sin embargo la secuencia de innovacin obtenida de la aplicacin de LPC a
las partes sonoras de la seal de habla tiene un aspecto de tren de impulsos (qua-
si) peridicos. Esto no es lo que se pide para el mtodo de prediccin lineal, pero si
se calcula la correlacin a dicha seal veremos que tiene una forma parecida a la
correlacin del ruido blanco, salvo que en lugar de ser una nica delta, es un tren
de deltas peridico. Por lo tanto, si bien la secuencia de innovacin no cumple ser
una seal aleatoria, su correlacin tiene una forma similar a la pedida para el ruido
blanco, lo cual nos permite suponer que los coeficientes encontrados usando LPC
tendrn cierta proximidad con los verdaderos coeficientes del sistema.

Notas:

Esta es la definicin de ruido blanco dbil, ya que la seal la estamos considerando


de segundo orden.

1.2. Prediccin Lineal 19


Proyecto Especial 2do Cuat 2009, LPC

20 Captulo 1. Introduccin
CAPTULO 2

Desarrollo del Proyecto

El desarrollo del proyecto se divide en las siguientes partes:

Clculo de los coeficientes de LPC para un segmento de seal de habla.


Reconstruccin de la seal de LPC a partir de los coeficientes y de la seal error,
para varios niveles distintos de codificacin.
Descomposicin de la seal de LPC en sus fonemas elementales a partir de los
coeficientes LPC.

2.1 Clculo de los coeficientes de LPC y reconstruccin de


la seal
Realice el clculo de los coeficientes de LPC de la seal estaba_la.wav. Como
se dijo anteriormente, se puede utilizar la funcin de matlab LPC, ya que no
es el objetivo de la materia la programacin ni el diseo de algoritmos rpi-
dos de estimacin. Como dijimos en la introduccin, la seal de habla puede
ser considerada estacionaria por tramos. Esto implica que hay que hacer una
actualizacin de los coeficientes cada determinado tiempo. Esta actualizacin
debera coincidir con los tramos donde la seal tiene cierta uniformidad es-
pectral, pero en la prctica la actualizacin se hace cada un determinado tiem-
po sincrnicamente, supuesto suficientemente pequeo como para no perder
ningn fonema, y no tan chico como para que el mtodo sea imprctico. El uso
estandard es considerar ventanas de seal de longitud 0.025 seg, actualizadas
cada 0.010 seg para calcular la matriz Toeplitz R y el vector c. Una desicin a
tomar es cuntos coeficientes utilizar. Se considera que para la mayor parte de
las secciones de la seal de habla 20 coeficientes es suficiente.

Una vez que se tiene la secuencia de 20 coeficientes cada 10 mseg, debe obtenerse
la seal de error correspondiente a ese segmento de 10 mseg, y luego concatenarse
para generar la seal de error completa. La frmula para obtener el error es simple-
mente deducible de (1.3), de este modo:
y(n) y(n) = a1 y(n 1) + a2 y(n 2) + . . . + aN y(n N ) y(n) = e(n)
Es decir, la secuencia de error se obtiene simplemente haciendo un filtrado FIR de la
seal de habla, con el filtro definido por los coeficientes LPC, de la forma anterior.

21
Proyecto Especial 2do Cuat 2009, LPC

Encuentre las secuencias de error y concatnelas para cada segmento de 10


mseg, cuidando de evitar los transitorios del filtro. Esto puede hacerse conser-
vando los transitorios finales de cada seccin, y sumndolos al siguiente seg-
mento.

Analice su forma temporal, tratando de determinar mediante esa forma los seg-
mentos sonoros y sordos de la seal. Contraste la segmentacin obtenida sobre
el error de prediccin con la segmentacin realizada escuchando cada porcin
de sonido correspondiente. Genere un vector .wav con el error y escchelo.

Analice su forma espectral. Para ello realice el espectrograma de la seal, y


compare zonas correspondientes a diferentes fonemas. Se puede decir que el
mtodo de LPC hizo un blanqueado de la seal?. (Esto significa que las dife-
rentes caractersticas espectrales de las porciones sordas y sonoras han desa-
parecido, dejando simplemente las caractersticas de la fuente).

Tambin genere la secuencia predicha slo con la informacin de prediccin


y(n), grafquela superpuesta a la seal original y escchela. Qu conclusin
puede sacar acerca de la validez de la aplicacin de LPC para estos casos?.

2.2 Reconstruccin de la seal con compresin


Una vez que los coeficientes de LPC y la secuencia de error son obtenidos, queda aun
estudiar el efecto de la cuantizacin. Para ello debe notarse que mediante este m-
todo podemos decir que hemos pasado toda la complejidad del mensaje del habla a
los coeficientes de LPC, dejando en la secuencia de error solamente la pequea parte
que es impredecible, pero no relevante para predecir la seal. Por lo tanto a la hora
de asignar bits para cada parte, podemos asumir que por cada bloque de 10mseg
debemos dedicar una cierta cantidad de bits a la cuantizacin de los coeficientes,
mientras que con la secuencia de error podemos ser bastante ms mezquinos sin
alterar perceptiblemente la calidad de la seal reconstruda.

Realice la reconstruccin de la seal con la calidad mxima permitida por la


representacin en punto flotante, es decir sin ninguna cuantizacin. En este
item estamos realizando la operacin inversa al clculo del error de prediccin.
Es decir, si a partir de la seal y(n) calculamos la secuencia de error e(n) =
Gx(n) por medio de un sistema FIR, entonces:

G X(z)
G X(z) = Hk (z)Y (z) Y (z) = (2.1)
Hk (z)

Realice la reconstruccin de la seal con los coeficientes de LPC en punto flo-


tante, y el error codificado en 256 niveles (8bits), 16 niveles (4 bits) y cuatro
niveles (2 bit). Calcule en cada caso el ahorro producido con respecto a codifi-
car la seal completa en 16 bits. Suponga adems que para la codificacin de
los coeficientes utiliza punto flotante, es decir 8bytes por coeficiente. Genere

22 Captulo 2. Desarrollo del Proyecto


Proyecto Especial 2do Cuat 2009, LPC

un archivo .wav para cada uno y escchelo. Grafique las salidas temporales y
las secuencias de error superpuestas para su comparacin.
Aclaracin de implementacin: este clculo debe realizarse concatenando las
salidas correspondientes a cada seccin de coeficientes calculados. Es decir, se
deben concatenar las secciones de filtrados cada 10 mseg, de la misma manera
que se calcul el error. Pero a diferencia del caso del error, aqu estamos fil-
trando con filtros IIR, por lo cual el transitorio es infinito, y no se puede evitar.
Sin embargo para que la reconstruccin sea realizable, podemos aproximar la
respuesta IIR de cada filtro a una respuesta FIR, de longitud apropiada. Luego
proceda como en el clculo del error de prediccin.

Item avanzado: cuantifique los coeficientes LPC en punto fijo de 16 bits, y ge-
nere la reconstruccin con el error en punto flotante. Compare este resultado
contra la cuantificacin de los coeficientes akk con la misma precisin, explica-
dos en la seccin sobre el mtodo de Levenson-Durbin. Los coeficientes akk no
son parte de la salida obtenida de la funcin lpc de Matlab, pero pueden ser
generados a partir de los coeficientes del predictor de manera simple, o bien
modificando ligeramente el cdigo de la funcin para que tambin los devuel-
va.

2.3 Anlisis de la seal de habla mediante LPC


Si pensamos en la ecuacin (2.1) que nos permite generar la seal de habla a partir
de la secuencia de innovacin y la secuencia de transferencias 1/Hk (z) vemos que
hemos desglosado la seal de habla en dos partes: por un lado la secuencia de in-
novacin nos representa la excitacin con la cual se genera la seal y por el otro
tendremos en la secuencia de transferencias la informacin de la forma del aparato
fonador para cada sonido. Si observamos la evolucin temporal de la secuencia de
innovacin para todas las porciones sonoras de la seal veremos que salvo las varia-
ciones de energa e intervalo entre picos, la excitacin tiene una naturaleza casi de
tren de deltas, no importa el sonido final que se produce en la seal de habla. Es de-
cir, la excitacin sonora es la misma para cualquier vocal o en general para cualquier
sonido sonoro que emitimos. Otro tanto se puede decir para las porciones sordas
de seal de habla. Entonces podemos concluir que la divisin fina entre los diferen-
tes sonidos sonoros y sordos de la seal de habla est contenida en la transferencia
1/Hk (z) para cada sonido elemental.

Genere la secuencia de tranferencias 1/Hk (z) obtenidos cada 10 mseg y a par-


tir de ellas genere la secuencias de transformadas de Fourier correspondientes.
Grafique el resultado en una superficie con altura dada por pseudocolor, simi-
lar al espectrograma, y comprelo con este.

Elija porciones de seal correspondiente a realizaciones distintas del mismo


sonido voclico. Grafique las transformadas de Fourier correspondientes a ca-
da una de esas realizaciones superpuestas, y comprelas. Repetir para otro so-
nido, y compararlas entre s. Determine la posicin de los picos del espectro
de cada uno de esos sonidos. Los picos del espectro estn relacionados con las

2.3. Anlisis de la seal de habla mediante LPC 23


Proyecto Especial 2do Cuat 2009, LPC

resonancias del aparato fonador, y para cada clase de sonido estn en una po-
sicin distinta.

Item opcional: intercambie los coeficientes de LPC correspondientes a distin-


tas vocales por otra representacin. Por ejemplo, reemplace todas las vocales
por /a/, intercambiando los coeficientes correspondientes a otras vocales con
las de la /a/.

Item opcional avanzado: expandiendo o contrayendo temporalmente la seal


de error en las porciones sonoras es posible cambiar el tono de la seal de ha-
bla. Los hombres tienen una frecuencia fundamental prcticamente igual a la
mitad de la de las mujeres. Convierta la seal mujer.wav a un tono de hombre y
la hombre.wav a un tono de mujer mediante esta idea. Para que la representa-
cin suene natural, conserve la misma envolvente de la seal de error original.

24 Captulo 2. Desarrollo del Proyecto


BIBLIOGRAFA

[1] R. Gray, The 1974 origins of VoIP, Signal Processing Magazine, IEEE, vol. 22,
pp. 8790, July 2005.

25

También podría gustarte