Sie sind auf Seite 1von 8

Juan Ral Rodrguez Surez et al.

: Codificador de voz LPC_10 sobre FPGA 53

Rev. Cienc. Tecnol.


Ao 13 / N 15 / 2011 / 5360
Codificacin de voz mediante coeficientes de prediccion lineal
(LPC) sobre Microblaze.
Voice enconding by means of lineal prediction coefficients embbeded on microblaze
Alexey Garca Padilla, Elieser E. Gallego Martnez; Ismel Domnguez
Rodrguez, Angel Correa Fernndez, Juan R. Rodrguez Surez

Resumen

En este trabajo se presenta el diseo de un codec de audio para telefona VoIP implementado sobre un
microprocesador MicroBlaze empotrado sobre un circuito FPGA de la familia Spartan 3E. Se describe primeramente
el diseo del microprocesador y de los perifricos a emplear, entre los cuales se destaca el manejo de una memoria
externa DDR y de una interfaz serie RS232 que permite comunicar el sistema con una computadora PC. En el
trabajo se implementa una variante del algoritmo LPC10 con velocidad de 2.4 Kb/s y los algoritmos se implementan
en el procesador en lenguaje C. La evaluacin del sistema se realiza a partir del anlisis de los datos enviados
hacia la PC que son analizados con el procesador Matlab y comparados con resultados simulados. Este trabajo
tributa a una tarea del proyecto Plataforma de Conmutacin de Paquetes, aprobado por el MIC al ISPJAE con
participacin de la UPR y GKT.

Palabras clave: Codec, FPGA, LPC-10, MicroBlaze, VoIP.

Abstract

In this work the design of an audio codec is presented for VoIP telephony, implemented on a microprocessor
MicroBlaze embedded on a FPGA circuit of the Spartan 3E family. The design of the microprocessor is described
first, and then, the peripherals to use, among which the handling of an external memory DDR and of a series
interface RS232 allowing communication of the system with a PC computer. In this work, a variant of the algorithm
LPC10 is implemented with speed of 2.4 Kb/s and the algorithms are implemented in the processor in C language.
The evaluation of the system is made from the analysis of the data sent to the PC, which are analyzed with the
Matlab processor and compared with simulated results. This piece of work is related to a task of the project
Platform of Commutation of Packages, approved by the MIC to the ISPJAE with participation of the UPR and GKT.

Key words: Codec, FPGA, LPC-10, MicroBlaze, VoIP.

Introduccion se pueden transmitir ms llamadas mediante la conmuta-


cin de paquetes de voz. Para la ejecucin de servicios
Con el comienzo de la creacin de redes de computa- de VoIP, se necesita un bloque de adaptacin [3], tambin
doras a finales de la ltima dcada del siglo pasado, se vio conocido como compuerta o pasarela VoIP (Gateway VoIP)
que el principio de conmutacin y transmisin de paquetes que permite conectar un aparato telefnico con una red
de datos en la cual esta se basaba podra ser aplicado de computadoras. Este bloque que debe trabajar en modo
tambin a la transmisin de voz previamente digitalizada. dplex comprende entre otros elementos: un conversor
Surga entonces una alternativa a la red pblica telefnica analgico digital (ADC) para obtener las muestras de la
de servicios conmutados, la telefona sobre IP o VoIP. En seal de voz, la implementacin de los algoritmos para
lugar de lograr una conexin dedicada punto a punto entre instrumentar los protocolos IP para la formacin, orde-
dos usuarios remotos conectando adecuadamente las lneas namiento e identificacin de los paquetes y un conversor
necesarias, como se hace en la telefona tradicional, en digital analgico (DAC) para de nuevo sintetizar la seal
VoIP se digitaliza la seal de voz y se forman paquetes analgica de la voz recibida.
de datos que son enviados segn el protocolo de Internet Si se digitaliza la seal de voz a 8 kHz, con 16 bits
IP por la red de computadoras [5]. En el lado receptor se resulta en que la velocidad de transmisin necesaria es
reciben los paquetes, se ordenan y se reconstruye la seal de 128 kb/s. Se hace necesario introducir algoritmos para
original de voz. Los recursos se comparten y de esta forma disminuir la velocidad de transmisin y mantener un com-

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


54 Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA

