2013 m. rugsėjo 18 d., trečiadienis

Užtriukšmintų signalų modeliai



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

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į
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:
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)









Text Box: (2.2.1.7)


Text Box: Todėl




■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).
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:
(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 Ž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ą