L10 Identyfikacja nieparametryczna

background image

Akademia Górniczo-Hutnicza

Katedra Robotyki i Mechatroniki

Identyfikacja i analiza sygnałów

Laboratorium 10

Metody nieparametryczne w identyfikacji i analizie

sygnałów

background image

Przetwarzanie sygnałów z zastosowaniem procedur statystycznych

Signal Processing Toolbox zawiera zestaw ważniejszych funkcji do estymacji pewnych
charakterystyk sygnałów losowych. W szczególności są to narzędzia do estymacji funkcji
korelacji i kowariancji ciągu danych oraz funkcje gęstości widmowej mocy sygnałów
dyskretnych.

Korelacja i kowariancja

Funkcje

xcorr

i

xcov

estymują wzajemną korelację i kowariancję ciągów procesów

losowych. Autokorelacja i autokowariancja są traktowane jako specjalne przypadki korelacji i
kowariancji wzajemnej.
Korelacja wzajemna ciągów jest wielkością definiowaną jako:

{

}

)

m

n

(

y

)

n

(

x

E

)

m

(

xy

R

+

=

( 0 )

gdzie x(n) i y(n) są stacjonarnymi procesami losowymi, -

< n <

oraz E jest operatorem

wartości oczekiwanej. Kowariancja wzajemna jest równa korelacji z usuniętą średnią.

+

=

)

y

m

)

m

n

(

y

)(

x

m

)

n

(

x

(

E

)

m

(

xy

C

( 1 )

gdzie m

x

i m

y

są wartościami średnimi korelowanych ciągów.

Zwykła estymata bazująca na M próbkach x(n) i y(n) jest deterministyczną korelacją
wzajemną ciągów:

<

+

=

=

0

m

dla

)

m

(

0

m

dla

)

m

n

(

y

)

n

(

x

)

m

(

xy

1

m

M

0

n

xy

( 2 )

Zakłada się, że x(n) i y(n) są indeksowane od 0 do M - 1, a R

xy

(m), od -(M - 1) do M - 1.

Funkcja

xcorr

realizuje powyższy wzór, wykorzystując algorytmy bazujące na FFT dla

danych ciągów wejściowych x(n) i y(n), zawartych w wektorach x i y o długościach M.
Przykładowo:

x=[1 1 1 1 1]';
y=x;

xyc=xcorr(x,y)

xyc =

1.0000

2.0000

3.0000

4.0000

5.0000

4.0000

3.0000

2.0000

1.0000

Sekwencja wynikowa ma długość dwa razy większą od długości ciągu wejściowego minus
jeden. Tak więc M-ty element jest korelowany przy zerowej zwłoce. Również zauważamy
znane impulsy trójkątne na wyjściu, będące wynikiem splotu dwóch przebiegów
kwadratowych.

background image

Funkcja

xcov

estymuje kowariancję własną i wzajemną danych wejściowych. Posiada ona te

same opcje i przelicza te same równania, co funkcja korelacji, ale najpierw usuwa wartości
średnie z przebiegów x i y.

Obciążenie i normalizacja
Estymator jest obciążony, jeśli jego wartość oczekiwana nie jest równa wartości wielkości,
którą estymuje. Wartość oczekiwana dla przebiegu funkcji

xcorr

wynosi:

{

}

=

=

+

=

1

m

M

0

n

xy

xy

)

m

(

R

)

m

M

(

)

m

n

(

y

)

n

(

x

E

))

m

