You are on page 1of 5

Compresión de Ondas Sonoras

(Con Perdidas)
MEDIANTE METODO SERIES DE FOURIER

Oscar Andres Gil Gámez | Andrea Viviana Becerra Centeno


Física 3 | 19/09/2018
Universidad Industrial de Santander

− Trabajo entregado a la profesora Zandra Yoana Lizarazo Mejía


Conceptos Claves
¿Qué es una onda de sonido?

Una onda sonora es una onda longitudinal que transmite lo que se asocia con sonido. Si
se propaga en un medio elástico y continuo genera una variación local de presión o
densidad, que se transmite en forma de onda esférica periódica o cuasi periódica.
Mecánicamente las ondas sonoras son un tipo de onda elástica.

• Ecuación onda de sonido: O= 𝐴𝑠𝑒𝑛(𝑘𝑥 + 𝑤𝑡 + 𝜑)


2𝜋
• 𝑘 = 𝑙𝑜𝑛𝑔𝑖𝑡𝑢𝑑 𝑑𝑒 𝑜𝑛𝑑𝑎

¿Qué es la transformada de Fourier?

La transformada de Fourier, denominada así por Joseph Fourier, es una transformación


matemática empleada para transformar señales entre el dominio del tiempo (o espacial)
y el dominio de la frecuencia, que tiene muchas aplicaciones en la física y la ingeniería.
Es reversible, siendo capaz de transformarse en cualquiera de los dominios al otro. El
propio término se refiere tanto a la operación de transformación como a la función que
produce.

En el caso de una función periódica en el tiempo (por ejemplo, un sonido musical


continuo, pero no necesariamente sinusoidal), la transformada de Fourier se puede
simplificar para el cálculo de un conjunto discreto de amplitudes complejas, llamado
coeficientes de las series de Fourier. Ellos representan el espectro de frecuencia de la
señal del dominio-tiempo original.

La transformada de Fourier es una aplicación que hace corresponder a una función f con
otra función g definida de la manera siguiente:
+∞
1
𝑔(𝜀) = ∫ 𝑓(𝑥)𝑒 −𝑖𝜀𝑥 𝑑𝑥; 𝜀 = 𝑑𝑜𝑚𝑖𝑛𝑖𝑜 𝑑𝑒 𝑙𝑎 𝑓𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎
√2𝜋 −∞

Toda onda periódica se puede descomponer como una suma de senos y cosenos.

Ejemplo:

Senos de frecuencias.

PÁGINA 1
• Esta aplicación se maneja de forma discreta en el computador, mediante
funciones en MATLAB u otros programas.

𝑁−1
2𝜋𝑖
𝑋𝑘 = ∑ 𝑥𝑛 𝑒 − 𝑁
𝑘𝑛
; 𝑥 = 𝑣𝑒𝑐𝑡𝑜𝑟, 𝑋 = 𝑣𝑒𝑐𝑡𝑜𝑟 𝑑𝑒 𝑙𝑎 𝑡𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑑𝑎
𝑛=0

• Está aplicación funciona para quitar cualquier tipo de ruido en señales o


espectros de frecuencia. Ejemplo: Ruido en imágenes o en grabaciones.
• Los tipos de archivos que se pueden comprimir en sonido son los .wav y en
imágenes son los .bmp.

¿Qué es Compresión?

En general la compresión es el método para reducir datos innecesarios; en informática


se usa la compresión para reducir espacio en memoria a nivel de bits.

Ejemplo: Un vector de 5 espacios en memorias lleno de valores diferentes a 0 pesa más


que un vector de igual espacios en memoria lleno de algunos valores con 0.

PROCESO DE COMPRESIÓN
Este proceso se realiza mediante los siguientes pasos:

1. Recoger los datos de la onda:


Se trata de tomar los datos registrados en la onda sonora y guardar esos datos.

[m,Fs] = audioread("audio.wav"); [Función en MATLAB]

2. Convertir esos datos en un vector (de dos filas para sonido stereo y una fila para
sonido mono).

der = m(:,1); Canal derecho


figure, plot(der) Grafico el canal derecho
izq = m(:,2); Canal izquierdo
figure, plot(izq) Grafico el canal izquierdo

3. Calcular la transformación de Fourier a cada lado I & D

+∞
1
𝑔(𝜀) = ∫ 𝑓(𝑥)𝑒 −𝑖𝜀𝑥 𝑑𝑥; 𝜀 = 𝑑𝑜𝑚𝑖𝑛𝑖𝑜 𝑑𝑒 𝑙𝑎 𝑓𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎
√2𝜋 −∞
(𝟏)𝑻𝒓𝒂𝒏𝒔𝒇𝒐𝒓𝒎𝒂𝒅𝒂 𝒅𝒆 𝒇𝒐𝒖𝒓𝒊𝒆𝒓 𝑪𝒐𝒏𝒕𝒊𝒏𝒖𝒂

