You are here : matlabSignal Processingmodulate

# modulate() - Signal Processing

```y = modulate(x,fc,fs,'method') andy = modulate(x,fc,fs,'method',opt)
modulate the real message signal x 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. Note:

Use modulate and demod in
the Signal Processing Toolbox™ with real-valued signals to obtain
real-valued outputs. modulate and demod are
not intended to accept complex-valued inputs or produce complex-valued
outputs.MethodDescription
amdsb-sc  oramAmplitude modulation, double sideband, suppressed
carrier. Multiplies x by a sinusoid of frequency fc.y = x.*cos(2*pi*fc*t)

amdsb-tcAmplitude modulation, double sideband, transmitted carrier.
Subtracts scalar opt from x and
multiplies the result by a sinusoid of frequency fc.y = (x-opt).*cos(2*pi*fc*t)
If the opt parameter is
not present, modulate uses a default of min(min(x)) so
that the message signal (x-opt) is entirely nonnegative
and has a minimum value of 0.
amssbAmplitude modulation, single sideband. Multiplies x by
a sinusoid of frequency fc and adds the result
to the Hilbert transform of x multiplied by a phase
shifted sinusoid of frequency fc.y =
x.*cos(2*pi*fc*t)+imag(hilbert(x)).*sin(2*pi*fc*t)
This effectively removes the upper sideband.
fmFrequency modulation. Creates a sinusoid with instantaneous
frequency that varies with the message signal x. y = cos(2*pi*fc*t + opt*cumsum(x))cumsum is
a rectangular approximation to the integral of x. modulate uses opt as
the constant of frequency modulation. If opt is
not present, modulate uses a default ofopt = (fc/fs)*2*pi/(max(max(x)))so
the maximum frequency excursion from fc is fc Hz.
pmPhase modulation. Creates a sinusoid of frequency fc whose
phase varies with the message signal x.y = cos(2*pi*fc*t + opt*x)modulate uses opt as
the constant of phase modulation. If opt is not
present, modulate uses a default ofopt = pi/(max(max(x)))so
the maximum phase excursion is π radians.
pwmPulse-width modulation. Creates a pulse-width modulated
signal from the pulse widths in x. The elements
of x must be between 0 and 1, specifying the width
of each pulse in fractions of a period. The pulses start at the beginning
of each period, that is, they are left justified. modulate(x,fc,fs,'pwm','centered')yields
pulses centered at the beginning of each period. y is
length length(x)*fs/fc.
ppmPulse-position modulation. Creates a pulse-position modulated
signal from the pulse positions in x. The elements
of x must be between 0 and 1, specifying the left
edge of each pulse in fractions of a period. opt is
a scalar between 0 and 1 that specifies the length of each pulse in
fractions of a period. The default for opt is 0.1. y is
length length(x)*fs/fc.
amplitude modulated signal from signals x and opt.y = x.*cos(2*pi*fc*t) + opt.*sin(2*pi*fc*t)opt must
be the same size as x.
If you do not specify 'method', then modulate assumes am.
Except for the pwm and ppm cases, y is
the same size as x.If x is an array, modulate modulates
its columns.[y,t] = modulate(x,fc,fs) returns the internal
time vector t that modulate uses
in its computations.```

### Syntax

`y = modulate(x,fc,fs,'method')y = modulate(x,fc,fs,'method',opt)[y,t] = modulate(x,fc,fs)`

### Example

`y = x.*cos(2*pi*fc*t)`