Matlab畫動圖並保存成gif之三——FM調製

代碼和上面的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

生成的動圖如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章