promiso con la calidad de reproduccin de la voz. Estos disear el microprocesador seleccionando los recursos
algoritmos de compresin se denominan CODEC de voz necesarios para la aplicacin en cuestin. El procesador
o vocoders. [7] MicroBlaze para circuitos de la firma Xilinx, es un proce-
Dada la existencia de una lnea de transmisin de datos sador de 32 bits, con arquitectura de Harvard que brinda
a lo largo de todo el pas, se piensa que la telefona sobre memorias y buses de datos separados para programas y
IP puede ser una solucin econmicamente viable para datos, trabaja con aritmtica de 32 bits de precisin del tipo
conectar telefnicamente algunas localidades remotas. punto flotante segn la norma IEE574 y que posee adems
En este trabajo se presentan los resultados en la im- una unidad opcional para procesamiento en punto flotante
plementacin de un bloque, CODEC, para una pasarela que acelera dichas operaciones. Todas estas facilidades lo
telefnica de VoIP empleando un procesador empotrado hacen especialmente atractivo para implementar algoritmos
virtualmente en un circuito FPGA de la familia Sparta- de procesamiento digital donde estn involucradas opera-
n3e. Adems del procesador tambin se sintetizan otros ciones matemticas importantes.
circuitos necesarios como un controlador de conversin Para el diseo del microprocesador se ha empleado
ADC y un controlador de conversin DAC especialmente la herramienta EDK8.1 en particular la plataforma XPS
diseados para este trabajo, un controlador de memoria que posibilita adems la creacin de las bibliotecas de los
DDR externa y un controlador para comunicacin RS-232. controladores, el diseo de las aplicaciones de software
Desde el punto de vista del software se presenta adems el empleando lenguaje C/C++, la compilacin y depuracin
cdigo en lenguaje de programacin C para implementar de los errores, la simulacin del sistema, la valoracin del
el algoritmo LPC-10E escogido para el CODEC. Los re- consumo de tiempo y finalmente la creacin del fichero .bit
sultados obtenidos se comparan adems con los obtenidos que contiene la informacin conjunta relativa al software
implementando el modelo desde el programa Matlab, ver. y el hardware para programar la ejecucin del procesador
7.0, exportando los resultados mediante la comunicacin en el circuito en la FPGA.
serie hacia una PC. Para este trabajo se ha diseado un microcontrolador
En las secciones siguientes se aborda brevemente con 50 MHz de reloj, con controlador de interrupciones,
lo relativo a los dispositivos electrnicos empleados en un temporizador con interrupcin para ajustar la frecuen-
el trabajo, algunas de sus caractersticas principales, as cia del muestreo del sistema a 8 kHz, la unidad de punto
como los algoritmos y mtodos empleados para lograr la flotante, los perifricos para controlar la memoria DDR, y
implementacin del codec, y los resultados ms relevantes la interfaz RS-232.
acompaados de algunas consideraciones realizadas al
respecto. Creacin e importacin de perifricos adicionales

Un aspecto importante en el diseo de esta aplicacin


Materiales y mtodos es la creacin e importacin de nuevos perifricos. Por
ejemplo se necesita comunicar los conversores ADC y
Este trabajo ha sido implementado sobre una tarjeta DAC con el procesador a fin de que este lea o escriba los
Spartan3e que contiene entre otros un circuito FPGA valores de las muestras digitalizadas de la voz y las procese
xc3s500e-4fg320 con alrededor de 10000 celdas lgicas, convenientemente. A diferencia de un microcontrolador
20 multiplicadores empotrados y 20 bloques de memoria tpico que posee puertos dedicados, el MicroBlaze posee
RAM para un total de 320 kb. Se ha usado tambin de un conjunto de buses para conectar con otros dispositi-
dicha tarjeta la memoria externa DDR SRAM de 32 MB- vos. Para establecer dicha conexin se hace necesario la
ytesx16bits, el conversor DAC LTC2624 serie de 12 bits creacin de un controlador de dicho perifrico al bus en
y el controlador de interfaz RS-232. En una tarjeta auxiliar cuestin. Se puede emplear el bus OPB de MicroBlaze
se incorporaron un conversor serie ADC MAX187 de 12 para conectar perifricos, sin embargo en este trabajo
bits y dos filtros paso bajo analgicos programables para se ha empleado la conexin a la interfaz FSL a partir de
implementar el filtro anti-rplicas y el filtro reconstructor la creacin del perifrico que se oferta como una de las
correspondiente. opciones del programa de generacin de sistemas XSG.
Para el desarrollo del trabajo fue necesario configurar XSG es una herramienta que se instala sobre Simulink
primeramente el hardware del procesador, y elaborar el de Matlab y que est optimizada para crear sistemas de
software de la aplicacin a fin de implementar los algorit- procesamiento digital en los circuitos FPGA de Xilinx.
mos de procesamiento de la compresin de voz. Comprende un conjunto de bibliotecas de funciones y de
implementacin de mdulos de propiedad intelectual IP,
Configuracion del procesador permite la simulacin del circuito as como la sntesis y
creacin del fichero bit de configuracin. Puesto que los
Por tratarse de un microprocesador empotrado por soft- controladores para los conversores ADC y DAC haban
ware en un circuito FPGA, se hace necesario primeramente sido creados con dicha herramienta, se emple la opcin de

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA 55

sintetizar un mdulo ipcore para MicroBlaze, modificando conversin se debe bajar CS a un nivel bajo, la transicin
ligeramente los bloques originales aadiendo los registros negativa de esta seal inicia dicha conversin y baja la
adecuados a fin de que fueran procesados directamente en seal DOUT a un nivel bajo. Durante esta etapa se debe
el MicroBlaze as como el bloque EDK que asigna los re- mantener el reloj SCLK a un nivel bajo. Cuando la conver-
gistros. Para asegurar la compatibilidad de la aritmtica del sin termina, DOUT sube a un nivel alto y a partir de ese
XSG de formato punto fijo y la del MicroBlaze en formato momento las transiciones negativas del reloj serie hacen
punto flotante, se trabaja en XSG en formato ufix(12,0) que en el terminal DOUT aparezcan primero los bits ms
que puede ser procesado por los registros de MicroBlaze significativos correspondientes al cdigo del conversor. Por
en formato int, entonces en el programa de MicroBlaze se lo tanto, a fin de conformar el cdigo se hace necesario
conforma el dato en formato flotante finalmente. instrumentar un convertidor serie a paralelo. Para generar
El paso siguiente comprende la creacin e importacin dichas seales, primeramente se obtiene CS a partir de un
del perifrico, a partir de copiar la carpeta ipcore creada contador.
en el repositorio del MicroBlaze, conectar el coproce- En la figura 2 se muestra la carta de tiempo del conver-
sador creado con el MicroBlaze disponible en la opcin sor, simulada en Simulink donde se aprecian que se gene-
correspondiente del hardware, realizar las conexiones de la ran adecuadamente las seales anteriormente descritas. CS
interfaz en la ventana de montaje y modificando el fichero se genera a partir de un contador que cuenta 6249 pulsos
UCF con las conexiones necesarias entre el circuito FPGA del reloj de 50 MHz del sistema, que se corresponde con el
y los circuitos a manejar. Para realizar las operaciones de tiempo de 125 ms correspondiente al perodo de 8 kHz de
lectura y escritura en los registros que enlazan la aplicacin muestreo que se desea. SCLK se genera a partir de contar
con el hardware creado se emplean las funciones corres- 380 pulsos de reloj del sistema, lo cual permite obtener un
pondientes que se crean automticamente en el fichero .h, reloj de 7.6 ms, una lgica adicional permite sincronizar
luego de actualizadas las bibliotecas del sistema. el inicio del reloj despus de pasado un tiempo mayor que
10 ms a fin de lograr que el conversor haya finalizado el
Controlador del conversor MAX187 proceso de conversin. El conversor serie paralelo se ha
implementado a partir de un cdigo generado en lenguaje
En la figura 1 se muestra el modelo en Simulink creado vhdl e importado hacia el XSG mediante un componente
por XSG para manejar el conversor ADC MAX187, de adecuado para estos fines. Como este conversor es unipolar
12 bits, unipolar. Este conversor se controla con tres a fin de poder trabajar con seales con signo, se hace un
terminales SCLK, CS y DOUT, que deben ser conectados acondicionamiento de la seal a la mitad del voltaje de
a determinados terminales de la FPGA. Para efectuar una referencia (2.048 V), de esa forma las seales positivas se

Fig.1: Modelo en XSG para controlar ADC MAX187.

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


56 Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA

Fig. 2. Carta de tiempo del conversor MAX187.

