Communications Toolbox    
ademod

Analog passband demodulator

Syntax

Optional Inputs

Input
Default Value
offset
Appropriate value so that each output signal has zero mean
num, den
[num,den] = butter(5,Fc*2/Fs);
vcoconst
1

Description

The function ademod performs analog passband demodulation. The corresponding modulation function is amod. The table below lists the demodulation schemes that ademod supports.

Demodulation Scheme
Fourth Input Argument
Amplitude demodulation
'amdsb-tc' or 'amdsb-tc/costas'
Amplitude demodulation, double sideband suppressed carrier
'amdsb-sc' or 'amdsb-sc/costas'
Amplitude demodulation, single sideband suppressed carrier
'amssb'
Quadrature amplitude demodulation
'qam'
Frequency demodulation
'fm'
Phase demodulation
'pm'

For All Syntaxes

The generic syntax z = ademod(y,Fc,Fs,...) demodulates the received signal that y represents. Fc is the carrier frequency in hertz, and Fs is the sampling rate in hertz. The initial phase of the carrier signal is zero.

y and z are real matrices whose sizes depend on the demodulation method:

The generic syntax z = ademod(y,Fc,[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. The second entry, initphase, is the initial phase of the carrier signal, measured in radians.

ademod uses a lowpass filter with sample time 1/Fs while demodulating, in order to filter out the carrier signal. To specify the lowpass filter, 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 the default filter is a Butterworth filter whose parameters come from the command below. butter is in the Signal Processing Toolbox.

For Specific Syntaxes

z = ademod(y,Fc,Fs,'amdsb-tc',offset,num,den) implements double-sideband amplitude demodulation. offset is a vector whose kth entry is subtracted from the kth signal after the demodulation. 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 = ademod(y,Fc,Fs,'amdsb-tc/costas',offset,num,den) is the same as the syntax above, except that the algorithm includes a Costas phase-locked loop.

z = ademod(y,Fc,Fs,'amdsb-sc',num,den) implements double-sideband suppressed-carrier amplitude demodulation.

z = ademod(y,Fc,Fs,'amdsb-sc/costas',num,den) is the same as the syntax above, except that the algorithm includes a Costas phase-locked loop.

z = ademod(y,Fc,Fs,'amssb',num,den) implements single-sideband suppressed-carrier amplitude demodulation.

z = ademod(y,Fc,Fs,'qam',num,den) implements quadrature amplitude demodulation.

z = ademod(y,Fc,Fs,'fm',num,den,vcoconst) implements frequency demodulation. The spectrum of the demodulated signal is between min(y) + Fc and max(y) + Fc. The demodulation process uses a phase-locked loop composed of a multiplier (as a phase detector), a lowpass filter, and a voltage-controlled oscillator (VCO). If Fs is a two-element vector, then its second element is the initial phase of the VCO, in radians. The optional argument vcoconst is a scalar that represents the VCO constant in Hz/V.

z = ademod(y,Fc,Fs,'pm',num,den,vcoconst) implements phase demodulation. The demodulation process uses a phase-locked loop (which acts as an FM demodulator) cascaded with an integrator. The phase-locked loop consists of a multiplier (as a phase detector), a lowpass filter, and a voltage-controlled oscillator (VCO). If Fs is a two-element vector, then its second element is the initial phase of the VCO, in radians. The optional argument vcoconst is a scalar that represents the input signal's sensitivity.

Examples

This example illustrates the use of the offset argument. Because the first ademod command uses the same offset value of .3 that the amod command used, z1 is similar to the original message signal. Because the second ademod command omits offset, z2 has mean close to zero (not exactly zero because of roundoff error).

The plot shows z1 as a solid line and z2 as a dashed line.

Other examples using ademod are the Hilbert Filter Example on the reference page for amod, and in Example: Varying the Filter's Cutoff Frequency.

See Also
amod, dmod, ddemod, amodce, ademodce


  Functions - Alphabetical List ademodce