1 / 11

Esercitazione MATLAB (13/5)

Esercitazione MATLAB (13/5). ilenia.tinnirello@tti.unipa.it. Sommario. Segnali Numerici Caratteristiche delle sinusoidi: periodicita’ e alias Sistemi Numerici Rappresentazione Operazione su sequenze di ingresso. Segnali Numerici.

eliza
Télécharger la présentation

Esercitazione MATLAB (13/5)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Esercitazione MATLAB (13/5) ilenia.tinnirello@tti.unipa.it

  2. Sommario • Segnali Numerici • Caratteristiche delle sinusoidi: • periodicita’ e alias • Sistemi Numerici • Rappresentazione • Operazione su sequenze di ingresso

  3. Segnali Numerici Come si puo’ rappresentare un segnale numerico in MATLAB? 1 Vettore: gli indici rappresentano gli istanti di tempo, i valori degli elementi i campioni. 2 Vettori: uno rappresenta gli istanti di tempo, l’altro i valori del segnale Es. rect5 = [ 1, 1, 1, 1, 1]; n=1:1:100; f=0.025; s1 = sin(2*pi*f*n); N.B. Provate a diagrammare s1 al crescere di f: 1/16, 1/8, 1/4, 1/2.. Quale e’ la massima frequenza numerica? Provate a diagrammare s1 per f=sqrt(2); Cosa notate? Che vincolo deve avere f perche’ s1 sia periodico?

  4. Esempio: Alias di frequenze • t=0:0.001:0.2; tc=0:1/40:0.2 • X1=sin(2*pi*10*t); X2=sin(2*pi*50*t); • X1c=sin(2*pi*10*tc); X2c=sin(2*pi*10*tc); • Plot(t, x1); hold; stem(tc, x1c, ‘r’); • Figure(2); • Plot(t, x2); hold; stem(tc, x2c, ‘r’); • Trovate un altro segnale X3 che campionato sia un alias di X1. Quali condizioni devono valere per la frequenza di X3?

  5. Esercizio 3 Scrivete uno script per la visualizzazione del fenomeno di Gibbs: lo script deve graficare lo sviluppo in serie di un’onda quadra con n armoniche e frequenza f: function[s]=quadra(f, N); ( N.B. il coefficiente della i-esima armonica e’ N/[pi*(2i-1)] ) Cosa succede all’aumentare di N? Riusciamo a migliorare la ricostruzione dell’onda quadra?

  6. Sistemi lineari Tempo Invarianti(Filtri) Problemi da affontare: 1) Come si puo’ rappresentare in MATLAB un filtro? - risposta all’impulso, funzione di trasferimento, poli e zeri, risposta in frequenza 2) Come si puo’ passare da una rappresentazione ad un’altra? 2) Come si puo’ calcolare l’uscita del filtro a una data sequenza di ingresso? Filtro x(n) y(n)

  7. Rappresentazione di un filtro Supponiamo di avere una rappresentazione con equazione alle differenze: a0y(n) = b0x(n) + b1x(n-1)+..blx(n-l) – a1y(n-1) –.. amy(n-m) Possiamo rappresentare in due vettori gli insiemi dei coefficienti ai e bi Questi vettori rappresentano anche numeratore e denominatore della funzione di trasferimento del sistema. Possiamo rappresentare in due vettori zeri e poli della funzione di trasferimento

  8. Rappresentazione di un filtro - Le funzioni zp2tf e tf2zp consentono di passare da una rappresentazione poli/zeri ad una rappresentazione in termini di coefficienti della funzione di trasferimento e viceversa. - La funzione zplane(b, a) o zplane(z, p) diagrammma poli e zeri del sistema; i vettori z e p devono essere vettori colonna, mentre b e a vettori riga - La funzione freqz(b, a) diagramma modulo e fase della funzione di trasferimento rappresentata da b e a

  9. Filtraggio Come possiamo calcolare l’uscita del sistema per dati a, b, x e y0 (dette y0 le condizioni iniziali)? • Si scrive un .m file per risolvere l’equazione alle differenze • Si usa la funzione filter(b, a, x, y0), dove b e a rappresentano i coeff. della funzione di trasferimento

  10. Esempio: Filtro I ordine y(n) = 0.5 y(n-1) + x(n), y(-1) = 1; x(n) = (n) Vogliamo ricavare i primi 10 campioni della sequenza di uscita 1) a=[1 -0.5]; b=[1]; zplane(b, a) z=[0;]; p=[0.5;]; zplane(b, a) freqz(b, a); 2) x(n)=zeros(10, 1); x(1,1) = 1; stem(x); y = filter(b, a, x, [0.5]); stem(y); y0= filter(b,a,x) = impz(b, a, 10) = h; stem(y0); y=zeros(11,1); y(1,1)=1; for i=2:1:10 y(i,1)=0.5*y(i-1,1)+x(i-1,1); end conv(h, x)

  11. Soluz. Generica eq. alle differenze function y = eq_diff(b,a,y0,x) if (length(y0)~=length(a)) fprintf('Condizioni iniziali non specificate correttamente\n'); return else y=[y0, zeros(1, 100)] x=[zeros(1,length(b)), x, zeros(1,100)]; A=fliplr(a); B=fliplr(b); for n=0:1:100 y(n+length(y0)+1)=sum(A.*y(n+1:n+length(a)))+sum(B.*x(n+1:n+length(b))); end y=y(length(a)+1:100); plot(y) end

More Related