代碼和上面的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
生成的動圖如下: