Užtriukšmintų signalų
modeliai yra labai populiarūs signalų apdorojimo literatūroje (žr., pvz., [1] -
[6] ). Vienas iš paprasčiausių modelių yra užtriukšmintų sinusoidžių suma.
Paprastai daroma prielaida, kad triukšmas yra baltas Gauso (normalinis) su
nuliniu vidurkiu ir baigtine dispersija. Pagrindiniai parametrai, kuriuos
reikia įvertinti yra dažniai. Sudėtingesnis modelis yra gaunamas, įvedus
gesimą. Šiuo atveju pagrindiniai parametrai, kuriuos reikia įvertinti yra
dažniai ir gesimo koeficientai. Šie parametrai įeina į modelį netiesiniu būdu.
Šiame darbe yra
nagrinėjama modelių klasė, sudaryta iš gęstančių eksponenčių ir negęstančių /
gęstančių sinusoidžių sumos. Daroma prielaida, kad ši suma yra užtriukšminta
balto Gauso triukšmo seka.
Darbo tikslas yra ištirti Prony klasės metodų panaudojimo galimybę
įvertinti nagrinėjamų modelių parametrus, bei išanalizuoti gautų įverčių
tikslumą skaitinio modeliavimo pagalba. Darbo uždaviniai yra tokie:
1.
Išnagrinėti
klasikinį Prony metodą.
2.
Išvesti formules,
skirtas negęstančių ir gęstančių sinusoidžių parametrų įvertinimui klasikiniu
Prony metodu.
3.
Išnagrinėti Prony
metodą su priešfiltriu.
4.
Sukurti programinę
įrangą MATLAB'o terpėje, skirtą nagrinėjamų modelių parametrų įvertinimui Prony
klasės metodais.
5.
Naudojant sukurtą
programinę įrangą atlikti skaitinius eksperimentus.
Prony metodas (Prony
1795; Hilderbrand 1956; Kay ir Marple 1981) yra metodas, kuris modeliuoja
duomenis (vienodai nutolusias signalo atskaitas) tiesine eksponenčių
kombinacija. Šis metodas aproksimuoja N duomenų taškų
kreive, sudaryta iš p eksponenčių. Kadangi kiekvienas eksponentinis narys akeSk" turi du parametrus (amplitudę ak ir rodiklį sk ), Prony metodui reikia ne mažiau kaip 2p duomenų, t.y. N > 2p. Pradinis Prony metodas bando tiksliai pritaikyti kreivę, sudarytą iš p eksponentinių
narių, prie N = 2 p elementų aibės. Kai N > 2 p, naudojamas mažiausių kvadratų metodas.
Tarkime, kad turime tam tikros funkcijos v(t) matavimo vienodai nutolusiuose taškuose rezultatus:
vn =
v(nAt), n = 0,1,...,N -1. (2.1.1)
Mes norime
aproksimuoti duomenis { vn } sekančiu eksponentiniu modeliu:
ŽakeSkn , (2.1.2)
k=1
čia ak, sk g C, ir
(2.1.3)
|
ak = Ak exp(M ^ sk ={^k + jwk )At.
Įprastas parametrų { Ak ,ęk ,Xk, wk } ir p įverčių radimo būdas yra minimizuoti paklaidą:
N-1 2
ŽK -x„\ . (2.1.4)
n=0
Tačiau, tai yra
sudėtingas netiesinis mažiausių kvadratų uždavinys. Literatūroje, galima rasti
iteratyvių metodų, sprendžiančių (2.1.4). Šiuose metoduose, pradinis nežinomų
parametrų įvertis yra nuosekliai gerinamas. Prony metodas yra dažnai naudojamas
modelio (2.1.2) parametrų įvertinimui. Nors šis metodas duoda suboptimalų
sprendinį, kuris neminimizuoja (2.1.4), tačiau jo rezultatai yra gana
patenkinami daugeliu atvejų. Pažymime
Zk = eSk (k = 1,...,p). (2.1.5)
Dydžiai zk yra vadinami modelio (2.1.2) poliais. Tada lygtis (2.1.2) gali būti užrašyta tokiu
pavidalu:
pavidalu:
Xn =Ž akzl. (2.1.6)
k=1
vn = į akznk (n = 0,1,...N -1). (2.1.7)
k=1
Perrašykime šį sąryšį kaip lygčių sistemą:
a 1 + a 2 + ... + a = v 0.
ai Z1 + a2 Z2 +... + apZp = V1,
a, z,2 + a2
z 22 +... + anz p = v2
1122 p p 2 (2.1.8)
1122 p p 2 (2.1.8)
a, zN-1 + a2 -1 +... + apzN-1 = vN _v
Jei z1,z2,...,zp būtų žinomi, tuomet lygtys (2.1.8) sudarytų N tiesinių lygčių
sistemą su p nežinomųjų a1, a2,..., ap. Jei N = p, tai ši sistema gali būti išspręsta tiksliai, o jei N > p, tai ji gali būti
išspręsta apytiksliai mažiausių kvadratų prasme.
Tačiau, jei { zn} yra nežinomi, mums reikia turėti mažiausiai 2p lygčių. Be to, { zn} pasirodo
sistemoje (2.1.8)
netiesiniu būdu, kas sukuria papildomų sunkumų. Šių sunkumų minimizavimas
sudaro Prony metodo esmę.
Tegul z1,z2,...,zp yra tokios algebrinės lygties šaknys
B(z) = zp -fi, zp-1 -fi2 zp-2 -...-Pp_i z-Pp =(z - zi )■...-(z - zp )= 0. (2.1.9)
Mes turime nustatyti
koeficientus fix,...,fi . Šiuo tikslu, padauginame pirmą sistemos (2.1.8) lygtį
iš fip, antrą iš fip-1, ... , p-ąją iš fi1,
o (p+/)-ąją iš (-1) ir sudedame rezultatus. Kadangi
z1,z2,...,zp yra lygties (2.1.9) šaknys, mes gauname tokį sąryšį
Vp -fiVp-1 -... -fipVo = 0. (2.1.10)
Tą pačią procedūrą
kartojame, pradedant nuo antros, trečios, ..., (N - p) -osios lygties.
Tokiu būdu gausime N - p -1 papildomas lygtis. Taigi, naudojant (2.1.8) ir (2.1.9), mes gauname
tokią sistemą, sudarytą iš N- p tiesinių lygčių
Vp-1fi +
Vp-2fi2 + ... + V0fip = Vp , vpfi1 + Vp-fi2 + ... + Vfip = Vp^
VN-2^1 +
VN-3^2 + ... + VN - p-1ßp = VN-1,
arba sutrumpinta forma
S vn-k ßk = vn, n = p, p +1,..., N -1. (2.1.12)
k=1
čia f0 = -1.
Kadangi v1,v2,...,vN-1 yra žinomi, tiesinių lygčių sistema
(2.1.11) gali būti išspręsta tiksliai, jei N = 2p, arba išspręsta
apytiksliai mažiausių kvadratų metodu, jei N > 2p .
Suradus koeficientus ff,...,ff , nežinomieji z1v..,zv gali būti apskaičiuoti kaip lygčių sistemos
(2.1.8) šaknys. Jos yra
realios arba kompleksinės. Tada (2.1.8) tampa sistema, sudaryta iš N tiesinių lygčių su
p nežinomųjų a1,a2,...,ap. Šie nežinomieji gali būti nustatyti naudojant
pirmąsias sistemos
(2.1.8) lygtis, arba priimtiniau, naudojant mažiausių kvadratų metodą visai
sistemai (2.1.8).
Aprašytasis metodas yra
vadinamas Prony metodu. Viena iš jo svarbiausių savybių yra ta, kad lygčių
(2.1.8) netiesiškumas yra perkeliamas algebrinės lygties (2.1.9) šaknų
suradimui.
Klasikinio Prony metodo santrauka:
Žingsnis 1. Sprendžiame lygčių sistemą (2.1.11) ir nustatom nežinomus polinomo
(2.1.9) koeficientus.
Žingsnis 2. Apskaičiuojame polinomo (2.1.9) šaknis z1,z2,...,zp .
Žingsnis 3. Sprendžiame lygčių sistemą (2.1.8) ir surandame kompleksines amplitudes
2.2. Prony metodas su priešfiltriu
Modeliavimo rezultatai
rodo, kad Prony metodas yra labai jautrus duomenų matavimo paklaidoms, t.y. kuo
paklaidos didesnės, tuo įverčiai blogesni - jie labai paslinkti nuo tikrųjų
parametrų reikšmių. Norėdami pagerinti Prony metodo įverčių tikslumą,
amerikiečių mokslininkai Kumaresan ir Feng [1] pasiūlė naują metodą -
vadinamąjį Prony metodą su priešfiltriu. Metodo esmė yra panaudoti duomenų
filtravimą prieš naudojant Prony metodą. Filtruojama tam, kad apriboti triukšmo
įtaką. Jie pasiūlė metodą, kaip apskaičiuoti priešfiltrio
W (z )= 1 + w1 z -
+... + wqz-q, (2.2.1)
(čia 0 < q < N - 2 p ) impulsinę reakciją 1,wl,...,wą.
Pasiūlytame metode
priešfiltrio impulsinė
reakcija yra
gaunama iteraciniu būdu, naudojant duomenis.
Nagrinėkime sekos xn, apibrėžiamos sąryšiu (2.1.2), z -transformaciją.
Ši transformacija yra
apibrėžiama tokiu būdu:
apibrėžiama tokiu būdu:
N-1
X(z) = £ xnz n . (2.2.1.1)
n=0
Kadangi galioja
sąryšis (2.1.2), tai
N-1 p
X(z) = YZakeSknz n. (2.2.1.2)
=0 k=1
Kadangi sąryšyje (2.2.1.2) sumos yra baigtinės, tai
galima sukeisti sumavimo tvarką, t.y.
p N-1
|
p N-1 F N -i , .
(2.2.1.3)
k=1 n=0
k=1 n=0
Pažymėkime
Y = e1 z
(2.2.1.4)
Tada
N-1
n=0 n=0
(2.2.1.5)
o tai yra geometrinė progresija. Todėl
N-1 n=0
Vadinasi,
1 -YN 1 -Y
(2.2.1.6)
![]() |
|||
![]() |
■eSkNz -
N
h Ili1-e"z-1)
k=1
|
w *-> k 1 -eSkz-1
(2.2.1.8)
k=1
Vadinasi, X (z) galima užrašyti kaip dviejų polinomų santykį tokiu būdu:
x (z y.
(2.2.1.9)
čia
B(z )
= n(l -
eskz -1 )=
1+
Z bk
.-k
(2.2.1.10)
k=1
k=1
yra laipsnio p polinomas su šaknimis e*1,..., e p, o
C (z )
= Ž
skN -N
e k z
(2.2.1.11)
k=1
j=1
yra polinomas laipsnio N + p -1, todėl jį galima
užrašyti tokiu pavidalu:
N+p-1
N + p-1
-k
|
C(z)= Ž ck
(2.2.1.12)
k=0
Panagrinėsime C (z) koeficientus atskirais atvejais: Tegul p = 1, tada
eSlNz -
N ) =
co + - + c2z
-2 +
k+Cn-i (z-))-1 +
Cn (z^)
|
C (z ) = a1 (l -
eSlNz - N) Iš šio sąryšio matome, kad c0 = a1, c1 = c2 =... = cN-1
= 0, cN = -a1eSiN. Tegul p = 2 , tada
C (z ) = a1 (l
- eSlNz - N )(l - eS2z - )+ a2 (l - eS2N
z - N - eSl z
- ) = a1 - a1eS2z - --aeSlNz-N + aeSlNeS2
(z-l f+l + a2
-a2eSlz-l -a2eS2Nz-N + a2eS2NeSl
(z-l f+l = (aleS2
+ a2eSl)z"l
-(aleSlN
+ a2eS2N)z^N +(aleSlNeS2
+ a2e'2NeSl)(z- f
= al + a2
(2.2.1.13)
(2.2.1.14)
Iš sąryšio matome, kad
c 1 e e , Cn =-aeS1N
- aeS2N,
(2.2.1.15)
sN s2 . s2N
e 1 e 2 + a2e 2
e
CN+1 a1
Analogiškai galima gauti,
kad bendru atveju
Cp = Cp+1 = K = CN-1 = 0.
Remiantis
(2.2.1.9), turime
X(z)B(z ) =
C (z).
Sąryšyje (2.2.1.17) paėmę abiejų pusių atvirkštinę z -transformaciją,
gauname
čia *
žymi tiesinės sąsūkos
operaciją, t.y.
p
Xn * bn =
Ž Xn-kbk = Xnb0 + Xn-lbl
+ Xn-2b2 + - + Xn-pbp
k=0
Kadangi galioja sąryšis (2.2.1.16), tai
Ž Xn-kbk = ^ n = A p + 1,kN - 1 (b0
= 1).
(2.2.1.16) (2.2.1.17)
(2.2.1.18)
(2.2.1.19) (2.2.1.20)
k=0
2.2.2. Filtro tipo nustatymas (ar FIR, ar IIR)
Nagrinėjame
baigtinės impulsinės charakteristikos filtrą su impulsine charakteristika:
1,w1,...,wą. (2.2.2.1)
Jos z -transformaciją žymėsime W(z)
W(z) = 1 + w1z - +... + wqz- q. (2.2.2.2)
Mes naudosime W(z) duomenų
filtravimui. Paėmę abiejų sąryšio (2.2.1.18) pusių sąsūką su wn, gauname:
Pažymėkime
Gauname
Kadangi
tai
w * x * b = w * c .
n n n n n
x = w * x
n n n
dp+q = dp+U+1 = ... = dN-1 = 0'
S
xn-kbk = 0'
n = P + q,P + q + 1,...N -
1
k=0
(2.2.2.3) (2.2.2.4)
(2.2.2.5)
(2.2.2.6) (2.2.2.7)
(2.2.2.7) yra N-(p + q) tiesinių lygčių sistema su p nežinomųjų b1,b2,...,bp. Todėl mes turime turėti sąryšį:
N-(p + q)> p. (2.2.2.8)
Atskliaudę,
gauname:
N - p - q > p. (2.2.2.9)
Sutvarkę šią
nelygybę, gauname:
N - 2p > q, t.y. q < N - 2p. (2.2.2.10)
Kadangi q > 0 , tai turime 0 < q < N -
2p . Reiškia filtras W(z) yra baigtinės impulsinės
charakteristikos (reakcijos) filtras (angl. FIR - filtras).
charakteristikos (reakcijos) filtras (angl. FIR - filtras).
2.2.3. Filtro impulsinės
charakteristikos apskaičiavimas
Lygybė sąryšyje
(2.2.1.20) galioja tik kompleksiniams eksponentiniams signalams be triukšmo. Šį
sąryšį (2.2.1.20) perrašome tokiu pavidalu:
xn + xn-1b + xn-2b2
+... + xn-p+bp-1 + xn-pbp = 0, kai n = p,p + 1,...,N-1. (2.2.3.1)
Apibrėžkime postūmio
operatorių z 1 tokiu būdu:
z '1xn
= xn-1. (2.2.3.2)
Tada
xn + z-lxnb:
+ z-2xnb2 +... + z-{p-\bp-1 + z-pxnbp
= 0, kai n = p,p + 1,...,N-1. (2.2.3.3)
Iškėlę xn už skliaustų, turime:
Iškėlę xn už skliaustų, turime:
(1 + z-1b1 + z 2b2
+... + zAp-1)bp-1 + z-pbp)■
xn = 0, kai n = p,p + 1,...,N-1. (2.2.3.4)
Remiantis polinomo B(z) apibrėžimu, gauname:
B(z)-xn = 0, n = p,p + 1,k ,N -1. (2.2.3.5)
Matome, kad polinomas B(z) anuliuoja
signalą. Todėl polinomo B(z) šaknys yra artimos sričiai, kurioje koncentruojasi signalo energija,
o 1/B(z) turi pikus tuose taškuose. Todėl W(z) yra parenkama
taip, kad aproksimuotų 1/B(z) :
B(z )■
W (z ) = 1 + E(z ), (2.2.3.6)
čia E (z) yra paklaidos
sekos en z -transformacija. Laiko srityje sąryšį (2.2.3.6) galima užrašyti tokiu
pavidalu:
bn * wn
=Sn *en. (2.2.3.7)
n n n n \ /
Priešfiltrio
impulsinė reakcija w1, w2,..., wq yra gaunama, minimizuojant paklaidų kvadratų sumą:
2 2
Z N =ZK - k * wn\
, (2.2.3.8)
n=0 n=0
čia w0 = 1, t.y. ieškomi tokie w1, w2,..., wq, kurie minimizuoja šią paklaidų kvadratų sumą. Dydis 8n yra vadinamas Kronekerio delta. Jis apibrėžiamas taip:
5n = 1, kai n = 0 ir 5n = 0, kai n * 0 . (2.2.3.9)
Apskaičiavus filtro
impulsinę reakciją, duomenys filtruojami. Gaunami nufiltruoti duomenys {xn} Su šiais nufiltruotais duomenimis sudaromos Prony lygtys:
Z x'A
= 0, n =
p + q, p + q +1, k , N -1, (2.2.3.10)
k=0 kurios yra sprendžiamos
tam, kad gauti naujus koeficientus Ą,...,bp (b0 = 1). Procedūra kartojama
tol, kol koeficientai {bi} pradeda žymiai nesikeisti pereinant prie naujos iteracijos. Tuomet
apskaičiuojama polinomo B(z) šaknys. Apskaičiavus šaknis e*1,...,eSp, koeficientai al,a2,...,ap
yra gaunami mažiausių kvadratų metodu. Prony metodo su priešfiltriu
santrauka:
Žingsnis 1. Imkime w0 = l ir wn = 0, kai n = l,2,...,q tam tikram fiksuotam q (q < N - 2p).
Žingsnis 2. Naudodami w1,w2,...,wq iš Žingsnis l, sudarome lygčių sistemą (2.2.3.10).
Priminsime, kad x'n yra apibrėžiama kaip: x'n = wn
* xn. Žingsnis 3. Sprendžiame lygčių sistemą (2.2.3.10) mažiausių kvadratų metodu ir
gauname
bl,b2,K,bp .
Žingsnis 4. Naudodami gautus bl,b2,...,bp
, ieškome naujų w1,w2,...,wq minimizuodami
paklaidų kvadratų sumą (2.2.3.8). Žingsnis 5. Grįžtame į Žingsnį 2, t.y. vėl sudarome lygčių sistemą (2.2.3.10), naudodami gautus w1,w2,...,wq. Kartojame Žingsnį 3 ir gauname naujus bl,b2,...,bp
. Juos
naudojame Žingsnyje 4 naujų w1,w2,...,wq gavimui. Žingsnį 5 kartojame tol,
kol bl,b2,.
,bp pradeda reikšmingai
nesikeisti.
Žingsnis 6. Naudodami gautus koeficientus bl,b2,...,bp sudarome polinomą B(z) ir
randame jo šaknis, kurios
yra signalo poliai. Naudodami gautus polius, sprendžiame klasikinio Prony
metodo (2.1.8) lygčių sistemą ir gauname
kompleksines
signalo amplitudes a1 , a2 ,... , a p .
Komentarų nėra:
Rašyti komentarą