viernes, 16 de septiembre de 2011

SONIDO 5.1 SURROUND A PARTIR DE UNA PISTA ESTÉREO UTILIZANDO MATLAB.

INTRODUCCION

El sistema 5.1 consta de 6 altavoces: En sistemas de sonido surround, como los habituales y caseros home cinema, 5.1 hace referencia a la forma en que es distribuido el sonido. En este caso, 5 altavoces que tratan de forma independiente un rango determinado de frecuencias. Cuando se trata de 5 altavoces se distribuyen del siguiente modo: central (emite sonidos medios o de voz), delantero izquierdo y derecho (emite sonidos de todo tipo, a excepción de los bajos), trasero izquierdo y derecho (emiten sonidos de ambientación). Por el último ".1" hace referencia al canal de subwoofer (emite todos los sonidos con frecuencias aproximadamente hasta los 100 Hz).


MARCO TEORICO

Formato de Audio WAV: Es el apócope de WAVEform audio file format, es un formato de audio digital normalmente sin compresión de datos desarrollado y propiedad de Microsoft y de IBM que se utiliza para almacenar sonidos en el PC, admite archivos mono y estéreo a diversas resoluciones y velocidades de muestreo, su extensión es .wav. A pesar de que el formato WAV es compatible con casi cualquier códec de audio, se utiliza principalmente con el formato PCM (no comprimido) y, al no tener pérdida de calidad, es adecuado para uso profesional.

Formato de Audio AC-3: Es la versión más común que contiene hasta un total de 6 canales de sonido, con 5 canales de ancho de banda completa de 20 Hz - 20 kHz para los altavoces de rango-normal (frente derecho, centro, frente izquierdo, parte posterior derecha y parte posterior izquierda) y un canal de salida exclusivo para los sonidos de baja frecuencia conocida como Low Frequency Effect, o subwoofer. El formato Digital Dolby soporta también el uso de Mono y Stereo.

El filtro Butterworth: Es uno de los filtros más básicos, diseñado para producir la respuesta más plana que sea posible hasta la frecuencia de corte. En otras palabras, la salida se mantiene constante casi hasta la frecuencia de corte, luego disminuye a razón de 20n dB por década (ó ~6n dB por octava), donde n es el número de polos del filtro.

Un Ecualizador: es un dispositivo que procesa señales de audio. Modifica el contenido en frecuencias de la señal que procesa. Para ello, cambia las amplitudes de sus coeficientes de Fourier, lo que se traduce en diferentes volúmenes para cada frecuencia. Con esto se puede variar de forma independiente la intensidad de los tonos básicos.


PROCEDIMIENTO

Primero que todo se debe ingresar la señal de audio .wav a Matlab con el comando wavread.

clc
clear
[sample,fs]=wavread('SAMPLE.wav');
size(sample);

Como la pista de sonido posee dos canales se divide en left y right.

left=sample(:,1);
right=sample(:,2);

Se debe definir el tiempo como el numero de muestras sobre la frecuencia de muestreo.

time=(1/fs)*length(left);
t=linspace(0,time,length(left));

Después se calcula la transformada de Fourier de la señal right  

ft_right = fft(right);
ft_left = fft(left);


Se procede a diseñar los filtros que se utilizan para procesar la señal:

Primero se diseña un filtro para el canal LFE el cual una abreviación de Low Frequency Effects, es comúnmente usado en la descripción de una pista de audio contenida dentro de los efectos de sonido de una película. La señal de esta pista está dentro del rango de 0 Hz a 120 Hz, es normalmente enviada a un subwoofer. El canal LFE es normalmente reproducido 10 dB más fuerte que los canales centrales.

%Filtro para LFE PASA BAJOS de 120Hz
Wp1 = 120/(fs/2) ; Ws1 = 200/(fs/2);
[n1,Wn1] = buttord(Wp1,Ws1,3,30);
[B1,A1] = butter(n1,Wn1,'low');
[H1,w1] = freqz(B1,A1,2048,fs);
Hmag1 = abs(H1);
LFE = filtfilt(B1,A1,right);
%wavwrite(LFE,fs,32,'LFE.wav')

Para el canal central se uso un filtro para aislar las frecuencias audibles más altas.

