Принцип ШИМ прост. Есть период ШИМ. Есть заполнение. Если на выход поставить интегрирующую цепочку (резистор послед, конденсатор на землю) то получим (по теории) интегральную площадь заполнения импульса (на то и интегратор). Иными словами, если заполнение ШИМом 30%, то мы получим напряжение составляющее 0.3 от максимума.
Правда это в теории. На практике такое получится при правильном подборе элементов интегратора. ШИМом очень удобно пользоваться при выводе медленно изменяющегося аналогового сигнала либо сигнала, управляющего интегральной нагрузкой. Классический пример - управление двигателем постоянного тока.
На практике подбор интегратора и фильтра, который хорошо бы резал несущую (Fpwm) и незначительно искажал бы огибающий сигнал - задача непростая. Она тем легче, чем выше соотношение частоты несущей к частоте выходной. И то там много разных сложностей.
Тем не менее - если взять простой расчёт, то выглядит всё примерно так:
Допустим мы хотим получить частоту 4кгц. При скважности (фактически разрядность нашего ЦАПа) 256 (8 бит). По теории у нас должно быть не менее 2-ух кратного превышения частоты. Таким образом частота ШИМ должна быть не менее 4*2*256 = 2МГц. Или наоборот 16МГц/256/2 = 31кГц. При ШИМ 9 бит - 15.5кГц.
Считается что для качества уровня телефонии (3.4кГц) требуется 14 битный ЦАП с частотой квантования 8кГц. Легко подсчитать, что частота ШИМ при этом должна быть 8*(2**14) ~ 33МГц.

Существуют специальные нелинейные ЦАП для звука, которые при 8 битах обеспечивают 14 бит качество. Они применяются в GSM.