interpretan como voltajes mayores que la mitad del voltaje Vocoders [7] [5]
de referencia y las negativas como voltajes menores.
Un procedimiento similar se emplea para controlar el El trmino vocoder se emplea para designar a los CODE-
conversor DAC, pues se trata tambin de un conversor uni- CS especialmente concebidos para aplicaciones de voz. A lo
polar de 12 bits de formato serie, con terminales CS, SCLK largo de los aos se elaborado un gran nmero de CODECs.
y DIN. En este caso para generar el voltaje correspondiente Existen estndares establecidos por la Unin Internacional
a un cierto cdigo o nmero, se implementa primero una de Telecomunicaciones (UIT) para la codificacin de la
palabra de control de 32 bits que contiene el canal del voz, a continuacin se muestra una tabla con las principales
conversor a emplear as como el cdigo de conversor. Esta caractersticas de algunos de ellos. La norma G.729 es la
palabra se convierte de formato paralelo a formato serie asignada para servicios de VoIP, sin embargo en este trabajo
y se va transmitiendo bit a bit por el terminal DIN del se ha decidido emplear la norma FS1015 debido a la simpli-
conversor con las transiciones del reloj SCLK del mismo. cidad de su modelo, y as ganar experiencia primeramente en
la implementacin de la misma. Por otra parte mucho de sus
Controladores de filtros analgicos bloques son parte integrante de otros CODECs ms comple-
jos. Esta norma se basa en emplear un modelo de prediccin
Se emplean dos filtros analgicos MAX295, que son fil- lineal para la generacin de la voz. La idea fundamental es
tros paso bajo de orden 8 con aproximacin de Butterworth que a partir de una determinada muestra de la voz o trama y
para implementar el filtro anti-rplicas y el filtro recupe- aplicando un modelo determinado para la generacin de la
rador. La frecuencia de corte del filtro se escoge como 4 misma, se obtiene un conjunto de parmetros que definen el
kHz, la frecuencia de Nyquist del sistema, y se programa modelo. El nmero total de bits asociado a estos parmetros
implementando un reloj de 200 kHz, que se corresponde resulta menor que el nmero total de bits correspondiente
con una frecuencia 50 x la frecuencia de corte. Puesto que a la trama de voz. Por lo tanto es ms factible transmitir
este sistema no necesita ser controlado por el procesador y estos parmetros del modelo y no la seal de voz. En el
no tiene asociado ningn registro de lectura o escritura, se lado receptor se reciben los parmetros del modelo y se
ha adicionado a uno de los bloques anteriormente descritos. implementa el mismo incluyendo los estmulos necesarios.
Aunque la seal generada no es una copia fiel de la trama
inicial, tiene la calidad audible suficiente para distinguirse
en el proceso de comunicacin.

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA 57

Tabla I: Normas de los codecs


es un sistema FIR inverso al sistema IIR que modela el
Norma Descripcin Ancho de banda kbps Retardo
tracto vocal.
G.711 PCM 64 < 1ms
El problema fundamental de la prediccin lineal de la
G.721 Adpcmfs 1015 32, 16, 24, 40 < 1ms
voz es la determinacin del conjunto de coeficientes {}
G.728 LD-CEL 16 ~ 2.50
para cada trama que haga mnimo el error de prediccin
G.729 CS-ACELP 8 ~15.00
e(n) medio cuadrtico. Una vez determinados los coeficien-
G.723.1 Multirate CELP 6.3. 5.3 ~30.00
tes para esa trama, si se aplica la excitacin adecuada al
Fs1015 LPC10 2.4 ----
sistema determinado por la ecuacin (1), se obtendr a la
salida una secuencia que reproducir la trama en cuestin
Modelo de prediccin lineal LPC para la voz
no exactamente en el dominio del tiempo pero si de sus
propiedades espectrales. El procedimiento bsico de un
La prediccin lineal (LP) se aplica para obtener un
CODEC de voz comprende entonces dos partes:
modelo para la produccin de seales de voz. Se puede
Codificacin de la trama: clculo de los parmetros del
asumir que el tracto vocal, se puede describir por un filtro
modelo de la trama.
todo polo de respuesta impulsiva infinita (IIR) con una
V: clasificacin de la trama como sonora o sorda.
funcin transferencial H (z) dada por:
G: nivel de energa de la trama.
Conjunto de coeficientes {ak}
P: Tiempo que transcurre entre pulsos de excitacin
consecutivos para trama sonora.
Los coeficientes se asumen constantes en el tiempo slo
para tramas de voz de un tamao determinado, en depen- Se transmiten estos parmetros, lo cual conlleva a
dencia de la trama la seal de excitacin del sistema ser transmitir menos bits en relacin a la trama original.
un tren de impulsos si la trama se clasifica como sonora o Decodificacin de la trama. Se reciben los parmetros
una seal aleatoria si es no sonora. Este modelo se resume y se implementa con ellos el modelo de produccin de voz
en la figura 3. para esa trama.
La ecuacin en diferencias del sistema que modela el
tracto vocal y genera las muestras resulta en:
Modelo LPC-10 [2]

