ブロックを積みながら(155) Scilab/Xcos、ルックアップ・テーブル・パレット

Joseph Halfmoon

前回は「不連続」といいつつ「連続時間」の御供的なパレットでした。今回は「ルックアップテーブル」と言いながら、折れ線グラフでマッピング的なパレットです。まあ、ブロックの数も少ないので、何も考えずに端から動かしてみるだけ。いいのか、そういうことで。

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

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

Scilab 2024.0.0

ルックアップテーブルパレット

パレットブラウザ画面をみれば含まれているブロックは3個だけです。LookupPalette

その名の通りのLOOKUP_fブロックとインターポレーション(補間)の名を冠するブロックが2つです。

今回練習のフロー

入力に2種類の正弦波を用意し、各ブロックに与えて出力されてきた値をグラフに描いて観察してます。LookupFlow

入力の正弦波の設定、上の方が以下に。振幅2、周波数1Hzの正弦波っす。sin1setting

もう一つの正弦波の設定、下の方が以下に。振幅1、周波数0.5Hz、位相が120度の正弦波です。sin2setting

LOOKUP_f ブロック

LOOKUP_fブロックの設定が以下に。LookupSetting

ルックアップテーブルといいつつ、表形式ではなく、グラフ形式で設定であります。x軸が入力、y軸が出力でその間の関係をグラフで定義しろ、ってことみたいです。

十字のポイントとポイントの間は線形ということみたいです。デフォルトで4点表示されますが、クリクリすると十字が追加されます。ドラッグすると点が動くので細かく制御することが可能です。またウインドウ上部のDataメニューのからは外部ファイルをロードすることも可能なようなので、外部の表計算ソフトで定義した「表」を読み込ませる、といったことも可能ではないかと(やってないケド。)

なお、ウインドウ上部のControlメニューでOKしないと折角描いたグラフが反映されないようです。気をつけんと。

上記の設定にオフセット0、振幅2の正弦波を入力した出力のグラフが以下に。

LookupWaveー1から1の間のところが0と0.4の間の数値に変換されており、折角の正弦波が折れ曲がっておりますぞ。予定通りね。

INTRPLBLK_f

お次のブロックの設定が以下に。interpSetting

‐2~2の範囲の入力を0.5~‐0.5の範囲に線形にマッピングせよ、という感じか。正弦波波形を入力すれば、正負が逆転して180°位相がズレた上で振幅が4分の1の波形が得られるはず。結果が以下に。上グラフの黒色が入力波形、下グラフの黄緑が出力波形です。interpWave

これまた予定通りか。

INTRP2BLK_f

設定が以下に。interp2Setting

XとYの2つの入力を「バイリニア補間」した上でZ値に変換して出力するってことみたいです。

実際に適用してみた結果が以下に黒線がX入力、黄緑線がY入力、赤線がZ出力です。interp2Wave

XとYの足し合わせだけれども、上の方に値が1シフトしている感じ?お惚け老人には計算出来んぞなもし。

ブロックを積みながら(154) Scilab/Xcos、不連続パレット、連続の御供? へ戻る

ブロックを積みながら(156) Scilab/Xcos、行列(Matrix)パレットその1 へ進む