I implemented a modulator for a transmitter, which sends baseband modulated signal.

The transmitter has the following parameters:

  1. datarate : 520 Ksps (min), 64,44 Msps (max)
  2. Bandwidth: BW = 56 MHz (max)
  3. 47 MHz to 6 GHz

Of course, with my design probably I can not reach max data rate, that is why I want to compute the data rate which I can design with my design in this transmitter.

The modulator:

  1. oversampling ratio \$V = 4\$
  2. nonlinear modulation

I remember I can compute datarate \$R\$ by using the following equation $$ R= 2 \cdot BW \cdot \log_2 M, $$ where \$M\$ is modulation level. In my case, I don't know the modulation level.

Do I have another option to compute the data rate I can reach?

  • \$\begingroup\$ "M is modulation level": M is the number of possible symbols you can transmit. Then, each of these symbols "carries" \$\log_2 M\$ bits. The assumption that you can transmit twice the bandwidth in symbols is a strong one, and one that we don't usually make. \$\endgroup\$ Commented May 30, 2022 at 9:40
  • \$\begingroup\$ Modulation level is something you can adjust in order to balance data rate with noise immunity. Do you know about constellation diagrams? A generic transmitter transmits points on the constellation diagram, and noise randomly moves those points around. You can divide up the constellation space into points with enough space between them so that if noise corrupts one, it can still be recognized a certain percentage of the time (perhaps 99.999999%, or 1-in-100-million mistakes). This depends on the noise level. and available signal power. \$\endgroup\$ Commented May 30, 2022 at 9:41
  • 1
    \$\begingroup\$ @user253751 since they specify "nonlinear modulation", I'd assume we can talk about symbols, but not necessarily about constellation points (unless you count e.g. a CP-FSK frequency deviation sequence of \$k\$ deviations a constellation point in \$k\$-dimensional space). \$\endgroup\$ Commented May 30, 2022 at 9:47
  • \$\begingroup\$ It's a bit surprising, AD23, to already know you're using a nonlinear modulation on this channel. Seems a bad choice to make at this point, and also, a choice particularly not done by systems with your bandwidth below 6 GHz, for good reason. \$\endgroup\$ Commented May 30, 2022 at 9:48
  • \$\begingroup\$ @MarcusMüller I simulate nonlinear modulator, the transmitter with the characteristic in the question I have for transmission the output of the modulator. \$\endgroup\$
    – AD23
    Commented May 30, 2022 at 10:31

1 Answer 1


You need to define \$M\$. It's not something you can calculate from anything else that you're given.

Obviously, increasing it gives you more data per symbol, which gives you more data per second, but that only works until the differences between the symbols are small enough compared to noise that your error rate becomes higher than you can, including your channel coding, tolerate.

So, you will need to define:

  1. Worst-case SNR you still need to work at
  2. Maximum acceptable error rate at that SNR. This will depend on the channel code you choose and your application's needs. There's never a 0-error transmission, that's mathematically impossible in the presence of noise, so you will need to sit down and come up with a number like "It's OK if one in xxxxx bits is wrong"
  3. A BER curve for each of your candidates for \$M\$, which relates error rate to SNR.
  4. Pick an \$M\$ that still achieves the error rate at the given SNR.

Often, you have to try a few combinations between modulation methods, \$M\$ and channel codes.

  • \$\begingroup\$ if you speak about SNR, BER...I will need to implement a complete channel with a transmitter and a receiver, right? I am looking for a method how I can compute it without noise, BER, because I research only the transmitter side, without channel and a receiver. So...I have an input data signal and nonlinear modulator with baseband signal output and a chip as a transmitter of the ouptut baseband modulated signal. \$\endgroup\$
    – AD23
    Commented May 30, 2022 at 10:28
  • \$\begingroup\$ you don't need to implement that, you need to model that. You can't build a transceiver without knowing what your channel is and without knowing how many bit errors you can tolerate! This really makes no sense. You're proposing a solution without knowing the problem. That's not how engineering works :) \$\endgroup\$ Commented May 30, 2022 at 10:29
  • \$\begingroup\$ “You're proposing a solution without knowing the problem. That's not how engineering works” Sadly, that is how it works now. Just hack something until it works in the ideal case, then quickly move on until someone notices. There’s a reason it’s referred to as “development” rather than “engineering”. You just wait to see what “develops” :-( \$\endgroup\$
    – TimB
    Commented May 30, 2022 at 14:07
  • \$\begingroup\$ "until it works" still requires a problem to solve :) Here, the question was "how to find an \$M\?" and for that you will, indeed, need to have some idea of the problem you're trying to solve, @TimB :) \$\endgroup\$ Commented May 30, 2022 at 14:28
  • \$\begingroup\$ I am trying to understand and I am totally confused...sorry :( I have a modulated signal( output of a modulator), I add a noise ( "channel") and now without implementation a process of a receiver side I compute BER, right? \$\endgroup\$
    – AD23
    Commented Jun 7, 2022 at 6:09

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.