La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

STIMA DELLO SPETTRO Noi considereremo esempi:

Presentazioni simili


Presentazione sul tema: "STIMA DELLO SPETTRO Noi considereremo esempi:"— Transcript della presentazione:

1 STIMA DELLO SPETTRO Noi considereremo esempi:
Metodo diretto o periodogramma Metodo indiretto Metodo basato su modello AR

2 Metodo diretto: Si definisce Densità Spettrale di Potenza di un segnale discreto x(n), n=0…N-1 P(ω) =1/N | X(ω)|2 con X(ω)=FT[(x(n)] Nella realta’ si fa una DFT Le istruzioni Matlab sono: Y=fft(x,N) P=(abs(y).^2)/N

3 Esempio di implementazione in Matlab su Segnale Simulato
%Calcolo densita' spettrale di potenza mediante DFT file Spettrogramma.m T=2.5; %tempo di osservazione Fs=1000; t=(0:1/Fs:T-1/Fs)'; N=length(t); x=sin(2*pi*30*t)+sqrt(0.5)*randn(N,1); %sinusoide a 30 Hz con sovrapposto rumore gussiano %a media nulla e varianza 0.5 subplot(211) plot(t,x) xlabel('tempo(sec)') title('segnale') FTx=fft(x,N); S=(abs(FTx).^2)/N; f_FT=(0:Fs/N:Fs-Fs/N); S=S(1:N/2); %elimino la seconda meta' delle stime f_FT=f_FT(1:N/2); %elimino la seconda meta' dei campioni subplot(212) plot(f_FT,S) axis([0, Fs/2, 0, max(abs(S))]) xlabel('frequenze(Hz)') title('densita'''' spettrale di potenza')

4 Provare a: Modificare l’intervallo di osservazione T=1.5, 1, 0.5, 0.1, 0.01 Vedere i grafici a punti Provare l’effetto dello zero-padding (ad es con T=0.01, porre N=512) Modificare il segnale simulato: x=sin(2 pi 30 t)+3 sin(2 pi 60 t)+sqrt(0.5)randn(N,1)

5 Metodo indiretto: P(ω) =FT[Rx(m)]
In pratica si hanno solo N campioni da cui si ottiene solo una stima di Rx(m) per m=0,1,….M con M<<N Sfruttando poi la parita’ della funzione: Rx(m) = Rx(-m) e nulla per |m|>M Si ricorda che

6 Esempio di implementazione in Matlab su Segnale Simulato
%Calcolo densita' spettrale di potenza: metodo indiretto %(mediante stima autocorrelazione) file MetodoIndiretto.m T=2.5; Fs=1000; t=(0:1/Fs:T-1/Fs)'; N=length(t); x=sin(2*pi*30*t)+sqrt(0.5)*randn(N,1); %sinusoide a 30 Hz con sovrapposto rumore gussiano %a media nulla e varianza 0.5 subplot(211) plot(t,x) xlabel('tempo(sec)') title('segnale') M=round(N/5); autocorr=zeros(2*M+1,1); %stima della funzione di autocorrelazione for m=0:M somma=0; for j=0:(N-1-m) somma=somma+x(j+1)*x(m+j+1); end autocorr(M+1+m)=somma/(N-m); for i=1:M autocorr(i)=autocorr(2*M+2-i); %per parita' segnale diventano 2M+1 campioni

7 Continuazione metodo indiretto
S=fft(autocorr,(2*M+1)); f_FT=(0:Fs/(2*M+1):Fs-Fs/(2*M+1)); S=S(1:(M+1)); %elimino la seconda meta' delle stime f_FT=f_FT(1:(M+1)); %elimino la seconda meta' dei campioni subplot(212) plot(f_FT,abs(S)) axis([0, Fs/2, 0, max(abs(S))]) xlabel('frequenze(Hz)') title('densita'''' spettrale di potenza')

8 Provare a: Modificare l’intervallo di osservazione T=1.5, 1, 0.5, 0.1, 0.01 Vedere i grafici a punti Provare l’effetto dello zero-padding (ad es con T=0.01, porre N=512) Modificare il segnale simulato: x=sin(2 pi 30 t)+3 sin(2 pi 60 t)+sqrt(0.5)randn(N,1) Provare con entrambi i metodi a stimare la densita’ spettrale per i dati veri contenuti in dati_eeg.mat (N=512, Fs=512 Hz) (N.B. ricordarsi di togliere il valor medio!!!)

9 Metodo basato su Stima spettrale AR:
Il risultato dipende dall’ordine p scelto per il modello AR I comandi Matlab sono: th=ar(x,p,'yw'); [spettro,f]=ar_dsp(th.a,th.noisevariance,N,Fs); Dove ar_dsp e’ una funzione che calcola lo spettro dalla formula precedente


Scaricare ppt "STIMA DELLO SPETTRO Noi considereremo esempi:"

Presentazioni simili


Annunci Google