Los diagramas de bloques relativos al codificador


y decodificador del vocoder LPC-10 se muestran en las
El trmino de la sumatoria en la ecuacin (2), puede figuras 4 y 5.
interpretarse como un predictor lineal en el cual la muestra En el bloque de codificacin la seal de voz adquirida
de salida se puede generar mediante una combinacin de la digitalizacin a 8 kHz se conforma en tramas de 20
lineal de p muestras anteriores Se puede calcular el error ms, con un solapamiento entre ellas de 10 ms. La trama
de prediccin e(n) como: es procesada en varias trayectorias a fin de determinar los
parmetros del modelo. Estos procesos comprenden un
filtro de pre-nfasis, la clasificacin de la trama en sonora o
Comparando las ecuaciones (1) y (3), puede considerar- sorda para definir el tipo de estmulo, el clculo de tiempo
se que la generacin de la secuencia de error de prediccin

Fig. 3 Modelo de produccin de la voz

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


58 Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA

de pitch para tramas sonoras, el clculo de los coeficientes (PG). Para obtener una clasificacin eficiente de la trama
del filtro LPC y el clculo de la ganancia. se deben tener en cuenta el resultado de los tres criterios.
La Funcin Magnitud Suma (MSF) es igual a la energa
calculada para la trama por lo tanto se usa en mayor can-
tidad de oportunidades por las facilidades que brinda para
su clculo. Esta funcin se expresa como sigue:

La voz tiene concentrada la mayor cantidad de energa


en la regin de bajas frecuencias, es por eso que para
alcanzar una mejor discriminacin de ella se introduce un
filtro paso bajo antes del efectuar el clculo de la misma.
Un ancho de banda de 800 Hz es adecuado para este pro-
psito pues la ms alta frecuencia del diapasn (de la voz
Fig. 4. Codificador LPC completo usando la norma FS1015. humana) es alrededor de los 500 Hz.
Un valor elevado, aproximadamente de 250 000 de la
MSF estar relacionado por consiguiente con una trama de
voz y un valor bajo con una trama de no voz. [3]
La proporcin de cruces por cero (ZC) de una trama de
voz que termina en el instante m est definida por:

Para una trama de voz sonora la proporcin de cruces


por cero es relativamente baja, ZC < 20, debido a la pre-
sencia de la componente de frecuencia del diapasn (de
naturaleza de baja frecuencia). Y para una trama sorda los
cruces por cero son altos >20, debido a la apariencia de
ruido de la seal con una alta porcin de la energa en las
Fig. 5. Decodificador LPC completo usando la norma FS1015.
altas frecuencias.
La prediccin de ganancia PG se define como la pro-
Pre-nfasis
porcin de la energa de la seal y la energa del error de
prediccin:
El espectro tpico de la seal de voz tiene una atenua-
cin en las altas frecuencias debido al efecto de radiacin
del sonido desde los labios [2] [4]. Esto puede afectar el
clculo de estas componentes de frecuencia, por ello la tra-
ma de voz se procesa por un filtro paso alto que incremente
la energa de las componentes de alta frecuencia. Este filtro
se denomina de pre-nfasis puede implementarse como un
Para que ocurran cambios en la determinacin de la
filtro FIR con un cero cercano a la unidad con una ecuacin
condicin de las tramas teniendo en cuenta la PG en voz
en diferencias dada por:
o no, estas deben como promedio tener un valor de 3 dB
o ms de diferencia, entonces se dice que la trama actual
[5]
cambia su condicin con respecto a la anterior, principal-
mente debido al hecho de que la periodicidad implica una
Clasificacin de la trama
mayor correlacin entre las muestras, y as son ms fcil
de predecir. Las tramas de no voz son ms aleatorias y por
El lmite de la clasificacin V/UV no siempre est claro.
consiguiente menos predecibles.
Fundamentalmente esto ocurre para tramas de transicin
en las que la seal pasa de voz a no voz, o viceversa. Esta
Clculo de tiempo Pitch
es una de las limitaciones de este modelo.
Los parmetros fundamentales a tener en cuenta para
El tiempo sucesivo en que se abren las cuerdas vocales
realizar esta clasificacin son: Funcin Magnitud Suma
es llamado perodo fundamental, perodo de diapasn,
(MSF), Cruces por Cero (ZC), Prediccin de Ganancia
o perodo del pitch. En trminos de tiempo, para los

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA 59

hombres es aproximadamente de 4 ms a 20 ms, mientras Ganancia


que para las mujeres, es de 2 ms a 8 ms [6]. El diseo
de un algoritmo de estimacin del perodo fundamental En este trabajo se emplea el clculo de la ganancia G,
es complejo y de su correcta determinacin depende la dada por la ecuacin (14):
calidad del vocoder, y de varios factores que atentan contra
la correcta determinacin del mismo, en particular que la
trama en realidad no tiene una periodicidad perfecta y el
ruido e interferencia siempre estn presentes. En esta expresin se muestra la dependencia de la ganan-
En la prctica la estimacin del perodo fundamental es cia de los coeficientes de autocorrelacin y de los coeficientes
implementada como un compromiso entre la complejidad del filtro calculado por el mtodo de Levinson.[1]
computacional y la calidad que se desea obtener. La seal
de voz es pasada por un filtro paso bajo antes de ser usada
para la estimacin del pitch puesto que la frecuencia funda- Resultados y discusin
mental asociada con la voz est localizada en la regin de
frecuencias menores que 500 Hz. En este trabajo se emplea Los algoritmos anteriormente explicados se imple-
la autocorrelacin de la trama para determinar el pitch. mentaron en Matlab y en cdigo C para el procesador
Microblaze, soportado sobre la tarjeta FPGA Spartan-3E
Clculo de los coeficientes de regresin de Xilinx.
Se gener una seal de prueba que es procesada para-
Para el clculo de los coeficientes de regresin se em- lelamente por Matlab y el Microblaze y se compararon los
plea el mtodo de Levinson-Durbin que permite calcular resultados obtenidos, este proceso de comprobacin fue
recursivamente la solucin a una ecuacin que involucra realizado para cada uno de los bloques del codec LPC10,
la matriz de Toeplitz, que resulta al evaluar el error medio pero se mostrarn solamente los resultados relevantes de
de prediccin. [5] una trama de 160 muestras, o sea, los parmetros que se
envan al decodificador.
En la tabla siguiente se muestra la comparacin cuan-
titativa de los resultados obtenidos para los coeficientes
LPC, el perodo fundamental, pitch, la clasificacin de voz
y la ganancia para una trama de prueba, tanto en Matlab
como en Microblaze.
Donde son los coeficientes de autocorrelacin de la tra-
Tabla II. Comparacin de los resultados.
ma calculados y ak son los coeficientes del filtro de sntesis
que se utiliza en el modelo LPC, en este caso como se trata Parmetro Valor en Microblaze Valor en Matlab

1.0000
del vocoder LPC10 se calculan 10 coeficientes del filtro y 1
-1.34549761 -1.3442
por tanto 11 valores de la funcin de autocorrelacin. 0.295958906 0.2926
0.24395521 0.2474
Debido a la simetra que presenta la matriz de Toeplitz, 0.191256672 0.1900
pues sus diagonales contienen los mismos elementos, el 0.11971584
0.0444279015
0.1199
0.0429
algoritmo puede ser usado para resolver el sistema. Las -0.0346283019 -0.0317
-0.0925646871 -0.0952
ecuaciones resultantes de este procedimiento son [5]: -0.145064414 -0.1438
Coeficientes LPC 0.341273516 0.3411

Pitch 28 28

Voice/Unvoice 0 0

Ganancia 3.63050723 3.6305

Finalmente se realiz la comparacin de la seal ori-


ginal y la seal sintetizada a travs de los parmetros del
codec LPC10 procesada en Matlab y en Microblaze, y el
anlisis de la calidad de servicio (QoS). Para ello la seal
es enviada desde Matlab al procesador mediante el puerto
serie, y este devuelve la voz sintetizada por el Microblaze
y se compara con la voz sintetizada por el Matlab.
La figura 10 muestra los resultados de esta compara-
cin.

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011


60 Juan Ral Rodrguez Surez et al.: Codificador de voz LPC_10 sobre FPGA

