[uquote="izolenta1801",url="/forum/viewtopic.php?p=3654187#p3654187"]Меня больше удивило то что с помощью DDS синтеза можно добиваться большой точности частоты выходного сигнала, плюс его быстрая перестройка. На мк, как я знаю, можно получить только фиксированые частоты через делители. Причем чем выше частота, тем меньше точность.[/uquote]
А, тогда я не совсем правильно понял что вас интересует! Вся фишка в том, что делители частоты — это одно, а прямой синтез работает совсем на другом принципе. Хотя оба подхода к получению частоты в качестве гаранта точности этой частоты используют одно и то же: опорный кварцевый генератор. Стабильность кварцевого генератора высока (порядка 6 знаков) и может быть улучшена термостабилизацией.
Проблема обычных делителей частоты (в том числе тех, что находятся в МК) заключается в том, что их коэффициент деления должен являться целым числом. Это приводит к компромиссу: либо частота высокая, а шаг частоты грубый, либо, наоборот, шаг точный, а частота маленькая. В прямом цифровом синтезе эта проблема не возникает в связи с тем, что реально коэффициент деления частоты является дробным числом, поэтому нет никаких преград к уменьшению шага регулировки частоты.
Такую же систему, в принципе, можно было бы реализовать и для цифровых делителей частоты: в счётчики надо добавить некоторое количество дополнительных разрядов и инрементировать счётчик не на единицу каждый такт, а на некоторое фиксированное число. Технически это приведёт к замене счётчика-делителя на два регистра и сумматор. В одном регистре будет храниться величина инкремента, в другом — инкрементируемая величина, "цифровая фаза".
Спойлер

Для примера представьте себе 8-битный регистр инкремента хранит величину 201. Эта величина подаётся на цифровой сумматор, на этот же сумматор подаётся текущая величина цифровой фазы со второго регистра. Результат суммирования подаётся назад на второй регистр. По фронту сигнала с тактового генератора в 16 МГц второй регистр запоминает эту сумму, после чего на него с сумматора поступает уже следующая цифровая фаза, которая будет запомнена по фронту следующего тактового импульса. В результате за 2 ^ 8 = 256 тактовых импульсов сумматор переполнится 201 раз. Это будет означать, что результирующая частота получилась 16 МГц * 201 / 256 ≈ 12,56 МГц и шаг частоты будет 16 МГц / 256 ≈ 0,06 МГц. Если использовать не 8-битные регистры и сумматор, а, например, 24-битные, то шаг частоты будет 16 МГц / 2 ^ 24 ≈ 1.0 Гц. Эту процедуру, в принципе, не сложно реализовать на МК.
Однако, в отличие от прямого цифрового синтеза синусоидальных сигналов, описанная выше схема будет иметь один огромный недостаток: фронты результирующего цифрового сигнала будут синхронны с сигналом от тактового генератора. Это будет означать, что временные длительности единиц и нулей синтезируемого сигнала будут сильно отличаться в различные моменты времени. Этот недостаток цифрового сигнала называется
джиттер. И для высоких частот, полученных способом, описанным выше, этот джиттер будет просто недопустимо огромным. Поэтому в таких случаях для синтеза цифрового сигнала произвольной частоты, привязанного к заданной опорной, применяют вспомогательный генератор с ФАПЧ. Ну или DDS с гигагерцовыми частотами дискретизации. Технически схема с ФАПЧ сложнее, но выходит дешевле в плане стоимости компонентов. DDS — это тяжёлая артиллерия.
Описанная проблема с джиттером не возникает в случае синтеза синуса. Вернее она там перерождается в другую проблему: шумы дискретизации по амплитуде и времени. Однако, реально это не вызывает каких-либо трудностей, поскольку после всякого АЦП всегда стоит ФНЧ, эти самые шумы фильтрующий.