最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Downsample

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

ライブラリ

信号処理

dspsigops

説明

Downsample ブロックは、サンプルを削除することで入力のサンプル レートを低減させます。このブロックは、フレームベースの処理を実行する場合、Mi 行 N 列の入力行列の各列にあるデータを個別にリサンプリングします。サンプルベースの処理を実行する場合は、入力の各要素を別々のチャネルとして扱い、入力配列の各チャネルを時間全体にわたってリサンプリングします。リサンプリングのレートは、入力サンプルレートの K 分の 1 になります。K は [Downsample factor] パラメーターで指定した整数です。Downsample ブロックは、通過して出力に渡される各サンプルに続く K–1 個の連続するサンプルを破棄することで入力をリサンプリングします。

[Sample offset] パラメーターは出力サンプルをサンプル周期の数 D (0 ≤ D ≤ (K–1) の整数) だけ遅延させます。それにより、 K による出力位相のいずれかを選択できます。たとえば、1, 2, 3, ... のようなシーケンスを係数 4 でダウンサンプリングする場合は、次の 4 つの位相のいずれかを選択できます。

入力シーケンスサンプル オフセット D出力シーケンス (K=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 になっているのは、この例の [Initial conditions] パラメーターの設定が既定の 0 になっているためです。[Initial conditions] パラメーターの詳細については、レイテンシを参照してください。

このブロックは、[Rate options] パラメーターを [Enforce single-rate processing] に設定すると、Triggered Subsystem をサポートします。

サンプルベースの処理

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

[Rate options] パラメーターは、ブロックを出力のレートで調整してサンプル数の減少に対応する方法を指定します。2 つのオプションを使用できます。

  • Allow multirate processing

    [Allow multirate processing] を選択すると、出力のサンプル周期が入力のサンプル周期の K 倍になります (Tso = KTsi)。

  • Enforce single-rate processing

    [Enforce single-rate processing] を選択すると、出力サンプルレートが入力サンプルレートと同じになります (Tso = Tsi)。ブロックでは、これを強制するために、K 番目の各入力サンプルを出力で K 回繰り返します。このモードのブロックの動作は、周期 KTsi でトリガー イベントを繰り返す Sample and Hold ブロックの処理に似ています。

フレームベースの処理

[Input processing] パラメーターを [Columns as channels (frame based)] に設定すると、ブロックは N 個の入力列のそれぞれを Mi 個の逐次時間サンプルを含む個別のチャネルとして扱います。このブロックは、通過して出力に渡される各行に続く入力行列の K–1 個の行を破棄することで各チャネルを個別にダウンサンプリングします。

[Rate options] パラメーターは、ブロックを出力のレートで調整してサンプル数の減少に対応する方法を指定します。2 つのオプションを使用できます。

  • Allow multirate processing

    ブロックは入力端子よりも比較的長いフレーム "周期" を出力端子で使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。ダウンサンプリングの係数が K の場合、出力フレーム周期は入力フレーム周期の K 倍 (Tfo = KTfi) ですが、入力と出力のフレーム サイズは等しくなります。

    ex_downsample_ref1 モデルでは、フレーム周期が 1 秒の単一チャネル入力を係数 4 でダウンサンプリングしてフレーム周期を 4 秒にしています。入力と出力のフレーム サイズは同じです。

  • Enforce single-rate processing

    ブロックは入力よりも比較的小さいフレーム "サイズ" を使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。ダウンサンプリングの係数が K の場合、出力フレーム サイズは入力フレーム サイズの K 分の 1 (Mo = Mi/K) ですが、入力と出力のフレーム レートは等しくなります。

    ex_downsample_ref2 モデルでは、フレーム サイズが 64 の単一チャネル入力を係数 4 でダウンサンプリングしてフレーム サイズを 16 にしています。入力と出力のフレーム レートは同じです。

レイテンシ

Downsample ブロックは、次のような場合に "ゼロタスク レイテンシ" になります。

  • [Downsample factor] パラメーター K が 1 である。

  • [Input processing] パラメーターが [Columns as channels (frame based)][Rate options] パラメーターが [Enforce single-rate processing] に設定されている。

  • [Input processing] パラメーターが [Columns as channels (frame based)] に設定されていて、入力フレーム サイズが 1 である。

  • [Input processing] パラメーターが [Elements as channels (sample based)] に設定されていて、[Sample offset] パラメーター D が 0 である。

ゼロタスク レイテンシとは、ブロックが入力サンプル D+1 (t=0 で受信) を最初の出力サンプルとして伝播し、入力サンプル D+1+K、入力サンプル D+1+2K のように続くことを意味します。ゼロタスク レイテンシがある場合、ブロックは [Initial conditions] パラメーターの値を無視します。

それ以外の場合、いずれもレイテンシは非ゼロになります。

  • [Input processing] パラメーターが [Elements as channels (sample based)] が設定されている場合、レイテンシは 1 サンプルです。

  • [Input processing] パラメーターが [Columns as channels (frame based)] に設定されていて、入力フレーム サイズが 1 より大きい場合、レイテンシは 1 フレームです。

"1 サンプルのレイテンシ" の場合は、いずれも各チャネルの初期条件が最初の出力サンプルとして表示されます。入力サンプル D+1 が各チャネルの 2 番目の出力サンプルとなり、入力サンプル D+1+K、入力サンプル D+1+2K のように続きます。[Initial conditions] パラメーターは、入力と同じサイズの配列か、すべての信号チャネルに適用するスカラーになります。

"1 フレームのレイテンシ" の場合は、いずれも初期条件の行列の Mi 行が順番通りに出力の最初の Mi 行になります。入力サンプル D+1 (入力行列の行 D+1) が出力サンプル Mi+1 となり、入力サンプル D+1+K、入力サンプル D+1+2K のように続きます。[Initial conditions] の値は、チャネルごとに 1 つの値を含む Mi 行 N 列の行列か、Mi 行 N 列の行列の全要素に渡って繰り返されるスカラーになります。この場合については、次の例を参照してください。

メモ:

レイテンシと Simulink® タスク モードの詳細については、Excess Algorithmic Delay (Tasking Latency)時間ベースのスケジューリングとコード生成 (Simulink Coder)を参照してください。

ex_downsample_ref3 モデルを開きます。

モデルを実行して出力 yout を確認します。各チャネルの最初のいくつかのサンプルは次のようになります。

yout =
    11   -11
    12   -12
    13   -13
    14   -14
     2    -2
     4    -4
     6    -6
     8    -8
    10   -10
    12   -12
    14   -14

2 つの Probe ブロックを見ると、このモデルには少なくとも 2 つの異なるフレーム レートがあることがわかります。このモデルはマルチレートのマルチタスク モードで実行しているため、初期条件の行列の最初の行が最初の出力サンプルとなり、初期条件のその後の 3 行が以降に続きます。最初の入力行列の 2 番目の行 (行 D+1、D は [Sample offset]) が出力サンプル 5 (サンプル Mi+1、Mi は入力フレーム サイズ) となります。

パラメーター

Downsample factor

整数の係数 K。この係数で入力サンプルレートを低減します。

Sample offset

サンプル オフセット D。[0, K–1] の範囲の整数でなければなりません。

Input processing

ブロックで入力を処理する方法を指定します。これらのパラメーターは、以下のいずれかのオプションに設定することができます。

  • Columns as channels (frame based) — このオプションを選択する場合、ブロックは入力の各列を別々のチャネルとして扱います。詳細については、フレームベースの処理を参照してください。

  • Elements as channels (sample based) — このオプションを選択する場合、ブロックは入力の各要素を別々のチャネルとして扱います。詳細は、サンプルベースの処理を参照してください。

Rate options

ブロックが入力をダウンサンプリングする方法を指定します。以下のオプションのいずれかを選択します。

  • Enforce single-rate processing — このオプションを選択すると、ブロックは入力のサンプルレートを維持します。

  • Allow multirate processing — このオプションを選択すると、ブロックは出力サンプルレートを入力サンプルレートの K 分の 1 にして信号をダウンサンプリングします。

Initial conditions

非ゼロ レイテンシの場合にブロックを初期化する値。スカラーを指定するか、入力と同じサイズの配列を指定できます。このパラメーターは、[Rate options] パラメーターを [Allow multirate processing] に設定した場合にのみ表示されます。

サポートされているデータ型

端子サポートされているデータ型

入力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点 (符号付きおよび符号なし)

  • boolean

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

出力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点 (符号付きおよび符号なし)

  • boolean

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

参考

FIR DecimationDSP System Toolbox
FIR Rate ConversionDSP System Toolbox
RepeatDSP System Toolbox
Sample and HoldDSP System Toolbox
UpsampleDSP System Toolbox

拡張機能

固定小数点の変換
Fixed-Point Designer™ を使用して浮動小数点アルゴリズムを固定小数点に変換します。

R2006a より前に導入