Referencias Bibliogrficas

1. Campbell, J. P., Tremsin, Jr. T. E. Voiced/Unvoiced classification


of speech with application to the U.S. Government LPC-
10E algorithm, 1 ed., New York, Prentice-Hall, 1982.
2. Haykin, S., Communication Systems, 4 ed., New York,
Jhon Wiley & Sons, 2008.
3. Lin, W., Ngee Koh, S., Lin, X., Mixed Excitation Linear Pre-
diction Coding of Wideband Speech at 8 kbps, 1 ed.,
Massachusetts, Jhon Wiley & Sons, 2006.
4. Peleg, N., Linear Prediction Coding, 1 ed., New York,
Jhon Wiley & Sons, 2009.
Fig.10. Comparacin de la seal original con la sintetizada usando 5. Rabiner, L.R, Digital Processing of speech Signal, 1 ed.,
Matlab. New Jersey, Prentice-Hall, 1978.
6. Rabiner, L. R., A Pattern Recognition Approach to Voiced-
En la figura anterior se muestra una comparacin en Unvoiced-Silence Classification with Applications to
el dominio del tiempo, de las seales involucradas en el Speech Recognition, 1 ed., New Jersey, Prentice-Hall
experimento realizado. En la parte superior se muestra la 1980.
seal original que se someti al proceso de codificacin 7. Therrien, C. W., Discrete Random Signals and Statical Sig-
empleado el algoritmo ya mencionado, y en la parte infe- nal Processing, 1 ed., New York, Prentice-Hall, 1992.
rior la forma de onda de la seal que se sintetiz posterior
a los procesos de codificacin y decodificacin. Como se Recibido: 02/02/09
puede observar la forma de onda de ambas seales es casi Aprobado: 04/11/11
idntica, sin embargo es preciso sealar que subjetivamen-
te, o sea, al escuchar ambas seales, se puede notar una C. Juan Ral Rodrguez Surez1
pequea diferencia entre ellas. Profesor Auxiliar del Departamento de Telecomunicaciones y
Electrnica de la Universidad de Pinar del Rio. Cuba. Miem-
bro del Grupo de Investigacin para el Diagnstico Avanzado
Conclusiones de Maquinarias GIDAM. Trabaja en las temticas de procesa-
miento digital de seales, sensores e instrumentacin.
Se dise e implement el codec para voz IP LPC10
soportado sobre un microcontrolador Microblaze empotra- ngel Correa Fernndez1
do en una tarjeta Spartan 3E, teniendo en cuenta todos las Profesor Instructor del Departamento de Telecomunicacio-
recomendaciones que ofrece el algoritmo Lineal Prediction nes y Electrnica de la Universidad de Pinar del Rio. Cuba.
Code, para las transmisiones de voz a 2.4kbp. Miembro del Grupo de Investigacin para el Diagnstico
Se comprob adems el correcto funcionamiento del Avanzado de Maquinarias GIDAM. Trabaja en las temticas
mismo evaluando su calidad de servicio y comparndolo de procesamiento digital de seales.
con un procesamiento similar en Matlab, permitiendo la
evaluacin de cada uno de los bloques funcionales que Elieser Gallego Martnez1
conforman el algoritmo de codificacin, mediante la Miembro del Grupo de Investigacin para el Diagnstico
herramienta de simulacin virtual que proporciona XPS. Avanzado de Maquinarias GIDAM.
A partir de este trabajo se ha logrado obtener una pla-
taforma experimental para la evaluacin de los distintos Alexey Garca Padilla1
tipos de codec de audio. Se pretende, usando la misma Miembro del Grupo de Investigacin para el Diagnstico
plataforma y metodologa, evaluar la implementacin de Avanzado de Maquinarias GIDAM.
codecs de voz de prestaciones superiores, tales como el
G729 o G723. Ismel Domnguez Rodrguez1
Miembro del Grupo de Investigacin para el Diagnstico
Avanzado de Maquinarias GIDAM.

1. Universidad de Pinar del Ro, Cuba, Mart 270, final. Departamento de


Telecomunicaciones y Electrnica.
( alexey@tele.ur.edu.cu, elieser@tele.upr.edu.cu, ismel@tele.upr.edu.
cu, angel@tele.upr.edu.cu, jotar@tele.upr.edu.cu )

Rev. Cienc. Tecnol. / Ao 13 / N 15 / 2011

Das könnte Ihnen auch gefallen