-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
-for-mail
From: J.F. <j...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: DDS, pro?ba o wyja?nienie
Date: Thu, 18 Mar 2010 22:09:49 +0100
Organization: -
Lines: 62
Message-ID: <t...@4...com>
References: <hntu17$4qi$1@nemesis.news.neostrada.pl>
<hntu47$39c$1@atlantis.news.neostrada.pl>
<hntv6s$5pr$1@atlantis.news.neostrada.pl>
NNTP-Posting-Host: h82-143-187-50-static.e-wro.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1268946588 23359 82.143.187.50 (18 Mar 2010 21:09:48 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Thu, 18 Mar 2010 21:09:48 +0000 (UTC)
X-Newsreader: Forte Agent 1.93/32.576 English (American)
Xref: news-archive.icm.edu.pl pl.misc.elektronika:584689
[ ukryj nagłówki ]On Thu, 18 Mar 2010 20:31:11 +0100, Robbo wrote:
>Nie wiem, czy się rozumiemy, a mi zależy,
>żeby dobrze zrozumieć DDS i wymieniony projekt
>generatora.
> Załóżmy, że dla 1Hz układ "wypluwa"
>na wyjście po kolei 256 próbek.
>Dla częstotliwości 2Hz korzysta już tylko
>z połowy próbek -- "wypluwa" co drugą
>próbkę.
Nie chce mi sie przez ten kod przebijac - ale DDS dziala inaczej.
"wypluwa" probki bardzo czesto - w tym przypadku tak czesto jak sie
procesor wyrobi, powiedzmy 1MHz, czy jak kto woli co 1us.
Za kazdym razem oblicza jaka ma byc wartosc probki.
Jesli syntezuje 1Hz - to bardzo czesto nowa probka bedzie taka sama
jak stara. Trudno zreszta zeby bylo inaczej jesli mamy do dyspozycji
tylko 8-bitowy DAC.
Jesli syntezuje 65kHz, to co 1us przeskakuje o wiecej bitow i probek.
A jak oblicza? Dosc prosto.
Mamy np 32 bitowy rejestr, zwany dalej "faza". Traktujemy go tak ze on
odpowiada pelnemu "obrotowi" czy jak kto woli okresowi, czyli jedna
jednostka odpowiada 360/2^32 stopnia.
Co chwila dodajemy do tego rejestru "skok". Jesli chcemy wygenerowac
1Hz przy cyklu 1MHz/1us, to w ciagu miliona cykli rejestr fazy
powinien sie "przekrecic". Skok powinien wiec wynosic
2^32/1000000 = 4294.967296
Ulamkowej liczby dodawac nie damy rady, bedziemy wiec dodawac np 4295,
uzyskujac czestotliwosc 1.0000076.. Hz.
Ta odchylka sie nie przejmujemy, albo dobieramy lepiej parametry.
Teraz skupmy sie na najstarszym bajcie rejestru fazy - on tez podaje
faze, tylko z rozdzielczoscia 360/256 stopnia.. Moze wprost wybierac
wartosc probki z tablicy sinusa. Albo trojkata.
Poniewaz ten bajt zmienia sie po dodaniu ok 16.7 mln do rejestru fazy,
w naszym przykladzie bedzie sie zmienial co ok 3906.2 cykli zegara.
Jesli chcemy generowac 2Hz, dodajemy co cykl 8590, i probka zmienia
sie co ~1853 cykle.
A przy 65000Hz, co cykl dodajemy 279 172 874, czyli za kazdym razem
przestakujemy ok co 1us przeskakujemy co ok 17 probek w tablicy.
>Nie rozumiem, jak może dojść do 65kHz i mieć
>na wyjściu sinusoidę.
Jak sie dokladnie przyjrzec na cyfrowym oscyloskopie, to szemrana ta
sinusoida :-)
Ale w AD twierdza ze wystarczaja im nawet 3 probki na okres :-)
Duzo zalezy czy mozemy sobie pozwolic na filtr dolnoprzepustowy.
J.
Następne wpisy z tego wątku
- 18.03.10 21:24 Robbo
- 18.03.10 23:51 shg
- 19.03.10 09:22 Piotr Gałka
- 19.03.10 09:41 BartekK
- 19.03.10 10:13 J.F.
- 19.03.10 12:35 Piotr Gałka
- 19.03.10 12:51 J.F.
- 19.03.10 14:08 Piotr Gałka
Najnowsze wątki z tej grupy
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
- HDMI
- Re: Mala autonomiczna kamera monitoringu
- Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- skąd my to znamy
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
Najnowsze wątki
- 2024-06-27 Re: Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-06-27 A co mnie to koooorwa obchodzi?
- 2024-06-28 nawigacja satelitarna
- 2024-06-28 SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- 2024-06-27 położyłem kafelki
- 2024-06-28 Łódź => International Freight Forwarder <=
- 2024-06-28 Łódź => Spedytor Międzynarodowy <=
- 2024-06-28 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-06-28 Sopot => Team Leader E-Commerce for Foreign Markets <=
- 2024-06-28 Warszawa => Senior React Native Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Software .Net Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Programista Full Stack .Net <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=