%Riccardo Giugno, Facoltà di Ingegneria II sede di Vercelli %Mat. 113912 corso Ingegneria Informatica %Funzione che dati i valori di: %r = resistenza del filtro %c = capacità del filtro %N = numero di armoniche per approssimare la funzione quadra %prec = precisione desiderata nell'intervallo %applica un filtro passabasso ad un'onda quadra di picco pari ad 1v e %frequenza 20Hz. function filtroquad(r,c,a,N,prec) f0=15; %Frequenza di 15 Hz n=(1:2:N); %Armoniche che approssimano l'onda in ingresso dt=(1/f0)/prec; %Step della precisione desiderata T=((-(1/f0)/2)-dt:dt:((1/f0)/2)+dt); %Definizione degli estremi della funzione oq=-(-(1/f0)/2<=T & 0>=T) + (0<=T & (1/f0)/2>=T); %Funzione che genera un'onda quadra oq=oq*(a/2); %Onda quadra moltiplicata per l'ampiezza di picco hndl=plot(T,oq); %Visualizza l'onda quadra in ingresso set(hndl,'color','red'); %axis([-0.05 0.05 -2 2]); pause; hold on; bn=4./(n*pi); %Approssimazione dell'onda quadra Kv=(1/(r*c))./(j*(2*pi*f0.*n)+(1/(r*c))); %Kv del passabasso outm=abs(Kv).*bn; %Ampiezza dell'uscita outf=angle(Kv); %Fase dell'uscita for i=1:prec+3 out(i)=sum(outm*(a/2).*sin(((2*pi*f0.*n)*T(i))+outf)); %Uscita end plot(T,out); %Visualizza l'uscita del filtro passabasso s=tf('s'); Kf=(1/(r*c))/((s)+(1/(r*c))); Kf=Kf; figure; margin(Kf) hold off;