Take look at SPWM from DT. Or better MIBAM.