Vypocet amplitudy signalu?

Marek Peca marek na duch.cz
Neděle Leden 27 00:27:47 CET 2013


> Pravda, vztahy pro frekvence jsem zapomel uvest. Frekvence signalu se 
> meni, ale v ramci daneho mereni je frekvence konstantni a znama. 
> Samplovaci frekvence je v nejhorsim moznem pripade 3x vyssi nez 
> frekvence signalu, s klesajici f signalu muze pomer rust az treba k 
> 1:100. Casu na zpracovani je dost, nejde o nic proudoveho, jen takovy 
> merici pokus v kterem jde o presnost (proniknutu do problematiky 
> digitalniho zpracovani signalu)

Protoze zatim neuvadite zadne podrobnosti co do vlastnosti odhadu (jake je 
optimalizacni kriterium..), a vzhledem k okolnimu textu se to asi ani neda 
ocekavat, zkusim navrhnout 2 cesty, ktere v pripade, jaky popisujete, jsou 
casto velmi uspesne.

Aby bylo jasno, co v zadani predevsim chybi. Pisete, ze sinus vlna ma 
konst. frekvenci po dobu deje. Budiz, je to asi nejake priblizeni, ale da 
se z toho v rade pripadu velmi dobre vychazet. Krome teto vlny je pritomno 
zatim neurcene ruseni, prinejmensim kvantizacni sum a sum mereni, ale 
mozna je tam nekde "sumu" nesrovnatelne vic nez signalu, pro dalsi postup 
je to celkem podstatne.

1. korelace se sin/cos

Pokud skutecne frekvenci znate a staci vam odhad, optimalni ve smyslu 
nejmensich ctvercu, tj. maximum korelacniho koeficientu s prototypovou 
sinusovkou, pak je optimalnim resenim skutecne: vygenerovat si 300 vzorku 
fce sin a cos dane frekvence, provest korelaci, vypadnou 2 skalary (pro 
sin a cos), po vydeleni poctem vzorku uz mate rovnou koef. A, B onoho 
J.B.Fouriera, z nich mozno prevest na amplitudu a fazi.

Pokud je ta prototypova vlna o frekvenci, ktera je presnym nasobkem 
1/(300*Ts), pak je vysledek naprosto shodny s vyberem jedne z harmonickych 
pri klasicke Fourierove rade (DFT), nebo FFT (coz je jen urcity numericky 
vypocet pro DFT).

Pokud je ta frekvence trochu ujeta, pak je situace zajimavejsi. Vysledek s 
pouzitim (zname) ujete frekvence by mel byt lepsi. Nicmene je treba mit na 
pameti, ze nepracujete s idealne dlouhym signalem, ale s oriznutim na 
konecnou delku, proto je treba si uvedomit, ze kazda takto uriznuta 
sinusovka nema uz spektrum jako idealne ostrou caru nulove sirky, ale ze 
je tlusta a predevsim se spoustou laloku i na vzdalenejsich frekvencich. 
Pokud prave na nich mate spoustu sumu, treba vice nez signalu, pak mate 
problem.

2. nelinearni odhad frekvence, amplitudy a faze

Pokud mate signalu dost a sumu jen poskrovnu, pak se casto vyplati nedelat 
linearni odhad, uvedeny vyse, ktery pracuje jen s parametry (A, B), 
potazmo (amplituda, faze), ale nechat si rovnou odhadnout i frekvenci, aby 
to bylo presne. To uz linearni korelace neumi, ale pekne se to da udelat 
metodami nelinearni regrese. Nejjednodussi a nejlevnejsi nastroj na toto 
je Gnuplot, funkce fit. Pouziva Levenberg-Marquardtovu metodu, stejnou, 
jako napr. MATLAB ve fci nlinfit. Parametrizujte si sinusovku tremi cisly 
a mate to uplne bez prace. Samozrejme v situaci, kdy je vlna zapadla v 
ruseni, je vysledek dost nezaruceny.


Mimochodem, na zaver, obecne tradovana podminka s f_vzorkovaci > 
2*f_signalu vubec nemusi platit. Takze tim se tentokrat, kdyz hledate jen 
jednu sinusovku, moc netrapte. (Baluovo oblibene tema.)


ZdraviM.P.


Další informace o konferenci Hw-list