(

R

(

E

( 3 )

Funkcja

xcorr

wyznacza estymator nieobciążony, dzieląc sumę (3) przez M

−

m

, jeśli

zadamy parametr

‘unbiased’

po sekwencji elementów wejściowych:

xcorr(x,y,’unbiased’);

Mimo że estymator jest nieobciążony, punkty końcowe (bliskie

(M

1) i M

1 mają

stosunkowo dużą wariancję, ponieważ funkcja

xcorr

wylicza je na podstawie niewielu

punktów danych. Możliwym rozwiązaniem jest dzielenie estymaty przez M, używając w tym
celu parametru

‘biased’

:

xcorr(x,y,’biased’);

W tym schemacie jedynie próbka korelacji przy zerowym opóźnieniu (M-ty element wyjścia)
jest nieobciążona. Ta estymata jest często bardziej pożądana niż nieobciążona, ponieważ
unika ona losowej, dużej wariancji w końcowych punktach korelowanej sekwencji.
Funkcja

xcorr

umożliwia także zastosowanie innego schematu normalizacji:

xcorr(x,y,'coeff');

Polega on na podzieleniu estymaty wyjściowej przez

norm(x)norm(y)

w taki sposób, że

współczynnik korelacji przy zerowym opóźnieniu ma wartość jeden.

Sygnały wielokanałowe
Dla sygnału wielokanałowego funkcje

xcorr

i

xcov

estymują własną i wzajemną korelację i

kowariancję ciągu danych dla wszystkich kanałów jednocześnie. Mając daną macierz

S

o

wymiarach M na N, reprezentującą sygnał N kanałowy (jedna kolumna dla pojedynczego
kanału), funkcja

xcorr(S)

oblicza macierz korelacji własnej i wzajemnej dla sygnałów

zawartych w

S

. Otrzymana macierz wynikowa posiada wymiary (2M

1) na N

2

. Przykładowo,

jeśli

S

jest sygnałem trzykanałowym

S=[s1 s2 s3];

to rezultaty działania funkcji

R=xcorr(S)

są podawane następująco:

R=[Rs1s1 Rs1s2 Rs1s3 Rs2s1 Rs2s2 Rs2s3 Rs3s1 Rs3s2 Rs3s3].

W Matlabie dostępne są ponadto dwie funkcje

cov

i

corrcoef

. Stosując te funkcje, można

wyznaczyć estymaty kowariancji oraz znormalizowanej kowariancji pomiędzy różnymi
kanałami przy zerowym przesunięciu. Wyżej wymienione funkcje zestawiają wyniki swego
działania w macierzy kwadratowej.

Gęstość widmowa mocy

Celem analizy widmowej jest wyznaczenie częstotliwościowej zawartości sygnału, procesu
losowego lub układu, bazując na skończonych zbiorach danych. Estymacja widmowej
gęstości mocy jest użyteczna w różnych zastosowaniach, włączając detekcję sygnałów
zakłóconych szumem o szerokim paśmie.
Widmowa gęstość mocy (PSD) stacjonarnego procesu losowego x(n) jest związana z funkcją
korelacji sygnału dyskretnego poprzez dyskretną transformację Fouriera.

background image

− ∞

=

ω

=

ω

m

m

j

xx

xx

e

)

m

(

R

)

(

P

( 4 )

Funkcja gęstości widmowej mocy posiada taką własność, że jej całka w danym paśmie
częstotliwości jest równa mocy sygnału x(n) w tym paśmie. PSD jest specjalnym
przypadkiem funkcji wzajemnej gęstości widmowej (CSD), zdefiniowanej pomiędzy dwoma
sygnałami x(n) i y(n) w postaci wzoru:

− ∞

=

ω

=

ω

m

m

j

xy

xy

e

)

m

(

R

)

(

P

( 5 )

Tak jak w wypadku funkcji korelacji i kowariancji, polecenia Matlaba estymują PSD i CSD
dla sygnałów o skończonej długości.

Istnieje wiele różnych metod estymacji PSD. Można jednak zgrupować je w dwóch
kategoriach: estymacji parametrycznej i nieparametrycznej. Główną techniką stosowaną w
SPT jest nieparametryczny algorytm, opracowany przez Welcha. W przyborniku
wykorzystano tę metodę w funkcjach

psd

,

csd

,

tfe

, oraz

cohere

. Wśród metod

parametrycznych stosowana jest funkcja

pmem

, dokonująca estymacji widma metodą

„maksymalnej entropii”. Bardziej szczegółowe omówienie funkcji do estymacji PSD,
wykorzystujących algorytmy parametryczne, znajduje się plikach pomocy Matlaba.

Metoda Welcha
Jedną z metod estymacji gęstości widmowej mocy jest wyznaczenie dyskretnej transformaty
Fouriera próbek konkretnej realizacji danego procesu, a następnie obliczenie kwadratu z
wartości bezwzględnej wyniku. Przykładowo, wyznaczono PSD dla 1001-elementowego
sygnału

xn

, składającego się z dwóch sinusoid i szumu.

Fs=1000;
t=0:1/Fs:1;

xn=sin(2*pi*50*t)+2*sin(2*pi*120*t)+...
randn(size(t));

Zgrubny estymator PSD wyznacza się z

xn

stosując instrukcje:

Pxx=abs(fft(xn, 1024)).^2/1001;

Powyższy estymator jest nazywany periodogramem. Skalowanie kwadratu wartości
bezwzględnej z FFT przez kwadrat normy okna danych zastosowanego do sygnału (w tym
wypadku okna prostokątnego o długości 1001), gwarantuje to, że estymator ten jest
asymptotycznie nieobciążony. To znaczy, że jeśli liczba próbek wzrasta, wartość oczekiwana
periodogramu przybliża się do prawdziwej wartości PSD. Problemem przy estymacji PSD
metodą periodogramu jest fakt, że jego wariancja jest duża i nie maleje przy wzrastającej
liczbie próbek. Następne dwa przykłady pokazują, że pomimo wzrostu długości
analizowanego wektora, periodogram nie wygładza się.

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 krótkiego sygnału')

xlabel('Częstotliwość w Hz'), ylabel('Widmo mocy (dB)');
subplot(2,1,2),

plot((0:1023)/1024*Fs,10*log10(Pxx),'black')
grid,

text(250,45,'Periodogram dłuższego sygnału')
xlabel('Częstotliwość w Hz'), ylabel('Widmo mocy (dB)');

background image

0

200

400

600

800

1000

-40

-20

0

20

40

Periodogram krótkiego sygnału

Częstotliwość w Hz

W

id

m

o

m

oc

y

(d

B

)

0

200

400

600

800

1000

-40

-20

0

20

40

Periodogram dłuższego sygnału

Częstotliwość w Hz

W

id

m

o

m

oc

y

(d

B

)

Rys. 1 Periodogramy dla sekwencji o różnych długościach

Redukcja wariancji estymatora PSD następuje przez podzielenie sygnału na nie nakładające
się fragmenty oraz uśrednianie ich widm w dziedzinie częstotliwości.

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('Częstotliwość w Hz'), ylabel('Widmo mocy (dB)')
title('Uśredniony periodogram (fragmenty sygnału nie nakładają

się)')

0

200

400

600

800

1000

-10

-5

0

5

10

15

20

25

Częstotliwość w Hz

W

id

m

o

m

oc

y

(d

B

)

Uśredniony periodogram (fragmenty sygnału nie nakładają się)

Rys. 2 Periodogram uśredniony w nie nakładających się przedziałach

Taki uśredniony estymator posiada jedną trzecią wariancji periodogramu o długości 256,
otrzymanego wcześniej. Uśredniając więcej próbek, można otrzymać w rezultacie niższą
wariancję. Długość sygnału ogranicza jednakże liczbę możliwych do utworzenia odcinków

background image

(do 3 sekcji o długości 256 w poprzednim przykładzie). By uzyskać większą ilość sekcji,
dzielimy sygnał na fragmenty nakładające się.

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);

plot((0:255)/256*Fs,10*log10(Pxx),'black'),grid,
xlabel('Częstotliwość w Hz'), ylabel('Widmo mocy (dB)')

title('Uśredniony periodogram (próbki nakładają się)')

W tym wypadku odcinki są statystycznie zależne, co z kolei powoduje wzrost wariancji.
Należy więc znaleźć kompromis pomiędzy liczbą fragmentów sygnału i stopniem ich
nakładania.

0

200

400

600

800

1000

-10

-5

0

5

10

15

20

25

Częstotliwość w Hz

W

id

m

o

m

oc

y

(d

B

)

Uśredniony periodogram (próbki nakładają
się)

Rys. 3 Periodogram uśredniony w nakładających się przedziałach

Inną drogą do poprawienia własności statystycznych estymatora periodogramu jest
zastosowanie nieprostokątnego okna czasowego do wygładzenia końców analizowanych
danych. W rezultacie otrzymujemy zmodyfikowany periodogram. Operacja ta redukuje efekt
zależności nakładających się sekcji, ponieważ okno zmniejsza amplitudę do zera przy ich
brzegach. Nieprostokątne okno czasowe zmniejsza poziom bocznych interferencji (lub
„przecieku widma”), równocześnie jednak powodując wzrost szerokości prążków
widmowych. Z odpowiednim oknem czasowym (Hamminga, Hanninga lub Kaisera) oraz 50
procentowym nakładaniem się analizowanych odcinków sygnału uzyskuje się estymator o
znacznie zmniejszonej wariancji.
Rezultat zastosowania okna Hanninga do analizowanego sygnału przedstawiono na rys. 4. W
tym celu zrealizowano następujące funkcje:

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);

plot((0:255)/256*Fs,10*log10(Pxx),'black')

background image

grid,
xlabel('Częstotliwość w Hz'), ylabel('Widmo mocy (dB)')

title(‘Periodogram zmodyfikowany oknem Hanninga')

0

200

400

600

800

1000

-10

-5

0

5

10

15

20

25

Częstotliwość w Hz

W

id

m

o

m

oc

y

(d

B

)

Periodogram zmodyfikowany oknem Hanninga

Rys. 4 Periodogram zmodyfikowany oknem Hanninga

Na rysunku 4 można zauważyć, że prążki widma rozszerzyły się, a poziom szumów wydaje
się być mniejszy w porównaniu z poprzednimi wykresami.

Przedstawione tutaj metody: uśredniania oraz zmodyfikowanego periodogramu należą do
metod opartych na algorytmie Welcha. Zawarte w przyborniku SPT funkcje

psd

i

csd

umożliwiają dobór odpowiednich parametrów analizy (długość FFT, rodzaj okna, szerokość
nakładania się próbek) w trakcie obliczeń PSD i CSD dla jednego lub dwóch sygnałów przy
pomocy metody Welcha.

Obliczanie funkcji widmowej gęstości mocy za pomocą procedur SPT
Funkcja

psd

uśrednia i skaluje zmodyfikowany periodogram z realizacji sygnału

pozbawionych trendu. Jako argumenty funkcji należy wyszczególnić parametry, które sterują
wykonaniem algorytmu.
Funkcja

psd

, obliczając estymator PSD dla sekwencji

xn

używa domyślnie okna czasowego

Hanninga oraz FFT o długość 256 próbek. Zadany ciąg jest dzielony na nienakładające się
sekcje oraz jest usuwany trend.

Pxx=psd(xn);

Jeśli oryginalna sekwencja wyrażona jest w woltach V, Pxx posiada jednostkę V

2

.

Poniżej został powtórzony ostatni z podanych przykładów. Do jego realizacji przyjęto 128
jako liczbę nakładających się próbek oraz nie usunięto trendu z sygnału.

nfft=256;

Fs=1000;
window=hanning(256);

noverlap=128;
dflag='none';

Pxx=psd(xn,nfft,Fs,window,noverlap,dflag);

Częstotliwość próbkowania zadawana jako jeden z parametrów, nie odgrywa większej roli w
obliczeniach, pomaga jednak w skalowaniu osi częstotliwości wykresu. Funkcja

psd

bez

żadnych parametrów wyjściowych generuje wykres przedstawiony na rys 5.

psd(xn,nfft,Fs,window,noverlap,dflag);

xlabel('Częstotliwość Hz'),
ylabel('Amplituda widmowa mocy (dB)')

background image

0

100

200

300

400

500

-10

-5

0

5

10

15

20

25

Częstotliwość Hz

A

m

pl

itu

da

w

id

m

o

w

a

m

oc

y

(d

B

)

Rys. 5 Periodogram uzyskany w wyniku działania funkcji

psd

Dostęp do wektora, dla którego obliczana jest PSD, uzyskujemy dodając drugi parametr
wyjściowy. Wektor ten jest użyteczny podczas nieautomatycznego wykonywania wykresu
PSD.

[Pxx,f]=psd(xn, Fs, 256, noverlap, dflag);

plot(f,10*log10(Pxx))

Dla rzeczywistego sygnału

xn

,

psd

oblicza widmowe gęstości mocy jedynie dla

częstotliwości od 0 do częstotliwości Nyquista. We wcześniejszych przykładach, w których
estymator PSD był generowany przy pomocy FFT, zakres częstotliwości zawierał się w
granicach od 0 do częstotliwości próbkowania.

Obciążenie i normalizacja
Analizując przedstawione powyżej wyniki obliczeń funkcji

psd

, można zauważyć kilka

charakterystycznych cech analizowanego sygnału

xn

. Poziom szumów jest mały, oscyluje

wokół zera decybeli (dB) i z założenia jest to biały szum o wariancji 1. Ponadto moc sygnału

xn

jest skoncentrowana w dwóch prążkach o częstotliwościach 50 i 120 Hz. Prążek o

częstotliwości 50 Hz jest 6 dB poniżej prążka o częstotliwości 120 Hz. Na tej podstawie
można stwierdzić, że sinusoida o wyższej częstotliwości posiada dwukrotnie większą
amplitudę (10

6/20

=2.0). Niestety na podstawie rzeczywistej wysokości prążków nie można

wiele powiedzieć o oryginalnej amplitudzie sinusoid bez dokonania dodatkowych analiz.
W celu uzyskania użytecznych informacji o amplitudzie prążków badanych sinusoid, trzeba
zauważyć, że wartość oczekiwana estymatora PSD jest określana wzorem:

{

}

π

π

θ

θ

ω

θ

π

=

ω

d

)

(

W

)

(

P

w

2

1

)

(

P

E

2

xx

2

xx

( 6 )

Wielkość ta, jest splotem wartości PSD z podniesioną do kwadratu wartością bezwzględną
dyskretnej transformaty Fouriera zastosowanego okna W(

ω

), podzielony przez kwadrat jego

normy. Wielkość skalująca (norma okna) jest sumą kwadratów współczynników funkcji okna:

=

2

2

)

n

(

w

w

( 7 )

Równanie (6) wskazuje na fakt, że jeśli P

xx

(

ω

) posiada prążek o wysokości 1 przy określonej

częstotliwości

ω

0

, to estymator będzie w przybliżeniu przyjmował wartość

2

2

w

/

)

0

(

W

dla

tej częstotliwości. Tak więc, by uzyskać estymator amplitudy oryginalnych prążków, należy
pomnożyć wynik działania funkcji psd przez norm

2

(w)/sum

2

(w), gdzie w jest wektorem okna.

background image

Wynika to z twierdzenia Parsevala iż sum

2

(w)=sum

2

(W). Skalowanie jest niezależne od

długości i kształtu okna. Przykładowo:

w1=hanning(256); w2=hanning(500);
[Pxx1,f1]=psd(xn,256,Fs,w1,128,'none');

[Pxx2,f2]=psd(xn,1024,Fs,w2,250,'none');
subplot(2,1,1), plot(f1,10*log10(Pxx1*norm(w1)^2/sum(w1)^2),...

'black'),grid,
subplot(2,1,2), plot(f2,10*log10(Pxx2*norm(w2)^2/sum(w2)^2),...

'black'),grid

Na obydwu wykresach (rys. 6), które pokazują widma jedynie dla dodatnich częstotliwości
(częstotliwości ujemne są takie same), prążek dla wyższej częstotliwości posiada wartość 0
dB, a dla niższej -6 dB. Amplituda sinusoidy o częstotliwości 120 Hz, 0 dB, odpowiada
kwadratowi amplitudy równemu 1. Wynika to z faktu, iż sinusoida o amplitudzie równej 2
posiada widmo z dwoma eksponencjalnymi składnikami o amplitudzie 1, dla dodatnich i
ujemnych częstotliwości. Podobnie, sinusoida o częstotliwości 50 Hz posiada dwa składniki
częstotliwości, dodatni i ujemny, równe kwadratom amplitudy (1/2)

2

lub 10log10(0.25)= -6

dB.
Należy również zauważyć, że drugi wykres posiada nieznacznie niższy poziom szumu,
będący wynikiem większej długości okna.

0

1 0 0

2 0 0

3 0 0

4 0 0

5 0 0

- 4 0

- 3 0

- 2 0

- 1 0

0

0

1 0 0

2 0 0

3 0 0

4 0 0

5 0 0

- 4 0

- 3 0

- 2 0

- 1 0

0

Rys. 6 Przeskalowane periodogramy

Związek Parsevala
Całka z PSD, obliczona dla całego pasma częstotliwości, jest miarą całkowitej energii
sygnału. Za pomocą obliczenia funkcji

psd

można w przybliżeniu sprawdzić tę zależność

(zgodność obliczeń energii w dziedzinie czasu i częstotliwości) dla danego sygnału:

[Pxx,f]=psd(xn,256,Fs,256,128,'none');
format long

sum(xn.^2)/length(xn)

ans =

3.60376766505040

sum(Pxx)/length(Pxx)

ans =

3.68430077838700

Obliczenie procentowej zawartości energii w sygnale w danym paśmie częstotliwości,
wymaga zsumowania estymatora PSD jedynie dla wybranych prążków widma. Tak więc

background image

procentową energię sygnału

xn

w paśmie od 40 do 60 Hz wyznacza się stosując sekwencje

instrukcji Matlaba:

ind=find(f>40&f<60)

ind =

12

13

14

15

16

sum(Pxx(ind))/sum(Pxx)

ans =

0.13369450463404

Obliczenie funkcji wzajemnej gęstości widmowej
Estymując, przy pomocy metody Welcha, wzajemną gęstość widmową dwóch sygnałów o
równej długości

x

i

y

, funkcja

csd

oblicza periodogram jako iloczyn FFT z

x

oraz wartości

sprzężonej do wyniku FFT z

y

. Przetwarzanie sygnałów przy pomocy funkcji

csd

(a więc:

dzielenie na próbki, usuwanie trendu, stosowanie okien) odbywa się w ten sam sposób, jak dla
funkcji

psd

.

Pxy=csd(x,y,nfft,window,nowerlap,dflag);

Przedziały ufności
Za pomocą funkcji

psd

i

csd

można obliczać przedziały ufności dla estymatorów gęstości

widmowych. Można wprowadzić jako argument wejściowy parametr

p

, który podaje

przedział ufności (w procentach).

[Pxx,Pxxc,f]=psd(x,nfft,Fs,window,noverlap,...

p,dflag);
[Pxy,Pxyc,f]=csd(x,y,nfft,Fs,window,noverlap,...

p,dflag);

Parametr

p

musi być wielkością skalarną zawartą w granicach od 0 do 1.

Funkcje zakładają normalny rozkład periodogramu z nienakładającymi się próbkami. Jeśli te
założenia są spełnione, wtedy

p

100% jest prawdopodobieństwem, że w przedziale

[Pxx-

Pxxc(:,1), Pxx+Pxxc(:,2)]

zawiera się rzeczywista wartość PSD. Jeśli próbki

nakładają się, przedział ufności nie jest wyznaczony poprawnie, a funkcja wyświetla
ostrzeżenie.

Innym rozwiązaniem jest przyjęcie założenia, że periodogramy posiadają rozkład chi
kwadrat. Jeśli dostępny jest przybornik Statistics Toolbox, można obliczyć poziom ufności

p

100% dla tak przyjętego rozkładu, stosując następujące funkcje:

k=fix((length(x)-noverlap)/(length(window)-noverlap));

alfa=1-p;
confid=2*k*Pxx*(1./chi2inv([1-alfa/2 alfa/2],2*k));

gdzie

k

jest liczbą sekcji użytych do obliczenia estymatora PSD, zaś

confid

jest

dwukolumnową macierzą, składającą się z górnych i dolnych zakresów ufności. Wówczas
mamy

p

100%-owe prawdopodobieństwo, że poziom ufności

[Pxx - confid(:,1)

Pxx+confid(:,2)]

zawiera rzeczywistą PSD. Ten poziom ufności jest wiarygodny

jedynie, gdy sekcje nie pokrywają się.

background image

Estymator funkcji przejścia

Jednym z zastosowań metody Welcha jest identyfikacja modeli funkcjonalnych. Jednym z
tego rodzaju modeli jest funkcja przejścia układu. Zakłada się, że badany obiekt H jest
układem liniowym o stałych współczynnikach, oraz x(n) i y(n) są odpowiednio jego wejściem
i wyjściem. Wtedy prawdziwa jest zależność:

)

(

P

)

(

H

)

(

P

xx

xy

ω

ω

=

ω

( 8 )

gdzie H jest widmową funkcją przejścia.
Znając sygnały x(n) i y(n) można zdefiniować estymator funkcji przejścia układu jako:

)

(

)

(

)

(

xx

xy

ω

ω

=

ω

( 9 )

Metoda ta pozwala na estymację zarówno amplitudy jak i fazy sygnału. Funkcja

fte

wykorzystuje metodę Welcha do obliczenia CSD i PSD, a następnie formuje ich iloraz w celu
estymowania funkcji przejścia. Funkcja

tfe

posiada taką samą składnię jak funkcja

csd

.

W poniższym programie przefiltrowano sygnał

xn

przy pomocy filtru FIR, a następnie

wyznaczono charakterystykę amplitudowo-częstotliwościową oraz estymowaną funkcję
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);
subplot(2,1,1), plot(f,abs(H),'black')

title('Rzeczywista amplituda funkcji przejścia')
xlabel('Częstotliwość w Hz')

subplot(2,1,2), plot(f,abs(Hest),'black')
text(110,1.08,'Estymata amplitudy funkcji przejścia')

xlabel('Częstotliwość w Hz')

Funkcja koherencji

Funkcja koherencji określa związek pomiędzy dwoma sygnałami w dziedzinie częstotliwości.
Kwadrat modułu koherencji pomiędzy sygnałami x(n) i y(n) wyznacza się ze wzoru:

)

