このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Downsample
サンプルを削除することで低いレートで入力をリサンプリングする

ライブラリ:
DSP System Toolbox /
Signal Operations
DSP System Toolbox HDL Support /
Signal Operations
説明
Downsample ブロックは、サンプルを削除することにより入力のサンプリング レートを低くします。このブロックは、フレームベースの処理を実行する場合、Pi 行 Q 列の入力行列の各列にあるデータを個別にリサンプリングします。サンプルベースの処理を実行する場合は、入力の各要素を別々のチャネルとして扱い、入力配列の各チャネルを時間全体にわたってリサンプリングします。リサンプリング レートは、入力サンプルレートの K 分の 1 になります。K は [ダウンサンプリング係数] パラメーターの値です。Downsample ブロックは、出力される各サンプルに続く K–1 個の連続するサンプルを破棄することで入力をリサンプリングします。
このブロックは、[レート オプション] パラメーターを [シングルレート処理を適用]
に設定すると、Triggered Subsystem をサポートします。
例
端子
入力
Port_1 — データ入力
列ベクトル | 行列 | N 次元配列
このブロックを使用してサンプリング レートを低下させたいデータ入力。列ベクトルまたは行列として指定します。
[入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)]
に設定すると、入力を N 次元配列にすることができます。
[入力処理] を [チャネルとしての列 (フレーム ベース)]
に、[レート オプション] を [シングルレート処理を適用]
に設定している場合、このブロックは可変サイズの入力信号をサポートします。そのため、フレーム長 (行数) とチャネル数 (列) がシミュレーション中に変化しても構いません。ブロックが可変サイズの入力信号を受け入れる場合、信号のフレーム長は任意の長さで構いません。つまり、入力フレーム長がダウンサンプリング係数の倍数である必要はありません。固定サイズの信号を指定する場合、特定の条件下でフレーム長を任意の長さにすることができます。詳細は、フレームベースの処理およびサンプルベースの処理を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
複素数のサポート: あり
出力
Port_1 — ダウンサンプリングされた出力
列ベクトル | 行列
サンプリング レートが入力サンプリング レートの 1/K 倍である、ダウンサンプリングされた出力。列ベクトルまたは行列として返されます。
[レート オプション] を次のように設定にした場合:
シングルレート処理を適用
— ブロックは入力サンプル レートを維持し、出力のフレーム サイズを K 分の 1 に減少させることにより、信号をダウンサンプリングします。出力は、P 行 Q 列のサイズの入力に対し、
ceil
(P/K) 行 Q 列の上限サイズをもちます。マルチレート処理を許可
— ブロックは、出力サンプル レートが入力サンプル レートの K 分の 1 になるように信号をダウンサンプリングします。出力のフレーム サイズは入力のフレーム サイズと同じになります。
詳細は、フレームベースの処理およびサンプルベースの処理を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
複素数のサポート: あり
パラメーター
Downsample factor, K — ダウンサンプリング係数
2
(既定値) | 正の整数
整数の係数 K。この係数で入力サンプルレートを低減します。
Sample offset (0 to K-1) — Sample offset
0
(既定値) | 整数
[Sample offset] パラメーターは出力サンプルをサンプル周期の数 D (0 ≤ D ≤ (K–1) の整数) だけ遅延させます。それにより、 K による出力位相のいずれかを選択できます。たとえば、1、2、3、... というシーケンスを係数 4 でダウンサンプリングする場合、4 つの位相のいずれかを選択できます。
入力シーケンス | サンプル オフセット D | 出力シーケンス (K = 4) |
---|---|---|
| 0 |
|
| 1 |
|
| 2 |
|
| 3 |
|
表の後ろの 3 つの各出力シーケンスで最初が 0 になっているのは、この例の [Initial conditions] パラメーターの設定が既定の 0 になっているためです。[Initial conditions] パラメーターの詳細については、レイテンシを参照してください。
Input processing — 入力を処理する方式
Columns as channels (frame based)
(既定値) | Elements as channels (sample based)
入力処理の方式を指定します。
チャネルとしての列 (フレーム ベース)
–– [入力処理] パラメーターを[チャネルとしての列 (フレーム ベース)]
に設定した場合、Q 個の入力列のそれぞれが、Pi 個の逐次時間サンプルが含まれる個別のチャネルとして扱われます。このブロックは、出力する各行に続く入力行列の K – 1 行を破棄することにより、各チャネルを個別にダウンサンプリングします。詳細については、フレームベースの処理とはを参照してください。
チャネルとしての要素 (サンプル ベース)
–– [入力処理] パラメーターを[チャネルとしての要素 (サンプル ベース)]
に設定すると、入力を Q 次元配列にすることができます。Downsample ブロックは、入力の各要素を別々のチャネルとして扱い、入力配列の各チャネルを時間の経過に沿ってリサンプリングします。このブロックは、通過して出力に渡される各サンプルに続く K–1 個のサンプルを破棄することで入力配列をダウンサンプリングします。Downsample ブロックの入力と出力のサイズは同じです。詳細については、サンプルベースの処理とはを参照してください。
Rate options — シングルレート処理を適用またはマルチレート処理を許可
シングルレート処理を適用
(既定値) | マルチレート処理を許可
このブロックでサンプル数の減少に対応するために出力のレートを調整する方法を指定します。以下のオプションのいずれかを選択します。これらのオプションの動作は、[入力処理] パラメーターが [チャネルとしての要素 (サンプル ベース)]
(サンプル ベースの処理モード) と [チャネルとしての列 (フレーム ベース)]
(フレーム ベースの処理モード) のどちらに設定されているかに依存します。
Elements as channels (sample based)
シングルレート処理を適用
入力信号を K 個ごとに出力で K 回繰り返すことにより、強制的に出力サンプルレートを入力サンプルレートに一致させます (Tso = Tsi)。このモードのブロックの動作は、周期 KTsi でトリガー イベントを繰り返す Sample and Hold ブロックの処理に似ています。
マルチレート処理を許可
出力のサンプル周期は入力のサンプル周期の K 倍になります (Tso = KTsi)。
詳細は、サンプルベースの処理を参照してください。
Columns as channels (frame based)
シングルレート処理を適用
ブロックは入力よりも比較的小さいフレーム "サイズ" を使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。出力の上限サイズは
ceil
(P/K) となります。ここで、P は入力フレーム長、K は [Downsample factor, K] パラメーターで指定したダウンサンプリング係数です。入力と出力のフレーム レートは等しくなります。詳細は、フレームベースの処理を参照してください。ex_downsample_ref2 モデルでは、フレーム サイズが 64 の単一チャネル入力を係数 4 でダウンサンプリングしてフレーム サイズを 16 にしています。入力と出力のフレーム レートは同じです。
マルチレート処理を許可
ブロックは入力端子よりも比較的長いフレーム "周期" を出力端子で使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。ダウンサンプリングの係数が K の場合、出力フレーム周期は入力フレーム周期の K 倍 (Tfo = KTfi) ですが、入力と出力のフレーム サイズは等しくなります。詳細は、フレームベースの処理を参照してください。
ex_downsample_ref1 モデルでは、フレーム周期が 1 秒の単一チャネル入力を係数 4 でダウンサンプリングしてフレーム周期を 4 秒にしています。入力と出力のフレーム サイズは同じです。
固定サイズの入力信号に対する任意のフレーム長を許可 — 固定サイズの入力信号に対する任意のフレーム長を許可
on (既定値) | off
固定サイズの入力信号 (シミュレーション中にサイズが変化しない入力信号) に対し、任意のフレーム長を許可するかを指定します。任意のフレーム長とは、フレーム長がダウンサンプリング係数の倍数である必要がないことを意味します。ブロックは、このパラメーター設定を固定サイズの入力信号に対してのみ使用し、可変サイズの入力の場合はこのパラメーターを無視します。
入力信号が可変サイズの信号の場合、そのフレーム長は任意の長さで構いません。つまり、フレーム長が間引き係数の倍数である必要はありません。
固定サイズの入力信号の場合:
[Allow arbitrary frame length for fixed-size input signals] パラメーターを選択すると、信号のフレーム長がダウンサンプリング係数の倍数である必要がなくなります。入力がダウンサンプリング係数の倍数ではない場合、出力は一般的に可変サイズの信号となります。そのため、任意の入力サイズをサポートするには、ブロックは可変サイズの処理もサポートする必要があります。これは、[Allow arbitrary frame length for fixed-size input signals] パラメーターを選択することで有効にできます。
[Allow arbitrary frame length for fixed-size input signals] パラメーターの選択を解除すると、入力フレーム長がダウンサンプリング係数の倍数でなければならなくなります。
依存関係
このパラメーターを有効にするには、[入力処理] を [チャネルとしての列 (フレーム ベース)]
に、[レート オプション] を [シングルレート処理を適用]
に設定します。
初期条件 — 初期値
0
(既定値) | 実数スカラー | 配列
非ゼロ レイテンシの場合のブロックの初期値。スカラーを指定するか、入力と同じサイズの配列を指定できます。
依存関係
[入力処理] が [チャネルとしての列 (フレーム ベース)]
に、[レート オプション] が [シングルレート処理を適用]
に設定されていると、このパラメーターは表示されません。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
フレームベースの処理
[入力処理] パラメーターを [チャネルとしての列 (フレーム ベース)]
に設定し、P 行 Q 列のサイズの入力信号を使用した場合、Q 個の入力列のそれぞれが、P 個の逐次時間サンプルが含まれる個別のチャネルとして扱われます。このブロックは、出力する各行に続く入力行列の K – 1 行を破棄することにより、各チャネルを個別にダウンサンプリングします。
このモードでは、ブロックはシングルレート処理またはマルチレート処理のいずれかを実行できます。[レート オプション] パラメーターを使用することにより、ブロックを出力のレートで調整してサンプル数の減少に対応する方法を指定できます。
[レート オプション] パラメーターを
[シングルレート処理を適用]
に設定すると、ブロックは入力よりも比較的小さいフレーム "サイズ" を使用して、遅い (ダウンサンプリングされた) レートで出力を生成します。出力の上限サイズは
ceil
(P/K) となります。ここで、P は入力フレーム長、K は [Downsample factor, K] パラメーターで指定したダウンサンプリング係数です。このモードでは、固定サイズの信号 (シミュレーション中に信号の次元が変化しない) を入力して [Allow arbitrary frame length for fixed-size input signals] パラメーターを選択すると、入力フレーム長は任意の長さとなり、ダウンサンプリング係数の倍数である必要がなくなります。[Allow arbitrary frame length for fixed-size input signals] パラメーターの選択を解除すると、入力フレーム長はダウンサンプリング係数の倍数でなければならなくなります。
このモードでは、可変サイズの信号 (シミュレーション中に信号の次元が変化する) を入力すると、ブロック ダイアログ ボックスに [Allow arbitrary frame length for fixed-size input signals] が表示されますが、入力フレーム サイズ要件には影響しません。[Allow arbitrary frame length for fixed-size input signals] パラメーターを選択しなくても、可変サイズの信号を任意のフレーム サイズで入力できます。
次の表は、[入力処理] を
[チャネルとしての列 (フレーム ベース)]
に、[レート オプション] を[シングルレート処理を適用]
に設定した場合の任意の入力フレーム長のサポートについてまとめています。入力信号 この信号に対するブロックのサポート 任意の入力フレーム長のサポート 入力サイズ 出力サイズ 固定サイズの入力信号 あり [Allow arbitrary frame length for fixed-size input signals] を選択した場合 P 行 Q 列 ceil
(P/K) 行 Q 列の上限サイズ可変サイズの入力信号 あり 常時 P 行 Q 列 ceil
(P/K) 行 Q 列の上限サイズ[レート オプション] パラメーターを
[マルチレート処理を許可]
に設定すると、Downsample ブロックの入力と出力のサイズは同じになりますが、出力のサンプル レートが入力のサンプル レートの K 分の 1 になります。このモードでは、ブロックが P 行 Q 列の行列入力を Q 個の独立チャネルとして扱います。このモードでは、ブロックが固定サイズの信号のみを受け付けます。固定サイズの信号のフレーム長は任意の長さで構いません。
次の表は、[入力処理] を
[チャネルとしての列 (フレーム ベース)]
に、[レート オプション] を[マルチレート処理を許可]
に設定した場合の任意の入力フレーム長のサポートについてまとめています。入力信号 この信号に対するブロックのサポート 任意の入力フレーム長のサポート 入力サイズ 出力サイズ 固定サイズの入力信号 あり 常時 P 行 Q 列 P 行 Q 列 可変サイズの入力信号 なし 該当なし 該当なし 該当なし
サンプルベースの処理
[入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)]
に設定すると、ブロックは P 行 Q 列の行列入力を P*Q 個の独立したチャネルとして扱い、時間をかけて各チャネルをリサンプリングします。出力サンプル周期 (Tso) は、入力サンプル周期 (Tso = K*Tsi) の K 倍で、入力と出力のサイズは同一になります。
このモードでは、ブロックが固定サイズの信号のみを受け付けます。固定サイズの信号のフレーム長は任意の長さで構いません。
次の表は、[入力処理] を [チャネルとしての要素 (サンプル ベース)]
に設定した場合の任意の入力フレーム長のサポートについてまとめています。
入力信号 | この信号に対するブロックのサポート | 任意の入力フレーム長のサポート | 入力サイズ | 出力サイズ |
---|---|---|---|---|
固定サイズの入力信号 | あり | 常時 | P 行 Q 列 | P 行 Q 列 |
可変サイズの入力信号 | なし | 該当なし | 該当なし | 該当なし |
レイテンシ
レイテンシは、ブロックの入力と出力の間でサンプル数単位またはフレーム数単位で測定された遅延です。
Downsample ブロックは、次のような場合に "ゼロタスク レイテンシ" になります。
[Downsample factor] パラメーター K が
1
である。[入力処理] パラメーターが
[チャネルとしての列 (フレーム ベース)]
に、[レート オプション] パラメーターが[シングルレート処理を適用]
に設定されている。[入力処理] パラメーターが
[チャネルとしての列 (フレーム ベース)]
に、[レート オプション] パラメーターが[マルチレート処理を許可]
に、[サンプル オフセット] パラメーター D が0
に設定されており、入力フレーム サイズが 1 である。[入力処理] パラメーターが
[チャネルとしての要素 (サンプル ベース)]
に設定されており、[サンプル オフセット] パラメーター 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 のように続きます。[初期条件] パラメーターは、入力と同じサイズの配列か、すべての信号チャネルに適用するスカラーにすることができます。
"1 フレームのレイテンシ" の場合は、いずれも初期条件の行列の Pi 行が順番通りに出力の最初の Pi 行になります。入力サンプル D + 1 (入力行列の行 D + 1) は出力でサンプル Pi + 1 として現れ、入力サンプル D + 1 + K、入力サンプル D + 1 + 2K のように続きます。[初期条件] の値は、各チャネルに対して 1 つずつの値が含まれている Pi 行 Q 列の行列、または Pi 行 Q 列の行列の全要素に対して繰り返されるスカラーにすることができます。
メモ
レイテンシと Simulink® タスク モードの詳細については、Excess Algorithmic Delay (Tasking Latency)と時間ベースのスケジューリングとコード生成 (Simulink Coder)を参照してください。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
生成されたコードは特定の条件下で関数 memcpy
または関数 memset
(string.h
) に依存します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
HDL Coder™ は、HDL の実装および合成ロジックに影響を与える、追加の構成オプションを提供します。
単位遅延がある Downsample ブロックを続けることをお勧めします。このようにすると、余計なバイパス レジスタが HDL コードに挿入されなくなります。
マルチレート モデルの HDL コード生成に関する要件 (HDL Coder)も参照してください。
このブロックは 1 つの既定の HDL アーキテクチャをもっています。
ConstrainedOutputPipeline | 設計内で既存の遅延を移動することによって出力に配置するレジスタの数。分散型パイプラインは、これらのレジスタを再分散しません。既定の設定は |
InputPipeline | 生成コードに挿入する入力パイプライン ステージの数。分散型パイプラインと制約付き出力パイプラインは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成コードに挿入する出力パイプライン ステージの数。分散型パイプラインと制約付き出力パイプラインは、これらのレジスタを移動できます。既定の設定は |
このブロックは、複素信号に対するコード生成をサポートします。
[Input processing] パラメーターを
[Columns as channels (frame based)]
に設定することはできません。[Input processing] を
[Elements as channels (sample based)]
に設定するには、[Allow multirate processing]
を選択します。このように設定すると、[Sample offset] が 0 に設定されている場合、生成されるコードに [Initial conditions] は影響を与えません。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006a より前に導入R2022b: 任意の入力フレーム長と可変の入力フレームサイズのサポート
R2022b 以降、このブロックは次に示す条件下で任意のフレーム長をもつ入力信号をサポートしています。
入力信号が固定サイズの信号 (シミュレーション中に信号の次元が変化しない) で、ブロックがマルチレート処理を許可している場合
入力信号が固定サイズの信号で、ブロックがシングルレート処理を実行し、[Allow arbitrary frame length for fixed-size input signals] パラメーターが選択されている (有効になっている場合) 場合
入力信号が可変サイズの信号 (シミュレーション中に信号の次元が変化する) の場合
このブロックが任意のフレーム長の入力信号をサポートしている場合、入力フレーム長はダウンサンプリング係数の倍数である必要はありません。
詳細は、フレームベースの処理およびサンプルベースの処理を参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)