%Filtro para CENTRAL PASA BANDA de 5kHz a 18kHz
Wp2 = [5000 18000]/(fs/2) ; Ws2 = [4000 20000]/(fs/2);
[n2,Wn2] = buttord(Wp2,Ws2,3,30);
[B2,A2] = butter(n2,Wn2);
[H2,w2] = freqz(B2,A2,2048,fs);
Hmag2 = abs(H2);
CENTER = filtfilt(B2,A2,right);
%wavwrite(CENTER,fs,32,'CENTER.wav')

Para los cuatro canales restantes, se diseñan filtros pasa bandas entre 180Hz y 2kHz para los delanteros y entre 1kHz y 6kHz para los traseros, dado que en estas frecuencias se comienza a percibir la sensación de sonido envolvente.   

%Filtro para FRONT RIGHT PASA BANDA de 180Hz a 2kHz
Wp3 = [180 2000]/(fs/2) ; Ws3 = [120 2200]/(fs/2);
[n3,Wn3] = buttord(Wp3,Ws3,3,5);
[B3,A3] = butter(n3,Wn3);
[H3,w3] = freqz(B3,A3,2048,fs);
Hmag3 = abs(H3);
FR = filtfilt(B3,A3,right);
%wavwrite(FR,fs,32,'FR.wav')

%Filtro para FRONT LEFT PASA BANDA de 180Hz a 2kHz
Wp4 = [180 2000]/(fs/2) ; Ws4 = [120 2200]/(fs/2);
[n4,Wn4] = buttord(Wp4,Ws4,3,5);
[B4,A4] = butter(n4,Wn4);
[H4,w4] = freqz(B4,A4,2048,fs);
Hmag4 = abs(H4);
FL = filtfilt(B4,A4,left);
%wavwrite(FL,fs,32,'FL.wav')

%Filtro para REAR RIGHT PASA BANDA de 1KHz a 6kHz
Wp5 = [1000 6000]/(fs/2) ; Ws5 = [500 6500]/(fs/2);
[n5,Wn5] = buttord(Wp5,Ws5,3,5);
[B5,A5] = butter(n5,Wn5);
[H5,w5] = freqz(B5,A5,2048,fs);
Hmag5 = abs(H5);
RR = filtfilt(B5,A5,right);
%wavwrite(RR,fs,32,'RR.wav')

%Filtro para REAR LEFT PASA BANDA de 1KHz a 6kHz
Wp6 = [1000 6000]/(fs/2) ; Ws6 = [500 6500]/(fs/2);
[n6,Wn6] = buttord(Wp6,Ws6,3,5);
[B6,A6] = butter(n6,Wn6);
[H6,w6] = freqz(B6,A6,2048,fs);
Hmag6 = abs(H6);
RL = filtfilt(B6,A6,left);
%wavwrite(RL,fs,32,'RL.wav')


%soundsc([LFE FR],fs)
%soundsc(FL,fs)

Por último se define los parámetros de plot para graficar la señal right y left tanto en el dominio del tiempo como en la frecuencia, además de esto se grafica cada uno de los filtros empleados para el procesamiento de la señal de audio.

subplot(321);plot(t,right);xlabel('Time (sec)');ylabel('Right Signal');
subplot(322);plot(t,left);xlabel('Time (sec)');ylabel('Left Signal');
subplot(323);plot(abs(ft_rigth));axis([0 41000 0 15000]);xlabel('Frecuency (Hz)');ylabel('Right Mag');
subplot(324);plot(abs(ft_left));;axis([0 41000 0 15000]);xlabel('Frecuency (Hz)');ylabel('Left Mag');
subplot(3,4,9);plot(w1,Hmag1);axis([0 200 0 1.5]);xlabel('Frecuency (Hz)');ylabel('Filter 1 Mag');
subplot(3,4,10);plot(w2,Hmag2);axis([4000 20000 0 1.5]);xlabel('Frecuency (Hz)');ylabel('Filter 2 Mag');
subplot(3,4,11);plot(w3,Hmag3);axis([0 5000 0 1.5]);xlabel('Frecuency (Hz)');ylabel('Filter 3 Mag');
subplot(3,4,12);plot(w5,Hmag5);axis([0 10000 0 1.5]);xlabel('Frecuency (Hz)');ylabel('Filter 4 Mag');



REFERENCIAS




No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.