Niniejsza, szósta część stanowi wprowadzenie do techniki „bezpośredniej syntezy cyfrowej” (ang. direct digital synthesis, DDS). Aby ułatwić Czytelnikowi start w tej dziedzinie, prezentujemy kilka praktycznych układów i przykładowe programy, wszystko oparte na popularnym i niedrogim układzie scalonym DDS firmy Analog Devices – AD9833. Ten uniwersalny układ może stanowić podstawę wielu projektów, począwszy od prostych źródeł sygnału o stałej częstotliwości po programowane generatory przebiegów i generatory FSK/PSK.
W ostatnich latach pojawiło się szereg elementów, które znacznie upraszczają zadanie wytwarzania sygnałów i przebiegów z dużą dokładnością i stabilnością. Elementy te, coraz tańsze i wygodniejsze w użyciu, wykorzystują bezpośrednią syntezę cyfrową (DDS). W metodzie DDS wielkości reprezentujące fazę sygnału są konwertowane na wartości próbek amplitudy, a następnie doprowadzane do przetwornika cyfrowo-analogowego (DAC). Wyjście przetwornika jest filtrowane w celu uzyskania czystego sinusoidalnego sygnału analogowego.
Nowoczesne generatory DDS mogą wytwarzać oprócz przebiegu sinusoidalnego również inne przebiegi. Są programowane, zwykle przez synchroniczny interfejs szeregowy (SPI), i wymagają jedynie doprowadzenia zewnętrznego zegara taktującego. Sprawia to, że generatory DDS są niezwykle łatwe w użyciu i coraz bardziej konkurencyjne w stosunku do alternatywnych rozwiązań, opartych na pętli synchronizacji fazowej i programowanych dzielnikach. Najnowsza generacja układów DDS może wytwarzać częstotliwości od poniżej 1 Hz do 400 MHz (przy zegarze 1,2 GHz) z doskonałą rozdzielczością. Podstawowe cechy DDS to:
- możliwość wytwarzania sygnałów w szerokim zakresie częstotliwości z bardzo wysoką dokładnością i stabilnością;
- częstotliwość przebiegów może być zmieniana bardzo szybko, bez dodatkowego czasu potrzebnego do ustabilizowania się pętli fazowej, co zapewnia znakomitą elastyczność;
- w najnowszych układach DDS można bardzo łatwo zrealizować kluczowanie z przesunięciem częstotliwości (FSK) lub fazy (PSK);
- nowoczesne układy DDS, oferowane w formie niedrogich i łatwo dostępnych modułów, dają się prosto i elastycznie sterować przy użyciu popularnych platform programistycznych – takich jak Arduino, Micromite lub Raspberry Pi; przykłady można znaleźć w rozdziale Idąc dalej.
Podstawy DDS
Jak Czytelnik z pewnością wie, fala sinusoidalna powtarza się w sposób ciągły, przy czym jej faza przyrasta przez każdy okres o 360° (co odpowiada 2π radianom). Zauważmy, że faza również powtarza się co 360°, ale ma kształt odcinkami liniowy. Podstawową zasadą działania generatorów DDS jest fakt, że liniowy kształt fazy może być „przetłumaczony” na sinusoidalny kształt napięcia. Centralnym elementem tego procesu jest układ, który przekształca kąt fazowy na amplitudę. Rysunek ilustruje podstawową zasadę wytwarzania sygnału DDS. Widzimy tam cztery bloki funkcjonalne: rejestr (akumulator) fazy, konwerter fazy na amplitudę (PAC), przetwornik cyfrowo-analogowy (DAC) i filtr dolnoprzepustowy. Rejestr fazy przechowuje n-bitowe słowo cyfrowe, które określa chwilową fazę przebiegu. PAC to zazwyczaj pamięć stała (ROM) zawierająca próbki sygnału sinusoidalnego. Wyjście PAC trafia do przetwornika cyfrowo-analogowego, najczęściej o rozdzielczości 10...14 bitów.
W praktyce akumulator fazy jest licznikiem cyfrowym, który w każdym cyklu zegara zwiększa swój stan. Wartość przestrajająca (M), określająca przyrost fazy, wyznacza o ile zwiększa się licznik w każdym cyklu. Stan licznika trafia do konwertera PAC. Akumulator fazy po przekroczeniu maksymalnego stanu „przewija się” do zera, dzięki czemu cały proces powtarza się w nieskończoność.