Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Downsample

サンプルを削除することで低いレートで入力をリサンプリングする

  • Downsample block

ライブラリ:
DSP System Toolbox / Signal Operations
DSP System Toolbox HDL Support / Signal Operations

説明

Downsample ブロックは、サンプルを削除することにより入力のサンプル レートを減少させます。このブロックは、フレームベースの処理を実行する場合、Pi 行 Q 列の入力行列の各列にあるデータを個別にリサンプリングします。サンプルベースの処理を実行する場合は、入力の各要素を別々のチャネルとして扱い、入力配列の各チャネルを時間全体にわたってリサンプリングします。リサンプリング レートは入力サンプル レートの M 分の 1 になります。ここで、M はダウンサンプリング係数の値です。Downsample ブロックは、出力される各サンプルに続く M–1 個の連続するサンプルを破棄することで入力をリサンプリングします。

このブロックは、[レート オプション] パラメーターを [シングルレート処理を適用] に設定すると、Triggered Subsystem をサポートします。

すべて展開する

この例では、Downsample ブロックはフレーム サイズを小さくしてサンプル レートを減少させます。

モデルを開きます。Downsample ブロックは、フレーム サイズが 64 の単一チャネル入力をリサンプリングします。Downsample ブロックのダイアログ ボックスで、[ダウンサンプリング係数のソース] パラメーターが Input port に設定されます。これにより、[入力処理] パラメーターと [レート オプション] パラメーターがそれぞれ Columns as Channels (frame based)Enforce single-rate processing になるように自動的に設定されます。入力端子からのダウンサンプリング係数を 4 に指定します。

モデルを実行します。このブロックはシングルレート処理モードで動作し、入力を 4 分の 1 にダウンサンプリングします。ブロックの出力のフレーム サイズは 64 です。ブロックはシングルレート処理モードで動作するため、Downsample ブロックの入力信号と出力信号は同じフレーム レートになります。これは [タイミング凡例] から確認できます。凡例を開くには、モデル ツールストリップの [デバッグ] タブをクリックし、[情報のオーバーレイ][タイミング凡例] の順にクリックします。

この例では、Downsample ブロックはフレーム レートを下げてサンプル レートを減少させます。

モデルを開きます。Downsample ブロックへの入力は、フレーム周期が 1 秒のシングルチャネル信号です。ブロック ダイアログ ボックスで、[ダウンサンプリング係数、M] を 4 に設定し、[レート オプション][Allow multirate processing] に設定します。

モデルを実行します。ブロックはマルチレート フレームベース処理モードで動作します。ダウンサンプリング係数が 4 の場合、ブロックの出力のフレーム周期は 4 秒になります。これは [タイミング凡例] から確認できます。凡例を開くには、モデル ツールストリップの [デバッグ] タブをクリックし、[情報のオーバーレイ][タイミング凡例] の順にクリックします。ブロックはマルチレート処理モードで動作するため、Downsample ブロックの入力信号と出力信号は同じフレーム サイズになります。

Downsampleブロックを使用して、信号を係数 2 でダウンサンプリングします。

システムを開いてモデルを実行

Signal From Workspaceブロックは、フレーム サイズ 4 の 2 チャネル信号を生成します。タイミング凡例は、ダウンサンプリング演算の前後の信号のサンプル時間を示します。凡例を表示するには、[デバッグ] タブ、[情報のオーバーレイ][タイミング凡例] の順にクリックします。

モデルを実行します。ダウンサンプリング演算前の信号のサンプル時間は、演算後の信号のサンプル時間の半分です。

1 フレーム レイテンシ

