# spectral bandwidth of QPSK signal

When running the MATLAB QPSK transmitter and receiver example (found here: QPSK Tx and Rx Example) you can see on the plot of the spectrum that the bandwidth is ~80kHz.

If we double click on Bits Generation we can see how each frame is constructed.

For a symbol rate of 50kHz we get $$\ T_s = 1/50000$$

From the settings we can see that qpsktxrx.FrameTime = 0.02266

We can also see that qpsktxrx.PayloadLength = 2240.

We know that for QPSK there are 2 bits per symbol.

Then, since we are repeating a 13 bit barker code twice and appending it to the beginning of the frame, we get a total frame size of 2240+26 = 2266 bits = 1133 symbols

The size of the frame is 1133 symbols.

For a symbol rate of 50kHz we get $$\ T_s = 1/50000$$

$$\ T_s * FrameSize = T_s *1133 = 0.02266$$ is the Frame Time for 1133 symbols

Then FrameTime/FrameSize = 0.02266/1133 = 0.00002 seconds per symbol

Then 1/0.00002 = 50000 symbols/sec = 100000 bits/second  because 1 symbol is 2 bits

The Shannon-Hartley theorem states: $$\ R = 2*B*log_2(M)$$

Shannon-Hartley Theorem

where $$\ R$$ has units of bits/second

$$\ B$$ is in hertz

and $$\ M=4$$ for QPSK

Solving for B: $$\ B = R/(2*log_2(M)) = 100000/(2*2) = 25000$$ Hz

Why is the bandwidth in the spectral plot 80kHz?

• The bandwidth is actually around 38 Hz or so (only the positive frequencies count).
– MBaz
Commented Jul 28, 2023 at 23:38
• The symbol rate will approximately be the RF bandwidth (the double sided bandwidth at baseband or 80 KHz) for all pulse shaped BPSK, QPSK, QAM, M-PSK etc. The calculation of 500Ksymbols/sec does not appear to be correct or the spectrum is incorrectly scaled Commented Jul 29, 2023 at 0:14
• You're right, it should be 50000 not 500k. I edited it to be correct. Commented Jul 29, 2023 at 0:43
• I know that if a windowed sinc function is used for each symbol, you can push 2 bits per second per Hz of channel bandwidth. Commented Jul 29, 2023 at 3:28

Regardless of how $$B$$ is defined earlier in the Wikipedia article, the equation starting with where the Nyquist rate is introduced is a single-sided bandwidth:

$$f_p < 2B$$

Which state that (single-sided) bandwidth must be greater than the pulse frequency divided by two. We can easily confirm this with the simplest case of a sinusoid, which would be the minimum frequency required to send a 10101010... pulse pattern. Below I show a 101010... sequence at a 2 bps rate as rectangular pulses along with it's Fourier Transform as odd harmonics extending to infinity and going down in magnitude at $$1/f$$. We can filter this down to the first harmonic and still guarantee the demodulation of a 10101..pattern with a simple threshold detector. This would result in a 1 Hz sine wave, consistent with $$B=1$$ referring to the single sided bandwidth. (It is this spectrum with both positive and negative frequencies that becomes the passband bandwidth = 2B when translated to any other carrier frequency).

The bandwidth is given by only the symbol rate and pulse shaping used. None of the other parameters will modify the bandwidth.

Specifically, and assuming random data modulation, the RF bandwidth will be given by the Fourier Transform of the pulse shape used. For example, the plot below shows the spectrum for 16 QAM before and after pulse shaping, along with the real portion of the waveform (both real and imaginary portions will have 4 levels for 16 QAM; similarly QPSK would have 2 levels). Notice that the blue represents the real part of the time domain waveform along with spectrum for the case of rectangular pulses - in this case the spectrum is a Sinc function (power spectral density would be Sinc squared) as the Fourier Transform of a renctangular pulse is a Sinc. The null the null bandwidth of the main lobe is $$2/T$$ where $$1/T$$ is the symbol rate, with $$T$$ as the symbol duration.

The pulse shaped waveform and its spectrum is also shown in red. A perfect (an unrealizable) pulse shaping filter could reduce the bandwidth to $$1/T$$ which is the symbol rate. Realizable pulse shaping such as Raised Cosine Pulse Shaping has a parameter referred to as excess bandwidth. The greater the excess bandwidth, the simpler the pulse shaping implementation (and shorter delay)/

The OP has a symbol rate of 50 KHz with an estimated RF bandwidth of 80 KHz. This would be consistent with a pulse shaping filter with an excess bandwidth of 0.6.

Typically transmitters are implemented with a "Root Raised Cosine Filter" with the subsequent Root Raised Cosine Filter in the receiver as the matched filter. I don't see the specific details of the OP's implementation, but this is to explain that the 80 KHz bandwidth shown is reasonable for a 50 KHz symbol rate.

• Hay Dan, would you be interested in teaching me what the advantage is that the Raised Cosine Filter has over a sinc function that is windowed with, say, a good Kaiser window? Commented Jul 30, 2023 at 17:01
• @robertbristow-johnson I had the same questions, as your solution would undoubtably be better (see dsp.stackexchange.com/q/70516/21048 ). fred harris explained to me that it was the momentum of standards and raised cosine was "good enough". Commented Jul 31, 2023 at 1:07