eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDDS, prośba o wyjaśnienie › Re: DDS, pro?ba o wyja?nienie
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: