Compresor Ley a y Ley U

UNIVERSIDAD MAYOR DE SAN ANDRÉS FACULTAD DE INGENIERIA CARRERA: Ingeniería Electrónica Compresión con ley a y ley Mu MA

Views 236 Downloads 88 File size 564KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD MAYOR DE SAN ANDRÉS FACULTAD DE INGENIERIA CARRERA: Ingeniería Electrónica

Compresión con ley a y ley Mu MATERIA: Sistemas de Comunicaciones I (ETN-1011) DOCENTE: Ing. Gonzalo Caba Morales ESTUDIANTE: Juan Pablo Patón Mamani LA PAZ – BOLIVIA I/2016

IÍndice 1

Introducción ................................................................................................................................ 3

2

Justificación .................................................................................. ¡Error! Marcador no definido.

3

Marco Teórico ............................................................................................................................. 3

4

Desarrollo .................................................................................................................................... 9

5

Conclusiones ............................................................................................................................. 11

Compresió n con Lay a y Ley Mu 1 Introducción

Se analiza el proceso de compresión de señales de audio mediante los estándares de compresión de señales de la ley A y la Ley Mu para la transmisión de señales en sistemas de comunicación. Dada la importancia de la transmisión de voz en un sistema de comunicación y la importancia del tratamiento de error de cuantificación de la señal de voz, se analiza el tratamiento de una señal de voz con una herramienta computacional como ser Matlab.

2 Marco Teórico 2.1 Ley Mu El algoritmo Ley μ (μ-law o mu-law) es un sistema de cuantificación logarítmica de una señal de audio. Es utilizado principalmente para audio de voz humana dado que explota las características de ésta. El nombre de Ley μ proviene de µ-law, que usa la letra griega µ. Su aplicación cubre el campo de comunicaciones telefónicas. Este sistema de codificación es usado en Estados Unidos y Japón. En Europa se utiliza un sistema muy parecido llamado ley A. 2.1.1 Características básicas de la Ley μ Es un algoritmo estandarizado, definido en el estándar ITU-T G.711 • • • • • •

Tiene una complejidad muy baja Utilizado en aplicaciones de voz humana No introduce prácticamente retardo algorítmico (dada su baja complejidad) Es adecuado para sistemas de transmisión TDM No es adecuado para la transmisión por paquetes Factor de compresión aproximadamente de 2:1

Digitalmente, el algoritmo ley μ es un sistema de compresión con pérdida en comparación con la codificación lineal normal. Esto significa que al recuperar la señal, ésta no será exactamente igual a la original. 2.1.2

Planteamiento del algoritmo

Este algoritmo se utiliza principalmente para la codificación de voz humana, ya que su funcionamiento explota las características de esta. Las señales de voz están formadas en gran parte por amplitudes pequeñas, ya que son las más importantes para la percepción del habla, por lo tanto estas son muy probables. En cambio, las amplitudes grandes no aparecen tanto, por lo tanto tiene una probabilidad de aparición muy baja.

En el caso de que una señal de audio tuviera una probabilidad de aparición de todos los niveles de amplitud por igual, la cuantificación ideal sería la uniforme, pero en el caso de la voz humana esto no ocurre, estadísticamente aparecen con mucha más frecuencia niveles bajos de amplitud. El algoritmo Ley Mu explota el factor de que los altos niveles de amplitud no necesitan tanta resolución como los bajos. Por lo tanto, si damos más niveles de cuantificación a las bajas amplitudes y menos a las altas conseguiremos más resolución, un error de cuantificación inferior y por lo tanto una relación señal/ruido (SNR) superior que si efectuáramos directamente una cuantificación uniforme para todos los niveles de la señal. Esto provoca que si para un determinada SNR necesitamos por ejemplo 16 bits usando una cuantificación uniforme, para la misma SNR usando la codificación Ley μ necesitamos 8 bits, dado que el error de cuantificación es menor y podemos permitirnos usar menos bits para obtener la misma SNR. 2.1.3 Funcionamiento El algoritmo Ley Mu basa su funcionamiento en un proceso de compresión y expansión llamado compansión. Se aplica una compresión/expansión de las amplitudes y posteriormente una cuantificación uniforme. Las amplitudes de la señal de audio pequeñas son expandidas y las amplitudes más elevadas son comprimidas. Esto se puede entender de la siguiente forma; cuando una señal pasa a través de un compander, el intervalo de las amplitudes pequeñas de entrada es representado en un intervalo más largo en la salida, y el intervalo de las amplitudes más elevadas pasa a ser representado en un intervalo más pequeño en la salida. En la siguiente figura podemos verlo con claridad:

