"Спектрально грязный" меандр элементарно превращается в
"спектрально чистый". Без ЦАПа. Просто нужно выход ДДС делать выше
по частоте кратно степени двойки. Например в 256 раз. И делить
выходной сигнал ДДС в соответствии выбранной кратностью. Будет все
как с ЦАПом... ))) Самый простой и миниатюрный вариант - PIC10F322.
Задействовать его NCO и ADC. Правда ADC у него 8-битный и это
потребует значительного суперсемплинга для поднятия разрядности до
10...12. При варианте с DDS будет проблема с разрешением на НЧ при заданном диапазоне. Но не в смысле реализации самого DDS, а при преобразовании входного сигнала в код. Потребуется очень высокая разрядность ADC.