[info] Szybkie generowanie sinusa

Mar 26, 2005 4 Replies

Witam,



niedawno rozmawialismy o szybkim generowaniu dokladnych wartosc funkcji sinus. Zaproponowalem wowczas CORDIC, ale wlasnie skonczylem testowac pewien inny pomysl, ktory przyszedl mi do glowy. Z 18-bitowej fazy wytwarzam sinus z dokladnoscia



-- obecnie -- 17-bitowa, ale mam pare pomyslow na dalsze poprawienie tego wyniku. Dodatkowa zaleta jest fakt, ze nie wystepuje mnozenie wyniku przez stala != 1, wiec nie potrzeba stosowac korektorow. Zapotrzebowanie na zasoby na FPGA jest ok. 6-krotnie mniejsze niz CORDICa o tej samej dokladnosci, a wydajnosc obliczen jest praktycznie taka sama. Napisze wiecej o implementacji tej metody, gdy rozbuduje ja do pelnego mieszacza kwadraturowego.



Pozdrawiam Piotr Wyderski


jest jeszcze inne wyjscie wykorzystujące równanie różnicowe. Brzmi zawile, ale tak naprawdę jest proste, szczegóły są np. w nocie aplikacyjnej Microchipa AN543 "Tone generation"

To ja poproszę taki kwadraturowy na 2,5GHz :)

Na FPGA? :-) Obecnie osiagnalem predkosc 255,93MHz na Cyclone 1C6 speed grade 6 -- wiecej sie nie da, RAM nie jest dostatecznie szybki.

Pozdrawiam Piotr Wyderski

BTW, kij w oko Quartusowi, przez 2 dni nie moglem zgrac timingow w ukladzie i w koncu przestalem cokolwiek rozumiec. Okazalo sie, ze przez pomylke ustawilem zegar w symulatorze na 400MHz, a on nie zaprotestowal, ze to jest daleko poza obliczona wczesniej przez niego samego czestotliwoscia graniczna... :-(

Po poprawieniu tego od razu uzyskalem prawie modelowe timingi, tylko w 2 miejscach trzeba bylo dodac zatrzaski.

Pozdrawiam Piotr Wyderski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required