Accelerating the pace of engineering and science

# modulate

Modulation for communications simulation

## Syntax

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

## Description

y = modulate(x,fc,fs,'method') and

y = 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

or

am

Amplitude modulation, double sideband, suppressed carrier. Multiplies x by a sinusoid of frequency fc.

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

amdsb-tc

Amplitude 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.

amssb

Amplitude 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.

fm

Frequency 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 of

opt = (fc/fs)*2*pi/(max(max(x)))

so the maximum frequency excursion from fc is fc Hz.

pm

Phase 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 of

opt = pi/(max(max(x)))

so the maximum phase excursion is π radians.

pwm

Pulse-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.

ppm

Pulse-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.

qam

Quadrature amplitude modulation. Creates a quadrature 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 ptm 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.