Pulse Amplitude Modulation (PAM)

Block diagram of a pulse amplitude modulator and demodulator

In the article on modulation – from numbers to signals, we said that the Pulse Amplitude Modulation (PAM) is an amplitude scaling of the pulse p(nT_S) according to the symbol value. What happens when this process of scaling the pulse amplitude by symbols is repeated for every symbol during each interval T_M? Clearly, a series of bits \underline{b} (1010 in our initial example) can be transmitted by choosing a rectangular pulse and scaling it with appropriate symbols.

    \begin{align*}         m = 0 &\rightarrow b = 1 &\rightarrow a[0] = +A \\         m = 1 &\rightarrow b = 0 &\rightarrow a[1] = -A \\         m = 2 &\rightarrow b = 1 &\rightarrow a[2] = +A \\         m = 3 &\rightarrow b = 0 &\rightarrow a[3] = -A     \end{align*}

Our next step is forming a cumulative waveform from these individual symbol-scaled pulses. Remember from the article on transforming a signal that mathematical expression for a signal p(nT_S) delayed by an amount T_M or L samples is given as p(nT_S-LT_S) = p(nT_S-T_M), where T_M is the symbol duration and L is samples/symbol defined as T_M/T_S. Since the same pulse is scaled by the symbol value during each T_M,

  • At time instant 0T_M, the output is a[0] p(nT_S-0T_M).
  • At time instant 1T_M, the output is a[1] p(nT_S-1T_M).
  • At time instant 2T_M, the output is a[2] p(nT_S-2T_M).
  • At time instant 3T_M, the output is a[3] p(nT_S-3T_M).

And so on. Finally, their addition gives the expression for a general PAM waveform:

(1)   \begin{align*}         s(nT_S) &= a[0]p(nT_S-0T_M) + a[1]p(nT_S-1T_M) + \nonumber \\              & \hspace{1in} a[2] p(nT_S-2T_M) + a[3]p(nT_S-3T_M) + \cdots \nonumber \\              &= \sum _{m} a[m] p(nT_S-mT_M)      \end{align*}

After digital to analog conversion (DAC), the continuous-time signal s(t) can be expressed as

(2)   \begin{align*}         s(t) &= \sum _{m} a[m] p(t-mT_M)      \end{align*}

As an example, a 2-PAM waveform is illustrated in Figure below with red dashed curve being the underlying continuous-time signal.

A Pulse Amplitude Modulation waveform is constructed by summation of individually modulated bits

In a similar manner to 2-PAM, a 4-PAM waveform based on 4 symbols can be constructed by scaling the pulse amplitude by different symbol values during each T_M, as illustrated in Figure below.

A 4-PAM digital signal with underlying continuous waveform

Constellation Diagram


Just like a constellation of stars, a constellation diagram shows the actual symbol values representing a set of \log_2 M bits. We have already encountered constellation diagrams before (e.g., in the article on a simple communication system). A general constellation diagram for M-PAM is shown in Figure below.

Constellation diagram for general Pulse Amplitude Modulation

Average Symbol Energy


The average symbol energy in a constellation is given by the average of all individual symbol energies. For M=2,

    \begin{align*}         E_{M-\text{PAM}} &= \frac{A^2}{2}\left\{(+1)^2 + (-1)^2 \right\} = A^2     \end{align*}

And for M=4,

    \begin{align*}         E_{M-\text{PAM}} &= \frac{A^2}{4}\left\{(-3)^2 + (-1)^2 + (+1)^2 + (+3)^2\right\} = 5A^2     \end{align*}

For a general M,

    \begin{align*}         E_{M-\text{PAM}} &= \frac{A^2}{M}\left\{(-M+1)^2 + \cdots (-3)^2 + (-1)^2 + \right.\\                          &~ \left. \hspace{2in} (+1)^2 + (+3)^2 + \cdots + (M-1)^2\right\} \\                          &= 2\frac{A^2}{M}\left\{1^2 + 3^2 + \cdots + (M-1)^2\right\}     \end{align*}

The term in the brackets is the sum of squares of first (M-1+1)/2 = M/2 odd integers. Using the formula k(2k-1)(2k+1)/3 for the first k odd integers squared, we get

(3)   \begin{align*}         E_{M-\text{PAM}} &= 2\frac{A^2}{M} \cdot \frac{M/2 \cdot (M-1) \cdot (M+1)}{3} \nonumber \\                          &= \frac{M^2-1}{3} A^2      \end{align*}

The main purpose of this text is to find the answer to the following question: which operations are necessary to perform at the Tx and Rx sides such that we can detect that symbol with the highest probability? To explore the answer, we start with a simple PAM modulator and detector.

PAM Modulator


