currently im creating an application capable of generating QAM and OFDM signal to be transmitted using SDR. The whole application is implemented in MATLAB Simulink using only code generateable functions to deploy later on.

To sum up the problem: I generate signals at a fixed FrameSize (8192) and a fixed StepTime (0.01s) which results in a sampling frequency of 819200Hz. The problem is: whatever QAM-order I choose (64, 128, 16 etc.), it seems like the symbols are spread over the whole nyquist spectrum which is ~[-40kHz - 40kHz]. I will attach an example picture using 128-QAM with given sampleRate, FrameSize etc: enter image description here

However, I must admit I do not really know how to interpret this spectrum. I can see that the amount of spikes I am getting equals to Framesize/QAM-Order -> $ \frac{8192}{128} = 64$.

I also tried to increase the spectrum resolution by increasing the NFFT parameter in Simulink Spectrum Analyzer which gives me this when i zoom in: enter image description here

Here i realized that the all of these sidelobes sum up to be exactly 128 between the two big main lobes (which equals the QAM-order).

I am struggling to interpret the spectrum correctly so maybe someone could explain how to understand the findings I described.

Also if anyone has experience using MATLAB for these type of things i would greatly appreciate if anyone knows how to limit the bandwidth that the QAM signal is taking. I know that the Bandwidth is calculated like $\frac{1}{symbol rate}$. However in MATLAB the spectrum takes the whole available bandwidth which is greater than when calculating it.

I know there are a lot of questions here but i would appreciate every answer and every little piece of help i can get and I am happy to add more information on the problem if needed.

Thank you very much and best regards


1 Answer 1


I know that the Bandwidth is calculated like $1\over{symbolrate}$

This is not true. The bandwidth of the signal is typically calculated as some % of the signal energy that is within a frequency band or the spectrum that is above some specified energy level. This will depend on your symbol pulse shape.

Now, how to bandlimit a signal:

The key concept is that any signal that is finite in the time-domain is infinite in the frequency-domain. The simplest way to avoid inter-symbol-interference (ISI) in a signal is to separate the symbols out in the time domain so there is no overlap. This costs a lot of bandwidth, and the higher your symbol rate is, the more bandwidth you will use. If you are using NRZ or RZ encoding, you will have harmonics of the symbol frequency stretch on forever.

If you want to bandlimit a signal, you need to make the pulse shape infinite in the time-domain. The most common pulse shape that achieves this without causing ISI is the raised cosine pulse. In practice, the pulse is truncated after so many samples which technically makes it not bandlimited, but the truncation point is typically chosen to minimize computations while still meeting bandwidth requirements (as defined above).

Wikipedia has a good article on the raised cosine pulse: https://en.wikipedia.org/wiki/Raised-cosine_filter

This is often not necessary for OFDM because the signal bandwidth is divided out among all the different channels, but you may want to try it.

  • $\begingroup$ Thank you very much for you response. I think i figured it out. If i understand correctly, the QAM modulation result is not capable for bandwidth efficient transmission due to sharp rectangular shape in time domain. Therefore the different constellation states will be represented not by rectangle but raised cosine shape which eliminates a very large amount of frequencies from spectral point of view. What i did is use the matlab "sqrt raised cosine" filter on my QAM result which results in a smaller bandwidth usage. Would be nice if you could confirm my understanding and action. Thank you! $\endgroup$
    – noah123
    Commented Aug 24, 2021 at 13:10
  • $\begingroup$ @noah, yes that's what I would suggest, I'm glad it worked. $\endgroup$
    – Ryan
    Commented Aug 24, 2021 at 15:43
  • $\begingroup$ could you maybe describe why the pulse shaping is not required for OFDM? I guess since we transform the IQ symbols back to time domain and limit the different OFDM symbols in time domain by using the fixed amount of carriers, we also limit the bandwidth of the signal? If thats incorrect I would be thankful for a short clarification. $\endgroup$
    – noah123
    Commented Aug 25, 2021 at 8:29
  • $\begingroup$ I think this answer does a good job of explaining this dsp.stackexchange.com/questions/74087/… $\endgroup$
    – Ryan
    Commented Aug 25, 2021 at 9:04

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.