代码和上面的AM和LFM都是差不多的,换成了FM调制方式。
做动图的主要目的是上课的时候给学生演示,顺便自己再学习一下哈。
clear;
clf;
close all
timeLimit = 0.04;
sampleNum = 500;
t = linspace(0,timeLimit,sampleNum);
signal = sin(2*pi*50*t);
fc = 600;
fd = 400;
for i = 1:length(t)
fmWave(i) = cos(2*pi*fc*t(i)+2*pi*fd*(sum(signal(1:i))/i)*t(i));
end
h=figure
% set(gcf,'Position',get(0,'ScreenSize'));
set(gcf,'Position',[30 30 600 400])
for i = 1:2:length(t)-3
plot(t(i:i+2),fmWave(i:i+2),'r','LineWidth',2);
axis([0,timeLimit,-1,1])
hold on
plot(t(i:i+2),signal(i:i+2),'b','LineWidth',2);
legend("\fontsize{12}调幅信号","\fontsize{12}原始信号")
title("\fontsize{12}FM调制信号,fc=600Hz,fd=400Hz")
hold on
drawnow
f=getframe(gcf);
imind=frame2im(f);
[imind,cm] = rgb2ind(imind,256);
if i == 1
imwrite(imind,cm,'FmModulation.gif','GIF', 'Loopcount',inf,'DelayTime',0.2);
else
imwrite(imind,cm,'FmModulation.gif','GIF','WriteMode','append','DelayTime',0.2);
end
end
生成的动图如下: