Main Content

制限付き可変サイズ信号の基本操作

この例では、制限付き可変サイズ信号を生成する方法を示し、それらの信号を使用したいくつかの操作について説明します。この例では、Selector ブロックと Switch ブロックを使用して可変サイズ信号を生成します。その信号を数学演算、バス作成、バス選択、行列連結、および離散フィルター方程式の実装に使用します。

制限付き可変サイズ信号の生成

次のコンポーネントで制限付き可変サイズ信号が生成されます。

Bounded Variable-Size Signal Generation Using Switch Block コンポーネントは、スカラー信号と 3 行 2 列の非スカラー信号を入力端子にもつ Switch ブロックを使用します。このブロックの出力は、上限が 3 行 2 列の制限付き可変サイズ信号です。[1 番目の入力が通過する条件] パラメーターで設定された条件に基づいて出力が判定されます。異なるサイズの信号を伝播できるように、[ブロック パラメーター] ダイアログ ボックスで [信号属性]、[異なるデータの入力サイズを許可する] を選択します。この出力信号が、さらに Bus Creation, Bus Selection and Matrix Concatenation コンポーネントで使用されます。

Bounded Variable-Size Signal Generation Using Selector Block コンポーネントは、3 行 4 列と 1 行 2 列の非スカラー信号を使用する Selector ブロックを使用します。このブロックの出力は、上限が 3 行 4 列の制限付き可変サイズ信号です。サイズ選択インデックスが時間によって変わるのを可能にするために、[ブロック パラメーター] ダイアログ ボックスで [インデックス オプション][最初と最後のインデックス (端子)] パラメーターを選択し、さらに [インデックス オプション][最初と最後のインデックス (端子)] パラメーターを選択します。さらに、このモデルでは [入力の次元数]2 に設定されています。

制限付き可変サイズ信号を使用した基本操作

次のコンポーネントで制限付き可変サイズ信号を使用した操作が表されます。

Bus Creation, Bus Selection and Matrix Concatenation コンポーネントは、Switch ブロックを使用して生成された信号を使用します。バス作成、バス選択、および行列連結用の次のブロックが含まれています。

  • Matrix Concatenate ブロック $-$ このブロックは、上限が 3 行 2 列の 2 つの制限付き可変サイズ信号を次元 1 (行) に沿って連結します。6 行 2 列の行列を出力します。

  • Bus Creator ブロック $-$ このブロックは、3 行 2 列の 2 つの制限付き可変サイズ信号 ab を結合し、非バーチャル バス Data Signal を出力します。この非バーチャル バスは Goto ブロックに格納されます。

  • Bus Selector ブロック $-$ このブロックは、非バーチャル バス Data Signal を使用し、Bus Selector ブロックを使用して 3 行 2 列の 2 つの制限付き可変サイズ信号を選択します。

Stateflow Chart and Function-Call Subsystem to Implement a Discrete-time FIR Filter Equation コンポーネントは、Third order Discrete FIR Filter という名前の Function-Call Subsystem 内で、Unit Delay ブロックと Gain ブロックを使用して因果性離散時間有限インパルス応答 (FIR) フィルターの 3 次方程式を実装します。このフィルター方程式は、最新の入力値を使用した重み付き総和を表します。このサブシステムは 3 行 2 列の制限付き可変サイズ信号を入力として使用し、function 端子で関数呼び出し信号を受け取るとトリガーされます。Stateflow チャート Mode Control Logic からの出力イベント E により信号サイズに変更があったことが示され、それを受けてこのサブシステムの実行がトリガーされます (イネーブルになります)。

現在の信号サイズを伝播し、Unit Delay ブロックの状態をリセットして現在の信号のサイズを受け入れるようにするために、Function-Call Subsystem 内の Trigger の [ブロック パラメーター] ダイアログ ボックスで [可変サイズの信号のサイズを伝播] パラメーターを [Only when enabling] に設定します。

Scope ブロックを使用して出力 Processed Signal が表されます。

シミュレーションの異なるタイム ステップにおける信号の幅が、ベース ワークスペースに変数 simout2simout4 を使用してログ記録されます。

Mathematical Operations コンポーネントは、Selector ブロックを使用して生成する制限付き可変サイズ信号に対する数学演算を示します。このコンポーネントは数学演算に次のブロックを使用します。

  • Complex to Real-Imag ブロック: このブロックは、複素数入力信号の実数部と虚数部を分離します。

  • Math Function ブロック: このブロックは、信号の実数部の平方根を関数 square を使用して計算し、信号の虚数部の常用対数 (基底 10) の値を関数 log10 を使用して計算します。

  • Width ブロック: このブロックは、シミュレーションの異なるタイム ステップにおける入力制限付き可変サイズ信号の幅を計算します。この値はベース ワークスペースの変数 selectorVarSigWidth にログ記録されます。

参考

| | | | (Stateflow) | | | | |

関連するトピック