回答這個問題前,先貼出matlab畫的一個動態正弦波。
圖片資訊:
要想讓正弦波動起來,當然就像放電影一樣,我先儲存每一幀,然後順序播放。
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
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
回答這個問題前,先貼出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