Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Una seal es una Funcin que porta informacin acerca del estado o
comportamiento de un sistema. Matemticamente, las seales se representan
como funciones de una o ms variables. La variable independiente de dicha
representacin puede ser continua o discreta.
Las seales en tiempo continuo estn definidas sobre un tiempo continuo, las
seales en tiempo discreto estn definidas sobre un conjunto discreto de valores
y, por consiguiente, sern representadas por sucesiones o vectores que son
como las tratadas en MATLAB. Las seales digitales son aquellas que tanto el
tiempo, como la amplitud son discretas.
Al hablar de sonido digital hay que establecer la diferencia que existe entre el
sonido analgico y el digital. Las ondas producidas por la cuerda de la guitarra
o por la voz corresponden a un sonido analgico; es decir, una onda sinusoidal
continua compuesta por multitud de ondas de distintas frecuencias.
Todos sabemos que los equipos informticos no trabajan con datos analgicos,
sino que lo hacen con datos digitales. Por lo tanto, para representar un sonido,
es preciso capturarlo en una naturaleza binaria, para lo que se hace un muestreo
del mismo, tomando determinados valores de las ondas y representando dichos
valores en formato digital.
De una fraccin de una cancin, los dos canales estero deben estar
desfasados en el tiempo. La tarea ser restaurar el archivo original. Se debe
imprimir los dos diferentes espectros, uno para cada canal. La longitud de
los datos debe ser 1024 muestras, se debe utilizar el archivo corregido de
modo que los espectros sean del mismo intervalo de tiempo en la meloda.
Comente los resultados.
Informacin til
El archivo es de extensin .wav
La tasa de muestreo es 44100Hz
El desfase en el tiempo puede ser de 10Kmuestras
Comandos tiles en MATLAB
Wavread : Lee archivos .wav
Wavwrite : Escribe archivos .wav
Wavplay : Reproduce archivos .wav
[y3 fs]=wavread('Desfase');
Este cdigo lo nos da a conocer los valores del archivo Desfase.wav, como
son los valores del vector almacenada en y3, y su frecuencia de muestreo fs.
Donde: t = tiempo
fs = frecuencia de muestreo
Entonces tenemos:
Para los vectores del canal 1, tendremos que eliminar las ultimas 10000
muestras y para el canal 2 las primeras 10000 muestras, mediante el
siguiente cdigo en Matlab.
K=10000
[y3 fs]=wavread('Desfase');
b1=y3(1:length(y3)-k,1);
b2=y3(k+1:length(y3),2);
C=[b1 b2];
wavwrite(C,fs,16,'Corregido')
IV. Resultados
[Co,fs]=wavread('Corregido');
Co1=Co(:,1);
Co2=Co(:,2);
Cmuestras=length(Co); %cantidad de muestras tomadas
Ctd=Cmuestras*1/fs; %tiempo de duracion
Ct=1/fs:1/fs:Ctd; %vector de tiempos para la
frafica
figure(2)
subplot(2,1,1),plot(Ct,Co1),grid on,title('Seal Canal 1 -
Corregido')
xlim([0 Ctd])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
subplot(2,1,2),plot(Ct,Co2),grid on,title('Seal Canal 2 -
Corregido')
xlim([0 Ctd])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
De la figura 4, se observa que ya no existe desfase entre ambos canales,
adems el tiempo de reproduccin de la seal se reduce de 16.2921
segundos, del archivo Desfase, a 16.0653 segundos.
V. Conclusiones
Cdigo Matlab:
clear
clf
clc
%leendo el archivo original
[x,fs]=wavread('Original');
%separamos los canales
x1=x(:,1); %canal1
x2=x(:,2); %canal2
%=========================================================
%Creamos el desface entre ambos canales
%=========================================================
y1=[x1;zeros(10000,1)];
y2=[zeros(10000,1);x2];
y3=[y1 y2];
%wavplay(y3,fs)
%se guarda el archivo con los dos canales
wavwrite(y3,fs,16,'Desfase')
%==========================================================
%grafica de las seales desfasadas en el tiempo
%==========================================================
muestras=length(y3); %cantidad de muestras tomadas
td=muestras*1/fs; %tiempo de duracion
t=1/fs:1/fs:td; %vector de tiempos para la frafica
figure(1)
subplot(2,1,1),plot(t,y1),grid on,title('Seal Canal 1')
xlim([0 td])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
subplot(2,1,2),plot(t,y2),grid on,title('Seal Canal 2')
xlim([0 td])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
%===========================================================
%analizando graficas del archivo corregido
%===========================================================
[Co,fs]=wavread('Corregido');
Co1=Co(:,1);
Co2=Co(:,2);
Cmuestras=length(Co); %cantidad de muestras tomadas
Ctd=Cmuestras*1/fs; %tiempo de duracion
Ct=1/fs:1/fs:Ctd; %vector de tiempos para la frafica
figure(3)
subplot(2,1,1),plot(Ct,Co1),grid on,title('Seal Canal 1 -
Corregido')
xlim([0 Ctd])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
subplot(2,1,2),plot(Ct,Co2),grid on,title('Seal Canal 2 -
Corregido')
xlim([0 Ctd])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')