| Communications Toolbox | ![]() |
Syntax
z = ademodce(y,Fs,'amdsb-tc',offset,num,den); z = ademodce(y,Fs,'amdsb-tc/costas',offset,num,den); z = ademodce(y,Fs,'amdsb-sc',num,den); z = ademodce(y,Fs,'amdsb-sc/costas',num,den); z = ademodce(y,Fs,'amssb',num,den); z = ademodce(y,Fs,'qam',num,den); z = ademodce(y,Fs,'fm',num,den,vcoconst); z = ademodce(y,Fs,'pm',num,den,vcoconst); z = ademodce(y,[Fs initphase],...);
Optional Inputs
Description
The function ademodce performs analog baseband demodulation. The corresponding modulation function is amodce. The table below lists the demodulation schemes that ademodce supports.
For All Syntaxes
The generic syntax z = ademodce(y,Fs,...) demodulates the received signal that y represents. Fs is the sampling rate in hertz. The initial phase of the carrier signal is zero. y is a complex matrix and z is a real matrix. Their sizes depend on the demodulation method:
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. The odd-numbered columns in z represent in-phase components and the even-numbered columns represent quadrature components.
y and z have the same dimensions. If y is a two-dimensional matrix, then each column of y is processed separately.
The generic syntax z = ademodce(y,[Fs initphase],...) is the same, except that the second 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 the 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 ademodce does not use a filter.
For Specific Syntaxes
z = ademodce(y,Fs, implements double-sideband amplitude demodulation. 'amdsb-tc',offset,num,den)
offset is a vector whose kth entry is subtracted from the kth column of demodulated data. If offset is empty, then by default z is adjusted so that each column has mean zero (or so that z has mean zero in case z is a vector).
z = ademodce(y,Fs, is the same as the syntax above, except that the algorithm includes a Costas phase-locked loop.'amdsb-tc/costas',offset,num,den)
z = ademodce(y,Fs, implements double-sideband suppressed-carrier amplitude demodulation.'amdsb-sc',num,den)
z = ademodce(y,Fs, is the same as the syntax above, except that the algorithm includes a Costas phase-locked loop.'amdsb-sc/costas',num,den)
z = ademodce(y,Fs, implements single-sideband suppressed-carrier amplitude demodulation.'amssb',num,den)
z = ademodce(y,Fs, implements quadrature amplitude demodulation.'qam',num,den)
z = ademodce(y,Fs, implements frequency demodulation. The optional argument 'fm',num,den,vcoconst)
vcoconst is a scalar that represents the VCO constant in the demodulation.
z = ademodce(y,Fs, implements phase demodulation. The optional argument 'pm',num,den,vcoconst)
vcoconst specifies the VCO constant in the demodulation.
Examples
The example below processes sine, cosine, and sawtooth signals simultaneously. All three signals have the same sampling rate and the same number of samples. The code also plots the original and demodulated signals.
Fs = 100; % Sampling rate of signal t = [0:1/Fs:5]'; % Times to sample the signals % Combine three signals into a three-column matrix. % Each signal occupies one column. x = [sin(2*pi*t), .5*cos(5*pi*t), sawtooth(4*t)]; y = amodce(x,Fs,'fm'); % Modulate. z = ademodce(y,Fs,'fm'); % Demodulate. plot(x); figure; plot(z); % Original and demodulated signals
Other examples using ademodce are in the sections Simple Analog Modulation Example and Example: Time Lag From Filtering.
See Also
amodce, dmodce, ddemodce, amod, ademod
| ademod | amod | ![]() |