I'm trying to find a way to display 3 plots with different time bases so that the modulation can be observed!

I mean, I want to modulate a carrier signal by a message signal using FM technique but as the message signal frequency is a few thousand times lower than the carrier frequency, I'm not being able to plot the 3 signals, message, carrier and modulated signals in a way that we can observe the modulation effect.

The signals are:

m (t) = sin (2*π*fm*t) V, where fm = 10kHz

c (t) = sin (2*π*fc*t) V, where fc = 10MHz

The modulated signal is:

But I'm using another equation that I suppose to be equivalent to that one!

y = vc*sin(2*pi*fc*t+m.*sin(2*pi*fM*t));

the result is this:

I don't like any of the results... Not even the message signal looks like a sin wave... Also the amplitude is weird I don't know why!

If I use lower values, like fm = 8Hz, fc = 100 Hz and modulation index of 10 (same as before) I get a lot better results...

Why is this? Why can't I use the script for higher values for frequencies?

clear all

close all

t = 0:0.001:1; %upto 1000 samples

vm = input('Enter Amplitude (Message) = ');

vc = input('Enter Amplitude (Carrier) = ');

fM = input('Enter Message frequency = ');

fC = input('Enter Carrier frequency = ');

m = input('Enter Modulation Index = ');

msg = vm*sin(2*pi*fM*t);

subplot(3,1,1); %plotting message signal

plot(t,msg);

xlabel('Time');

ylabel('Amplitude');

title('Message ');

grid on;

carrier = vc*sin(2*pi*fC*t);

subplot(3,1,2); %plotting carrier signal

plot(t,carrier);

xlabel('Time');

ylabel('Amplitude');

title('Carrier Signal');

grid on;

y = vc*sin(2*pi*fC*t+m.*sin(2*pi*fM*t));

subplot(3,1,3);%plotting FM (Frequency Modulated) signal

plot(t,y);

xlabel('Time');

ylabel('Amplitude');

title('FM Signal');

grid on;