quadrature amplitude modulator veriloga model

QAM stands for “quadrature amplitude modulation,” the format by which digital cable channels are encoded and transmitted via cable. QAM tuners can be likened to the cable equivalent of an ATSC tuner which is required to receive over-the-air (OTA) digital channels broadcast by local television stations. Many new digital televisions contain both and are labeled “with ATSC/QAM Tuner”. Unlike the case with ATSC tuners there is no FCC requirement that QAM tuners be included in new television sets, but the same hardware is used for both and QAM is commonly included.
Quadrature Amplitude Modulation (QAM) is a complicated name for a simple technique. In the simplest of terms, Quadrature amplitude modulation is the combination of amplitude modulation and phase shift keying. More technically, quadrature amplitude modulation is a system of modulation in which data is transferred by modulating the amplitude of two separate carrier waves, mostly sinusoidal, which are out of phase by 90 degrees (sine and cosine). Due to their phase difference, they are called quadrature carriers.
module qam16(in,out);
input [0:3] in;
output out;
voltage in,out;
parameter real freq = 1.0 from (0:inf);
parameter real ampl = 1.0, thresh = 2.5;
parameter real tdelay = 0 from [0:inf),
ttransit = 1/freq;
real x,y,phi;
integer row,col;
row = 2*(V(in[3]) > thresh + V(in[2]) > thresh);
col = 2*(V(in[1]) > thresh + V(in[0]) > thresh);
x = transition(row-1.5,tdelay,ttransit);
y = transition(col-1.5,tdelay,ttransit);
phi = 2 * `M_PI * freq * $realtime();
V(out) <+ ampl * (x * cos(phi) + y * sin(phi)); end endmodule Unmodulated signals exhibit only two positions enabling a transfer of either a 0 or 1. In quadrature amplitude modulation, it is possible to transfer more bits per position as there are multiple points of transfer. In quadrature amplitude modulation, a signal obtained by summing the amplitude and phase modulation of a carrier signal (a modulated sine and cosine wave or quadrature waves) is used for the data transfer. As the number of transfer points remains high, it is possible to convey more bits per every position change. The possible states of a particular configuration can be best denoted using a constellation diagram. In a constellation diagram, constellation points are arranged in a square grid with equal horizontal and vertical spacing (other configurations are possible as well). In digital communication, as data is binary, it follows that the number of points in the grid usually will be a function of the power of 2 (2, 4, 8, etc). As the quadrature amplitude modulation is usually square, some of these may be missing or atypical. The most common ones are 16-QAM, 64-QAM, 128-QAM and 256-QAM. Even if it's possible to transfer more bits per symbol with higher order constellations, theoretically, an inherent technical problem may exist. In order to maintain the mean energy of a higher order constellation at the same level, it is imperative that the constellation points remain close to each other. However, such a configuration brings with it additional chances of noise and additional corruption. In practical application, higher order QAM delivers more data, but delivers it less reliably (that is, with a higher bit error rate) than the lower order QAM. Incidentally, rectangular quadrature amplitude modulations are preferred to non-rectangular quadrature amplitude modulations as the former is easier to modulate and demodulate.