Skip to content Skip to navigation Skip to collection information

OpenStax-CNX

You are here: Home » Content » Señales y Sistemas en MATLAB y LabVIEW » Compresión de voz por medio de Transformadas

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Compresión de voz por medio de Transformadas

Module by: José Miguel Hobaica Alvarado. E-mail the author

Summary: Transformada de Fourier, Transformada Coseno y Transformada Ondícula aplicadas a la compresión de señales de voz. Se incluye un programa en MATLAB y otro en LabVIIEW, cada uno aplica estas transformadas y la cuantificación para comprimir señales de voz.

Existen diversos métodos para reducir la cantidad de bits que se almacenan o se transmiten a fin de representar una señal particular, por ejemplo una señal de voz. Uno de los métodos usados consiste en aplicar alguna transformada como la de Fourier, la Transformada Coseno o la Transformada Ondícula a la señal que se quiere comprimir y reducir los elementos en estos nuevos dominios: magnitud, fase, etc. Por ejemplo, pueden asignarse valores nulos a ciertos elementos de la transformada, normalmente a las que aporten menos información significativa.

Otra forma de comprimir es cuantificando los elementos en el dominio transformado y luego antitransformar. Una cuantificación usando 8 bits representa una reconstrucción casi exacta de la señal; puede cuantificarse usando menos bits para ciertas zonas de la transformada (o para toda la transformada) y de esta forma se logra comprimir aún más.

Para comparar la señal original y la señal comprimida se hace uso del error cuadrático medio. El error cuadrático medio entre dos señales w(n), y(n) de K puntos se determina como indica la siguiente expresión:

ε 2 = K w ( n ) y ( n ) 2 K ε 2 = K w ( n ) y ( n ) 2 K size 12{ ≺ ε rSup { size 8{2} } ≻ = Sum cSub { size 8{K} } { { { left (w \( n \) - y \( n \) right ) rSup { size 8{2} } } over {K} } } } {}
(1)

Transformada de Fourier

Al aplicar la Transformada de Fourier a una señal en el dominio del tiempo, se observa el comportamiento frecuencial de dicha señal, específicamente, se observan los valores de frecuencia que conforman a la señal. Aplica también para los sistemas, si se aplica la Transformada de Fourier a la respuesta impulsiva de un sistema, se obtendrá la respuesta en frecuencia del mismo, también denominada Función de Transferencia. Al multiplicar la respuesta en frecuencia del sistema con el comportamiento frecuencial de una señal, se obtendrá el comportamiento frecuencial de la señal de salida. La expresión para la transformada de Fourier es la siguiente:

X ( f ) = x ( t ) e j2π ft dt X ( f ) = x ( t ) e j2π ft dt size 12{X \( f \) = Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } {x \( t \) cdot e rSup { size 8{ - j2π ital "ft"} } } ital "dt"} {}
(2)

Si se tiene el comportamiento frecuencial de una señal, la misma puede recuperarse con una expresión similar:

x ( t ) = X ( f ) e j2π ft df x ( t ) = X ( f ) e j2π ft df size 12{x \( t \) = Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } {X \( f \) cdot e rSup { size 8{j2π ital "ft"} } } ital "df"} {}
(3)

Como ejemplo, se determina la transformada de Fourier del pulso cuadrado de la figura 1. Los valores de amplitud (A) y duración (τ) se dejan expresados:

Figura 1: Pulso cuadrado
Figura 1 (Imagen 74.png)

La función solo está definida entre – τ/2 y τ/2, intervalo para el que toma un valor de A, por lo que la expresión para la transformada de Fourier queda de la siguiente forma:

X ( f ) = τ/2 τ/2 A e j2π ft dt = A 2jπf e jπfτ e jπfτ X ( f ) = τ/2 τ/2 A e j2π ft dt = A 2jπf e jπfτ e jπfτ size 12{X \( f \) = Int cSub { size 8{- {τ} wideslash {2} } } cSup { size 8{ {τ} wideslash {2} } } {A cdot e rSup { size 8{ - j2π ital "ft"} } } ital "dt"= { {A} over { - 2jπf} } left [e rSup { size 8{ - jπfτ} } - e rSup { size 8{jπfτ} } right ]} {}
(4)

Simplificando esta expresión queda:

A 2jπf sin πfτ 2j = Sinc ( ) A 2jπf sin πfτ 2j = Sinc ( ) size 12{ { {A} over { - 2jπf} } left [ - "sin"πfτ right ] cdot 2j=Aτ cdot ital "Sinc" \( fτ \) } {}
(5)

El espectro bilateral en magnitud y fase para la señal X(f) se muestra en la figura 2; un valor de fase de π o –π representa valores negativos en la función, los mismos aparecen en el espectro de fase en las zonas donde el Sinc es negativo; en el espectro se debe alternar entre π y –π ya que la fase de la transformada de Fourier es una función impar.

Figura 2: Espectro Bilateral en Magnitud (derecha) y en Fase (izquierda)
Figura 2 (Imagen 77.png)

Propiedades de la Transformada de Fourier

Linealidad: la Transformada de Fourier cumple con los principios de superposición y multiplicación por constante; si X1(f) es la transformada de x1(t) y X2(f) es la transformada de x2(t) se cumple que:

α x 1 ( t ) + β x 2 ( t ) F α X 1 ( f ) + β X 2 ( f ) α x 1 ( t ) + β x 2 ( t ) F α X 1 ( f ) + β X 2 ( f ) size 12{α cdot x rSub { size 8{1} } \( t \) +β cdot x rSub { size 8{2} } \( t \) widevec { size 8{F} } α cdot X rSub { size 8{1} } \( f \) +β cdot X rSub { size 8{2} } \( f \) } {}
(6)

Traslación en tiempo: si X(f) es la transformada de x(t) se cumple que:

x ( t t 0 ) F X ( f ) e j2πf t 0 x ( t t 0 ) F X ( f ) e j2πf t 0 size 12{x \( t - t rSub { size 8{0} } \) widevec { size 8{F} } X \( f \) cdot e rSup { size 8{ - j2πf cdot t rSub { size 6{0} } } } } {}
(7)

Traslación en frecuencia: si X(f) es la transformada de x(t) se cumple que:

x ( t ) e j2πt f 0 F X ( f f 0 ) x ( t ) e j2πt f 0 F X ( f f 0 ) size 12{x \( t \) cdot e rSup { size 8{j2πt cdot f rSub { size 6{0} } } } widevec {F} size 12{X \( f - f rSub {0} } size 12{ \) }} {}
(8)

Esta propiedad se conoce como Teorema de Modulación; en aplicaciones reales, la señal en tiempo se multiplica por la señal senoidal cos(2πf0t), la cual es representada por medio de exponenciales, quedando la ecuación de la siguiente forma:

x ( t ) e j2πt f 0 + e j2πt f 0 2 F 1 2 X ( f f 0 ) + X ( f + f 0 ) x ( t ) e j2πt f 0 + e j2πt f 0 2 F 1 2 X ( f f 0 ) + X ( f + f 0 ) size 12{x \( t \) cdot left [ { {e rSup { size 8{j2πt cdot f rSub { size 6{0} } } } +e rSup { - j2πt cdot f rSub { size 6{0} } } } over { size 12{2} } } right ] widevec {F} { { size 12{1} } over { size 12{2} } } left [ size 12{X \( f - f rSub {0} size 12{ \) +X \( f+f rSub {0} } size 12{ \) }} right ]} {}
(9)

Cambio de escala: si X(f) es la transformada de x(t) se cumple que:

x ( αt ) F 1 α X ( f / α ) x ( αt ) F 1 α X ( f / α ) size 12{x \( αt \) widevec { size 8{F} } { {1} over { lline α rline } } X \( f/α \) } {}
(10)

Teorema de Rayleigh: si X(f) es la transformada de x(t) se cumple que:

Energía = x ( t ) 2 dt = X ( f ) 2 df Energía = x ( t ) 2 dt = X ( f ) 2 df size 12{ ital "Energía"= Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } { lline x \( t \) rline rSup { size 8{2} } ital "dt"} = Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } { lline X \( f \) rline rSup { size 8{2} } ital "df"} } {}
(11)

Transformada de Fourier de la Convolución: si X1(f) es la transformada de x1(t) se y X2(f) es la transformada de x2(t) cumple que:

x 1 ( t ) x 2 ( t ) F X 1 ( f ) X 2 ( f ) x 1 ( t ) x 2 ( t ) F X 1 ( f ) X 2 ( f ) size 12{x rSub { size 8{1} } \( t \) * x rSub { size 8{2} } \( t \) widevec { size 8{F} } X rSub { size 8{1} } \( f \) cdot X rSub { size 8{2} } \( f \) } {}
(12)

Transformada Discreta de Fourier

La Transformada de Fourier aplica también para señales discretas, con la condición de que las mismas tengan una duración finita. La expresión para la Transformada Discreta de Fourier de una señal discreta x[n] de longitud N es la siguiente:

X [ k ] = n = 0 N 1 x n e j N kn X [ k ] = n = 0 N 1 x n e j N kn size 12{X \[ k \] = Sum cSub { size 8{n=0} } cSup { size 8{N - 1} } {x rSub { size 8{n} } cdot e rSup { size 8{ - j { {2π} over {N} } ital "kn"} } } } {}
(13)

Transformada Discreta Coseno

La transformada Discreta Coseno (DCT) está relacionada a la Transformada Discreta de Fourier. Se calcula como:

