OFDM Orthogonal Frequency Division Multiplexing is a digital transmission scheme designed to give optimal data performance and selective fading protection over a band limited channel. Data is shared over a series of individually modulated carriers. OFDM is now pervasive over many different transmission systems. Typical applications include: Digital Television, DRM Digital Shortwave Broadcasting, DSL internet access over telephone lines (DMT Discrete Multitone), Cable Television and Cellular Telephony LTE & 5G networks (Ref.1). In this post I will consider the “hypothetical” design of an OFDM system for an amateur radio SSB_USB interface. I will simulate it with Scicos & GNU Radio Companion.


The idea of multiple signals spanning the bandwidth of a communications channel has its origin in early telegraphy. Instead of one telegraph working on a cable pair, telegraph signals were mutiplexed in frequency to make full use of the cable bandwidth (FDM Frequency Division Multiplexing). Research determined how fast each signal could be pulsed in order not to spill over into the adjacent lower and higher frequency telegraphy carriers. Similarly just before the advent of digital microwave and fibre optic transmission, analog point to point microwave systems typically carried 2700 voice channels (4KHz) stacked in groups & supergroups one above the other. Each voice channel could carry a voice signal or digital modem. Researchers determined early on the ideal spacing between carriers given various modulation schemes and data rates (Ref.2).


The key to OFDM is to choose the carrier spacing and modulation in such a way that there is no interference between adjacent modulated carriers. This can be accomplished by using orthogonality. Basically orthogonality means that if we multiply two carriers together, then the definite integral of their product (area under the curve) over a specific interval is zero. A simple demonstration of this is shown in Figure 1. A 200Hz tone is multiplied with a 300Hz tone and integrated over a period T = 1/(carrier spacing) = 1/100Hz = 10msec. In Figure 2 you can see from the product that the +area under the curve balances the -area under the curve over the duration of T = 10msec. The integrator goes to zero just before it resets at t = T. In Figure 3 a 200Hz tone is multiplied by a 275Hz tone and integrated over 10msec. The Integrator is >>0, so the two tones are not orthogonal over the interval. A tone multiplied by itself gives a DC voltage of 0.5 volts plus a tone at double its frequency.

Ref.3 (p.368-372) & Ref.4 (p.302-304) describe orthogonality and the construction of an OFDM waveform. Basically the 0,1…(N-1) carriers are spaced 1/T apart, where T is the baud duration on each carrier.
-nth carrier signal = sn(t) = bn*exp(j*2pi*fn*t)
-fn = n/T channel carrier frequency
-T = symbol time
-bn = data symbol on the nth channel
-s(t) = OFDM signal = sum(sn(t)) over all 0..(N-1) channels

Fig.1 Orthogonality SineGen1=200Hz SineGen2=300/275Hz
Fig.2 Trace1=Integrator Trace2=Product Trace3=200Hz Trace4=300Hz
Fig.3 Trace1=Integrator Trace2=Product Trace3=200Hz Trace4=275Hz

Simulation – 8 Channel

Let’s consider a hypothetical OFDM modem to be used on an amateur radio HF SSB transceiver using the USB interface common to many digital modulation schemes. The available bandwidth is (300,2700)Hz = 2400Hz with center frequency 1500Hz. If we choose an 8 carrier system, using 16QAM on each carrier at 300baud, we can achieve 9600bps:

-System Bit Rate = 9600bps
-Number Carriers N = 8 (numbered 0,1,2,3,……7)
-Carrier Modulation = 16QAM
-Midband = 1500Hz
-Baud Rate = Carrier Spacing = 300Hz Baud Time = 3.33msec
-Bit Rate = 4 x Baud Rate (2^4) = 1200bps per channel = 9600bps
-F0=300Hz, F1=600Hz, F2=900Hz, F3=1200Hz
-F4=1500Hz, F5=1800Hz, F6=2100Hz, F7=2400Hz