Downsample ブロックの [入力処理] パラメーターは、Columns as channels (frame based) に設定されており、入力フレーム サイズ (入力の行数) Mi は 1 より大きくなります。したがって、信号のレイテンシは 1 フレームです。[初期条件] パラメーターは [11 -11;12 -12;13 -13;14 -14] に設定されます。1 フレーム レイテンシのすべてのケースで、初期条件行列の Mi 行が最初の 4 つの出力行として順番に表示されます。入力サンプル D+1 (つまり、入力行列の行 D+1) は、サンプル Mi+1 として出力に表示され、その後に入力サンプル D+1+K、入力サンプル D+1+2K のように続きます。

  • Mi - 入力行の数。この例では、Mi は 4 と等しくなります。

  • D - サンプル オフセット パラメーター。この例では、D は 1 と等しくなります。

  • K - ダウンサンプリング係数。この例では、K は 2 と等しくなります。

[初期条件] の値は、各チャネルに対して 1 つずつの値が含まれている MiN 列の行列、または MiN 列の行列の全要素に対して繰り返されるスカラーにすることができます。

以下は、ベース ワークスペースの変数 dsp_examples_yout に書き込まれたダウンサンプリング済みの出力信号です。

dsp_examples_yout =

    11   -11
    12   -12
    13   -13
    14   -14
     2    -2
     4    -4
     6    -6
     8    -8
    10   -10
    12   -12
    14   -14
    16   -16
    18   -18
    20   -20
    22   -22
    24   -24
    26   -26
    28   -28
    30   -30
    32   -32
    34   -34
    36   -36
    38   -38
    40   -40
    42   -42
    44   -44
    46   -46
    48   -48
    50   -50
    52   -52
    54   -54
    56   -56
    58   -58
    60   -60
    62   -62
    64   -64
    66   -66
    68   -68
    70   -70
    72   -72
    74   -74
    76   -76
    78   -78
    80   -80
    82   -82
    84   -84
    86   -86
    88   -88
    90   -90
    92   -92
    94   -94
    96   -96
    98   -98
   100  -100
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0

端子

入力

すべて展開する

サンプル レートを減少させる入力データ。列ベクトルまたは行列として指定します。

[入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)] に設定すると、入力を N 次元配列にすることができます。

[入力処理][チャネルとしての列 (フレーム ベース)] に、[レート オプション][シングルレート処理を適用] に設定している場合、このブロックは可変サイズの入力信号をサポートするため、フレーム長 (行数) とチャネル数 (列) がシミュレーション中に変化する可能性があります。ブロックが可変サイズの入力信号を受け入れる場合、入力信号は任意のフレーム長にすることができます。つまり、入力フレーム長がダウンサンプリング係数の倍数である必要はありません。固定サイズの信号を指定する場合、特定の条件下でフレーム長を任意の長さにすることができます。詳細については、フレームベースの処理およびサンプルベースの処理を参照してください。

[ダウンサンプリング係数のソース][入力端子] に設定するまで、この端子には名前が付けられません。 (R2023a 以降)

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
複素数のサポート: あり

R2023a 以降

ダウンサンプリング係数 M を正の整数で指定します。

依存関係

この端子を有効にするには、[ダウンサンプリング係数のソース] パラメーターを [入力端子] に設定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

出力

すべて展開する

サンプル レートが入力サンプル レートの 1/M 倍である、ダウンサンプリングされた出力。列ベクトルまたは行列として返されます。

[レート オプション] を次のように設定にした場合:

  • シングルレート処理を適用 –– ブロックは入力サンプル レートを維持し、出力のフレーム サイズを M 分の 1 に減少させることにより、信号をダウンサンプリングします。

    出力は、P 行 Q 列のサイズの入力に対し、ceil(P/M) 行 Q 列の上限サイズをもちます。

  • マルチレート処理を許可 –– ブロックは、出力サンプル レートが入力サンプル レートの M 分の 1 になるように信号をダウンサンプリングします。

    出力のフレーム サイズは入力のフレーム サイズと同じになります。

詳細については、フレームベースの処理およびサンプルベースの処理を参照してください。

