Main Content


Single sideband suppressed-carrier amplitude modulation



Y = ssbmod(X,Fc,Fs) uses the message signal X to modulate a carrier signal with frequency Fc (Hz) using single sideband amplitude modulation in which the lower sideband is the desired sideband. The generated output Y is a single side band signal with a suppressed carrier. The carrier signal and X have sample frequency Fs (Hz). The modulated signal has zero initial phase.

Y = ssbmod(X,Fc,Fs,ini_phase) specifies the initial phase of the modulated signal in radians.

Y = ssbmod(X,Fc,Fs,ini_phase,'upper') uses the upper sideband as the desired sideband.


collapse all

Set the sample rate to 100 Hz. Create a time vector 100 seconds long.

fs = 100;
t = (0:1/fs:100)';

Set the carrier frequency to 10 Hz. Generate a sinusoidal signal.

fc = 10; 
x = sin(2*pi*t);

Modulate x using single- and double-sideband AM.

doubleY = ammod(x,fc,fs);
singleY = ssbmod(x,fc,fs);

Create a spectrum analyzer object to plot the spectrum of the signals.

sadsb = spectrumAnalyzer( ...
    SampleRate=fs, ...
    PlotAsTwoSidedSpectrum=false, ...
    YLimits=[-60 30]);

Input Arguments

collapse all

Message signal, specified as a real matrix. If X has multiple columns, the function treats each column as an independent channel.

Data Types: single | double

Carrier frequency in Hz, specified as a positive real scalar.

Sample frequency in Hz, specified as a positive real scalar.

Initial phase of modulated signal, specified as a real scalar. The unit of ini_phase is radians.

Output Arguments

collapse all

Modulated signal, returned as a real matrix.

Data Types: single | double

Version History

Introduced before R2006a