Wednesday, June 26, 2013

Pulse Width Modulation Quantum Effect

You can approximate a value, say 0.5, by periodically switching between 0 and 1. 01 01 01 01 01… gives 0.5 in average. The high frequency series of 0 and 1 are smoothed by ears and we hear arbitrary audio levels. The more frequent is 0 the lower is the level. But, I was always stumbled at low-level approximations.

When you approximate high values by the same resolution mechansim, for instance if you can increase values by one, the difference between 0 to 1 is much more rough than increment from 100 to 101. In latter you increment by 1/100 of the value, but difference between levels 0, 1, 2 and 3 seem much more coarse grained. You cannot increment by fractions of current value when value is low.

It seems much more dramatic from PWM. Here, you may achieve arbitary averages. But, this takes time. It is easy to smooth the alternating sequence 01 01 01 01… be low-pass filter. It takes only  two periods to achieve average. But, if you what to produce the level of 1/50 000 (16-bit sound) then average is one pulse per 50 000. This is one short pulse per one or two seconds. You need a huge low-pass filter to smooth such rare pulse over such long intverval. Might be you need too much of oversampling instead: for every PCM audio sample, you need 50000 PWM samples, which is now power transistor swtich problem rather than filter issue.

Usually PWM providers are very bold on using their efficient method (switching between 0 and 1 provides principally lossless energy transfer, assuming resistance-free low-pass filters). But, nobody seems to care about response at low levels. Now, I know that quantum discretization exposes itself easier at low levels.

No comments: