前回はXcosの信号源、周囲の状況に一切かかわりなく勝手に波形を生成する「自立した」ブロックを練習してみました。今回も信号源なのですが、指示待ちのヒトたちです。出力タイミングを示す制御信号がやってこないと新たな信号を出さないブロック。でも、こいつらを使役すれば任意のタイミングで任意の値を得ること思いのままと。ホントか?
※「ブロックを積みながら」投稿順 index はこちら
※動作確認にはWindows 11のパソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。
Scilab 2024.0.0
今回も信号源パレットのブロック
今回もパレットブラウザ画面のSources(信号源)に並んでいるものから以下を練習してみます。
-
- GENSQR_f、矩形波生成ブロック
- SQWTOOTH_f、ノコギリ波生成ブロック
- RFILE_f、ファイルからのデータ輸入ブロック
- RAND_m、乱数発生ブロック
- Modulo_Count、剰余カウンタ
今回実験のフロー
今回はタイミング制御のためにCLOCK_cブロックが多数ならんどります。
左から2個目だけ異なるアイコンのクロックブロックがあり、これはSampleCLKという名のクロックブロックです。どうも通常のCLOCK_cブロックは複数ある場合「非同期」みたい。一方このSampleCLKブロックは複数ある場合も相互に同期がとれたタイミングを発生するようです。知らんけど。
各信号ブロックの設定
-
- 矩形波生成ブロック
設定可能なのは振幅のみです。矩形波の周期は制御ポートからの指示によります。
-
- SQWTOOTH_f、ノコギリ波生成ブロック
ノコギリ波生成ブロックの「設定画面」を出そうとしてみましたが出ません。そういうものみたい。外部制御で値が0に初期化されると出力値は次の外部制御到来まで値0点からの時間に比例した値を出力するみたい。これに不満ならSigbuilderかCurve_fというブロックを使えと。
-
- RFILE_f、ファイルからのデータ輸入ブロック
ファイルから値を読み込んでXcosに流し込むためのブロックです。以下では倍精度の数値をテキストファイル(Scilabに付属のサンプルデータ)から読み込んでます。
読み込んでいるテキストファイルの先頭部分が以下に。
-
- RAND_m、乱数発生ブロック
乱数生成ブロックです。以下では一様乱数ですが、正規分布も選択できるみたいです。
-
- Modulo_Count、剰余カウンタ
剰余を出力するカウンタです。以下ではデフォルトのModulo 3 です。
波形の確認
今回は前回のようにDUMMY CLASSなしでも警告はでません。波形はこんな感じ。
前回、今回くらいの波形が生成出来たら大抵のことはOK?ホントか。