Esta figura muestra que el rango de los valores de entrada (línea horizontal) contenidos en el intervalo [-0.2,0.2] (amplitudes pequeñas) están representados en la salida (línea vertical) en el intervalo [-0.6,0.6]. Podemos comprobar que hay una expansión. Por otra parte vemos que los valores de entrada contenidos en el intervalo [-1,-0,6] y [0.6,1] son representados en la salida en los intervalos [-0.9,-1] y [0.9,1]. Podemos comprobar que se produce una compresión. Digitalmente, todo este esquema es equivalente a aplicar una cuantificación no uniforme (logarítmica) a la señal original, donde tendremos pequeños pasos de cuantificación para los valores pequeños de amplitud y pasos de cuantificación grandes para los valores grandes de amplitud. Para recuperar la señal en el destino tendremos que aplicar la función inversa. Por lo tanto, la implementación del sistema consiste en aplicar a la señal de entrada una función logarítmica y una vez procesada realizar una cuantificación uniforme. Es lo mismo que decir que el paso de cuantificación sigue una función del tipo logarítmico. Esta función viene definida de la siguiente forma:

La letra μ indica el factor de compresión usado (μ = 255).

Si μ = 0 la entrada es igual a la salida.

2.2 Ley A La ley A (A-Law) es un sistema de cuantificación logarítmica de señales de audio, usado habitualmente con fines de compresión en aplicaciones de voz humana. Está estandarizada por la ITU-T en G.711 y es similar a la ley Mu. 2.2.1 • • • • • • •

Características básicas de la Ley A Es un algoritmo estandarizado, definido en el estándar ITU-T G.711 Tiene una complejidad muy baja Utilizado en aplicaciones de voz humana No introduce prácticamente retardo algorítmico (dada su baja complejidad) Es adecuado para sistemas de transmisión TDM No es adecuado para la transmisión por paquetes Digitalmente, factor de compresión aproximadamente de 2:1

2.2.2 Planteamiento del algoritmo Este algoritmo se utiliza principalmente para la codificación de voz humana, ya que su funcionamiento explota las características de ésta. Las señales de voz están formadas en gran parte por amplitudes pequeñas, ya que son las más importantes para la percepción del habla, por lo tanto éstas son muy probables. En cambio, las amplitudes grandes no aparecen tanto. En el caso de que una señal de audio tuviera una probabilidad de aparición de todos los niveles de amplitud por igual, la cuantificación ideal sería la uniforme, pero en el caso de la voz humana esto no ocurre, estadísticamente aparecen con mucha más frecuencia niveles bajos de amplitud. El algoritmo Ley A explota el factor de que los altos niveles de amplitud no necesitan tanta resolución como los bajos. Por lo tanto, si damos más niveles de cuantificación a las bajas amplitudes y menos a las altas conseguiremos más resolución, un error de cuantificación inferior y por lo tanto una relación SNR superior que si efectuáramos directamente una cuantificación uniforme para todos los niveles de la señal. Esto provoca que si para un determinado SNR fijado necesitamos por ejemplo 16 bits usando una cuantificación uniforme, para el mismo SNR usando la codificación Ley A necesitemos 8 bits, dado que el error de cuantificación es menor y podemos permitirnos usar menos bits para obtener el mismo SNR. 2.2.3 Funcionamiento El algoritmo Ley A basa su funcionamiento en un proceso de compresión y expansión llamado companding. Se aplica una compresión/expansión de las amplitudes y posteriormente una cuantificación uniforme. Las amplitudes de la señal de audio pequeñas son expandidas y las amplitudes más elevadas son comprimidas.

Esto se puede entender de la siguiente forma; cuando una señal pasa a través de un compander, el intervalo de las amplitudes pequeñas de entrada es representado en un intervalo más largo en la salida, y el intervalo de las amplitudes más elevadas pasa a ser representado en un intervalo más pequeño en la salida. En la siguiente figura podemos verlo con claridad:

