Está en la página 1de 4

LABORATORIO N6 FILTRO FIR

PROCESAMIENTO DIGITAL DE SEALES

1.- Disee 3 filtros de diferentes frecuencias y diferente orden, aplicando la funcin


fir1 para filtros FIR , Mostrar las respuestas de los filtros.
Pasa bajo
>> B=fir1(100 , 0.4 , 'low' )
>> freqz(B,1)

En esta expresin el vector B, tendr una longitud de 101, que contendr los
coeficientes de un filtro digital RIF pasa bajas (low) de orden 100. La frecuencia de
corte Wn debe estar entre 0<Wn<1. El filtro resultante es real y tiene fase lineal,
es decir, tiene simetra par en sus coeficientes

Pasa Alto
>> B=fir1(100 ,0.4, 'high' );
>> freqz(B,1)

En esta expresin el vector B, tendr una longitud de 101, que contendr los
coeficientes de un filtro digital RIF pasa alto (high) de orden 100. La frecuencia de
corte Wn debe estar entre 0<Wn<1.

LABORATORIO N6 FILTRO FIR


PROCESAMIENTO DIGITAL DE SEALES
Rechaza Banda
>> B=fir1(100,[0.3 0.5],'stop');
>> freqz(B,1)

En esta expresin el vector B, mantendr la misma longitud de 101, que contendr


los coeficientes de un filtro digital RIF rechaza banda de orden 100. En este caso
el filtro deja pasar un rango de frecuencias comprendidas entre 0.3 y 0.5.

2.- Disee 3 filtros de diferentes frecuencias y diferente orden, aplicando la


funcin fir2 para filtros FIR , Mostrar las respuestas de los filtros.
Pasa Bajo
f = [0 0.4 0.4 1];
m = [1 1 0 0];
b = fir2(100,f,m);
[h,w] = freqz(b,1);
plot(f,m,w/pi,abs(h))
legend('Ideal','Real')
title('Comparacin de las magnitudes en respuesta de frecuencia')

LABORATORIO N6 FILTRO FIR


PROCESAMIENTO DIGITAL DE SEALES
Pasa Alto
f = [0 0.6 0.6 1];
m = [0 0 1 1];
B = fir2(100,f,m);
[h,w] = freqz(B,1);
plot(f,m,w/pi,abs(h))
legend('Ideal','Real')
title('Comparacin de las magnitudes de respuesta en frecuencia')

Rechaza Banda
f = [0 0.4 0.6 1];
m = [0 1 1 0];
B = fir2(90,f,m);
[h,w] = freqz(B,1);
plot(f,m,w/pi,abs(h))
legend('Ideal','Real')
title('Comparacin de las magnitudes de respuesta en frecuencia')

LABORATORIO N6 FILTRO FIR


PROCESAMIENTO DIGITAL DE SEALES

TAREA
1. Segn su criterio programar un filtro FIR pasa banda para una seal de voz
%definir la banda de paso en frecuencia normalizada
Wn=[0.3,0.8];
%Obtener los coeficientes de los polinomios A y B
[A,B] = butter(1,Wn);
%Leer el archivo a procesar
[y,fs,nbits]= wavread('PDS.wav');
%Aplicar la transformadorrmada rapida de Fourier
Y_trans=fft(y);
%Filtrar la seal
y1=filter(B,A,Y_trans);
_filtrada=ifft(y1);
%Graficar la seal obtenida
plot(Y_filtrada);grid;
%Reproducir la seal filtrada:
sound(Y_filtrada,fs);

2. Segn su criterio programar un filtro FIR pasa banda para una seal de radio
disp( 'MODULACION DE AMPLITUD (AM) EN MATLAB' )
N = input( 'Digite el Numero de muestas: ' )
fs = input ( 'Digite la frecuencia de muestreo: ')
fc = input('Digite la frecuencia de la portadora: ')
fm = input('Digite la frecuencia de la moduladora (informacion):
Ec = input('Digite el valor de la amplitud de la portadora: ')
Em = input('Digite el valor de la amplitud de la Moduladora
(informacion): ')
t = (0:N-1)/fs;
%
Modulacion de Amplitud
Eca = Ec*cos(2*pi*fc*t);
Emoduladora = Ec*cos(2*pi*fm*t);
A = Ec + Emoduladora;
% Creacion de la envolvente
m = A.*[cos(2*pi*fc*t)];
% Modulacion
Mf = 2/N*abs(fft(m,N));
% Espectro mediante fft
f = fs*(0:N/2)/N;
% Analisis del espectro
close all;
figure('Name','Portadora, Modulada, Amplitud modulada');
subplot(2,2,1); plot(t(1:N/10),Emoduladora(1:N/10));
title('Seal moduladora'), grid on,
xlabel('Tiempo'), ylabel('Seal mopduladora(t)');
subplot(2,2,2); plot(t(1:N/10),Eca(1:N/10));
title('Seal Portadora'), grid on, xlabel('Tiempo'),
ylabel('Seal Portadora(t)');
subplot(2,2,3:4);
plot(t(1:N/10),m(1:N/10),t(1:N/10),A(1:N/10),'r',t(1:N/10),A(1:N/10),'r');
title('Seal modulada AM' ), grid on,
xlabel('Tiempo'), ylabel('Seal modulada(t)');

')

También podría gustarte