PÁGINA 2
El ordenador utiliza la transformada, pero de forma discreta.

𝑁−1
2𝜋𝑖
𝑋𝑘 = ∑ 𝑥𝑛 𝑒 − 𝑁
𝑘𝑛
; 𝑘 = 0, … , 𝑁 − 1; (𝟐)
𝑛=0
𝑥 = 𝑣𝑒𝑐𝑡𝑜𝑟, 𝑋 = 𝑣𝑒𝑐𝑡𝑜𝑟 𝑑𝑒 𝑙𝑎 𝑡𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑑𝑎

(𝟐)𝑻𝒓𝒂𝒏𝒔𝒐𝒓𝒎𝒂𝒅𝒂 𝒅𝒆 𝒇𝒐𝒖𝒓𝒊𝒆𝒓 𝒅𝒆 𝒇𝒐𝒓𝒎𝒂 𝒅𝒊𝒔𝒄𝒓𝒆𝒕𝒂

(En MATLAB)

transformadader = fft(der); Transformada derecha


figure, plot(real(transformadader)) Gráfico la parte real de transformada
der
transformadaizq = fft(izq); Transformada izquierda
figure, plot(real(transformadaizq)) Gráfico la parte real de transformada
izq

Si se representa una señal cualquiera (imagen, audio, …) en cierta base entonces


en esa base la señal se escaza, significa que muchos coeficientes en esa base son
pequeños mientras que otros son muy grandes, y la mayor parte de energía
(datos) está almacenada en valores grandes (picos altos de la transformación),
entonces los valores pequeños se pueden despreciar para así ahorrar espacio en
memoria. Por ejemplo: el 40% de las muestras se pueden borrar.

4. Se saca transformación inversa, resultado de la función


Operador[parámetro].

𝐹 −1 {𝑓̂} = 𝑓(𝑥) = ∫ 𝑓̂ (𝜀)𝑒 2𝜋𝑖𝜀𝑥 𝑑𝑥 (𝟑)
−∞
(𝟑)𝑻𝒓𝒂𝒏𝒔𝒇𝒐𝒓𝒎𝒂𝒅𝒂 𝒅𝒆 𝒇𝒐𝒖𝒓𝒊𝒆𝒓 𝒅𝒆 𝒇𝒐𝒓𝒎𝒂 𝒄𝒐𝒏𝒕𝒊𝒏𝒖𝒂

El ordenador utiliza la transformada inversa, pero de forma discreta.

𝑁−1
1 2𝜋𝑖
𝑋𝑘 = ∑ 𝑥𝑛 𝑒 𝑁 𝑘𝑛 ; 𝑛 = 0, … , 𝑁 − 1 (𝟒)
𝑁
𝑘=0
(𝟒)𝑻𝒓𝒂𝒏𝒔𝒇𝒐𝒓𝒎𝒂𝒅𝒂 𝒊𝒏𝒗𝒆𝒓𝒔𝒂 𝒅𝒆 𝒇𝒐𝒖𝒓𝒊𝒆𝒓 𝒅𝒆 𝒇𝒐𝒓𝒎𝒂 𝒅𝒊𝒔𝒄𝒓𝒆𝒕𝒂

function [h]= operador(v,k)


[y,ind]=sort(abs(v),'descend');
n=length(v);
v(ind(round(n*k):end))=0;
h=v;

PÁGINA 3
end

A esta función se le ingresa un parámetro para decidir la cantidad de muestras


que se desea quitar del audio original.

(CÓDIGO EN MATLAB)

nuevatransfder = operador(transformadader,0.1); %Le quito muestras a la


transformada derecha
nuevatransfizq = operador(transformadaizq,0.1); %Le quito muestras a la
transformada izquierda
nuevoder = ifft(nuevatransfder); %Calculo la transformada inversa
nuevoizq = ifft(nuevatransfizq); %Calculo la transformada inversa
matriz = zeros(length(der(:,1)),2); %Creo una matriz donde guardaré los
nuevos canales izquierdo y derecho
matriz(:,1) = real(nuevoder(:)); %Añado el nuevo canal izquierdo
matriz(:,2) = real(nuevoizq(:)); %Añado el nuevo canal derecho

Despues de ingresar estas instrucciones se devuelve el audio comprimido.

audiowrite('audiocomprimido.wav', matriz, Fs);

Estos son los pasos para comprimir un archivo de sonido teniendo perdidas.

PÁGINA 4

You might also like