如何用matlab画动态正弦波?
回答这个问题前,先贴出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.webp','gif', 'Loopcount',inf,'DelayTime',0.5);
else
imwrite(imind,cm,'SineGIf.webp','gif','WriteMode','append','DelayTime',0.5);
end
end
更多通信|MATLAB知识,欢迎关注我!