Ésta figura muestra que el rango de los valores de entrada (línea horizontal) contenidos en el intervalo [-0.2,0.2] (amplitudes pequeñas) están representados en la salida (línea vertical) en el intervalo [-0.7,0.7], aproximadamente. Podemos comprobar que hay una expansión. Por otra parte vemos que los valores de entrada contenidos en el intervalo [-1,-0,6] y [0.6,1] son representados en la salida en los intervalos [-1, -0.9,] y [0.9,1]. Podemos comprobar que se produce una compresión. Digitalmente, todo este esquema es equivalente a aplicar una cuantificación no uniforme (logarítmica) a la señal original, donde tendremos pequeños pasos de cuantificación para los valores pequeños de amplitud y pasos de cuantificación grandes para los valores grandes de amplitud. Para recuperar la señal en el destino tendremos que aplicar la función inversa. Por lo tanto, la implementación del sistema consiste en aplicar a la señal de entrada una función logarítmica y una vez procesada realizar una cuantificación uniforme. Es lo mismo que decir que el paso de cuantificación sigue una función del tipo logarítmico. Para una entrada x dada, la ecuación Ley A de salida es:

, donde A es el parámetro de compresión. En Europa los sistemas TDM/PCM del mundo G. 732.

según ITU-T G. 711. Utilizada en

Si A = 1 la entrada es igual a la salida. La función inversa es la siguiente:

2.2.4 Codificación digital Digitalmente se aplica una cuantificación no uniforme (logarítmica) a la señal original, donde tendremos pequeños pasos de cuantificación para los valores pequeños de amplitud y pasos de cuantificación grandes para los valores grandes de amplitud. El algoritmo A-law digital es un sistema de compresión con pérdidas en comparación con la codificación lineal normal. Esto significa que al recuperar la señal, ésta no será exactamente igual a la original. La codificación A-law toma una muestra de audio de 13 bits (ó 16 bits convertida a 13) como entrada y la comprime a un valor de 8 bits, así: Código de entrada lineal Código comprimido s0000000wxyza...

s000wxyz

s0000001wxyza...

s001wxyz

s000001wxyzab...

s010wxyz

s00001wxyzabc...

s011wxyz

s0001wxyzabcd...

s100wxyz

s001wxyzabcde...

s101wxyz

s01wxyzabcdef...

s110wxyz

s1wxyzabcdefg...

s111wxyz

donde s es el bit de signo. Por ejemplo, 1000000010101111 es convertido en 10001010 (de acuerdo a la primera fila de la tabla), y 0000000110101111 es convertido en 00011010 (de acuerdo a la segunda fila). Esto puede ser visto como un número en notación de punto flotante con 4 bits de mantisa y 3 bits de exponente.

Adicionalmente, el estándar G.711 especifica que los bits pares resultantes son invertidos antes de enviar el octeto de bits. Esto es para aumentar la cantidad de bits en 1 para facilitar el proceso de recuperación de la señal de reloj del sistema en el receptor PCM.

3 Desarrollo 3.1 Prueba inicial con una señal senoidal El desarrollo práctico hace uso de la Herramienta Simulink para la evaluación de la ley mu y permite la compresión de una señal inicialmente la señal exponencial para comprobar que se realiza la compresión de forma logarítmica Se propone el siguiente diagrama de compresión:

Del mismo se ha obtenido el siguiente detalle:

3.2 Implementación en matlab con una muestra de audio Se implementa el siguiente código con matlab para ver el muestreo de una señal. Con verde la señal compresa mediante ley A

[road,fs]=audioread('road.wav'); % carga un archivo de audio size(road) % determina la dimension de la matriz de audio muy = lin2mu(road); plot(t(1:limite),100*road(1:limite),t(1:limite),muy(1:limite)) xlabel('time (sec)'); ylabel('relative signal strength');

Se realiza también la división en muestras de audio estéreo: left=road(:,1); % el canal de audio izquierdo right=road(:,2); % el canal de auido derecho time=(1/44100)*length(left); t=linspace(0,time,length(left)); limite=1500; plot(t(1:limite),left(1:limite)); muleft = lin2mu(left); muright = lin2mu(right); plot(t(1:limite),100*left(1:limite),t(1:limite),muleft(1:limite),t(1:limi te),muright(1:limite)) sound(y,fs);

4 Conclusiones Se ha podido ver que se realiza la compresión del archivo y su descompresión mediante el uso de bloques en simulink. Se puede apreciar en la gráfica que existe la capacidad de comprimir y descomprimir archivos a escala logarítmica y lineal usando como prueba la función exponencial. Se ha implementado un compresor en matlab que muestra la cuantificación y como cambia con usa señal de audio.