回答这个问题前,先贴出matlab画的一个动态正弦波。
图片信息:文章源自玩技e族-https://www.playezu.com/124685.html
每秒2帧;GIF格式;sine波形,初始相位为0,相位变化范围为0:2π,步长为π/10正弦波频率1Hz要想让正弦波动起来,当然就像放电影一样,我先保存每一帧,然后顺序播放。文章源自玩技e族-https://www.playezu.com/124685.html
matlab提供了放电影的函数:文章源自玩技e族-https://www.playezu.com/124685.html
movie(M,n,fps) 以每秒 fps 帧的速度播放影片。默认值是每秒 12 帧。达不到指定速度的计算机会尽可能快地播放。文章源自玩技e族-https://www.playezu.com/124685.html
下面,我们仅仅需要创建一个相位不断变化的sin函数即可文章源自玩技e族-https://www.playezu.com/124685.html
fai=0:pi/10:10*pi;文章源自玩技e族-https://www.playezu.com/124685.html
x=sin(2*pi*f0*t+fai(j));文章源自玩技e族-https://www.playezu.com/124685.html
然后最后在构建一个循环,大功告成!文章源自玩技e族-https://www.playezu.com/124685.html
for j=1:loops文章源自玩技e族-https://www.playezu.com/124685.html
x=sin(2*pi*f0*t+fai(j));文章源自玩技e族-https://www.playezu.com/124685.html
plot(t,x,'-ro','LineWidth', 1);
legend(['信号sin(2pit+',num2str(fai(j)),')']);
xlabel('时间t');
grid on;
F(j) = getframe;
im=frame2im(F(j));
[imind,cm]=rgb2ind(im,256);
if j == 1
imwrite(imind,cm,'SineGIf.gif','gif', 'Loopcount',inf,'DelayTime',0.5);
else
imwrite(imind,cm,'SineGIf.gif','gif','WriteMode','append','DelayTime',0.5);
end
end
更多通信|MATLAB知识,欢迎关注我!