Mostrando entradas con la etiqueta EXPERIMENTOS. Mostrar todas las entradas
Mostrando entradas con la etiqueta EXPERIMENTOS. Mostrar todas las entradas

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




MOTOR DC




Este sencillo experimento demuestra los conocimientos aprendidos en clase... 

domingo, 27 de febrero de 2011

SUMADOR DE 4 BITS VHDL


El circuito consta de 4 full adder de un bit (sumador_de_1_bit.vhd), uno para cada bit, conectados mediante components (sumandor_de_4_bits.vhd), es un circuito sencillo pero eficaz, tiene 3 entradas (sumando 'A', sumando 'B' y un acarreo de entrada 'Cin') y 2 salidas (resultado 'S' y acarreo de salida 'Cout'), estas fuentes ya fueron implementadas y funcionan correctamente.

BREVE EXPLICACIÓN

En electrónica un sumador es un circuito lógico que calcula la operación suma. En los computadores modernos se encuentra en lo que se denomina Unidad aritmético lógica (ALU). Generalmente realizan las operaciones aritméticas en código binario decimal o BCD exceso 3, por regla general los sumadores emplean el sistema binario. En los casos en los que se esté empleando un complemento a dos para representar números negativos el sumador se convertirá en un sumador-substractor (Adder-subtracter).

Las entradas son A,B,Cin que son la entradas de bits A y B, y Cin es la entrada de acarreo. Por otra parte, la salida es S y Cout es la salida de acarreo.



la forma de las funciones para el acarreo y la suma respectivamente son:

S = a'b'C0 + a'bC0' + ab'C0' + abC0
C1 = ab + bC0 + aC0
También se puede poner la salida S en función de C1:
S = C0C1' + bC1' + aC1' + abC1

Además, como lo único que se hace para incluir el acarreo en la suma es añadirlo a la operación, este mismo circuito se puede formar anidando dos semisumadores, de manera que, la salida S del primer semisumador se conecte a una de las entradas del segundo semisumador, la entrada C0 se conecte con la otra entrada del semisumador, las salidas de acarreo se conectan a un or para proporcionar la salida del acarreo total de la suma (C1) y la salida S del segundo semisumador se queda como resultado total de la operación.

Sumador binario de cuarto bits - Electrónica UnicromEl sumador que se muestra suma dos número binarios de 4 bits cada uno:

A = A3A2A1A0 y B = B3B2B1B0, entonces
la suma será S = Cout3S3S2S1S0

El bit menos significativo en los dos sumandos A y B es Ao y Bo y el bit más significativo es A3 y B3.
Suma binaria de cuarto bits tomando en cuenta los acarreos - Electrónica Unicrom
La suma se inicia en el sumador completo 0 (el inferior) con las suma de Ao y Bo, si esta suma tuviese acarreo (Cout=1) este pasaría al sumador 1, y así sucesivamente hasta llegar al sumador 3 en la parte superior del gráfico.

Si el sumador superior tiene acarreo ("1"), éste se refleja en la suma al lado izquierdo de la sumatoria final.
El acarreo entrante inferior no se conecta.

REFERENCIAS