• 締切済み

Matlabでsinカーブを作成の方法(合成して)

毎度お世話になります。 sin波形の描き方について、教えてください。 最初の1サイクルの波形はsin(2*pi*f*t)で描き次のサイクルの 波形はsin(2*pi*2*f*t)と言う様に、サイクルごとに周波数が 増加する関数をつくり、plot(t,y)で描画したいのですが、 その技法がわかりません。 下記は、途中のプログラムですが、考え方が まったく間違っている様です(無視してください) ーーーーーーーーーーーーーーーーーーーーーーー %draw sweep wave t1=0:pi/16:2*pi;  y1=sin(t1); ;----- t2=2*pi:pi/16:4*pi; y2=sin(t2); ;----- t=t1::t2;  ;t2をt1の後に連結したし y=y1::y2; ;y2をy1の後に連結したし plot(t,y);

みんなの回答

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.1

>t=t1::t2; ;t2をt1の後に連結したし >y=y1::y2; ;y2をy1の後に連結したし この部分の意味が良く分からないんですが、少なくとも連結はできていませんよ。 ベクトル同士を連結するなら、[]なりcat関数なりを使用して下さい。

shiggy17
質問者

お礼

投稿有難うございました。 下記にて、解撤いたしました。 ーーーーーーーーーーーーーーーーーーーーーー %draw sweep wave clear inc=1; UV=350; n=1:inc:UV; for i=1:inc:UV if i<348 a=332; b=16; end %8 16 if i<332 a=314; b=18; end %7 18 if i<314 a=293; b=21; end %6 21 if i<293 a=267; b=26; end %5 26 if i<267 a=235; b=32; end %4 32 if i<235 a=192; b=43; end %3 43 if i<192 a=128; b=64; end %2 64 if i<128 a=0; b=128; end %1Hz 128 y(i)=sin(2*pi*(i-a)/b); end plot(n,y); axis([-10 UV+20 -1.05 1.05]); grid on xlabel('Sweep time(t)','FontSize',16); ylabel('sin(Ω*t)','FontSize',16); title('{sweep wave generation}','FontSize',16) %text(1.5, 0.6,'y=sin(2*pi*fx*n), fx+=1','FontSize',16); ーーーーーーーーーーーーーーーーーーーーーーー

関連するQ&A