Code covered by the BSD License

# Analog Modulation Technique:FM

Plots the waveform of FM modulated signal.

FM_Modulation_Technique.m
% Theory:
%
% Frequency Modulation:
% In telecommunications and signal processing, frequency modulation (FM) conveys information over a carrier wave by varying its instantaneous
% frequency. This contrasts with amplitude modulation, in which the amplitude of the carrier is varied while its frequency remains constant.
% In analog applications, the difference between the instantaneous and the base frequency of the carrier is directly proportional to the
% instantaneous value of the input-signal amplitude.
%
%

clc;
clear all;
t = 0:0.001:1;
Message_Signal_Amplitude = input('Enter the Amplitude of Message Signal = ');
Carrier_Signal_Amplitude = input('Enter the Amplitude of Carrier Signal = ');
Message_Signal_Frequency = input('Enter the Message frequency = ');
Carrier_Signal_Frequency = input('Enter the Carrier frequency = ');
m = input('Enter the Modulation Index = ');

% Representation of the Message Signal
sm = Message_Signal_Amplitude*sin(2*pi*Message_Signal_Frequency*t);
subplot(3,1,1);
plot(t,sm,'black');
xlabel('Time ---->');
ylabel('Amplitude ---->');
title('Message Signal');
legend('Message Signal ---->');
grid on;

% Representation of the Carrier Signal
sc = Carrier_Signal_Amplitude*sin(2*pi*Carrier_Signal_Frequency*t);
subplot(3,1,2);
plot(t,sc);
xlabel('Time ---->');
ylabel('Amplitude ---->');
title('Carrier Signal');
legend('Carrier Signal ---->');
grid on;

% Representation of the FM Signal
y = Carrier_Signal_Amplitude*sin(2*pi*Carrier_Signal_Frequency*t+m.*cos(2*pi*Message_Signal_Frequency*t));
subplot(3,1,3);
plot(t,y,'red');
xlabel('Time ---->');
ylabel('Amplitude ---->');
title('FM Signal');
legend('FM Signal ---->');
grid on;

% Add title to the Overall Plot
ha = axes ('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized', 'clipping' , 'off');
text (0.5, 1,'\bf Analog Modulation Technique:FM ','HorizontalAlignment','center','VerticalAlignment', 'top')