Quadrature amplitude modulation (QAM) is a modulation scheme in which two sinusoidal carriers, one exactly 90 degrees out of phase with respect to the other, are used to transmit data over a given physical channel. Because the orthogonal carriers occupy the same frequency band and differ by a 90 degree phase shift, each can be modulated independently, transmitted over the same frequency band, and separated by demodulation at the receiver. For a given available bandwidth, QAM enables data transmission at twice the rate of standard pulse amplitude modulation (PAM) without any degradation in the bit error rate (BER). QAM and its derivatives are used in both mobile radio and satellite communication systems.
You can use the numerically controlled oscillator (NCO) Compiler to design a dual-output oscillator that accurately generates the in-phase and quadrature carriers used by a QAM modulator. The carrier frequency of each sinusoid can be set to any precision by defining the phase increment input to the NCO. A block diagram of the QAM modulator is shown Figure 1. A raised cosine finite impulse response (FIR) filter is used to filter the data streams before modulation onto the quadrature carriers. When passed through a band-limited channel, rectangular pulses suffer from the effects of time dispersion and tend to smear into one another. This pulse shaping filter eliminates inter-symbol interference by ensuring that at a given sampling instance, the contribution to the response from all other symbols is zero.
Figure 1. QAM Modulator Block Diagram

QAM Reference Design Files Provided
The QAM reference design files are located in the \refdesigns\qam\* folder. Table 1 describes the files provided with this reference design.
To download the reference design files, go to the NCO product page and click on the free test drive icon.
| Table 1. QAM Reference Design Files | |
| File | Description |
| qam.gdf | Top-level design file, which can be compiled and simulated in the MAX+PLUS® II or QuartusTM II software. |
| qam.v | Top-level Verilog HDL model. |
| tbqam.v | Verilog HDL testbench, which writes the I and Q outputs and the QAM signal to text files. |
| qam.mdl | Simulink model of the QAM design. |
QAM Functional Description
16-QAM is achieved by modulating two 4-level PAM signals onto orthogonal carriers. The FIR filters in this design are 23-tap raised-cosine filters, and were designed using Altera’s FIR Compiler. The NCO generates two 1-MHz orthogonal carriers and uses a dual-output, ROM-based architecture with the following parameters:
- Phase accumulator width: 24
- ROM address width: 10
- Magnitude precision: 8
A sample of the output from the testbench is shown in Figure 2. The in-phase and quadrature sequences have been modulated onto the orthogonal carriers to occupy a single channel centered at 1 MHz.
Figure 2. QAM Testbench Output

You can implement continuous-amplitude modulation schemes such as quadrature phase shift keying (QPSK), offset QPSK, and differential phase shift keying (DPSK) by making minor modifications to this reference design. Phase shift keying modulation schemes modify the phase of the carrier to transmit data through the channel.
QPSK is used when the phase transitions of 180 degrees lead to zero crossings in a pulse-shaped QPSK signal causing undesirable sidelobes in the spectrum of the modulated signal. You can implement the offset can by incorporating a delay of half the symbol interval between the two quadrature datapaths and then modulating the carriers as before. Similarly, DPSK requires additional logic at the front end of the QAM modulator to generate the encoded data sequences to the I and Q inputs of the modulator.

