# Why should the number of subcarriers of OFDM system be a power of 2?

I notice that almost all papers use the number of subcarriers of 64, 128,256.. so on, which is a number of $$2^k$$ and $$k$$ is an integer.

Why is the number of subcarriers always like that? Can we use any number or it must be only using one of those numbers?

Implementing an IFFT and FFT engine which is a power of $$2$$ is easier in hardware and hence if an OFDM system is talked about, it is talked about in $$2^k$$ length FFT. All practical Communication system based on OFDM use $$2^k$$ length FFT-IFFT engines.

However, for OFDM in principle, it is not required to have FFT-IFFT in power of $$2$$.

There are different factors which may affect the choice of number of sub-carriers based on multi-path channel response in the frequency range of operation and maximum doppler spread the channel expect to suffer.

• Not all use radix 2 FFT-IFFT engines. See intel.cn/content/dam/www/programmable/us/en/pdfs/literature/an/… for instance. May 16 '20 at 4:03
• @auspicious99 but that is also implemented using 512 point FFT. So, you see, you cannot get any arbitrary point FFT. This way you can only get n512 point FFT. Only the last stage is Radix-3 to get 1536 FFT output in this particular case. So, it can be done for sure. The point is it is not done generally. May 16 '20 at 12:50
• Yes, agreed, not the same as truly using another radix throughout. May 16 '20 at 13:23

Not necessary. In DRM (Digital Radio Mondaile) specification, for some channels number of careers are not the power of 2. Power of 2 makes the implementation of FFT and IFFT simpler.

It is most convenient for implementation of the IFFT and FFT, that the number of subcarriers is a power of 2. However, it is not necessary.

Even in practical systems, it may not be a power of 2. In LTE, for example, there are 6 allowed bandwidths, ranging from 1.4 MHz to 20 MHz. For the 15 MHz deployment bandwidth, the number of subcarriers is 1536. See this doc for more details.

But how would a 1536-point FFT be implemented in practice? See this Application Note on how it might be implemented. A key is the radix-3 engine.