Matlab
close all; %cierra todas la ventanas abiertas antesde iniciar el programa
clear; %borra cualquier variable activa en MATLAB
S=input('Ingrese el nombre de la cancion:');
disp('¿Ejecutar el Programa?');
F=input('y/n:','s');
[yfs]=wavread(S); %y vector donde se carga el sonido; fs frecuencia de muestreo
k=0;
while(1)
fprintf('La frecuencia de muestreo es: %d\n',fs);
tam=size(y); %tamaño del vector sonido
n=tam(1); %totalde muestras de sonido
fl=round(n/2); %Mitad de muestras redondeada
k=k+1; %Contador de figuras
figure(k);
subplot(2,1,1); %Grafica de Sonido en el tiempo. plot(y,'r');axis([1000,5000,-1,1]);xlabel('Tiempo');ylabel('Amplitud');title('Señal en el tiempo'); %Detalles grafica
espectro=abs(fftshift(fft(y)));
[menor pri]=sort(espectro); %Ordena el espectro de menor a mayor
if2*fl==n %Detector de Frecuencias medias de sonido
fd1=-fl;
fd2=fl-1;
else 2*fl>n
fd1=1-fl;
fd2=fl-1;
end
subplot(2,1,2); %Grafica de espectro de señal plot(fd1:1:fd2,espectro);axis([0,5000,0,menor(n)]);xlabel('Frecuencia');ylabel('Amplitud');title('Señal en Frecuencia'); %Detalles grafica
sound(y,fs);
disp('¿Desea escuchar reverberacion?')
rev=input('y/n:','s');
if rev=='y' %Efecto reverberacion
a=0.5; %Magnitud de la reverberacion
R=5000; %Numero de muestras para el efecto
x=zeros(size(y));
for i=1:1:R+1
x(i) = y(i); %vector de efecto
end for i=R+1:1:n
x(i)= y(i)+ a*y(i-R); %sonido mas efecto
end;
sound(x,fs);
end
disp('¿Desea escuchar la señal filtrada?')
flt=input('y/n: ','s');
if flt=='y' %Efecto Filtros %---------------------------------------------------------------
%Filtro Pasa bajos
Wn = .20; %Frecuencia de Corte. 0<wn
N = 30; %Grado del filtro
LP = fir1(N,Wn); %filtro pasa bajos ...
Regístrate para leer el documento completo.