ブロックを積みながら(162) Scilab/Xcos、信号処理、暗示的パレット

Joseph Halfmoon

Xcosのパレットを経めぐるのもそろそろ終了。まだ「いろいろ」あるのですが、残ったやつらは部品毎ではなく実例として練習予定っす。今回は積み残しパレットの落穂拾い的な? 信号処理(signal processing)と暗示的(implicit)パレットね。パレットといいつつどちらもブロック1個だけの練習。手抜きよな。

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはWindows 11の パソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。

Scilab 2024.0.0

信号処理(signal processing)パレット

「信号処理」というお名前からは大きなパレットを想像してしまいますが、含まれるブロックは2個だけです。解説ページが以下に

Signal processing palette

パレットの様子が以下に。SignalProcessing

だいたい信号処理につかえる各種ブロックは他のパレットに多数含まれてます。どうもこのパレットは「デジタル信号処理に特有な挙動」専用のパレットみたいです。含まれるブロックは以下の2個

    1. SAMPHOLD_m
    2. QUANT_f

しかし、1のサンプルアンドホールド・ブロックは過去回で何度もお世話になってきているので今回はパス。よって練習するのは「信号の量子化過程」を模擬するらしい QUANT_f ブロックのみであります。

暗示的(implicit)パレット

「暗示的」とはなんじゃらほい、という感じです。解説ページが以下に。

Implicit palette

パレットの様子が以下に。Implicit

ブロックは3個存在するのですが、上記の解説ページにはCONSTRAINT2_cの解説はありません。また手元環境のHelpページを見てもCONSTRAINT2_cのリンク先はあらぬ方向に飛ぶだけです。そう言いながらもブロック表面に描かれた式とCONSTRAINTというお名前から、微分方程式/積分方程式などで使うつもりのブロックなのかと想像されますが、使い方不明です。Implicitというだけあって何やら不審な動きをします。良く分からんので今回はパスだな。。。

唯一動作が明確なのは「s」一文字のDIFF_fです。本来、Xcosは微分方程式を解くのがメインテーマの一つじゃないかと思います。そこで活躍するのは「1/s」マークの積分です。こちらは他パレットでやってますが、積分ブロックも複数あって充実?じゃ、微分はないの?というとここに隠れておった、というわけです。微分もできるけれども「暗示的」パレットの中に押し込められておるっと。

QUANT_f

実験に使ったフローが以下に。QuantFlow

左から正弦波(アナログ信号と想定してよい)がやって来て、QUANT_fブロックに入力します。QUANT_fでは、量子化のステップ(Y方向)1という粗さにアナログ的な値を「丸め(Quantization Type=1)」て送り出すという塩梅です。

観測した波形が以下に。QUANT
ガタガタな波形だな。目の粗いADコンバータ的な動作になったね。

DIFF_f

実験に使ったフローが以下に。Diff_flow

左から時間 t がやってきて、二乗(u^2)されて t2なる関数が「s」マークのDIFF_fに入力します。これを時間tで微分したら2tだろ~と。中学生でも分かる?計算デス。

観察した結果が以下に。Diff

上の黒のグラフが、 t2 下の緑のグラフが 2t です。微分されとりますな。あたりまえ~

ブロックを積みながら(161) Scilab/Xcos、ゼロクロス検出パレット へ戻る

ブロックを積みながら(163) Scilab/Xcos、月面での垂直飛び(再びの自由落下) へ進む