カーネル サブシステムを入力行列の部分行列 (ウィンドウ) に行優先で適用して、出力行列を組み立てます。
ライブラリ
Ports and Subsystems
説明
Window Processing ブロックは、カーネル サブシステムを入力行列の部分行列に行優先で適用して出力行列を構築するマスク サブシステムです。パラメーターを指定およびカーネル サブシステムにブロックを追加することにより、対応する入力ウィンドウに対して出力のスカラー要素が計算されるようにカスタマイズできます。この計算は、次のように実行されます。
-
Output size パラメーターの設定に基づいて入力行列のパディングが計算されます。
入力の次元を Min,Nin にして、ウィンドウの次元を Mwin, Nwin にします。
- Output size を Valid に設定すると、パディングは実行されず、出力の次元は Min-Mwin+1,Nin-Nwin+1 になります。
- Output size を Same as input に設定すると、入力が 0 の Mwin-1 行と Nwin-1 列でパディングされます。追加された行の半分が上に、残りは下に追加されます。Nwin が偶数であれば、下の方にもう 1 行追加されます。列も同じように追加されます。出力のサイズは、入力のサイズと同じになります。
- Output size を Full に設定すると、入力が 0 の 2*(Mwin-1) 行および 2*(Nwin-1) 列でパディングされます。パディングされた行の半分が上 (左側) に、もう半分が下 (右側) に追加されます。
- 出力の各要素 (i,j) に対して、次を実行します (出力全体に対して行優先順で反復)。
- 要素 (i,j) で始まるパディングされた入力行列から MxN 部分行列を選択します。
- カーネル サブシステムをこの部分行列に適用します。
- カーネルのスカラー出力を出力の要素 (i,j) に割り当てます。
Window Processing ブロックの階層は、次のようになります。
図 1. Window Processing ブロックの階層
Window Processing ブロックを使用する際には、次のような制限があります。
- Window Processing サブシステムのトポロジは変更できず、上の図と同じである必要があります。
- 入力信号は行列である必要があります。
- カーネルには、入力ポート 1 つと出力ポート 1 つを持つ必要があります。
- カーネルの出力はスカラーにする必要があります。
- カーネルの入力の次元は [Window size] パラメーターで指定する必要があります。
- 入力の次元は、少なくともウィンドウ サイズと同じ大きさである必要があります。
- カーネルには、次のブロックを含めることはできません。
- Unit Delay ブロックなどの内部ステートを持つブロック。
- デジタル信号処理ブロック FFT および IFFT。
-
xmcImportFunction
コマンドで作成したブロック。
- カーネルには if アクションのサブシステムを含めることはできません。
データ型サポート
入力または出力信号のデータ型に制限はありません。
パラメーター
Window size
このパラメーターは、ウィンドウのサイズを指定します。Window size には、[5,3] などの正の実数型整数の 2 要素ベクターを入力します。Window size に指定する要素数は、255 未満にする必要があります。
Output size
入力画像のエッジの処理方法を指定します。
入力の次元を Min, Nin にし、Window size を Mwin, Nwin にします。出力の次元は次のようになります。
- Output size を Full にした場合は Min+Mwin-1, Min+Nwin-1。
- Output size を Same as Input にした場合は Min, Nin。
- Output size を Valid にした場合は Min-Mwin+1, Min-Nwin+1。