How can I modify this code for frequency modulation to use freq deviation instead of a modulation index?

3 views (last 30 days)
I found a way to plot Frequency Modulated signals in the time domain, however, it uses a modulation index instead of Frequency Deviation.
How can I alter this code to use Frequency Deviation instead?
% Carrier Freq (Hz)
fc = 1200;
% Modulating Signal Freq (Hz)
fm = 60;
% Modulation Index
m = 10;
% Carrier Amplitude
Ac = 10;
% Signal Amplitude
Am = 1;
% Frequency deviation
f_delta = 300;
% Number of samples
numSamples = 2^14;
t = linspace(0, 0.05, numSamples);
% Carrier signal
c = Ac * sin(2*pi*fc*t);
% Modulating signal
M = Am * sin(2*pi*fm*t);
y = cos(2*pi*fc*t + (m.*sin(2*pi*fm*t)));
plot(t,y);
xlabel('Time');
ylabel('Amplitude');
title({'FM Signal'});

Answers (1)

Vishwa
Vishwa on 24 Mar 2023
Modulation Index is nothing but ratio of peak frequency deviation and highest frequency component.
Hence,
y = cos(2*pi*fc*t + ((f_delta/fm).*sin(2*pi*fm*t)));

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!