Communications Toolbox | ![]() ![]() |
Syntax
z = ddemodce(y,Fd,Fs,'
ask
/opt
'
,M,num,den); z = ddemodce(y,Fd,Fs,'
fsk
/opt
'
,M); z = ddemodce(y,Fd,Fs,'
msk
'
); z = ddemodce(y,Fd,Fs,'
psk
/opt
'
,M,num,den); z = ddemodce(y,Fd,Fs,'
qask
/opt
'
,M,num,den); z = ddemodce(y,Fd,Fs,'
qask/arb
/opt
'
,inphase,quadr,num,den); z = ddemodce(y,Fd,Fs,'
qask/cir
/opt
'
,numsig,amp,phs,num,den); z = ddemodce(y,Fd,[Fs initphase],...
);
Optional Inputs
Description
The function ddemodce
performs digital baseband demodulation. The corresponding modulation function is dmodce
. The table below lists the demodulation schemes that ddemodce
supports.
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:
z
has the same size as y
.
y
is a vector of length n, then z
is an n-by-2 matrix. Otherwise, if y
is n-by-m, then z
is n-by-2m and each column of y
is processed separately. In either case, the odd-numbered columns in z
represent in-phase components and the even-numbered columns represent quadrature components.
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:
y
is a vector of length n*Fs/Fd
, then z
is a column vector of length n. Otherwise, if y
is (n*Fs/Fd
)-by-m, then z
is n-by-m and each column of y
is processed separately.
y
is (n*Fs/Fd
)-by-m, then z
is n-by-2m. The odd-numbered columns in z
represent in-phase components and the even-numbered columns represent quadrature components. Each column of y
is processed separately.
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,
implements '
ask
'
,M)
M
-ary amplitude shift keying demodulation. Each entry of z
is in the range [0, M
-1].
z = ddemodce(y,Fd,Fs,
is the same as the syntax above, except that the algorithm includes a Costas loop.'
ask/costas
'
,M)
z = ddemodce(y,Fd,Fs,
implements coherent '
fsk
'
,M,tone)
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,
is the same as the syntax above, except that it uses noncoherent demodulation. '
fsk/noncoherence
'
,M,tone)
z = ddemodce(y,Fd,Fs,
implements minimum shift keying demodulation. Each entry of '
msk
'
)
z
is either 0 or 1. The separation between the two frequencies is Fd/2
.
z = ddemodce(y,Fd,Fs,
implements '
psk
'
,M)
M
-ary correlation phase shift keying demodulation. Each entry of z
is in the range [0, M
-1].
z = ddemodce(y,Fd,Fs,
implements '
qask
'
,M)
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 |
Note
To see how symbols are mapped to the constellation points, generate a square constellation plot using qaskenco (M) .
|
z = ddemodce(y,Fd,Fs,
implements quadrature amplitude shift keying demodulation, with a signal constellation that you define using the vectors '
qask/arb
'
,inphase,quadr)
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,
implements quadrature amplitude shift keying demodulation with a circular signal constellation. '
qask/cir
'
,numsig,amp,phs)
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)]
.
Note
To see how symbols are mapped to the constellation points, generate a labeled circle constellation plot using apkconst (numsig,amp,phs,'n') .
|
See Also
dmodce
, amodce
, ademodce
, dmod
, ddemod
, demodmap
, modmap
, eyediagram
, scatterplot
![]() | ddemod | de2bi | ![]() |