At this stage, we are ready to build a conceptual PAM modulator. The block diagram is drawn in Figure below in which Tx signal is generated in the following way.

  • Every T_b seconds, a new bit arrives at the input forming a serial bit stream.
  • A serial-to-parallel (S/P) converter collects \log_2 M such bits every T_M = \log_2 M \times T_b seconds that are used as an address to access a Look-Up Table (LUT) that stores M symbol values specified by the constellation.
  • To produce a PAM waveform, the symbol sequence a[m] is converted to a discrete-time impulse train through upsampling by L, where L is samples/symbol defined as ratio of symbol time to sample time T_M/T_S, or equivalently sample rate to symbol rate F_S/R_M.
  • As explained in the post on sample rate conversion, upsampling inserts L-1 zeros between each symbol after which the interpolated intermediate samples can be raised from dead with the help of a lowpass filter that suppresses all the spectral replicas except the primary one. We will see in the next section that a proper pulse shaping filter is also a lowpass filter and hence another extra lowpass filter is not actually required.
  • The generated discrete-time signal s(nT_S) is converted to a continuous-time signal s(t) by a DAC.

The mathematical derivation for the PAM modulator was shown in Eq (1) and Eq (2).

Block diagram of a pulse amplitude modulator and demodulator

PAM Detector


The received signal r(t) is the same as the transmitted signal s(t) but with the addition of additive white Gaussian noise (AWGN) w(t). The symbols are detected through the following steps illustrated in Figure above.

  • Through an analog to digital converter (ADC), r(t) is sampled at a rate of F_S samples/s to produce a sequence of T_S-spaced samples r(nT_S).
  • Next, r(nT_S) is processed through a matched filter at the Rx side to generate z(nT_S). As discussed earlier, the output of the matched filter z(nT_S) is a continuous correlation of the symbol-scaled pulse shape with an unscaled and time-reversed pulse shape.
  • This output is downsampled by L at optimal sampling instants

    (4)   \begin{equation*}                     \tcbhighmath{n = mL = m \frac{T_M}{T_S}}                 \end{equation*}

    to produce T_M-spaced numbers z(mT_M) back from the signal.

  • The minimum distance decision rule is employed to find the symbol estimates \hat a[m].

Take a special note of Eq (4). It will be employed over and over again.

Notice that a symbol is the basic building block of a digital communication system. Consequently, symbol time T_M is the basic unit of measurement along the time axis of such a system. When Figure on correlator outputs depicts sampling the output just once at optimum instant 0 out of -(L-1) \le n \le 0, it is true for all integer multiples of symbol time as well, i.e., the output is sampled just once for every symbol duration at optimum instants T_M, 2T_M, \cdots.

Key samples


Carefully examine the key samples at T_M, 2T_M, \cdots. These are the samples we are looking for in the waveform for the detection purpose. Even when the waveform has suffered from all the distortions the real world has to offer, locating these samples and mapping them back to the constellation is a beautiful process, actual details of which we will encounter throughout this text.

Let us discuss the mathematical details of this process. The Tx signal in Eq (1) is expressed as (the reason for using a different variable i instead of m will shortly become clear)

    \begin{equation*}         s(nT_S) = \sum _{i} a[i] p(nT_S-iT_M)     \end{equation*}

In a noiseless case, this signal is input to matched filter h(nT_S) = p(-nT_S) and the output is written as

(5)   \begin{align*}         z(nT_S) &= s(nT_S) * p(-nT_S) \nonumber\\                 &= \sum \limits _k \Big(\sum \limits _i a[i] p(kT_S - iT_M)\Big) p\Big(-(nT_S - kT_S)\Big)  \nonumber\\                 &= \sum \limits _i a[i] \cdot \sum \limits _k  p(kT_S - iT_M) p\Big(kT_S -iT_M - (nT_S - iT_M)\Big)  \nonumber\\                 &= \sum \limits _i a[i] r_p(nT_S - iT_M)      \end{align*}

where r_p(nT_S) comes into play from the definition of auto-correlation function. To generate symbol decisions, T_M-spaced samples of the matched filter output are required at n = mL = mT_M/T_S. Downsampling the matched filter output generates

(6)   \begin{align*}         z(mT_M) &= z(nT_S) \bigg| _{n = mL = mT_M/T_S} \nonumber \\                 &= \sum \limits _i a[i] r_p(mT_M - iT_M) = \sum \limits _i a[i] r_p\{(m-i)T_M\} \nonumber \\                 &= a[m] \nonumber     \end{align*}

This is because for a rectangular pulse shape, the matched filter output is triangular with maximum occurring at i=m and zero at the next symbol location (since we wanted to denote our current symbol with m, we opted for variable i at the start of this derivation), see Figure on correlation of a rectangular pulse.

Observe that the system shown in PAM system block diagram is a multirate system. In the PAM detector, for example, the ADC and the matched filter operate at the sample rate F_S. After the output of the matched filter is downsampled by L, the symbol decisions are made at the symbol rate R_M. Furthermore, there are some hidden assumptions in the PAM detector:

[Resampling] The ADC in general does not produce an integer number of samples per symbol, i.e., T_M/T_S is not an integer. As we will see later, a resampling system is required in the Rx chain that changes the sample rate from the ADC rate to a rate that is an integer multiple of the symbol rate.

[Symbol Timing Synchronization] The peak sample at the end of each symbol duration is not known in advance at the Rx and in fact does not necessarily coincide with a generated sample as well. This is because ADC just samples the incoming continuous waveform without any information about the symbol boundaries. This is a symbol timing synchronization problem which we will learn later.

If you found this article useful, you might want to subscribe to my email list below to receive new articles.


Leave a Comment

Your email address will not be published. Required fields are marked *