Symmetric vs Asymmetric PWM
My question : According to ti's note http://www.ti.com/lit/an/spra278/spra278.pdf [page 10] symmetric PWM generates less harmonics ...


It depends on what other assumptions are being made, and there several to unpick. 

Symmetric PWM (SPWM) uses a control number n to turn a pulse on n counts before a datum time, and off n counts after. The resulting pulse has a width of 2n, but is centred on the datum time, regardless of pulse width.

Assymetric PWM (APWM) generates a pulse of n counts wide, usually turning on at the datum time and off n counts later. The centre of the pulse is located n/2 pulses after the datum time, so moves about with respect to the datum as n changes. Other things being equal, as the pulse width can change by 1 count rather than 2 as in SPWM, it has twice the resolution. 

When PWM is being used to generate a static voltage level, this does not matter, other than the difference in resolution.

When PWM is being used to generate a dynamic waveform, for instance in an inverter generating AC to a motor drive, or in a power amplifier generating an audio output, then any difference between the digital model of the waveform that the controller is manipulating, and the actual analogue waveform that's output, will generate distortion.

The simplest, most useful digital model is a uniform sampling rate, which implies equally spaced pulses. If a request of M is sent to the PWM unit, then that's counted as an output weight of M at the datum time. In the dynamic case, this timing matters. If we use APWM, then the pulse is not centred on the datum time, there's a delay which varies with the M request, and the pulses become unequally spaced. As this delay is not part of the model, it introduces waveform distortion into the output, pulses that are closer together have a higher 'weight' when averaged by the output filter. If we use SPWM, then each pulse is centred, and they stay equally spaced.

Why not use a more complicated model to represent the unequal pulse spacing of APWM? It makes it a lot more complicated. Most of the time, the distortion introduced by this variation is not much more than a niggle, especially when the clock rate is high and the waveform frequency is low, like for motor-drive. Changing to SPWM instead of APWM can win you a significant data sheet improvement on distortion, even at the cost of one bit of resolution, without changing the model at all.

For more demanding applications, like audio generation, this distortion is a deal-breaker. Even going to SPWM will not work sufficiently well, as there are other mechanisms whereby the audio output can be different to the modelled input, which include amplifier rail voltage, and output voltage dependent switching times. These are so unmodellable that the forward model, while retained for stability, is replaced by feedback for fidelity, which automatically takes account of all the small differences between request and output. This is the basis of class D amplifiers, aka noise shaped or sigma delta