(

P

)

(

P

)

(

P

)

(

C

yy

xx

2

xy

xy

ω

ω

ω

=

ω

( 10 )

Iloraz ten jest liczbą rzeczywistą z przedziały [0,1] i jest miarą korelacji pomiędzy sygnałami
x(n) i y(n) dla danej częstotliwości

ω

.

Funkcja

cohere

dla zadanych ciągów próbek

x

i

y

oblicza PSD i CSD, a następnie iloraz

kwadratu wartości bezwzględnej CSD przez iloczyn PSD dla

x

i

y

. Jej parametry i sposób

działania jest podobny do funkcji

csd

i

tfe

.

Funkcję koherencji pomiędzy ciągiem wejściowym

xn

i wyjściowym

yn

filtru rozważanego

w poprzednim rozdziale wyznaczono za pomocą sekwencji instrukcji:

background image

0

100

200

300

400

500

0

0.5

1

Rzeczywista amplituda funkcji przejścia

Częstotliwość w Hz

0

100

200

300

400

500

0

0.5

1

Estymata amplitudy funkcji przejścia

Częstotliwość w Hz

Rys. 7 Charakterystyki amplitudowo-częstotliwościowe zadanej i estymowanej funkcji przejścia filtru

clf,

cohere(xn,yn,256,Fs,256,128,'none')
title('Funkcja koherencji')

0

100

200

300

400

500

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Częstotliwość

E

st

ym

a

to

r

fu

nk

cj

i k

oh

er

en

cj

i

Funkcja koherencji

Rys. 8 Przebieg funkcji koherencji

Dla sygnałów z poprzedniego przykładu koherencja obliczona za pomocą funkcji

cohere

wynosi 1.

Uwaga

W obecnych wersjach toolboxu Signal Processing przepisano funkcje obliczających
estymatory działające w dziedzinie częstotliwości. W chwili obecnej zmiennie mogą być
stosowane funkcje:

background image

do obliczania gęstości widmowej mocy:

[Pxx,f] = psd(xn,nfft,Fs,window,noverlap,dflag);

[Pxx,f] = pwelch(xn,window,noverlap,nfft,Fs);

do obliczania wzajemnej gęstości widmowej

[Pxx,f] = csd(xn,yn,nfft,Fs,window,noverlap,dflag)

[Pxx,f] = cpsd(xn,yn,window,noverlap,nfft,Fs);

do obliczania widmowej funkcji przejścia:

[Pxx,f] = tfe(xn,yn,nfft,Fs,window,noverlap,dflag)

[Pxx,f] = tfestimate(xn,yn,window,noverlap,nfft,Fs);

do obliczania funkcji koherencji:

[Pxx,f] = cohere(xn,yn,nfft,Fs,window,noverlap,dflag)

[Pxx,f] = mscohere(xn,yn,window,noverlap,nfft,Fs);

Zadania do wykonania

1. Wykonać symulację układu testowanego o dwóch stopniach swobody dla parametrów

ustalonych w trakcie zajęć z modelowania. Zarejestruj sygnały testowe w postaci
przebiegów wymuszających oraz sygnałów odpowiedzi dla poszczególnych stopni
swobody. Sygnały odpowiedzi powinny być w postaci wektorów przemieszczeń,
prędkości i przyspieszeń o odpowiedniej długości.

Dane: M

1

= 10, M

2

= 7, C

1

= 0.7, C

2

= 0.9, C

3

= 0.7, K

1

= 120, K

2

= 200, K

3

= 170

2. Dla zapisanych danych dokonaj wyznaczenia estymatorów gęstości widmowych

mocy, widmowych funkcji przejścia oraz funkcji koherencji. Aby estymatory miały
znaczenie statystyczne konieczna jest praca z przebiegami o odpowiedniej długości.
Wykonaj niezależnego wyznaczenia stosownych estymatorów bazując na sygnale
wymuszającym oraz:

sygnałach przyspieszeń

sygnałach prędkości

sygnałach przemieszczeń.

3. Porównaj wykonując stosowne wykresy wyniki estymacji uzyskane w punkcie 2.

Skomentuj wyniki eksperymentu.

4. Powtórz zadania 2 i 3 dodając do symulacyjnych danych wyjściowych szum o

amplitudach na poziomie 10% i 20% sygnału.


Document Outline


Wyszukiwarka

Podobne podstrony:
A2 Podej cie parametryczne i nieparametryczne w identyfikacji systemów
identyfikacja analiza i ocena zagrozen
6 Identyfikacja antropologiczna
testy nieparametryczne
jak zdekodowac informacje zawarte w numerze identyfikacyjnym nadwozia lub ramy pojazdu
Identyfikacja majka
Identyfikacja modelu matematycznego elementu
1 Identyfikacja obiektow sterow Nieznany (2)
ZIARENKOWCE I GRONKOWCE IDENTYFIKACJA
Identyfikacja Chrystusa we wszystkich wiekach 640409
antropologia identyfikacja płci
identyfikacja - krew, Kryminalistyka
Identyfikacja składników kosmetyków., Referaty, Chemia kosmetyczna
Kultura w organizacji. Identyfikacja kultur znanych firm, Uniwersytet Wrocławski, komunikacja w orga
Zniknęła próbka ciała prezydenta Błędy Rosjan przy identyfikacji Nasz Dziennik
Recykling metody identyfikacji materialow polimerowych w odpadach

więcej podobnych podstron