问答 百科手机端

如何用matlab画动态正弦波?

2022-04-21 11:41

回答这个问题前,先贴出matlab画的一个动态正弦波。

图片信息:

每秒2帧;GIF格式;sine波形,初始相位为0,相位变化范围为0:2π,步长为π/10正弦波频率1Hz要想让正弦波动起来,当然就像放电影一样,我先保存每一帧,然后顺序播放。

matlab提供了放电影的函数:

movie(M,n,fps) 以每秒 fps 帧的速度播放影片。默认值是每秒 12 帧。达不到指定速度的计算机会尽可能快地播放。

下面,我们仅仅需要创建一个相位不断变化的sin函数即可

fai=0:pi/10:10*pi;

x=sin(2*pi*f0*t+fai(j));

然后最后在构建一个循环,大功告成!

for j=1:loops

x=sin(2*pi*f0*t+fai(j));

plot(t,x,'-ro','LineWidth', 1);

legend(['信号sin(2\pit+',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知识,欢迎关注我!

热门