Pic 18f sin a cos
balu@home
daniel.valuch@orange.fr
Sobota Květen 17 13:37:52 CEST 2008
no v prvom rade si musite ujasnit s akou presnostou ten vypocet
potrebujete. Ak je to napr. 8 bitov tak niet o com uvazovat a tabulka to
riesi okamzite.
Generovanie sinusu je velmi dolezita sucast numericky riadenych
oscilatorov (DDS) a technik ako generovat sinus tam bolo vyvinutych
mnozstvo. Je to velka inspiracia pre podobne aplikacie.
Ako som uz spominal v prvom rade si musite ujasnit s akou presnostou
pozadujete vase vysledky. Z toho sa da vypocitat ake velke rozlisenie
tabulky potrebujete. Obycajne je rozlisenie tabulky o 2-3 bity vyssie
ako pocet vstupnych bitov (vychadza to z maxima derivacie sinusu ktory
je okolo nuly a kvantizacie vysledku).
Plati to samozrejme aj opacne, t.j. ak chcete napr. 16-bitovy vysledok
staci vam na to rozlisenie vstupu 14 bitov. hned mate tabulku 4x mensiu.
Dalsia komprimacia vychadza zo symetrie sinusu, staci vam ulozit len
rozsah 0-90 stupnov, dalsia stvrtina dole. To iste znamienko. Podla toho
v akom kvadrante sa nachadzate priradite vysledku znamienko, dalsi bit dole.
Takto sa znizite rozsah vyhladavacej tabulky radovo a na vypocet funkcie
stale potrebujete len jednoduchy sucet/rozdiel.
Dalsie techniky ktore umoznuju znizit rozsah vyhladavacej tabulky su o
trochu zlozitejsie na popis tu, ale dosiahnete lahko dalsi rad.
Ako inspiraciu by som uviedol knihu
Digital Frequency Synthesis Demystified
(DDS and Fractional-N PLLs)
Bar-Giora Goldberg
a volume in the Demystified series
kapitola 7, Lookup Table and Sine ROM Compression
b.
Draxal Miroslav wrote:
> O tabulce jsem také premyslel. Jak to mamte namysli komprimovat? MIRA
>
>
Další informace o konferenci Hw-list