Está en la página 1de 7

clc

closeall; %cierra todas la ventanas abiertas


fs=44100; %Se definimos la frecuencia de grab.
y=wavrecord(5*fs,fs,2); %Tiempo a guardar, frecuencia, 1 mono
2 estereo
wavwrite(y,fs,32,'voz.wav'); %Nombre de archivo: wav
x=wavread('voz.wav'); %Manipular el sonido vectorialmente
sound(x,fs) %Escuchar el sonido
t2=(0:length(x)-1)/fs; %Rango que se utilizara
subplot(2,1,1); %Grafica de Sonido en el tiempo.
plot(t2,x);
xlabel('Tiempo');
ylabel('Amplitud');
title('Señal completa'); %Detalles grafica

tam=size(x); %tamaño del vector sonido


n=tam(1); %total de muestras de sonido
fl=round(n/2); %Mitad de muestras redondeada
fl=round(n/2); %Mitad de muestras redondeada
espectro=abs(fftshift(fft(x))); %Utilizando esta función reordenamos
los puntos en función de la frecuencia
[menorpri]=sort(espectro); %Ordena el espectro de menor a mayor
if 2*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,3000,0,menor(n)]);
xlabel('Frecuencia');
ylabel('Amplitud');
title('Señal en Frecuencia'); %Detalles grafica

fprintf('Información del archivo de sonido "%s":\n', 'voz.wav');


fprintf('Duración = %g seconds\n', length(x)/fs);
fprintf('Frecuencia = %g ', fs);

pause
%-------------------

%Eco

[d,r,nbits]=wavread('voz.wav'); %Numero de bit


num=[0,zeros(1,2900),1]; %Matriz como numerador
den=[1,zeros(1,2900),-0.5]; %Matriz como denomiador

d1=filter(num,den,d); %Filtro de matrices en dos


columnas hasta 132300 (Los 3 segundos)
wavwrite(d1,r,nbits,'eco.wav'); %Se creamos el nuevo archivo

I =[1,zeros(1,60)]; %Impulso de respuesta


numi=[0,zeros(1,10),1]; %Matriz de impulso num
deni=[1,zeros(1,10),-0.8]; %Matriz de impulso den
d2= filter(numi,deni,I); %Se crea el filtro

subplot(2,1,1); %Grafica espectral de señal


stem(d2);
grid;
xlabel('Indice de muestra');
ylabel('Amplitud');
title(['Impulso tipico de impulso ']);

%Respuesta de magnitud
[h1,w] = freqz(numi,deni,512);
subplot(2,1,2); %Grafica de espectro de señal
plot(w/pi,20*log10(abs(h1)));grid;
xlabel('Frecuencia normalizada');
ylabel('Magnitud');
title(['Respuesta de magnitud']);
i=wavread('eco.wav');
sound(i,fs)

pause

%Revebe
%------------------------------
[d,r]=wavread('voz.wav');
subplot(4,1,1)
stem(d);grid;
num=[0.8,zeros(1,2900),1];

den=[1,zeros(1,2900),0.8];

d1=filter(num,den,d);
subplot(4,1,2)
stem(d1);grid;
wavwrite(d1,r,'rev.wav');

I =[1,zeros(1,60)];
numi=[0.8,zeros(1,10),1];
deni=[1,zeros(1,10),0.8];
d2= filter(numi,deni,I);
subplot(4,1,3)
stem(d2);grid;
xlabel('Indice de muestra');
ylabel('Amplitud');
title(['Respuesta de Impulso ']);

subplot(4,1,4)
[h1,w] = freqz(numi,deni,512);
plot(w/pi,20*log10(abs(h1)));grid;
xlabel('Normalized Frequency');
ylabel('Magnitude');
title(['Magnitude response']);
j=wavread('rev.wav');
sound(j,fs)
Senal completa
1

0.5
Amplitud

-0.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo
Senal en Frecuencia
800

600
Amplitud

400

200

0
0 500 1000 1500 2000 2500 3000
Frecuencia

Impulso tipico de impulso


1

0.8

0.6
Amplitud

0.4

0.2

0
0 10 20 30 40 50 60 70
Indice de muestra
Respuesta de magnitud
15

10
Magnitud

-5

-10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecuencia normalizada

También podría gustarte