Rys. 7 i
W niniejszym rozdziale przedstawiono implementację algorytmów cyfrowej filtracji ortogonalnej, omówionych w rozdziałach 2 - 6. w Środowisku systemu Matlab. Przedstawiono też przykładowe wyniki symulacji
W podrozdziale 7.1 zamieszczono przykłady wraz z. wynikami symulacji. zaS w podrozdziale 7.2 - funkcje wykorzystywane w tych przykładach, stanowiące implementację algorytmów filtracji ortogonalnej
Niniejszy podrozdział obejmuje dziesięć przykładów ilustrujących działanie algorytmów cyfrowej filtracji ortogonalnej, wraz z przykładowymi wynikami symulacji komputerowych. Przykłady tc zostały przygotowane w postaci m-pli ków, wykorzystujących funkcje stanowiące implementacje algorytmów filtracji ortogonalnej, zamieszczone (w porządku alfabetycznym) w podrozdziale 7.2 Te m-pliki są również dostępne na stronie internetowej: http://wwwiia.pwr.wroL pl/ztsita.
PRZY KŁAD 7.1 Unormowany algoryt m Levinsona
W przykładzie, zaimplementowanym w postaci m-pliku Pl.m, kowariancja (estymowana przy użyciu funkcji korel.m) scentrowanego (z wykorzysta niem funkcji cntr.m) i standaryzowanego (za pomocą funkcji stnd.m) wąskopasmowego (generowanego przy użyciu funkcji gen .m) sygnału przypadkowego służy jako dane wejściowe unormowanego algorytmu Levmsona < funk cja lev.m. stanowiąca implementację zależności (2.155). (2.160), (2.161» Funkcja la zwraca: zbiór współczynników Sclmra rho sygnału, górnotrójkątną
--glMULACJe «<-OORVTMÓW CYCOWEJ FILTRACJI QBTnnn„„ ... ,
mneierz. odpnwjcd,1 impulsowych lihru Levinsona A oraz Zbiór wartdfci norm lędu Srednlokwadratowego. Następnie wyliczana jest charakterystyka ampl, udowa filtru Uv,„Sona<z użyciem funkcji ampl .m). widmowa gcsm« (Wgm, sygnału .sygnału innowacyjnego (funkcja wgmx.m), oraz estymaTor
idmowej gęstości mocy (na podstawie zależności (2.184)). Postać źródłowa w-pliku PI. m jest następująca: ,owa
> PI m Unormowany algorytm Levinsona clnar:
' dlugosc sygnału ' dlu90sc funkcji autokowarLancji rz3d filtru Levinaona x - gen(T.O.1,0.15,0.20,0.25); xcentr = entr (x)
X3tand = stnd(xcentr);
(cs, ccs, nccsj =korel (xstand, K) ;
(rho,A,ej = lev(cs,N); for i**1:N a (ił »A(i,N) ; end for i»N+l:T a(i)-0; end [Ha,waJ » ampl(a);
H2»Ha.*Ha;
[Wx.wxJ = wgmx(X9tand);
Wn-(Wx/max(Wxłł.•<H2/max(H2));
for i«l:length(H2) H_2 (ił= l/H2(i); end
Wyniki symulacji w przykładzie 7.1 a) kowariancja sygnału parametryzowanego. b) odpowiedź impulsowa filtru Levinsona. c) współczynniki Schunt sygnału parametryzowanego; d) norma błędu ^redniokwadratowego: e) wgm sygnału parametryzowanego. 0 charakterystyka amplitudowa filtru Levinsona; g) wgm sygnału innowacyjnego; h) estymator Levinsona wgm sygnału
parametryzowanego
172
173
Implementacja algorytmów cyfrowej filtracji ortogonalnej
Symulacje algorytmów cyfrowej filtracji ortogonalnej
y=conv(xstand,A(:,N));
(Wy,wy) = wgmx(y);
subplot (2,4.1) ; plot (nccs.cca) ; titleCa)'}; qrid subplot(2.4,2); stem(A<:.Nłł; titleCb)'); grid subplot (2, <1,3) ; stem (rho (2 :N)) ; title('c)'ł; er id subplot (2 . <1. 4) : plot(e); title('d}'); grid: subplot (2.4,5) ; plot (wx/pi . Wx/max (Wx) ) : titleCe)*) subplot (2,4,6) ,- plot (wa/pi. Ha/max (Ha) ) ; titl«? <' f) ‘ I subplot (2,4,7) ; plot (wy/pi , Wy/max {'Wy) ) ; title{'g)'ł subplot<2,4,8): plot (wa/pi , H_2/max (H_2) ) ; title('h)
grid;
grid;
grid;
) ; grid:
Wyniki symulacji przedstawia rys 7 I
PRZYKŁAD 7.2 Faktoryzacja Choleskiego macierzy kowariancji W przykładzie, zaimplementowanym w postaci m-pliku P2.m, pokazano, że algorytm Lcvinsona implikuje faktoryzację Choleskiego zarówno macierzy ko-wariancyjnej (Toeplitza), jak też macierzy względom niej odwrotnej. Na wstępie wyliczana jest (z użyciem funkcji lev. m) górnotrójkątną macierz A (2.165) kolejnych rozwiązań układu równań normalnych (2.28 ). Na jej podstawie funk cja cholesky.m zwraca faktory Choleskiego: macierzy kowariancji P oraz macierzy odwrotnej Pinv (patrz zależności (2.169), (2.170)). W dalszej części przykładu jest dokonane porównanie macierzy kowariancyjnej Toeplitza C, generowanej za pomocą funkcji MATLABa toeplitz.m i jej postaci sfak-loryzowanej Cfact (wzór (2.169)) oraz wyliczany jest błąd średniokwadra-towy errfact różnic elementów tych macierzy. To postępowanie jest powtórzone dla macierzy odwrotnej Cinv (wyznaczonej z użyciem funkcji MAT LABa inv. m) oraz jej postaci sfaktoryzowanejCinvf act (2.170), wraz z wyliczeniem błędu średniokwadratowego errinv Postać źródłowa ni pliku P2 .m jest następująca.
ii P2.m Faktoryzacja Choleskiego macierzy kowariancji
elear;
T«200; % dlugosc sygnału
K"7; % dluqosc funkcji autokowariancji
N"7; % rząd filtru Levinsona
tx) ■ gentT,0.1,0.15,0.20,0.25) ;
pauso;
(xc) * entr(x);
(xsl * stnd(xcł;
(cs,ccs,nccs)=korel(xs.K),-(rho,A.e) lev(c8,N);
(P.Pinv,Cfact.Cinvfact) - cholesky(A); if n<longth(cs)
for .1*1 :n cę(i) •ca (i) ; end Ol 30
cc*caj
end
C-toeplitz(cc',cc) ;
Cinv*inv(C); errfact=0; errinv=0; for i=l:n for j**l:n
errfact=errfact+abs(C(i,j) -Cfact(i.j))*abs(C(i,jł-Cfact(i.jłł; errinv=errinv+abs (Cinv(i. jł -Cinvfact(i,j)) *abs(Cinv(i, j) -Cinvfact (i. j)) end
end
P ^ faktor Choleskiego
% macierz kowariancyjna sygnału Cfact faktoryzacja Choleskiego macierzy C
errfact % blad sredniokwadratowy faktoryzacji
Cinv % macierz odwrotna względem C
Cinvfact % faktoryzacja macierzy odwrotnej
errinv blad sredniokwadratowy faktoryzacji
Przykładowe wyniki symulacji są następujące:
10.0230 |
0 |
0 |
0 |
0 |
0 |
0 |
•17.7894 |
9.6394 |
0 |
0 |
0 |
0 |
0 |
8.8008 |
•17.2598 |
9.6236 |
0 |
0 |
0 |
0 |
3.7683 |
9.2671 |
-17.1201 |
9.4247 |
0 |
0 |
0 |
-0.4076 |
2.8447 |
9.1193 |
-17.0027 |
9.3519 |
0 |
0 |
•4.3438 |
-2.9312 |
2.3181 |
11.1954 |
15.7355 |
1.8992 |
0 |
2.7463 |
0.5516 |
-1.9467 |
-1.1691 |
9.1570 |
-1.6147 |
1.0000 |
c » | ||||||
1.0000 |
0.8502 |
0.4513 |
•0.0716 |
-0.5576 |
0.8615 |
0.8996 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
-0.0716 |
•0.5576 |
• 0.86 tS |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
-0.0716 |
-0.5576 |
-0.0716 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
•0.0716 |
0.5576 |
•0.0716 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
-0.8615 |
-0.5576 |
-0.0716 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
-0.8996 |
•0.8615 |
-0.5576 |
•0.0716 |
0.4513 |
0.8502 |
1.0000 |
Cfact « | ||||||
1.0000 |
0.8502 |
0.4513 |
-0.0716 |
•0.5576 |
-0.8615 |
0.8996 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
-0.0716 |
-0.5576 |
•0.8615 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
-0.0716 |
- 0.5576 |
0.0716 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
• 0.0716 |
•0.5576 |
-0.0716 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
0.4513 |
0.8615 |
-0.5576 |
0.0716 |
0.4513 |
0.8502 |
1.0000 |
0.8502 |
•0.8996 errfact ■ l. |
-0.8615 9800e 29 |
-0.5576 |
•0.0716 |
0.4513 |
0.8502 |
1.0000 |
100.4601
-178.3031
178.3031
409.3819
88.2101 322.9348
37.7698
22.2932
4.0855
34.6721
4J.5375 49.0182
27.5260
43.5375
174
175