Signal Processing Toolbox Help Desk

demod

Purpose

Demodulation for communications simulation.

Syntax

Description

demod performs demodulation, that is, it obtains the original signal from a modulated version of the signal. demod undoes the operation performed by modulate.

x = demod(y,Fc,Fs,'method',opt) demodulates the real carrier signal y with a carrier frequency Fc and sampling frequency Fs, using one of the options listed below for method. (Note that some methods accept an option, opt.)

amdsb-sc

or

am

Amplitude demodulation, double side-band, suppressed carrier. Multiplies y by a sinusoid of frequency Fc and applies a fifth-order Butterworth lowpass filter using filtfilt: x = y.*cos(2*pi*Fc*t);

[b,a] = butter(5,Fc*2/Fs);

x = filtfilt(b,a,x);

amdsb-tc

Amplitude demodulation, double side-band, transmitted carrier. Multiplies y by a sinusoid of frequency Fc, and applies a fifth-order Butterworth lowpass filter using filtfilt: x = y.*cos(2*pi*Fc*t);

[b,a] = butter(5,Fc*2/Fs);

x = filtfilt(b,a,x);

If you specify opt, demod subtracts scalar opt from x. The default value for opt is 0.

amssb

Amplitude demodulation, single side-band. Multiplies y by a sinusoid of frequency Fc and applies a fifth-order Butterworth lowpass filter using filtfilt: x = y.*cos(2*pi*Fc*t);

[b,a] = butter(5,Fc*2/Fs);

x = filtfilt(b,a,x);

fm

Frequency demodulation. Demodulates the FM waveform by modulating the Hilbert transform of y by a complex exponential of frequency -Fc Hz and obtains the instantaneous frequency of the result.

pm

Phase demodulation. Demodulates the PM waveform by modulating the Hilbert transform of y by a complex exponential of frequency -Fc Hz and obtains the instantaneous phase of the result.

ptm

Pulse-time demodulation. Finds the pulse times of a pulse-time modulated signal y. For correct demodulation, the pulses cannot overlap. x is length length(t)*Fc/Fs.

pwm

Pulse-width demodulation. Finds the pulse widths of a pulse-width modulated signal y. demod returns in x a vector whose elements specify the width of each pulse in fractions of a period. The pulses in y should start at the beginning of each carrier period, that is, they should be left justified.

qam

Quadrature amplitude demodulation.

[x1,x2] = demod(y,Fc,Fs,'qam') multiplies y by a cosine and a sine of frequency Fc and applies a fifth-order Butterworth lowpass filter using filtfilt: x1 = y.*cos(2*pi*Fc*t);

x2 = y.*sin(2*pi*Fc*t);

[b,a] = butter(5,Fc*2/Fs);

x1 = filtfilt(b,a,x1);

x2 = filtfilt(b,a,x2);

The default method is 'am'. Except for the 'ptm' and 'pwm' cases, x is the same size as y.

If y is a matrix, demod demodulates its columns.

x = demod(y,Fc,Fs,'pwm','centered') finds the pulse widths assuming they are centered at the beginning of each period. x is length
length(y)*Fc/Fs.

See Also

modulate

Modulation for communications simulation.

vco

Voltage controlled oscillator.



[ Previous | Help Desk | Next ]