Experiment 4 - Frequency Modulation Using Scilab
Experiment 4 - Frequency Modulation Using Scilab
1.0 OBJECTIVES:
1.2 To analyze the frequency-modulated signal in time domain and frequency domain
representation.
3.0 INTRODUCTION
FREQUENCY MODULATION:
In FM, the phase angle of a carrier signal Ac cos(2πfct) is varied proportionally to the
integral of the message signal x(t), the frequency modulated signal xc(t) is:
(1)
(2)
(3)
(4)
(5)
(6)
and represents the maximum phase deviation produced by the message signal. The
parameter ∆f represents the peak frequency deviation of the modulated signal. The
modulation index is defined only for tone modulation.
(7)
This equation describes the modulated signal as a series of sinusoids whose coefficients
Jn(β) are given by the Bessel function of the first kind and nth order.
The bandwidth of the tone-modulated FM signal can be estimated by the Carlson’s rule,
and it depends on the modulation index and the frequency of the modulating tone:
(8)
From this equation it can be noticed that a small value of β << 1 will result in a bandwidth
of about 2fx. Modulated signals with this condition are referred to as narrowband FM
signals. Large values of the modulation index will produce signals with relatively large
bandwidth, or wideband FM signals.
The examples below show how to use Scilab Software to produce frequency modulation
signals in time domain and frequency domain. Study the source code given and simulate
to see the plotting signal.
Example 1:
//Carrier signal
Vc = Ac *cos (((2*%pi)*fc)*t);
//Modulating signal
Vm = Am * sin (((2*%pi)*fm)*t);
m = 2; //modulation index
Vfm = Ac*cos(((( 2*%pi)*fc)*t)+m*sin(((2*%pi)*fm)*t));
// plot signal
subplot (311);
plot (t, Vm)
title (‘Modulating signal’)
subplot (312);
plot (t,Vc);
title (‘Carrier signal’)
subplot (313);
plot (t,Vfm)
title (‘Frequency modulating signal’)
We now consider the calculation of the spectrum of an FM (or PM) signal using the FFT
algorithm. As can be seen from the Scilab soure-code, a modulation index of 3 is
assumed.
Example 2:
Vf = (2/N)*abs(mtlb_fft(Vfm,2048))1024; //Frequency
modulation in time domain
f = (fs*(0:N/2))/N;
Example 3:
subplot(211)
plot2d(fn,ampspec1)
xlabel('Frequency - Hz');
ylabel('Amplitude');
subplot(212)
plot(fn, ampspec2, 'k');
xlabel('Frequency - Hz');
ylabel('Amplitude');