Sunteți pe pagina 1din 5

TAREA 1

Grabar msica y pasar a frecuencia (TDF). Filtrar con pasabanda (800-3000Hz y 3000-
10000Hz), pasabajo (800 Hz) y pasaalto (10000Hz). Obtener grficas.

CDIGO DE PROCESAMIENTO Y PASO A FRECUENCIA:

[x Fs]=audioread('RockAndRollTrain.wav');
%x seal estereo
%Fs=frecuencia de muestreo
%nbits=la precision de cada muestra
xe=x(:,1);
xe=xe';%calculando la transpuesta
N=2048;%numero de muestras de la DFT
txe=fft(xe,N);
mtxe=abs(txe);
k=linspace(0,Fs,N);
figure(1)
subplot(211)
plot(xe(1,1:430000)),grid,title('seal en el dominio del tiempo')
subplot(212)
stem(k,mtxe),grid,title('seal en el dominio de la frecuencia(DFT)')

FILTRADO PASABANDA 800-3000HZ:

Fs=44100;
Fc1=800;
Fc2=3000;
N=241;%NUMERO DE PESOS(impar)
%w=rectwin(N)'
%Ventana Hamming
n=0:(N-1)/2;
w=0.54-0.46*cos(2*pi*n/(N-1));
w=[w fliplr(w(1,1:(N-1)/2))];
%Filtro ideal para Fc2
n=0:((N-1)/2-1);
hi2=sin(2*pi*(n-(N-1)/2)*Fc2/Fs)./(pi*(n-(N-1)/2));
hi2=[hi2 2*Fc2/Fs fliplr(hi2)];
hi2(1,(N-1)/2+1)=2*Fc2/Fs;%+1 para compensar posicion
%Filtro ideal para Fc1
n=0:((N-1)/2-1);
hi1=sin(2*pi*(n-(N-1)/2)*Fc1/Fs)./(pi*(n-(N-1)/2));
hi1=[hi1 2*Fc1/Fs fliplr(hi1)];
hi1(1,(N-1)/2+1)=2*Fc1/Fs;%+1 para compensar posicion
hi=hi2-hi1;
h=hi.*w;%calculo del filtro pasabanda(real)
[x Fs]=audioread('RockAndRollTrain.wav');
x=x(:,1)';
y=conv(x,h);
MTx=abs(fft(x,4096));
MTy=abs(fft(y,4096));
figure(4)
k=linspace(0,Fs,4096);
subplot(211),stem(k,MTx),grid,title('seal de entrada del filtro')
subplot(212),stem(k,MTy),grid,title('seal de salida del filtro')
sound(y,Fs)

FILTRADO PASABANDA 3000-10000HZ:

Fs=44100;
Fc1=3000;
Fc2=10000;
N=241;%NUMERO DE PESOS(impar)
%w=rectwin(N)'
%Ventana Hamming
n=0:(N-1)/2;
w=0.54-0.46*cos(2*pi*n/(N-1));
w=[w fliplr(w(1,1:(N-1)/2))];
%Filtro ideal para Fc2
n=0:((N-1)/2-1);
hi2=sin(2*pi*(n-(N-1)/2)*Fc2/Fs)./(pi*(n-(N-1)/2));
hi2=[hi2 2*Fc2/Fs fliplr(hi2)];
hi2(1,(N-1)/2+1)=2*Fc2/Fs;%+1 para compensar posicion
%Filtro ideal para Fc1
n=0:((N-1)/2-1);
hi1=sin(2*pi*(n-(N-1)/2)*Fc1/Fs)./(pi*(n-(N-1)/2));
hi1=[hi1 2*Fc1/Fs fliplr(hi1)];
hi1(1,(N-1)/2+1)=2*Fc1/Fs;%+1 para compensar posicion
hi=hi2-hi1;
h=hi.*w;%calculo del filtro pasabanda(real)
[x Fs]=audioread('RockAndRollTrain.wav');
x=x(:,1)';
y=conv(x,h);
MTx=abs(fft(x,4096));
MTy=abs(fft(y,4096));
figure(4)
k=linspace(0,Fs,4096);
subplot(211),stem(k,MTx),grid,title('seal de entrada del filtro')
subplot(212),stem(k,MTy),grid,title('seal de salida del filtro')
sound(y,Fs)

FILTRADO PASABAJO 800HZ:

Fs=44100;
Fc=800;
N=241;%NUMERO DE PESOS(impar)
%w=rectwin(N)'
%Ventana Hamming
n=0:(N-1)/2;
w=0.54-0.46*cos(2*pi*n/(N-1));
w=[w fliplr(w(1,1:(N-1)/2))];
%Filtro ideal para Fc
n=0:((N-1)/2-1);
hi=sin(2*pi*(n-(N-1)/2)*Fc/Fs)./(pi*(n-(N-1)/2));
hi=[hi 2*Fc/Fs fliplr(hi)];
hi(1,(N-1)/2+1)=2*Fc/Fs;%+1 para compensar posicion
h=hi.*w;%calculo del filtro pasabajo(real)
[x Fs]=audioread('RockAndRollTrain.wav');
x=x(:,1)';
y=conv(x,h);
MTx=abs(fft(x,4096));
MTy=abs(fft(y,4096));
figure(4)
k=linspace(0,Fs,4096);
subplot(211),stem(k,MTx),grid,title('seal de entrada del filtro')
subplot(212),stem(k,MTy),grid,title('seal de salida del filtro')
sound(y,Fs)

FILTRADO PASAALTO 10000HZ:

Fs=44100;
Fc=10000;
N=241;%NUMERO DE PESOS(impar)
%w=rectwin(N)'
%Ventana Hamming
n=0:(N-1)/2;
w=0.54-0.46*cos(2*pi*n/(N-1));
w=[w fliplr(w(1,1:(N-1)/2))];
%Filtro ideal para Fc
n=0:((N-1)/2-1);
hi=sin(2*pi*(n-(N-1)/2)*Fc/Fs)./(pi*(n-(N-1)/2));
hi=[hi 2*Fc/Fs fliplr(hi)];
hi(1,(N-1)/2+1)=2*Fc/Fs;%+1 para compensar posicion
hipasalto=-hi;
hipasalto(1,(N-1)/2+1)=1-hi(1,(N-1)/2+1);%+1 para compensar posicion
h=hipasalto.*w;%calculo del filtro pasaalto(real)
[x Fs]=audioread('RockAndRollTrain.wav');
x=x(:,1)';
y=conv(x,h);
MTx=abs(fft(x,4096));
MTy=abs(fft(y,4096));
figure(4)
k=linspace(0,Fs,4096);
subplot(211),stem(k,MTx),grid,title('seal de entrada del filtro')
subplot(212),stem(k,MTy),grid,title('seal de salida del filtro')
sound(y,Fs)

S-ar putea să vă placă și