I'm trying to understand how OFDM works thanks also to the Simulink OFDM block.

Now, I have understood that the OFDM modulation "convert" a faster bit rate using a certain bandwidth into a number of slower bit rate streams using a series of subcarriers each of them large a portion of the original bandwidth. I have also understood that because of having a huge bank of filters that need to exactly filter the bandwidths of the subcarriers a faster and way less expensive solution is to convert the bit streams using the IFTT in TX.

Now, I haven't understood how the IFTT conversion is linked to the bandwidth occupation of each subcarrier and the number of subcarriers.

For instance, if I have a bitstream of 2000 bit/s so, the bit period is 5e-4; the bitstream is modulated with a 4-QAM so at the IFFT input I will have 1000 symbols per second (each one with a period of 1e-3 s). I'm using an IFTT with length = 64 (which is the standard value for the OFDM modulation block in Simulink) how many carriers have I got?

Another thing I can't understand is the cyclic prefix length. I know it is used to avoid ISI in RX but, how long should it be? I guess I have to adapt it to my channel if it has some sort of multipath fading.


1 Answer 1


A complex IFFT of length 64 will give you up to 64 subcarriers. However, not all of these will be used for data.

  • The carrier that's modulated to DC will usually be left empty, to avoid LO leakage in the receiver.

  • Some subcarrier positions will be dedicated to pilot symbols. These are generated by simply assigning those symbols to specific data values.

  • Some subcarriers at the edge will be left empty to ensure some 'clear water' between other RF channels, to allow for receive filter selectivity.

Overall that means you'll have 50% to 75% usability for data from your IFFT.

The best way to regard the IFFT is as a way of constructing a single symbol containing a large number of bits. Let's say your 64 IFFT gives us 40 data subcarriers, which gives it a payload of 80 bits from the original bitstream.

If the original stream was 2kbit/s, then the new symbol rate would be 2k/80 = 25 per second. That's so slow that you'd probably want to multiplex in some other data source streams to bring the rate up, but let's continue with the design using this symbol rate.

We will transmit one OFDM symbol every 40 ms. The cyclic prefix has to be chosen long enough to allow for synchronisation between TX and RX, and to contain all the expected multipath spread. Let's say you're working in a fairly dispersive medium and you need 5 ms to handle the multipath. Then you could use a 35 ms symbol with 5 ms cyclic prefix. If you needed 10 ms to tolerate the multipath, then you would use a 30 ms symbol with 10 ms cyclic prefix. These will give you different subcarrier spacings.

For practical RF systems, you'll often see numbers orders of magnitude faster than this. However, the numbers I've calculated may well be appropriate for an acoustic system.

  • \$\begingroup\$ Isn't the bit rate on the subcarriers 2k/80 = 25 ? The symbol rate after the modulation should be 2k/40 = 50 or am I wrong? \$\endgroup\$
    – NicoCaldo
    Commented Jun 14, 2021 at 12:29
  • 1
    \$\begingroup\$ @NicoCaldo You're wrong. Re-read my answer carefully. You've already, according to your question, coded two bits per QAM symbol, so 40 carriers is 80 bits/symbol. So the symbol rate needed to get a gross 2k bit/s is 2k/80 = 25 symbols per second. \$\endgroup\$
    – Neil_UK
    Commented Jun 14, 2021 at 12:51
  • \$\begingroup\$ it makes sense; I got it now. And about the cyclic prefix, how can I convert the 5 ms I need to handle the multipath in the actual prefix length? \$\endgroup\$
    – NicoCaldo
    Commented Jun 14, 2021 at 13:15
  • 1
    \$\begingroup\$ @NicoCaldo The actual length of a 5 ms prefix is 5 ms. Perhaps you mean the length relative to a symbol, which is 5/35 = 0.143. Most implementations I've seen use prefix lengths of binary fractions of a symbol, perhaps for mathematical convenience, so you might round down to 0.125 or up to 0.25, however there's no fundamental reason not to use 0.143 rounded to the nearest bit. The path requirements are rarely known exactly, so it's usually OK to pick a binary fraction. \$\endgroup\$
    – Neil_UK
    Commented Jun 14, 2021 at 13:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.