You are on page 1of 4

Practica 2: MATLAB http://www.ocw.espol.edu.ec/facultad-de-ingenieria-en-electricidad-ycomputacion/procesamiento-de-audio-y-video-1/Practica%202-%20MATLAB.html Utilizando los sonidos adjuntados, o cualquier otros en formatos WAV o AU.

Desarrollar las siguientes prctica en MATLAB:

Leer archivos WAV Cargar el archivo road.wa. utilizando el siguiente comando: [road,fs]=wavread('road.wav'); Separar los canales del sonido estereo de la siguiente forma: left=road(:,1); right=road(:,2); Dibuje la onda: plot(road);

Primer procesamiento Invertir el sonido usando el comando flipup road_rev=flipud(road); escuchar el resultado: soundsc(road_rev,fs);

Efecto de ECO para el canal izquierdo Primero creamos un nuevo vector del mismo tamao que el canal izquierdo leftout = left; Especificamos el monto del retardo, especificado en la variable N que contiene el retardo en muestras, el retarno en tiempo ser N/fs segundos

N=10000; Luego creamos el eco, mediante el siguiente cdigo: for n=N+1:length(left) leftout(n)=left(n)+left(n-N); end Escuchamos el efecto de eco soundsc(leftout,fs);

Efecto de ECO con un sonido estreo Creamos un vector del mimso tamao de road que va a contener el eco en estreo out = road; Definimos el retardo N=10000; Creamos el eco estreo for n=N+1:length(road) out(n,1)=road(n,1)+road(n-N,2); % eco de derecha a izquierda out(n,2)=road(n,2)+road(n-N,1); % eco de izquierda a derecha end Escuchamos el eco soundsc(out,fs);

Efecto de ECO recursivo Vamos a elaborar una variacion del tema anterior, sumamos la misma seal consigo mismo por 1000 muestras pero con una amplitud menor (0.8). Tome en cuenta que para el sonido

que vamos a utilizar en particular las muestras tienen un espacio de T=1/8192 segundos (fs2=8192 muestras por segundo). [lunch,fs2]=auread('lunch.au'); out=lunch; % nuevo arreglo N=1000; % monto del retardo N/8192 segundos for n=N+1:length(lunch) out(n)=.8*out(n-N)+lunch(n); % eco recursivo, ya que le sumo la misma onda end soundsc(out,fs2) % escuchamos un eco recursivo Pre-eco

[road,fs]=wavread('road.wav'); left=road(:,1); leftout = left; N=20000; for n=1:length(left)-N leftout(n)=0.5*left(n)+left(n+N); % Para que se escuche el efecto del eco end Control de tono digital El siguiente programa o filtro digital, es diseado para suavizar los componentes de altas frecuencias de la seal (treble). Este retiene los componentes de bajas frecuencias (bass). Aplicando este filtro digital tiene el mismo efecto de bajar el control de treble de un radio. El diseo no es tan obvio. [hootie,fs]=wavread('hootie.wav'); % cargamos el sonido out=hootie; for n=2:length(hootie) out(n,1)=.9*out(n-1,1)+hootie(n,1); % izquierdo out(n,2)=.9*out(n-1,2)+hootie(n,2); % derecho

end Comparemos ambos sonidos, escuchamos el original: soundsc(hootie,fs); Escuchamos el sonido con el filtro aplicado: sounds(out,fs); Este filtro tambin es conocido como filtro pasa bajo. Un pequeo cambio en el filtro digital, permite mejorar o estimular las altas frecuencias y suporimir las bajas. out=hootie; for n=2:length(hootie) out(n,1)=hootie(n,1)-hootie(n-1,1); % izquierdo out(n,2)=hootie(n,2)-hootie(n-1,2); % derecho end soundsc(out,fs) % filtro pasa alto

You might also like