estimare spectrala si analiza timp-frecventa
Obiectivele lucrarii
Studiul estimatorilor spectrali clasici, parametrici si neparametrici
Studiul metodelor de analiza timp-frecventa a proceselor nestationare
3) Utilizarea functiilor MATLAB pentru implementarea tehnicilor de estimare spectrala si de analiza timp-frecventa;
4) Studiul interactiv al metodelor de estimare spectrala si de analiza timp-frecventa utilizand mediul DIDACTICIEL.
Desfasurarea lucrarii
Estimatorul spectral simplu
Fie un proces alb, gaussian, centrat () si de dispersie , definit pe 2048 esantioane. Sa se realizeze analiza spectrala a acestui proces utilizand estimatorul spectral simplu.
a) Sa se determine deplasarea si dispersia estimatorului.
b) Sa se refaca aceeasi analiza pentru 512, 1024 si 4096 esantioane.
c) Sa se verifice ca acest estimator este deplasat si ca dispersia sa nu depinde de durata observatiei (estimator inconsistent).
longueur_P=2048;
P=randn(1,longueur_P)*sqrt(0.25);
[spectre_simple,Frecventa]=periodo_simple(P,longueur_P);
semilogy(Frecventa,spectre_simple,'b');
xlabel('Frecventa normalizata');
ylabel('Amplitudine (dB)');
title('Periodograma simpla');
biais=mean(spectre_simple)
variance=std(spectre_simple)^2
Estimatorul spectral mediat
In cazul aceluiasi proces aleator sa se realizeze analiza spectrala folosind estimatorul spectral mediat. Sa se studieze influenta numarului de secvente folosite pentru mediere. Sa se determine deplasarea si dispersia estimatorului.
longueur_sequence=256;
[spectre_moyenne,Frecventa]=periodo_moyenne(P,longueur_sequence);
semilogy(Frecventa,spectre_moyenne,'b');
xlabel('frecventa normalizata');
ylabel('Amplitudine (dB)');
hold on;
longueur_sequence=128;
[spectre_moyenne,Frecventa]=periodo_moyenne(P,longueur_sequence);
semilogy(Frecventa,spectre_moyenne,'--r');
title('Periodograma mediata');
legend('mediere pe 8 ferestre','mediere pe 16 ferestre');
Sa se verifice ca acest estimator este tot deplasat, dar consistent. Ce se poate spune despre variatia rezolutiei frecventiale in raport cu numarul de sectiuni mediate
Rezultatele se vor trece intr-un tabel de tipul:
Lungimea sectiunilor |
Rezolutia frecventiala |
Dispersia |
Estimatorul spectral modificat
Sa se realizeze analiza spectrala a aceluiasi proces aleator folosind estimatorul spectral modificat. Sa se studieze influenta numarului de secvente folosite pentru mediere si a diferitelor ferestre utilizate pentru netezire. Sa se determine deplasarea si dispersia estimatorului.
fenetre=[boxcar(longueur_sequence)];
fenetre=fenetre*sqrt(longueur_sequence/ sum(fenetre.*fenetre));
fenetre=fenetre.';
[spectre_modifie,Frecventa]=periodo_modifie(P, longueur_sequence,fenetre);
semilogy(Frecventa,spectre_modifie,'b');
xlabel('frecventa normalizata');
ylabel('Amplitudine (dB)');
hold on;
title('Periodograma modificata');
Rezolutia dinamica
Sa se realizeze analiza spectrala a unui semnal compus din doua sinusoide afectate de zgomot. Parametrii componentelor semnalului sunt urmatorii:
prima sinusoida: a doua sinusoida: zgomot alb gaussian:
frecventa = 25 Hz frecventa = 50 Hz medie = 0
amplitudine = 1 amplitudine = 0.01 deviatie standard = 0.031
Frecventa de esantionare se considera 200 Hz. Lungimea a semnalului va lua valorile urmatoare : =.
Sa se testeze cei trei estimatori spectrali studiati anterior pentru: , , , si ferestrele rectangulara, Hamming si Blackman, fiind numarul de subsecvente in care este impartita secventa initiala.
longueur_signal=512;
t=0:1/200:(longueur_signal/200)-1/200;
y1=sin(2*pi*25*t); y2=0.01 * sin(2*pi*50*t);
bruit=randn(1,longueur_signal); signal=y1+y2+bruit*0.031;
[spectre_simple,Frecventa]=periodo_simple(signal, longueur_signal);
semilogy(Frecventa,spectre_simple,'b'); title('512 puncte');
longueur_sequence=256;
[spectre_moyenne,Frecventa]=periodo_moyenne(signal, longueur_sequence);
semilogy(Frecventa,spectre_moyenne,'b');
title('K=512, L=2');
longueur_sequence=256;
fenetre=[hamming(longueur_sequence)];
fenetre=fenetre*sqrt(longueur_sequence/ sum(fenetre.*fenetre));
fenetre=fenetre.';
[spectre_modifie,Frecventa]=periodo_modifie(signal, longueur_sequence,fenetre);
semilogy(Frecventa,spectre_modifie,'b');title('Hamming');
xlabel('frecventa normalizata');ylabel('Amplitudine')
Proces aleator AR
Sa se genereze un zgomot alb, gaussian, centrat, de dispersie
Sa se filtreze apoi acest semnal cu ajutorul unui filtru, avand caracteristica de transfer .
Sa se identifice procesul AR rezultat si sa se regaseasca valorile parametrilor (,,) corespunzator datelor generate. Se va presupune cunoscut ordinul procesului ().
bruit=randn(1,2048)*0.5;
b=1;a=[1 0.5 0.75];
y=filter(b,a,bruit); y=y.';
[coef,sigma2]=parametre_AR(y );
title('Polii si zerourile unui proces A.R. de ordinul 2');
ordre=2;dsp=0;
for nu=0:200
denominateur=1;
for
coef(
coefm=coef(
denominateur=denominateur+coefm ;
end;
dsp=[dsp sigma2/(abs(denominateur).^2)];
end
nu=
plot(nu,dsp(1,1:length(nu)));
title('Raspunsul in frecventa al filtrului');
xlabel('frecventa normalizata');
ylabel('Amplitudine');
Analiza spectrala de inalta rezolutie parametrica
Sa se genereze o sinusoida pura de frecventa 50 Hz esantionata la 200 Hz (definita pe 4096 esantioane). Reprezentati densitatea sa spectrala de putere considerand acest semnal ca un proces AR, al carui ordin se va determina folosind criteriul lui Akaike.
longueur=4096;t=0:1/200:(longueur/200)-1/200; y=sin(2*pi*50*t);y=y.';
dsp=[];FPE=zeros(1,10);
for ordre=1:10
[coef,sigma2]=parametre_AR(y,ordre);
FPE(1,ordre)=((longueur+ordre)/(longueur-ordre))*sigma2;
[mini,position]=min(FPE);
ordre_selectionne=position;
end
[coef,sigma2]=parametre_AR(y,ordre_selectionne);
for nu=0:200
denominateur=1;
for
coef(
coefm= coef(
denominateur=denominateur+coefm ;
end;
dsp=[dsp sigma2/(abs(denominateur).^2)];
end
nu=0:1/200:0.5; dsp=dsp/max(dsp);
plot(nu,dsp(1,1:length(nu))); title('DSP a semnalului');
xlabel('frecventa normalizata');ylabel('Amplitudine');
Spectrograma unui semnal chirp
Un semnal MLF are urmatoarea expresie analitica:
unde , fiind durata semnalului.
a) Sa se genereze un astfel de semnal pentru .
b) Sa se reprezinte semnalul in domeniile temporal si frecvential.
c) Sa se reprezinte acelasi semnal in planul timp frecventa cu ajutorul spectrogramei.
a)
f1=2000;
f2=8000;
pulselength=
Fe=20000;
t=(0:1/Fe:pulselength);
beta=(f2-f1)/(2*pulselength);
chirp=sin(2*pi*(f1+beta*t).*t);
chirp2=vco(sawtooth((2*pi/pulselength)*t,1), [f1/Fe,f2/Fe]*Fe,Fe);
figure(1);clf;
subplot(
plot(t,chirp);
xlabel('Timp');
ylabel('Amplitudine');
title('Analiza unei modulatii liniare de frecventa')
b)
C=fftshift(abs(fft(chirp)).^2);
lc=length(chirp);
mc=lc/2;
freq=(-mc:1:mc-1)*Fe/lc;
subplot(
plot(freq,C);
xlabel('Frecventa [Hz]');
ylabel('Densitatea spectrala de putere')
c)
Wsize=32;
[Cspec,F,T] = specgram(chirp,128,Fe,Wsize);
figure(2);clf;
imagesc(1000*T,F/1000,abs(Cspec));
xlabel('Timp [ms]');
ylabel('Frecventa [kHz]');
title('Analiza unei modulatii liniare de frecventa')
Ce concluzie se poate trage in privinta informatiei aduse de cele 3 reprezentari
Compromisul rezolutie spectrala rezolutie temorala
Sa se genereze un semnal compus dintr o sinusoida si un Dirac.
Sa se analizeze acest semnal cu ajutorul spectrogramei pentru diverse dimensiuni ale ferestrei de analiza.
Sa se interpreteze rezultatele obtinute.
Fe=10000; f1=1000; f2=4000;
T=0.015; t=[0.005:1/Fe:T];
delta=0.005*Fe;
sig=[zeros(1,delta), sin(2*pi*f1*t), zeros(1,delta),
5*ones(1,1), zeros(1,2*delta)];
subplot(
plot(0:1000*(1/Fe):1000*(length(sig)/Fe-1/Fe),sig);
title('Semnal temporal');
xlabel('Timp [ms]');ylabel('Amplitudine');
[S,F,T] = specgram(sig,128,Fe,64);
subplot(312); imagesc(T*1000,F/1000,abs(S));
xlabel('Timp [ms]'); ylabel('Frecventa [kHz]');
Title('Spectrograma cu o fereastra de 64 puncte'),
[S,F,T] = specgram(sig,128,Fe,16);
subplot(313); imagesc(T*1000,F/1000,abs(S));
xlabel('Timp [ms]'); ylabel('Frecventa [kHz]');
title('Spectrograma cu o fereastra de 16 puncte')
Scalograma
Scalograma este o distributie de energie care se obtine ca modulul la patrat al transformatei wavelet continue.
a Undisoara Morlet este definita prin relatia:
Aceasta nu verifica proprietatea de medie nula. Pentru a aproxima aceasta conditie, conservand un numar mic de oscilatii Morlet a propus compromisul:
Sa se vizualizeze alura acestei undisoare pentru diversi parametri.
b) Puneti in evidenta variatiile rezolutiilor temporala si frecventiala in functie de pozitia in planul timp frecventa. Se va utiliza un semnal compus dintr un Dirac si doua sinusoide trunchiate, de frecvente diferite.
a
[onde,ts]= ond_mor(129, 10, 100);
figure(1);clf;
subplot(211);plot(ts,real(onde));
hold on;plot(ts,abs(onde),'r');
grid;title('Undisoara Morlet')
b)
Fe=64000;
f1=500; f2=8000; T=0.01;
t=[0:1/Fe:T];
delta=0.005*Fe;
sig1=[zeros(1,delta), sin(2*pi*f1*t), zeros(1,2*delta)];
sig2=[zeros(1,delta),sin(2*pi*f2*t), zeros(1,2*delta)];
sig=sig1+sig2;sig(4*delta+1:4*delta+5)=10*ones(1,5);
figure(1);subplot(212); plot(sig);
title('Semnal studiat: suma a doua sinusoide si un Dirac')
NB_OCT=8;NB_VOIES=1;
[TOnd_SIG, freqs] = morlet( sig, Fe, length(sig), Fe/2,
NB_OCT, NB_VOIES);
vec_Timp=[0:1/Fe:length(sig)/Fe]*1000;vec_freqs=[0:1:7];
figure(2);clf;colormap(gray);
imagesc(vec_Timp,vec_freqs,2*log10(abs(TOnd_SIG)));
set(gca,'YTickLabels',250*2.^([7:-1:0]));
title('Scalograma unui Dirac si doua sinusoide');
xlabel('Timp [ms]');ylabel('Frecventa [Hz]')
Distributia Wigner-Ville
a Sa se calculeze distributia Wigner-Ville a unui semnal MLF.
b) Sa se genereze un semnal compus din 3 sinusoide trunchiate: doua debutand la momentul , de frecvente si diferite, a treia debutand la momentul , de frecventa .
Sa se reprezinte distributia Wigner-Ville a acestui semnal si sa se concluzioneze asupra interferentelor temporale si frecventiale.
a)
f1=2000; f2=8000;T=0.008;Fe=20000;t=(0:1/Fe:T);
beta=(f2-f1)/(2*T); delta=0.001*Fe;
x=[zeros(1,delta), sin(2*pi*(f1+beta*t).*t),
zeros(1,delta)]; [W,Wr,abscisse]=wigner(x,Fe);
max(max(real(W)))
max(max(imag(W)))
sum(sum(W))
sum(x.^2)
b)
f1=1000;deltaf=3000;f2=f1+deltaf;
Fe=round(3*f2);T=0.01;t=[0:1/Fe:T];
deltat=0.01*Fe;marge=20;
sig1=[zeros(1,marge), sin(2*pi*f1*t),
zeros(1,T*Fe+deltat+marge)];
sig2=[zeros(1,marge),sin(2*pi*f2*t), zeros(1,T*Fe+deltat+marge)];
sig3=[zeros(1,marge+T*Fe+deltat),sin(2*pi*f1*t), zeros(1,marge)]; sig=sig1+sig2+sig3;
[W,Wr,fwv,abscisse]=wigner(sig,Fe); [N1,N2]=size(W);
figure(2);clf; zoom on ;
subplot(311); milieuf=round(((f1+f2)/2)/(Fe/2)*N1);
plot(abscisse,Wr(milieuf,:)); xlabel('Timp (ms)');
title('Studiul interferentelor')
subplot(312);milieut=round(marge+T*Fe+deltat);
plot(fwv,Wr(:,milieut));xlabel('Frecventa [kHz]')
subplot(313);repere=round(marge+T/2*Fe);
plot(fwv,Wr(:,repere));xlabel('Frecventa [kHz]')
Analiza multirezolutie
Sa se studieze cu ajutorul analizei multirezolutie un semnal format dintr o sinusoida cu zgomot. Pentru analiza se va folosi undisoara lui Haar.
Sa se realizeze sinteza aceluiasi semnal plecand de la coeficientii descompunerii si sa se arate ca este posibila filtrarea semnalului anuland o parte dintre acestia.
clear;Fe=5000;taille=1024;
Timp=[1:1:taille]/Fe;numpts=length(Timp);
data=sin(2*pi*25*Timp)+rand(1,taille);
[approx,detail]=analysehaar(data);
newsig=synthesehaar(approx,detail);
selection=detail;selection(8:10,:)=zeros(3,numpts);
sig_debruite=synthesehaar(approx,selection);
figure(1);clf; zoom on
for plt = 1:size(detail,1),
subplot(10,2,2*(plt-1)+1),plot(Timp,detail(plt,1:numpts));
grid;
if (plt == 1),
title('Detaliu');
end;
if (plt == 10);
xlabel('Timp [s]');
end
end
for plt = 1:size(approx,1),
subplot(10,2,2*plt),plot(Timp,approx(plt,1:numpts));grid
if (plt == 1),
title('Aproximare');
end;
if (plt == 10);
xlabel('Timp [s]');
end
end
figure(2);clf;zoom on;
subplot(311);plot(Timp,data);title('Semnal original');
subplot(312);plot(Timp,newsig);title('Semnal reconstruit');
subplot(313);plot(Timp,sig_debruite);
title('Semnal filtrat');xlabel('Timp [s]')
Studiul operatorilor de estimare spectrala si analiza timp frecventa utilizand mediul DIDACTICIEL
1) Se lanseaza DIDACTICIEL-ul prin introducerea comenzii:
didact
2) Se studiaza interactiv operatorii de estimare spectrala si analiza timp frecventa cu ajutorul meniurilor definite in:
Fourier analysisParametric Models
Fourier analysisEstimators
Deep StudyTime-Frequency Analysis
Tema
Sa se realizeze analiza spectrala folosind algoritmul MUSIC a unui semnal compus din doua sinusoide afectate de zgomot. Parametrii componentelor semnalului sunt urmatorii:
prima sinusoida: a doua sinusoida: zgomot alb gaussian:
frecventa = 25 Hz frecventa = 30 Hz medie = 0
amplitudine = 1 amplitudine = 1 deviatie standard=0.25
Frecventa de esantionare se considera 100 Hz. Se considera ca se dispune de 32 esantioane ale semnalului util.
(Indicatie: matricea de autocorelatie se estimeaza folosind subsecvente ale semnalului, obtinute prin parcurgerea acestuia cu o fereastra glisanta de lungime 16, iar dimensiunea subspatiului semnal se considera egala cu 4).
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |