Index: > A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Business Industries Finance Tax

Home > Pulse-density modulation


Pulse-density modulation, or PDM, is a form of modulation used to represent an analog signal in the digital domain. In a PDM signal, specific amplitude values are not encoded into pulses as they would be in PCM or PWM. Instead it is the relative density of the pulses that corresponds to the analog signals amplitude.

1 Basics

In a pulse-density modulation bitstream a 1 corresponds to a pulse and a 0 corresponds to the absence of a pulse. A run consisting of all 1's would correspond to a positive amplitude value, all 0's would correspond to a negative amplitude value, and alternating 1's and 0's would correspond to a zero amplitude value. This has the remarkable effect of the PDM bitstream actually looking like the wave it represents.

2 Analog-to-digital conversion

A PDM bitstream is encoded from an analog signal through the process of Sigma-delta modulation . This process uses a one bit quantizer that produces either a 1 or 0 depending on the amplitude of the analog signal. A 1 or 0 corresponds to a signal that is all the way up or all the way down, respectively. Because in the real world analog signals are rarely all the way in one direction there is a quantization error, the difference between the 1 or 0 and the actual amplitude it represents. This error is fed back negatively in the sigma-delta modulation process loop. In this way every error successively influences every other quantization measurement and its error. This has the effect of averaging out the quantization error.

3 Digital-to-analog conversion

The process of decoding a PDM signal into an analog one is amazingly simple. One only has to pass that signal through an analog low-pass filter. This works because the function of a low-pass filter is essentially to average the signal. The density of pulses is measured by the average amplitude of those pulses over time, thus a low pass filter is the only step required in the decoding process.

4 Examples/code

A single period of the trigonometric sine function, sampled 100 times and represented as a PDM bitstream, is:

0101011011110111111111111111111111011111101101101010100100100000010000000000000000000001000010010101

Two periods of the sine wave would appear as:

0101101111111111111101101010010000000000000100010011011101111111111111011010100100000000000000100101

As you can see in Pulse-density modulation a high density of 1's occurs at the peaks of the sine wave, while a low density of 1's occurs at the troughs of the sine wave.

These examples were created using the following algorithmFlowcharts were often used to represent algorithms. An algorithm is a finite set of well-defined instructions for accomplishing some task which, given an initial state, will result in a corresponding recognisable end-state (contrast with heuristic). Algor, written in PerlImage:Programming-republic-of-perl. gif|right|framed|Programming Republic of logo]] Perl also Practical Extraction and Report Language (a backronym, see below), is a programming language released by Larry Wall on December 18, 1987 that borrows features fr:

#Sample sine wave $pi = atan2(1,1) * 4; $samples--; $arg = $periods * $pi * 2 / $samples; $pcm[$_] = sin($arg * $_) foreach (0..$samples); #Encode into pulse-density modulation $r = 1; foreach (@pcm) { $r = $_ - $r; if ($r > 0) { push @pdm, 1; $r = 1 - $r; } else { push @pdm, 0; $r = -1 - $r; } }

Where $samples equals the number of samples to be taken of sine, $periods equals the number of periods of sine to be sampled, and @pdm is the resultant pulse-density modulation data.





Non User