次の条件のいずれかが満たされると、出力は可変サイズの信号になります。

  • 入力が可変サイズの信号である。

  • 入力が固定サイズの信号であり、[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターが選択されている。

  • ダウンサンプリング係数が端子 [M] を通して入力される。 (R2023a 以降)

出力が可変サイズ信号の場合、ブロックは連続するデータ フレーム全体で位相を維持します。詳細については、位相連続性を参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
複素数のサポート: あり

パラメーター

すべて展開する

R2023a 以降

次のオプションのいずれかを使用してダウンサンプリング係数を指定します。

  • ダイアログ パラメーター –– ブロックは、ブロック ダイアログ ボックスの [ダウンサンプリング係数、M] パラメーターを有効にします。

  • 入力端子 –– ブロックは、ダウンサンプリング係数を指定する入力端子 [M] を有効にします。

入力サンプル レートを減少させる整数の係数 M を指定します。

依存関係

このパラメーターを有効にするには、[ダウンサンプリング係数のソース][ダイアログ パラメーター] に設定します。 (R2023a 以降)

[サンプル オフセット (0 ~ M-1)] パラメーターは、出力サンプルをサンプル周期の数 D (0 ≤ D ≤ (M–1) の整数) だけ遅延させ、M 個の出力位相のいずれかを選択できるようにします。たとえば、1、2、3、... というシーケンスを係数 4 でダウンサンプリングする場合、4 つの位相のいずれかを選択できます。

入力シーケンスサンプル オフセット D出力シーケンス (M = 4)

1,2,3,...

0

1,5,9,13,17,21,25,29,...

1,2,3,...

1

0,2,6,10,14,18,22,26,...

1,2,3,...

2

0,3,7,11,15,19,23,27,...

1,2,3,...

3

0,4,8,12,16,20,24,28,...

表の最後の 3 つの出力シーケンスで最初が 0 になっているのは、[初期条件] パラメーターが既定値の 0 に設定されるためです。[初期条件] パラメーターの詳細については、レイテンシを参照してください。

入力端子 [M] を通してダウンサンプリング係数を入力する場合、ブロック ダイアログ ボックスの [サンプル オフセット (0 ~ M-1)] パラメーターは有効になりません。この場合、サンプル オフセット D は自動的に 0 に設定されます。 (R2023a 以降)

依存関係

このパラメーターを有効にするには、[ダウンサンプリング係数のソース][ダイアログ パラメーター] に設定します。 (R2023a 以降)

入力処理の方式を指定します。

  • チャネルとしての列 (フレーム ベース) –– [入力処理] パラメーターを [チャネルとしての列 (フレーム ベース)] に設定した場合、Q 個の入力列のそれぞれが、Pi 個の逐次時間サンプルが含まれる個別のチャネルとして扱われます。このブロックは、出力する各行に続く入力行列の M–1 行を破棄することにより、各チャネルを個別にダウンサンプリングします。

    詳細については、フレームベースの処理とはを参照してください。

  • チャネルとしての要素 (サンプル ベース) –– [入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)] に設定すると、入力を Q 次元配列にすることができます。Downsample ブロックは、入力の各要素を別々のチャネルとして扱い、入力配列の各チャネルを時間の経過に沿ってリサンプリングします。このブロックは、通過して出力に渡される各サンプルに続く M–1 個のサンプルを破棄することで入力配列をダウンサンプリングします。Downsample ブロックの入力と出力のサイズは同じです。

    詳細については、サンプルベースの処理とはを参照してください。

依存関係

このパラメーターを有効にするには、[ダウンサンプリング係数のソース][ダイアログ パラメーター] に設定します。 (R2023a 以降)

[ダウンサンプリング係数のソース][入力端子] に設定すると、[入力処理] パラメーターが自動的に [チャネルとしての列 (フレーム ベース)] に設定されます。 (R2023a 以降)

サンプル数の減少に対応するために、ブロックが出力端子でレートを調整する方法を指定します。ブロックは、[入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)] (サンプルベースの処理モード) に設定するか、[チャネルとしての列 (フレーム ベース)] (フレームベースの処理モード) に設定するかに応じて、シングルレート処理またはマルチレート処理を実行します。

  • チャネルとしての要素 (サンプル ベース)

    • シングルレート処理を適用

      このブロックは、Mth 番目の入力サンプルごとに出力で M 回繰り返すことにより、出力サンプル レートを入力サンプル レートに一致 (Tso = Tsi) させます。このモードでは、ブロックは周期 MTsi でトリガー イベントを繰り返す Sample and Hold ブロックのように動作します。

    • マルチレート処理を許可

      出力のサンプル周期は入力のサンプル周期の M 倍になります (Tso = MTsi)。

    詳細については、サンプルベースの処理を参照してください。

  • チャネルとしての列 (フレーム ベース)

    • シングルレート処理を適用

      ブロックは入力よりも比較的小さいフレーム "サイズ" を使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。出力の上限サイズは ceil(P/M) となります。ここで、P は入力フレーム長、M はダウンサンプリング係数です。入力と出力のフレーム レートは等しくなります。詳細については、フレームベースの処理を参照してください。例については、シングルレート フレームベース処理モードでの信号のダウンサンプリングを参照してください。

    • マルチレート処理を許可

      ブロックは入力端子よりも比較的長いフレーム "周期" を出力端子で使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。ダウンサンプリングの係数が M の場合、出力フレーム周期は入力フレーム周期の M 倍 (Tfo = MTfi) ですが、入力と出力のフレーム サイズは等しくなります。詳細については、フレームベースの処理を参照してください。例については、マルチレート フレームベース処理モードでの信号のダウンサンプリングを参照してください。

依存関係

このパラメーターを有効にするには、[ダウンサンプリング係数のソース][ダイアログ パラメーター] に設定します。 (R2023a 以降)

[ダウンサンプリング係数のソース][入力端子] に設定すると、[レート オプション] パラメーターが自動的に [シングルレート処理を適用] に設定されます。 (R2023a 以降)

固定サイズの入力信号 (シミュレーション中にサイズが変化しない) に対し、任意のフレーム長を許可するかを指定します。任意のフレーム長とは、フレーム長がダウンサンプリング係数の倍数である必要がないことを意味します。ブロックは、このパラメーター設定を固定サイズの入力信号に対してのみ使用し、可変サイズの入力の場合はこのパラメーターを無視します。

入力信号が可変サイズの信号の場合、そのフレーム長は任意の長さで構いません。つまり、フレーム長が間引き係数の倍数である必要はありません。

固定サイズの入力信号の場合:

  • [固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターを選択すると、信号のフレーム長がダウンサンプリング係数の倍数である必要がなくなります。入力がダウンサンプリング係数の倍数ではない場合、出力は一般的に可変サイズの信号となります。そのため、任意の入力サイズをサポートするには、ブロックは可変サイズの処理もサポートする必要があります。これは、[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターを選択することで有効にできます。

  • [固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターの選択を解除すると、入力フレーム長がダウンサンプリング係数の倍数でなければならなくなります。

依存関係

このパラメーターを有効にするには、次のように設定します。

  • [ダウンサンプリング係数のソース][ダイアログ パラメーター] にする。 (R2023a 以降)

  • [入力処理][チャネルとしての列 (フレーム ベース)] にする。

  • [レート オプション][シングルレート処理を適用] にする。

非ゼロ レイテンシの場合のブロックの初期値。スカラーを指定するか、入力と同じサイズの配列を指定できます。

依存関係

[入力処理][チャネルとしての列 (フレーム ベース)] に、[レート オプション][シングルレート処理を適用] に設定されていると、このパラメーターは表示されません。

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

直達

なし

多次元信号

なし

可変サイズの信号

あり

ゼロクロッシング検出

なし

詳細

すべて展開する

拡張機能

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入

すべて展開する