Paweł Panek
Mechatronika grupa 23
Identyfikacja i analiza sygnałów
Sprawozdanie nr 10
Metody nieparametryczne w identyfikacji i analizie
Sygnałów
Fs=1000;
t=0:1/Fs:1;
xn=noise.signals.values;
xn=xn';
%xn=sin(2*pi*50*t)+2*sin(2*pi*120*t);
randn(size(t));
Pxx=abs(fft(xn, 1024)).^2/1001;
Pxx_short=abs(fft(xn,256)).^2/256;
subplot(2,1,1)
plot((0:255)/256*Fs,10*log10(Pxx_short),
'black'
)
grid,
title(
'Periodogram krotkiego sygnalu'
)
xlabel(
'Cz
ę
stotliwosc w Hz'
), ylabel(
'Widmo mocy (dB)'
);
subplot(2,1,2),
plot((0:1023)/1024*Fs,10*log10(Pxx),
'black'
)
grid,
text(250,45,
'Periodogram dlu
ż
szego sygnalu'
)
xlabel(
'Czestotliwosc w Hz'
), ylabel(
'Widmo mocy (dB)'
);
figure
subplot(1,1,1),
Pxx=(abs(fft(xn(1:256))).^2+
...
abs(fft(xn(257:512))).^2+
...
abs(fft(xn(513:768))).^2)/(256*3);
plot((0:255)/256*Fs,10*log10(Pxx),
'black'
)
grid,
xlabel(
'Czestotliwosc w Hz'
), ylabel(
'Widmo mocy (dB)'
)
title(
'Usredniony periodogram (fragmenty sygnalu nie nakladaja sie)'
)
Pxx=(abs(fft(xn(1:256))).^2+
...
abs(fft(xn(129:384))).^2+
...
abs(fft(xn(257:512))).^2+
...
abs(fft(xn(385:640))).^2+
...
abs(fft(xn(513:768))).^2+
...
abs(fft(xn(641:896))).^2)/(256*6);
figure
plot((0:255)/256*Fs,10*log10(Pxx),
'black'
),grid,
xlabel(
'Czestotliwosc w Hz'
), ylabel(
'Widmo mocy (dB)'
)
title(
'Usredniony periodogram (probki nakladaja sie)'
)
%Estymator funkcji przej
ś
cia
h=ones(1,10)/10;
yn=filter(h,1,xn);
[Hest,f]=tfe(xn,yn,256,Fs,256,128,
'none'
);
H=freqz(h,1,f,Fs);
%figure
subplot(2,1,1)
plot(f,abs(H),
'black'
)
title(
'Rzeczywista amplituda funkcji przejscia'
)
xlabel(
'Czestotliwosc w Hz'
)
subplot(2,1,2)
plot(f,abs(Hest),
'black'
)
text(110,1.08,
'Estymata amplitudy funkcji przejscia'
)
xlabel(
'Czestotliwosc w Hz'
)
w=hanning(256)';
Pxx=(abs(fft(w.*xn(1:256))).^2)+
...
abs(fft(w.*xn(129:384))).^2+
...
abs(fft(w.*xn(257:512))).^2+
...
abs(fft(w.*xn(385:640))).^2+
...
abs(fft(w.*xn(513:768))).^2+
...
abs(fft(w.*xn(641:896))).^2/(norm(w)^2*6);
figure
plot((0:255)/256*Fs,10*log10(Pxx),
'black'
)
grid,
xlabel(
'Czestotliwosc w Hz'
), ylabel(
'Widmo mocy (dB)'
)
title(
'Periodogram zmodyfikowany oknem Hanninga'
)
%Obliczanie funkcji widmowej g
ę
sto
ś
ci mocy
Pxx=psd(xn);
nfft=256;
Fs=1000;
window=hanning(256);
noverlap=128;
dflag=
'none'
;
Pxx=psd(xn,nfft,Fs,window,noverlap,dflag);
psd(xn,nfft,Fs,window,noverlap,dflag);
xlabel(
'Czestotliwosc Hz'
),
ylabel(
'Amplituda widmowa mocy (dB)'
)
title(
'Funkcja widmowej gestosci mocy'
)
[Pxx,f]=psd(xn, Fs, 256, noverlap, dflag);
figure
plot(f,10*log10(Pxx))
%Funkcja koherencji
clf,
cohere(xn,yn,256,Fs,256,128,
'none'
)
title(
'Funkcja koherencji'
)
%Obliczenie funkcji wzajemnej g
ę
sto
ś
ci widmowej
p=0.9;
[Pxx,Pxxc,f]=psd(xn,nfft,Fs,window,noverlap,p,dflag);
[Pxy,Pxyc,f]=csd(xn,yn,nfft,Fs,window,noverlap,p,dflag);
figure
plot(f,Pxy)
title(
'Funkcja wzajemnej gestosci widmowej'
)
Dla sygnału wymuszenia otrzymujemy:
Dla pierwszego przemieszczenia:
Dla drugiego przemieszczenia:
Dla pierwszej pr
ę
dko
ś
ci:
Dla pierwszego przyspieszenia:
Jak wida
ć
uzyskali
ś
my ró
ż
norodne wyniki co
ś
wiadczy o poprawnym wykonaniu
eksperymentu.
Teraz powtórzymy eksperyment dodaj
ą
c do symulacyjnych danych wyj
ś
ciowych szum
o amplitudzie 20% sygnału:
Dla pierwszego przyspieszenia z szumem:
Dla pierwszej pr
ę
dko
ś
ci z szumem: