# SSB-SC AM signal generation in Matlab with built-in function

SSB-SC AM (Single Sideband Suppressed Carrier Amplitude Modulation) is a modulation technique where only one of the sidebands (either the upper or the lower sideband) along with the carrier wave is transmitted. In SSB-SC AM, the carrier signal is suppressed to reduce the power consumption and to increase the bandwidth efficiency. In this post, we will discuss how to generate an SSB-SC AM signal in Matlab using the built-in functions.

To generate an SSB-SC AM signal, we need a message signal and a carrier signal. The message signal is the information signal that is to be transmitted, and the carrier signal is a high-frequency signal that is used to modulate the message signal. The SSB-SC AM signal can be generated by suppressing the unwanted sideband and the carrier wave from the modulated signal.

The message and carrier signal are defined as follows.

The message signal, $$m(t)$$, is given by:
m(t)=Amcos⁡(2Ï€fmt)

where  $$A_m$$ is the amplitude of the message signal, and  $$f_m$$ is the frequency of the message signal.

The carrier signal,  $$c(t)$$, is given by:
c(t)=Accos⁡(2Ï€fct)

where  $$A_c$$ is the amplitude of the carrier signal, and $$f_c$$ is the frequency of the carrier signal.

The upper and lowsr sideband SSB-SC signal is,

$$s_u = \frac{A_m A_c}{2}cos⁡[2Ï€(f_c+f_m)t]$$

and, $$s_l = \frac{A_m A_c}{2}cos⁡[2Ï€(f_c-f_m)t]$$

In Matlab we can generate the lower sideband SSB-SC AM signal using the ssbmod built-in function in MATLAB. The syntax for this function is as follows:

sl = ssbmod(m, fc, fs)

where m is the message signal, fc is the carrier frequency, fs is the sampling frequency.

To generate the upper sideband SSB-SC AM signal using the ssbmod built-in function in MATLAB, the following syntax can be used:

su = ssbmod(m,fc,fs,initialPhase,'upper')

where the initialPhase is the initial phase which can be set to 0.

#### SSB-SC AM circuit diagram

The following is the circuit diagram for generating upper sideband SB-SC AM signal.

The circuit diagram to generate lower sideband SSB-SC AM signal is same as above with only difference that we have to replace the subtract the lower arm signal from the upper arm signal.

### Matlab Code for SSB-SC AM signal generation in Matlab with built-in function

% SSB-AM modulation inputs
Ac = input('Enter carrier signal amplitude: ');
Am = input('Enter message signal amplitude(Am < Ac): ');
fc = input('Enter carrier frequency: ');
fm = input('Enter message frequency(fm < fc): ');
fprintf('\n'); % creates a blank line

% Time domain parameters
fs = 10 * fc; % sampling frequency
ts = 1 / fs; % sampling time
t = 0 : ts : 100*ts; % time vector
initialPhase = 0;

% Generate message signal
m = Am * cos(2 * pi * fm * t); % message signal

% Generate carrier signal
c = Ac * cos(2 * pi * fc * t); % carrier signal

% SSB-AM modulation using frequency domain method
sl = ssbmod(m,fc,fs);  %generate lower SSB AM
su = ssbmod(m,fc,fs,initialPhase,'upper');  %generate upper SSB-AM

% Plot the signals
subplot(4, 1, 1);
plot(t, m);
title('Message signal');
xlabel('Time (s)');
ylabel('Amplitude');

subplot(4, 1, 2);
plot(t, c);
title('Carrier signal');
xlabel('Time (s)');
ylabel('Amplitude');

subplot(4, 1, 3);
plot(t, sl);
title('SSB-AM Lower sideband signal');
xlabel('Time (s)');
ylabel('Amplitude');

subplot(4, 1, 4);
plot(t, su);
title('SSB-AM Upper sideband signal');
xlabel('Time (s)');
ylabel('Amplitude');


The above MATLAB code is for generating a Single Sideband-Amplitude Modulated (SSB-AM) signal using the frequency domain method. The code takes user inputs for carrier signal amplitude, message signal amplitude, carrier frequency, and message frequency. It then generates the time vector and uses it to create the message signal and carrier signal.

After that, it uses the MATLAB built-in function "ssbmod" to generate the lower and upper SSB-AM signals. The "ssbmod" function generates the SSB-AM signals by performing the modulation in the frequency domain, where the carrier frequency is shifted to either the lower or upper sideband, and the other sideband is suppressed.

Finally, the code plots four graphs in the same window using the "subplot" function. The first subplot is for the message signal, the second for the carrier signal, and the third and fourth subplots are for the lower and upper SSB-AM signals, respectively. Each subplot has a title, x-label, and y-label. The "fprintf" function is used to create a blank line between the input prompts and the plotted signals.

The following shows the message signal, the carrier signal, the lower sideband SSB AM signal and the upper sideband SSB AM signal waveform graph.

References: