5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 1/8
I. Método de Solución
Para poder procesar y reconstruir el archivo es necesario primero cargar el
archivo en MATLAB, para lo cual se escribe los siguientes comandos:
[y3 fs]=wavread('Desfase');
Este código lo nos da a conocer los valores del archivo Desfase.wav, comoson los valores del vector almacenada en y3, y su frecuencia de muestreo fs.
Del anterior código se tiene y3 =718480x2 (estéreo)
fs = 44100Hz
Luego se separa los canales con el siguiente código
Y1=x(:,1); solo canal 1
Y2=x(:,2); solo canal 2
Después se procede a graficar los dos canales como sigue
muestras=length(y3); %cantidad de muestras tomadas
td=muestras*1/fs; %tiempo de duración
t=1/fs:1/fs:td; %vector de tiempos para la gráfica
figure(1)
subplot(2,1,1),plot(t,y1),grid on,title('Señal Canal 1')
xlim([0 td])
xlabel('Tiempo(seg)')ylabel('amplitud(v)')
subplot(2,1,2),plot(t,y2),grid on,title('Señal Canal 2')
xlim([0 td])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 2/8
Figura 1: Desfase de los canales 1 y
2
Figura 2: Espectro de frecuencias Canales 1 y 2 en desfase
De la Figura 1, se observa que tiene un tiempo de duración de 16.2921segundos, además el camal 2 se retrasa un periodo de tiempo.
Si observamos mas de cerca, y ampliamos la imagen, se tiene que: Respecto
al canal 1 el tiempo en que permanece en 0 (cero) es de 0.22 segundos
después antes de finalizar su reproducción. Y en el canal 2 se observa que
permanece en cero 0.25 segundos al inicio de la reproducción, tal como se
muestra en la figura 3.
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 3/8
Figura 3: Tiempo de desfase de los canales 1 y 2
Para corregir el desfase de los canales 1 y 2, procederemos a eliminar una
parte de la señal, más concretamente el periodo de tiempo en el quepermanecen en cero, es decir la parte final del canal 1 y el inicio del canal 2.
Para tal proceso es necesario saber cuántas muestras necesitamos quitar a
ambos canales, para que queden en el mismo intervalo de tiempo.
Para ambos canales se tiene la siguiente formula:
Donde: t = tiempo
fs = frecuencia de muestreoEntonces tenemos:
Para el canal 1 Para el canal 2
Podremos escoger el #muestras entre 9702 y 11025, e ir probando, para el
ejercicio escogeremos el #muestras igual a 10000 por estar entre los dos
rangos.
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 4/8
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 código 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')
La señal en estéreo se guardara en la variable C, además en el archivo
Corregido.wav
II. Resultados
Para poder analizar los resultados obtenidos cargamos en el archivo
Corregido.wav, al Matlab, luego graficamos como sigue:
[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 lafrafica
figure(2)
subplot(2,1,1),plot(Ct,Co1),grid on,title('Señal Canal 1 -
Corregido')
xlim([0 Ctd])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
subplot(2,1,2),plot(Ct,Co2),grid on,title('Señal 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,
además el tiempo de reproducción de la señal se reduce de 16.2921
segundos, del archivo Desfase, a 16.0653 segundos.
El número de muestras también reduce, de 718480x2 en el archivo desfase, a
708480x2 en el archivo Corregido,
Esta reducción es obvio, debido a que se eliminaron 10000 muestras enambos canales, equivalentes a casi 0.2267 segundos.
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 5/8
Figura 4: Señal de canal 1 y 2 corregida
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 6/8
Figura 5: Espectro de frecuencias Canales 1 y 2 corregidos
III. Conclusiones
Al final observamos una mejoría notable, nulificamos el desfase de amboscanales, logramos balancear el sonido y así obtuvimos una mejoría en la
señal de salida, esto lo pudimos comprobar de forma empírica al escuchar
la grabación y en forma más formal al ver las gráficas de las señales,
notamos una disminución en el número de muestras y por ende el tiempo
de reproducción se redujo en igual intervalo en ambos canales obteniendo
una señal más clara y limpia.
Matlab, resulto ser una herramienta interesante, ya que nos permite
interactuar de distintas maneras, gracias a sus gráficas, matrices y vectores
resultantes se pudo resolver el problema, de forma sencilla, sin la necesidad
de diseñar algún tipo de filtro, solo con operaciones entre matrices y
vectores.
Matlab nos permite graficar en intervalos de tiempo exactos, para poder
conocer el número de muestras a procesar, además que la transformada
rápida de fourier permite analizar, las señales muestreadas, en el espectro
de frecuencias.Apéndice A
Código 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 señales desfasadas en el tiempo %==========================================================
muestras=length(y3); %cantidad de muestras tomadas
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 7/8
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('Señal Canal 1')
xlim([0 td])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')subplot(2,1,2),plot(t,y2),grid on,title('Señal Canal 2')
xlim([0 td])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
%analizando el espectro de frecuencias
N=16384;
X=fft(y1,N); %transformada rapida de Fourier canal 1
Z=fft(y2,N);
Xmodulo=abs(X); %vector modulo de los valores de FFT
Zmodulo=abs(Z);
f=((fs)*(1:N))/N; %vectro de frecuencias para graficar
espectro
figure(2)
subplot(2,1,1),plot(f,Xmodulo),grid on,title('Espectro Canal 1')
xlabel('frecuencia(Hz)')
ylabel('Amplitud(mv)')
subplot(2,1,2),plot(f,Zmodulo),grid on,title('Espectro Canal 2')
xlabel('frecuencia(Hz)')
ylabel('Amplitud(mv)')
%=========================================================
%correccion del archivo
%=========================================================
K=10000; %#muestras a eliminar
[y3 fs]=wavread('Desfase');
b1=y3(1:length(y3)-K,1);
b2=y3(K+1:length(y3),2);
C=[b1 b2];
%wavplay(C,fs)
wavwrite(C,fs,16,'Corregido') %se guarda archivo corregido
%===========================================================
%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('Señal Canal 1 -
Corregido')
xlim([0 Ctd])
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
subplot(2,1,2),plot(Ct,Co2),grid on,title('Señal Canal 2 -Corregido')
xlim([0 Ctd])
5/17/2018 Examen DSP - slidepdf.com
http://slidepdf.com/reader/full/examen-dsp 8/8
xlabel('Tiempo(seg)')
ylabel('amplitud(v)')
%analizando el espectro de frecuencias
N=16384;
CX=fft(Co1,N); %transformada rapida de Fourier canal 1
CZ=fft(Co2,N);CXmodulo=abs(CX); %vector modulo de los valores de FFT
CZmodulo=abs(CZ);
Cf=((fs)*(1:N))/N; %vectro de frecuencias para graficar
espectro
figure(4)
subplot(2,1,1),plot(Cf,CXmodulo),grid on,title('Espectro Canal
1-Corregido')
xlabel('frecuencia(Hz)')
ylabel('Amplitud(mv)')
subplot(2,1,2),plot(Cf,CZmodulo),grid on,title('Espectro Canal
2-Corregido')
xlabel('frecuencia(Hz)')
ylabel('Amplitud(mv)')
Top Related