MATLABでのこぎり波その②

MATLABでのこぎり波
前回まででアナログ的、電子回路的に

サイン波→矩形波→三角波

って手順で作ること説明しました。
立ち上がりと立下りが同じ三角波と立ち上がりと立下りが違う
三角波(のこぎり波)は全く同じ手順といかないですが、
MATLABでsignal processing toolbox
使わず、かつ電子回路的にのこぎり波作ってみたいと思います。

積分器+スイッチング回路(シュミット回路)
電子回路でこれを作ったことないのですが・・・
たぶん、こんな感じというイメージだけ説明します。
スイッチング回路は普通は単なるスイッチングというか
シュミット回路使います。

基本的に
シュミット回路→積分器の閉ループ
です。
オープンループでできるか定かではありませんが・・・

MATLAB積分

で、こんな形になりました。
周期1Hz目指したんですが、この方法だと実際の電子回路でも
MATLABで作ってもあんまり計算で周期合わせて作るの難しいかもしれませんね。

MATLABのプログラムはコチラです
dt=0.01
t=[0:dt:100];
cc(1)=0
for i=[2:length(t)]

cc(i)=cc(i-1)+1*dt;
if cc(i)>1
cc(i)=cc(i-1)-100*dt;
end
if cc(i)<=0
cc(i)=cc(i-1)+1*dt;
end

end
plot(t,cc)
xlim([0 10])
grid on

ですが、CPUのコンペアマッチとはちょっと違うかも知れませんが
それに似たような発想で作ったのこぎり波はこれです。
MATLABコンペアマッチ
周期を1Hzにねらってうまいことあってます。
MATLABでsignal processing toolbox使わないプログラムはコチラです。

clear
dt=0.01
t=[0:dt:100];
cc(1)=0
for i=[2:length(t)];

cc(i)=cc(i-1)+1*dt;
if cc(i)>=1-eps
cc(i)=0;
end

end
plot(t,cc)
xlim([0 10])
grid on

AFオシレータとファンクションジェネレータ

そういえばアナログのAFオシレータってサイン波と矩形波(duty50%)が
出力できても、のこぎり波出力できるものってないんですね。
たぶん、単純に波形を歪ませればすぐできるというものでないからなんでしょう。

それ以前にそういう需要がないのかもしれませんが・・・
だからのこぎり波を発生させるのは複雑な回路とかデジタル処理して作る・・・
FG(ファンクションジェネレータ)って言いますが、
関数発生器で作るってのは合理的です。

なにしろ、MATLABでsignal processing toolbox使わずにできるってことはわかりました。

Tags:

Leave a Reply