Differential phase shift keying modulation
y = dpskmod(x,M)
y = dpskmod(x,M,phaserot)
y = dpskmod(x,M,phaserot,symbol_order)
y = dpskmod(x,M) outputs the complex envelope y of the modulation of the message signal x using differential phase shift keying modulation. M is the alphabet size and must be an integer. The message signal must consist of integers between 0 and M-1. If x is a matrix with multiple rows and columns, the function processes the columns independently.
y = dpskmod(x,M,phaserot) specifies the phase rotation of the modulation in radians. In this case, the total phase shift per symbol is the sum of phaserot and the phase generated by the differential modulation.
y = dpskmod(x,M,phaserot,symbol_order) specifies how the function assigns binary words to corresponding integers. If symbol_order is set to 'bin' (default), the function uses a natural binary-coded ordering. If symbol_order is set to 'gray', it uses a Gray-coded ordering.
The example below plots the output of the dpskmod function. The image shows the possible transitions from each symbol in the DPSK signal constellation to the next symbol.
s = RandStream.create('mt19937ar', 'seed',131); prevStream = RandStream.setGlobalStream(s); % seed for repeatability M = 4; % Use DQPSK in this example, so M is 4. x = randi([0 M-1],500,1); % Random data y = dpskmod(x,M,pi/8); % Modulate using a nonzero initial phase. plot(y) % Plot all points, using lines to connect them.
For another example that uses this function, see Example: Curve Fitting for an Error Rate Plot.