Figure 4 shows the Scicos block diagram of an 8 channel OFDM system. Figure 5 shows the individual superblock diagram used for each 16QAM channel modulator. In the previous post (Ref.5), I described how you can build an M_QAM system using Scicos. Each 16QAM channel modulator is fed by a Random Integer Generator (0,1,2,….15) at the baud rate of 300bdps. Each generator uses a different seed number to ensure randomness over all 16 sources. Figure 6 shows the output spectrum with the characteristic “Bart Head”. Figure 7 shows the output waveform, notice the huge difference in output amplitude. Figure 8 shows the individual I & Q data along with the Random Generator Output for Channel 5. Output from the modulator is written into a Matrix A for use later on by the demodulator

Fig.4 OFDM 8CH_16QAM Modulator Block Diagram
Fig.5 OFDM 8CH_16QAM Modulator Superblock
Fig.6 OFDM 8CH_16QAM Modulator Output Spectrum
Fig.7 OFDM 8CH_16QAM Modulator Output
Fig.8 OFDM 8CH_16QAM Modulator CH5_ IQ Data

Figure 9 shows the block diagram of the 8 channel demodulator, showing the portion for Channel 5. The modulator signal A is read in and multiplied by cos(w5t) and sin(w5t) to regenerate the I & Q data. The mixer outputs are integrated over Tb and feed sample & hold blocks. Figure 10 shows the reconstructed I & Q data along with the integrator outputs. Note the I & Q from Figure 8 & Figure 10 are identical.

Fig.9 OFDM 8CH_16QAM Demodulator Block Diagram
Fig.10 OFDM 8CH_16QAM Demodulator CH5_IQ data

Simulation – 128 Channel

The 8 channel system illustrates the process of OFDM. The problem with the 8 channel system is the baud time which is only 3.3msec. Ideally we would like the baud time to be much greater than the propagation delay in order to mitigate multi-path problems. To give us an upper bound on maximum data rate, we use the Shannon law.
-Shannon Law Capacity of 2400Hz = BW*log2(1+S/N)
-For 16QAM, S/N required for BER = 10^-6 = 16db = 39.81
-Capacity = 2400*log2(1+39.81) = 12.84Kbps

Also consider the propagation delay along the maximum F2 path:
-Virtual height F2 layer = 325Km
-Maximum Distance Zero Take Off Angle = 1121Km
-Maximum Propagation Distance = 1320Km = 4.4msec

Possible channel configurations, baud times for the same R =9600bps:
-150baud = 6.7msec, 16 Channel_16QAM
-75baud = 13.3msec, 32 Channel_16QAM
-37.5baud = 26.6msec, 64 Channel_16QAM
-18.75baud = 53.3msec, 128 Channel_16QAM

Ref.3 & Ref.4 illustrate how OFDM can be generated using the IFFT algorithm. Figures 11 & 12 show a 128 Channel 16QAM OFDM system simulated in GNU Radio Companion. The 128 channels are spread from -1.2KHz to +1.2KHz. Using DSP, these channels can be shifted to the center frequency of 1500Hz within the 2400Hz USB passband.

Fig.11 GNU Radio Companion OFDM 128CH_16QAM Block Diagam
Fig.12 GNU Radio Companion OFDM 128CH_16QAM Data Input & Output Spectrum
YouTube Video OFDM for SSB_USB
YouTube Channel
YouTube Channel


#1. “Orthogonal frequency-division multiplexing”

#2. “The history of orthogonal frequency-division multiplexing”, IEEE Communications Magazine, November 2009

#3. “Digital and Analog Communication Systems”, 7th Edition, Leon W. Couch, Pearson/Prentice Hall 2007, ISBN 0-13-142492-0

#4. “Analog & Digital Communication Systems”, 2nd Edition, Simon Haykin & Michael Moher, John Wiley, ISBN-13 978-0-471-43222-7

#5. “64QAM for LTE_5G”, Blog Post

#6. GNU Radio Companion

#7. ScicosLab with Modnum Toolbox

#8. “Learn Telecommunications by Simulation” EBook

#9. “HF High Frequency Radio Telecommunications Learn by Simulation” EBook