X [ k ] = A n = 0 N 1 x ( n ) cos πk ( 2n + 1 ) 2N A = { 1 N k = 0 2 N k = 1,2 . . . N 1 X [ k ] = A n = 0 N 1 x ( n ) cos πk ( 2n + 1 ) 2N A = { 1 N k = 0 2 N k = 1,2 . . . N 1 alignl { stack { size 12{X \[ k \] =A Sum cSub { size 8{n=0} } cSup { size 8{N - 1} } {x \( n \) "cos" left ( { {πk \( 2n+1 \) } over {2N} } right )} } {} # A= left lbrace matrix { { {1} over { sqrt {N} } } `~k=0 {} ## { {2} over { sqrt {N} } } ~~k=1,2 "." "." "." N - 1 } right none ~ {} } } {}
(14)

En la fórmula anterior N es la longitud de x. La ventaja de la DCT es que compacta la información alrededor del origen de coordenadas. Por eso es usada en algunos algoritmos de compresión como el JPEG, debido a la compactación de energía es posible reconstruir una señal usando solo unos pocos coeficientes de la DCT.

Cuantificación uniforme y no uniforme de señales de voz

Cuando una señal analógica quiere digitalizarse deben realizarse varios procesos entre ellos están el muestreo y la cuantificación. El muestreo consiste en tomar muestras de la señal periódicamente; el tiempo entre muestra y muestra denominado ts. Esto discretiza la señal en el dominio del tiempo. El siguiente proceso es la cuantificación en donde la señal ya muestreada es pasada por un sistema que presenta la siguiente característica:

Figura 3: Cuantificación uniforme
Figura 3 (Imagen 20.png)

Es decir, se observa cada muestra y se ubica en que rango de voltaje se encuentra; dependiendo de esta se le asigna un voltaje de salida. Es decir, la señal de entrada tiene infinitos valores de voltaje posibles, mientras la señal de salida tiene un número finito de voltajes posibles. Por ejemplo, si se divide el rango de entrada en 256 intervalos y a cada intervalo se le asigna un determinado voltaje de salida, a la salida se tendrán solo 256 voltajes distintos posibles; en este caso particular se necesitarían 8 bits para representarlos. Este tipo de cuantificador se le llama Cuantificador Uniforme.

Cuando la distribución probabilística de x(t) no es uniforme sino que tiene más bien preferencia por una cierta zona de voltaje, como el caso de las señales de voz, conviene usar cuantificadores no uniformes, es decir uno que tenga pasos más estrechos en aquellas zonas de voltaje más frecuentes y pasos más gruesos en zonas menos probables. Gráficamente:

Figura 4: Cuantificación no uniforme
Figura 4 (Imagen 19.png)

Por ejemplo, el cuantificador mostrado convendría usarlo cuando la señal tiene preferencia de ocurrencia en los voltajes alrededor de cero; En el caso de señales de voz esto es en efecto lo que ocurre.

Este tipo de cuantificación se le llama cuantificación no-uniforme y puede ser lograda haciendo pasar la señal por un sistema llamado compansor el cual expande los valores de bajo voltaje y comprime los de alto voltaje y posteriormente pasar esta señal por un cuantificador no-uniforme, tal y como se ilustra a continuación:

Figura 5: Compansor + Cuantificación uniforme = Cuantificación no uniforme
Figura 5 (Imagen 15.png)

Por supuesto que en el receptor hay que proveer de un sistema que haga el efecto inverso al de c(t) vs. x(t)

Autoevaluación

Ejercicio 1

Si se tiene un sistema que comprime eliminando componentes de la Transformada de Fourier desde las frecuencias altas como si se tratase de un filtrado pasabajos, ¿las voces que se podrán comprimir más son las masculinas o las femeninas? ¿Por qué?

Solution

Si se elimina la misma cantidad de componentes de la Transformada de Fourier desde las frecuencias altas para una voz masculina y una voz femenina, la voz masculina tendrá una mejor calidad con respecto a la original ya que para ésta tienen más relevancia las componentes de menor frecuencia

Ejercicio 2

Si una señal cuya Transformada Coseno que se cuantifica originalmente de forma uniforme con 8 bits, se comprime utilizando sólo 7 bits para la cuantificación, ¿de cuánto será la tasa de compresión?

Solution

La cantidad de bits total de la transformada es su longitud N por la cantidad de bits (8 originalmente). La relación entre la longitud de la señal comprimida y la señal original será de 7N/8N=0.875 → 87.5%, por lo que la tasa de compresión es de 12.5%. El resultado de la tasa de compresión es independiente de la transformada que es usada.

Ejercicio 3

Si una señal se comprime aplicando la Transformada Ondícula de profundidad 3 y cuantificando dicha transformada originalmente con 8 bits, ¿De cuánto será la tasa de compresión si se elimina el detalle de mayor frecuencia y si se utilizan 4 bits para cuantificar?

Solution

Al eliminar el detalle de mayor frecuencia, la transformada queda con la mitad de la longitud; al cuantificar con 4 bits, la cantidad de bits se reduce a la mitad, quedando la relación comprimida/original: (4N/2)/8N=0.25→ 25%, por lo que la tasa de compresión es de 75%.

Simuladores

ESTE VINCULO contiene una carpeta con un programa realizado en MATLAB que comprime señales de voz por medio de la Transformada Ondícula, La Transformada Coseno y la Transformada de Fourier; para esta última, la compresión se hace eliminando componentes desde las altas frecuencias. Con cada transformada se hace cuantificación uniforme. La carpeta incluye el .m y todos los archivos necesarios para su funcionamiento, si se elimina o renombra alguno de estos archivos, el programa podría no funcionar correctamente. La figura 6 contiene un video explicativo acerca del uso del programa.

Figura 6: Video explicativo de la utilización del programa realizado en MATLAB
Compresión de voz en MATLAB

Puede obtenerse también un programa realizado en LabVIEW del mismo estilo y acerca del mismo tema por medio de ESTE VINCULO. La carpeta incluye el .vi y todos los archivos necesarios para su funcionamiento. Igualmente, si se elimina o renombra alguno de estos archivos, el programa podría no funcionar correctamente. La figura 7 contiene un video explicativo acerca del uso del programa

Figura 7: Video explicativo de la utilización del programa realizado en LabVIEW
Compresión de voz en LabVIEW

Collection Navigation

Content actions

Download:

Collection as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Module as:

PDF | More downloads ...

Add:

Collection to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks

Module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks