i am simulating OFDM transmitter in matlab....As u all know OFDM consists of different sub systems such as FEC coding, Bit interlever , Modulator , IFFT block and Adding cyclic prefix.... i have integrated all the subsystems.. now i have to check the datarate of the complete OFDM transmitter...how to find the datarate of this system.... i am comparing Different modulation technique, in the sense am using qpsk, 8 qam and 16 qam modulations and have to compare the datarate of these modulation techniques...

  • $\begingroup$ What do you mean by "different modulation technique"? Do you mean differential modulation? $\endgroup$
    – Deve
    Jan 16, 2013 at 8:06
  • 1
    $\begingroup$ welcome to DSP.se! The community here will be glad to help with constructive and clear question: yours, unfortunately, seems scarce on details. You did tell us that you did something on your own, and what you did, which is commendable, but then you just tell us what you want to know. You didn't actually tell us where the problem is: did you have a problem with the approach? Do you have a part of theory you need some help with to understand? What is the specific problem you are facing? Also, it's nice in the questions is to mention your motivation: makes it more interesting to everybody. $\endgroup$
    – penelope
    Jan 16, 2013 at 8:47
  • $\begingroup$ Hi, as am new for the forum, "forgive me if the question is too localized" .. i have edited the question... and please inform if i have to give any further information about my problem. $\endgroup$ Jan 16, 2013 at 13:41
  • 1
    $\begingroup$ It's still not clear what your question is. The data rate is whatever you choose it to be in your simulation. It's going to be a function of the OFDM symbol period, the number of carriers, the modulation used on each carrier, and any error-correction encoding that is employed. If you understand all of these subsystems, then it should be straightforward to calculate the data rate that you're looking for. $\endgroup$
    – Jason R
    Jan 16, 2013 at 13:47
  • $\begingroup$ yes sir we can calculate theoritacally if we understand all the subsystem...but my problem is how to confirm that expected data rate is achieved in our matlab model??... example 16 Qam modulation has data rate is in some Mbps... how to measure data rate practically in matlab? this is my problem... $\endgroup$ Jan 16, 2013 at 18:02

1 Answer 1


A bit rate can't be "measured" like a physical quantity but it can be calculated from the following parameters (given the subsystems you mentioned):

  • $f_\mathrm{S}$ sampling rate
  • $N_\mathrm{SC}$ number of subcarriers (= IFFT size)
  • $N_\mathrm{U}$ number subcarriers used for data transmission (excluding possible pilot tones)
  • $N_\mathrm{G}$ length of cyclic prefic in samples
  • $M$ number of bits per subcarrier (for L-QAM, $M = log_2L$) (*)
  • $r$ coderate of FEC, where $r = k/n$, with $k$ length of code word, $n$ length of information word

The length $T$ of an OFDM symbol is the basic symbol length plus the length of cyclic prefix: $$ T = \frac{N_\mathrm{SC}}{f_\mathrm{S}} + \frac{N_\mathrm{G}}{f_\mathrm{S}} $$ Each OFDM symbol contains $N_\mathrm{U}$ subcarriers that carry $M$ bit of information each. Thus the bit rate $R$ is (excluding FEC): $$ R = \frac{N_\mathrm{U}M}{T} = \frac{N_\mathrm{U}Mf_\mathrm{S}}{N_\mathrm{SC} + N_\mathrm{G}} $$ Finally, if some overhead by FEC is added, the net bit rate $\tilde{R}$ is given by $$ \tilde{R} = rR $$

(*) A note on $M$: as Jim Clay has pointed out in his comment, the number of bits doesn't have to be the same for all subcarriers but is sometimes chosen individually for each subcarrier. This is often refered to as "bit loading". In this case $N_\mathrm{U}M$ in the expression for $R$ has to be replaced by $$ \sum_i^{N_\mathrm{U}}M_i $$ where $M_i$ is the number of bits on the $i$th subcarrier.

  • $\begingroup$ Good answer. The one qualifier that I'd add is that the number of bits per sub-carrier is sometimes dynamic, based on channel conditions. $\endgroup$
    – Jim Clay
    Jan 18, 2013 at 20:42
  • $\begingroup$ @JimClay That's a good point. I'll add it $\endgroup$
    – Deve
    Jan 18, 2013 at 21:49

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.