Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

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

Examples

collapse all

Generate a 10 Hz sinusoidal signal sampled at a rate of 200 Hz for 1 second. Embed the sinusoid in white Gaussian noise of variance 0.01.

fs = 200;
t = 0:1/fs:1;
x = sin(2*pi*10*t)+randn(size(t))/10;

Frequency modulate the signal with a carrier frequency of 50 Hz. Compute the Welch power spectral density estimates of the original and modulated sequences. Use a 100-sample Hamming window with 80 samples of overlap. Specify an FFT length of 1024.

y = modulate(x,50,fs);

pwelch([x;y]',hamming(100),80,1024,fs,'centered')

Single-sideband amplitude modulate the signal with the same carrier frequency. Compute and display the new Welch PSD estimates.

y = modulate(x,50,fs,'amssb');

pwelch([x;y]',hamming(100),80,1024,fs,'centered')

See Also

|

Introduced before R2006a

Was this topic helpful?