AMPLITUDE MODULATION (AM)

Table of Contents

Intro

Amplitude Modulation can be created by modifying the amplitude of a radiofrequent carrier according to an information signal of a lower frequency. The depth of an AM signal is described by the modulation index which has to be within the range from 0 to 1 to avoid overmodulation.

Time Domain

The calculation of an AM-signal on the basis of two sinusoidal signals is not very difficult:
The AM-signal can be written as:

Frequency Domain

The spectrum of the AM-signal can be obtained by using the trigonometric identity:
It can be seen, that the modulated signal contains frequency components at Ω, and . If the spectrum of the information signal consists of a set of frequency components the AM-signal has twice the bandwith of the highest frequency component of the information signal. The frequencies are centered around the carrier and described as lower and upper sidebands and the method is named DSB-TC AM (Double-Sideband, Transmitted Carrier AM). There are other schemes that supress the carrier and/or one sideband to save power and bandwidth. But in this case the design of a receiver has to be more complex.
disp('time and frequency domain of an AM-signal');
time and frequency domain of an AM-signal
init_AM; % define f_c and f_i in init_AM (filter coeffs are updated there)
m=0.7% modulation index
m = 0.7000
u_i=m*u_c;
TX_signal=u_i*cos(2*pi*f_i*t); %u_LF
carrier=u_c*cos(2*pi*f_c*t); %u_RF
MOD_signal=u_c*(1+m*cos(2*pi*f_i*t)).*cos(2*pi*f_c*t);
plot_MOD(t,TX_signal,carrier,MOD_signal);

Spectrum

% plot spectrum
n=length(MOD_signal);
F_MOD_signal=abs(fftshift(fft(MOD_signal)))/n; % FFT and frequency-pins for double sided spectrum
F = (-n/2:n/2-1)*(fs/n); % frequency range
figure
plot(F,F_MOD_signal)
title('double sided spectrum')
grid on
% show frequency pins
nr=1; % number of spectral components in one sideband
fpi=-nr:nr;
X1=f_c+fpi*f_i; % upper sideband
X2=-f_c+fpi*f_i; % lower sideband
Y=abs(-nr:nr)*m*u_c/4+[0 u_c/2 0]; % frequency pins
hold on
plot([X1,X2],[Y,Y],'o');
legend('FFT','frequency pins')

Audio

% play audio of the AM-signal
if (play_sound)
PCM=repmat(MOD_signal,1,f_i/np);
sound(PCM,fs);
end

Modulation and Demodulation

Version 1: Square Law Modulator

A simple modulation method is based on nonlinear devices. Intermodulation products are created, if such a device is fed with a signal containing frequency components of the carrier and the signal. The lower and upper sidebands are part of these created additional frequency components.
disp(get_link('-> info about Square Law Modulator','MOD_AM_NOTE1'));
The square law modulator uses a nonlinear device like a diode. The working point is defined by the amount of direct voltage, the signal is a serial connection of the carrier and the information signal. The nonlinear current of the circuit leads to a nonlinear voltage on the load resistor. The spectrum of this voltage contains frequencies of the desired AM-signal and can be filtered with a bandpass.
In Simulink the characteristics of the nonlinear device is approximated by a Taylor series which is discontinued after the squared term.
The modulation index can be calculated with the maxima and minima of the plot´s envelope:
A demodulator extracts the information from a modulated RF carrier. A simple AM demodulation can be done with an envelope demodulator. A diode rectifies the signal and the positive RF signal loads the condenser. While the diode blocks the negative half-wave the condenser is discharged through the resistor. The condenser voltage is eqivalent to the information signal if the time constant of the RC-circuit has been chosen appropriately as discribed in the literature (refer to the link section of this page). A highpassfilter removes the DC amount, a lowpass filter smoothes the signal. Since the phase of the carrier has not be known at the receiver we talk about non-coherent demodulation.
file2sim='AM_MODEM_V1';
if (do_sim)
u_m=(m*(a(2)+2*a(3)*u_DC))/(2*a(3));
convert_model(file2sim); % create HTML-version of simulinkfile
disp(get_link('-> create AM in Simulink (version 1)',file2sim));
[TX_signal,carrier,MOD_signal,RX_signal,t]=sim_model(file2sim);
figure
disp('AM in Simulink - results of incoherent version');
plot_MOD(t,TX_signal,carrier,MOD_signal,RX_signal)
y=findpeaks(MOD_signal);
D=max(y);
d=min(y);
disp(['modulation index (measured) m= ',num2str(round((D-d)/(D+d),1),2)]);
end
AM in Simulink - results of incoherent version
modulation index (measured) m= 0.7
pic_file=strcat(file2sim,pic_ext,'.jpg');
if exist(pic_file,'file')
disp('AM in Simulink - block diagram of incoherent version ');
figure
image(imread(pic_file))
end
AM in Simulink - block diagram of incoherent version

Version 2: Ring Modulator

A ring modulator is a device, that multiplies two sinusoidal signals or signals of other waveforms. This function can be used for modulation and demodulation. Since the phase of the carrier has to be known at the receiver denoted by coherent demodulation. Typically an electronic device named PLL (Phase Locked Loop) is used to synchronize the receiver´s local oscillator. Synchronisation is not simple and will not be discussed here.
file2sim='AM_MODEM_V2';
if (do_sim)
u_i=m*u_c;
convert_model(file2sim); % create HTML-version of simulinkfile
disp(get_link('-> create AM in Simulink (version 2)',file2sim));
[TX_signal,carrier,MOD_signal,RX_signal,t]=sim_model(file2sim);
figure
disp('AM in Simulink - results of coherent version');
plot_MOD(t,TX_signal,carrier,MOD_signal,RX_signal)
end
AM in Simulink - results of coherent version
pic_file=strcat(file2sim,pic_ext,'.jpg');
if exist(pic_file,'file')
disp('AM in Simulink - block diagram of coherent version ');
figure
image(imread(pic_file))
end
AM in Simulink - block diagram of coherent version

Links

Envelope Demodulator