Professional Documents
Culture Documents
Ingeniera Electrnica
Materia: P.D.S
Duracin (hrs.): 2
hrs.
Profesor:
Integrantes:
Lee Fonseca Francisco
Rodrguez Caedo Pedro
Delgado Caedo Jos Manuel
Castro Viedas Juan Carlos
Iribe Soto Vctor Alonso
Flores Prez Hctor Alejandro
Martnez Zavala Jess Alberto
Materiales:
Arduino Due
Amplificador Operacional LM324
Equipo:
3 Generadores de
seal
1 Osciloscopio
2 Fuentes triples
Donde M+1 corresponde a la longitud del filtro. Este sistema considera slo las ultimas
M+1 muestras de la seal de entrada y las pondera mediante los coeficientes bk.
A este sistema se le denomina FIR, ya que su respuesta al impulso unitario (dada por los
coeficientes bk) es finita.
Su diseo requiere la seleccin de la secuencia que mejor representa la respuesta al impulso
de un filtro ideal. Los filtros FIR son siempre estables y son capaces de tener una respuesta
lineal en fase. Frente a los filtros IIR presentan la desventaja de requerir un orden mucho
mayor.
Cdigos de MatLab para obtener los coeficientes y graficas.Para el filtro pasa bajas.clc
close all
passband_cutoff=1100;
stopband_cutoff=1500;
rbp=0.01;
rsb=0.01;
frecuencia_de_muestreo=8000;
[n, Wn, beta, typ]=kaiserord( [passband_cutoff stopband_cutoff], [1, 0],
[rbp rsb], frecuencia_de_muestreo )
B=fir1(n, Wn, typ, kaiser(n+1, beta), 'noscale')
Fx=0:0.0005:0.5;
f1=100;
f2=1000;
f3=2000;
n1=0:1:1000;
fm=2*f3;
T=1/fm;
figure(1)
H=freqz(B,1,2*pi.*Fx);
plot(Fx*fm,abs(H))
X= 2+ cos((2*pi*(f1/fm)).*n1) + 0.5.*cos((2*pi*(f2/fm)).*n1)+
0.5.*cos((2*pi*(f3/fm)).*n1);
figure(2)
plot(n1,X)
y=filter(B,1,X);
figure(3)
plot(n1,y)
f3=2000;
n1=0:1:1000;
fm=2*f3;
T=1/fm;
figure(1)
H=freqz(B,1,2*pi.*Fx);
plot(Fx*fm,abs(H))
X= 2+ cos((2*pi*(f1/fm)).*n1) + 0.5.*cos((2*pi*(f2/fm)).*n1)+
0.5.*cos((2*pi*(f3/fm)).*n1);
figure(2)
plot(n1,X)
y=filter(B,1,X);
figure(3)
plot(n1,y)
pmc_enable_periph_clk((uint32_t)irq);
TC_Configure(tc, channel, TC_CMR_WAVE | TC_CMR_WAVSEL_UP_RC |
TC_CMR_TCCLKS_TIMER_CLOCK4);
uint32_t rc = VARIANT_MCK/128/frequency; //128 because we selected
TIMER_CLOCK4 above
TC_SetRA(tc, channel, rc/2); //50% high, 50% low
TC_SetRC(tc, channel, rc);
TC_Start(tc, channel);
tc->TC_CHANNEL[channel].TC_IER=TC_IER_CPCS;
tc->TC_CHANNEL[channel].TC_IDR=~TC_IER_CPCS;
NVIC_EnableIRQ(irq);
}
Diagrama de conexin.-
Seales generadas:
1.- 100 Hz (1 Vpp)
2.- 1000 Hz (0.5 Vpp)
3.- 2000 Hz (0.25 Vpp)
4.- -2V
Resultados.-
Conclusiones.-
Se logro implementar los tres principales filtros (pasa bajas, pasa bandas y pasa altas) en un
arduino, con el apoyo de software como el matlab se determinaron los coeficientes para cada
filtro, cabe aclarar que el arduino due tiene integrado adc y dac por lo que es mucho ms
fcil la implementacin de los filtros.