Communications Toolbox    
ddemodce

Digital baseband demodulator

Syntax

Optional Inputs

Input
Default Value, or Default Behavior If Input Is Omitted
opt
ddemodce demaps after demodulating. If the method is ASK, then the algorithm does not use a Costas loop. If the method is FSK, then demodulation is coherent.
num, den
Omitting these arguments prevents ddemodce from using a filter.
amp
[1:length(numsig)]
phs
numsig*0

Description

The function ddemodce performs digital baseband demodulation. The corresponding modulation function is dmodce. The table below lists the demodulation schemes that ddemodce supports.

Demodulation Scheme
Fourth Input Argument
Where /opt Can Contain
M-ary amplitude shift keying
'ask/opt'
/nomap; /costas
M-ary frequency shift keying
'fsk/opt'
/noncoherence
Minimum shift keying
'msk'

M-ary phase shift keying
'psk/opt'
/nomap
Quadrature amplitude shift keying
'qask/opt', 'qask/arb/opt', or 'qask/cir/opt'
/nomap

The second column of the table indicates in bold type the required portion of the fourth input argument for ddemodce. The third column indicates optional flags that you can append to the fourth argument. The order of optional flags does not matter.

To Demodulate Without Demapping (ASK, PSK, QASK Only)

Ordinarily, the ddemodce function first demodulates the analog signal it receives and then demaps the demodulated signal in order to recover the digital message signal. The optional /nomap flag, appended to the fourth input argument, prevents ddemodce from demapping. The output is then an analog signal z whose sampling rate is Fs. The size of z depends on the size of y and the demodulation method:

You can use the demodmap function to perform the demapping step. The /nomap option is not available for FSK or MSK demodulation.

To Demodulate a Digital Signal (General Information)

The generic syntax z = ddemodce(y,Fd,Fs,...) demodulates the digital message signal z from a received analog signal y. After measuring the distance from the received signal to all possible digits in the coding scheme, ddemodce returns the nearest digit.

y is a complex matrix and z is a real matrix. The sizes of y and z depend on the demodulation method:

The sampling rates in hertz of y and z, respectively, are Fs and Fd. (Thus 1/Fs represents the time interval between two consecutive samples in y, and similarly for z.) The ratio Fs/Fd must be a positive integer. The time interval between two decision points is 1/Fd.

The generic syntax z = ddemodce(y,Fd,[Fs initphase],...) is the same, except that the third input argument is a two-element vector instead of a scalar. The first entry, Fs, is the sampling rate as described in the paragraph above. The second entry, initphase, is the initial phase of the carrier signal, measured in radians.

To use a lowpass filter in conjunction with ASK, PSK, or QASK demodulation, include num and den in the list of input arguments. num and den are row vectors that give the coefficients, in descending order, of the numerator and denominator of the filter's transfer function. If num is empty, zero, or absent, then ddemodce does not use a filter.

To Demodulate a Digital Signal (Specific Syntax Information)

z = ddemodce(y,Fd,Fs,'ask',M) implements M-ary amplitude shift keying demodulation. Each entry of z is in the range [0, M-1].

z = ddemodce(y,Fd,Fs,'ask/costas',M) is the same as the syntax above, except that the algorithm includes a Costas loop.

z = ddemodce(y,Fd,Fs,'fsk',M,tone) implements coherent M-ary frequency shift keying demodulation. The optional argument tone is the separation between successive frequencies in the modulated signal z. The default value of tone is Fd. Each entry of z is in the range [0, M-1].

z = ddemodce(y,Fd,Fs,'fsk/noncoherence',M,tone) is the same as the syntax above, except that it uses noncoherent demodulation.

z = ddemodce(y,Fd,Fs,'msk') implements minimum shift keying demodulation. Each entry of z is either 0 or 1. The separation between the two frequencies is Fd/2.

z = ddemodce(y,Fd,Fs,'psk',M) implements M-ary correlation phase shift keying demodulation. Each entry of z is in the range [0, M-1].

z = ddemodce(y,Fd,Fs,'qask',M) implements M-ary quadrature amplitude shift keying demodulation with a square signal constellation. The table below shows the maximum among in-phase and quadrature coordinates of constellation points, for several small values of M.

M
Maximum of Coordinates of Constellation Points
M
Maximum of Coordinates of Constellation Points
2
1
32
5
4
1
64
7
8
3 (quadrature maximum is 1)
128
11
16
3
256
15

z = ddemodce(y,Fd,Fs,'qask/arb',inphase,quadr) implements quadrature amplitude shift keying demodulation, with a signal constellation that you define using the vectors inphase and quadr. The signal constellation point for the kth message has in-phase component inphase(k+1) and quadrature component quadr(k+1).

z = ddemodce(y,Fd,Fs,'qask/cir',numsig,amp,phs) implements quadrature amplitude shift keying demodulation with a circular signal constellation. numsig, amp, and phs are vectors of the same length. The entries in numsig and amp must be positive. If k is an integer in the range [1, length(numsig)], then amp(k) is the radius of the kth circle, numsig(k) is the number of constellation points on the kth circle, and phs(k) is the phase of the first constellation point plotted on the kth circle. All points on the kth circle are evenly spaced. If you omit phs, then its default value is numsig*0. If you omit amp, then its default value is [1:length(numsig)].

See Also

dmodce, amodce, ademodce, dmod, ddemod, demodmap, modmap, eyediagram, scatterplot


  ddemod de2bi