Main Content

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

Buffer

入力シーケンスの小さいフレーム サイズまたは大きいフレーム サイズへのバッファリング

  • ライブラリ:
  • DSP System Toolbox / Signal Management / Buffers

説明

Buffer ブロックは常にフレームベースの処理を実行します。ブロックは入力の各列にデータを再分散して異なるフレーム サイズで出力を生成します。信号をより大きいフレーム サイズにバッファリングすると、入力よりも "遅い" フレーム レートの出力が得られます。たとえば、次の図のようなスカラー入力を検討します。

信号をより小さいフレーム サイズにバッファリングすると、入力よりも "速い" フレーム レートの出力が得られます。たとえば、次の図のようなスカラー出力を検討します。

ブロックによってオーバーラップのないバッファーの出力 "フレーム サイズ" と "フレーム レート" が調整されるため、信号のサンプル周期は次のように入力と出力の両方で同じになっています。Tso = Tsi

このブロックは、ブロックの入力レートと出力レートが同じ場合は、Triggered Subsystem をサポートします。

端子

入力

すべて展開する

単一チャネル信号をバッファリングするには、スカラーまたは列ベクトルを入力します。マルチチャネル信号をバッファリングするには、行ベクトルまたは行列を入力します。単一チャネル信号をバッファリングするには、サイズが Mi 行 1 列のスカラーまたは列ベクトルを入力します。ここで、Mi は入力フレーム サイズです。

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

出力

すべて展開する

バッファリングした入力信号。ベクトルまたは行列として返されます。

入力が単一チャネル信号の場合、次のようになります。

  • 1 行 1 列 (スカラー) — 出力は、Mo 行 1 列のベクトル。

  • Mi 行 1 列 (列ベクトル) — 出力は、Mo 行 1 列のベクトル。

ここで、

  • Mi — 入力フレーム サイズ

  • Mo[Output buffer size] パラメーターの値

入力フレーム周期は Mi · Tsi です。ここで Tsi は入力サンプル周期です。出力フレーム周期は (MoL)Tsi です。ここで L は [Buffer overlap] パラメーターの値、Tsi は入力サンプル周期です。[Buffer overlap] パラメーターを Mo – 1 に設定すると、出力フレーム周期が入力サンプル周期と等しくなります。

入力がマルチチャネル信号の場合、次のようになります。

  • 1 行 N 列 — 出力は、Mo 行 N 列の行列。

  • Mi 行 N 列 — 出力は、Mo 行 N 列の行列。

ここで、

  • N — 信号のチャネル数

  • Mi — 入力フレーム周期

  • Mo[Output buffer size] パラメーターの値で、入力フレーム サイズ Mi より大きいまたは小さい場合があります。ブロックは N 個の入力チャネルをそれぞれ個別にバッファリングします。

入力フレーム周期は Mi · Tsi となります。出力フレーム周期は (MoL)Tsi で、[Buffer overlap]Mo1 の場合にシーケンス サンプル周期と等しくなります。したがって、出力サンプル周期 Tso は次のように、入力サンプル周期 Tsi と関連付けられます。

Tso=(MoL)TsiMi

出力は入力と同じデータ型および実数/複素数をもちます。

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

パラメーター

すべて展開する

各チャネルから出力フレームにバッファリングする連続サンプル数 Mo を指定します。

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

サンプル数 L を指定します。連続する出力フレームのそれぞれでオーバーラップまたはアンダーラップする量を指定します。

バッファーでデータをオーバーラップするには、L の値を 0L<Mo の範囲で指定します。ここで、Mo[Output buffer size] パラメーターの値です。ブロックは現在の出力から L 個のサンプル (列) を取得し、次の出力でそれを繰り返します。オーバーラップする場合、ブロックは MoL の "新しい" 入力サンプルを取得してから、バッファリングされたデータを出力に伝播します。

L<0 の場合、信号をアンダーラップでバッファリングしています。ブロックはバッファーが満杯になると L 個の入力サンプルを破棄し、周期 (MoL)Tsi でバッファーを出力します。それにより、オーバーラップがゼロの場合よりも長くなります。

出力フレーム周期は (MoL)Tsi で、入力シーケンス サンプル周期 Tsi と等しくなります。ここで [Buffer overlap]Mo1 です。

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

非ゼロ レイテンシの場合のブロックの初期出力値を指定します。スカラー、ベクトルまたは行列のいずれかとして指定します。

ゼロタスク レイテンシに記載されたケースを除くすべてのシングルタスク演算 (Simulink Coder)では、Buffer ブロックのバッファーは [Initial conditions] パラメーターで指定される値に初期化されます。ブロックはこのバッファーから読み取って最初の D 個の出力サンプルを生成します。ここで、

D={Mo+L(L0)Mo(L<0)

[Initial conditions] パラメーターの次元は [Buffer overlap] L と入力が単一チャネルであるかマルチチャネルであるかによって異なります。

  • L0 の場合、[Initial conditions] パラメーターはスカラーでなければなりません。

  • L=0 の場合、[Initial conditions] パラメーターはスカラーまたは次のいずれかの制約のあるベクトルにすることができます。

    • 単一チャネル入力の場合、[Initial conditions] パラメーターは長さが Mo のベクトル (Mi が 1 の場合) または長さが Mi のベクトル (Mo が 1 の場合) にすることができます。

    • マルチチャネル入力の場合、[Initial conditions] パラメーターは長さが Mo * N のベクトル (Mi が 1 の場合) または長さが Mi * N のベクトル (Mo が 1 の場合) にすることができます。

すべてのマルチタスク演算 (Simulink Coder)では、関数 rebuffer_delay を使用して、Buffer ブロックが指定の組み合わせのバッファー サイズとバッファー オーバーラップに対して生成する遅延の正確な値 (サンプル数) を計算します。

任意のフレーム サイズ間での全般的なバッファリングでは、[Initial conditions] パラメーターはスカラーでなければなりません。その後、この値は初期出力のすべての要素で繰り返されます。ただし、入力が 1 行 N 列の行ベクトルで、ブロックの出力が Mo 行 N 列の行列である特別なケースの場合、[Initial conditions] は次のいずれかになります。

  • Mo 行 N 列の行列

  • 初期出力のすべての列で繰り返される、長さが Mo のベクトル

  • 初期出力のすべての要素で繰り返されるスカラー

出力が 1 行 N 列の行ベクトル、つまり Mi 行 N 列の行列をバッファー解除した結果として得られる、特別なケースの場合、[Initial conditions] は次のいずれかになります。

  • 最初の Mi サンプル時間中に各チャネルに対して順番に出力される Mi サンプルを含むベクトル

  • 初期出力のすべての要素で繰り返されるスカラー

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

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

ブロックの特性

データ型

double | single | Boolean | base integer | fixed point

直接フィードスルー

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

詳細

すべて展開する

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

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

R2006a より前に導入