# Simulation of M-PSK modulation techniques in AWGN channel

### M-PSK Modulation and simulation methodology:

The general expression for a M-PSK signal set is given by

Here M defines the number of constellation points in the constellation diagram and essentially the M-PSK type. For example M=4 implies 4-PSK or QPSK, M=8 implies 8-PSK. The value of M depends on another parameter ‘k’ – the number of bits we wish to squeeze into a single M-PSK symbol. For example if we wish to squeeze in 3 bits (k=3) in one transmit symbol, M = 2^(k) = 2^(3) = 8. This gives us 8-PSK configuration.

Equation (1) can be separated into cos and sin terms as follows

This can be written as

$latex \begin{matrix}

s_i(t) = s_{i1}\phi_{1}(t) + s_{i2}\phi_{2}(t) \;\; \rightarrow (3)\\

where,\\

\\

s_{i1} = \sqrt{E_s}\; cos \left[ \frac{(i-1)2\pi}{M} \right] \;,\; s_{i2} = \sqrt{E_s}\; sin \left[ \frac{(i-1)2\pi}{M} \right]\\

\\

\phi_{1}(t) = \frac{V cos(2\pi f_c t)}{\sqrt{E_s}},\phi_{2}(t) = \frac{V sin(2\pi f_c t)}{\sqrt{E_s}}\end{matrix} &s=2&fg=0000A0$

Here $latex \phi_{1}(t) $ and $latex \phi_{2}(t) $ are orthonormal basis functions that follows from Gram-Schmidt orthogonalization procedure and $latex s_{i1} $ and $latex s_{i2} $ are the coefficients of each signaling point in the M-PSK constellation. $latex E_s$ is the symbol energy usually normalized to $latex 1/\sqrt{2} $ The constellation points on the M-PSK constellation lie $latex 2 \pi /M \;$ radians apart and are placed on a circle of radius $latex \sqrt{E_s} $. The coefficients s_{i1} and s_{i2}are termed as inphase (I) and quadrature-phase (Q) components respectively.

The ideal constellation diagram for M-PSK contains M equally spaced signaling points that are located at the distance $latex \sqrt{E_s} $ from the origin. Figure 1 illustrates the ideal constellation diagram for 8-PSK constellation.

The generated I and Q components are then added with AWGN noise of required variance depending on the required E_{s}/N_{0}. The received signal’s constellation is corrupted with noise and the detection is based on comparing the received symbols with the ideal signaling points and making a decision based on the minimum distance.

Finally the simulated and theoretical symbol error rates are computed.

The theoretical symbol error rate ^{[1]} for M-PSK modulation is given by

### Matlab Simulation:

#### File 1: simulateMPSK.m

Check this book for full Matlab code.

Simulation of Digital Communication Systems Using Matlab – by Mathuranathan Viswanathan

#### File 2: M_PSK_wrapper.m

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
% Demonstration of Eb/N0 Vs SER for all M-PSK modulation scheme % Author: Mathuranathan for http://www.gaussianwaves.com % License : creative commons : Attribution-NonCommercial-ShareAlike 3.0 % Unported clear; clc; %---------Input Fields------------------------ N=1000000; %Number of input symbols EbN0dB = 0:2:12; %Define EbN0dB range for simulation k=2:1:5; % Number of Symbols for each M-PSK modulation Rc=1; %Rc = code rate for a coded system. Since no coding is used Rc=1 %--------------------------------------------- M=2.^k; %for M-PSK modulation. simulatedSER = zeros(length(M),length(EbN0dB)); theoreticalSER = zeros(length(M),length(EbN0dB)); plotColor =['b','g','r','c']; for i=M, [simulatedSER(i,:), theoreticalSER(i,:)]= simulateMPSK(i,N,EbN0dB,Rc); end %Plot commands j=1; for i=M, plot(EbN0dB,log10(simulatedSER(i,:)),sprintf('%s-',plotColor(j))); hold on; j=j+1; end j=1; for i=M, plot(EbN0dB,theoreticalSER(i,:),sprintf('%s*',plotColor(j))); hold on; j=j+1; end legend('Simulated - QPSK','Simulated - 8-PSK','Simulated - 16-PSK','Simulated - 32-PSK','Theoretical - QPSK','Theoretical - 8-PSK','Theoretical - 16-PSK','Theoretical - 32-PSK'); xlabel('Eb/N0(dB)'); ylabel('Symbol Error Rate (Ps)'); title('Eb/N0 (dB) Vs Symbol Error Rate for various M-PSK schemes'); grid on; |

### Simulation Result:

### Reference

[1] John G. Proakis, “Digital Communciations”, McGraw-Hill; 5th edition### See Also

[1] BER Vs Eb/N0 for 8-PSK modulation over AWGN[2] BER Vs Eb/N0 for QPSK modulation over AWGN

[3]QPSK modulation and Demodulation

[4] Simulation of BER Vs Eb/N0 for BPSK modulation over AWGN in Matlab

[5] Intuitive derivation of Performance of an optimum BPSK receiver in AWGN channel

Pingback: Procedure for plotting any PDF in Matlab | GaussianWaves()

Pingback: Chi-Squared Distribution | GaussianWaves()

Pingback: Non-central Chi-squared Distribution | GaussianWaves()

Pingback: Simulation of Symbol Error Rate Vs SNR performance curve for 16-QAM in AWGN | GaussianWaves()

Pingback: Simulation of Symbol Error Rate Vs SNR performance curve for 64-QAM in AWGN | GaussianWaves()

Pingback: BER Vs Eb/N0 for QPSK modulation over AWGN | GaussianWaves()

Pingback: QPSK modulation and Demodulation | GaussianWaves()

Pingback: Channel Capacity & Shannon’s theorem – demystified | GaussianWaves()