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