このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Moving Average
移動平均
ライブラリ:
DSP System Toolbox /
Statistics
説明
Moving Average ブロックは、時間の経過に沿って入力信号の移動平均を各チャネルで個別に計算します。このブロックでは、スライディング ウィンドウ法または指数の重み付け法を使用して移動平均を計算します。スライディング ウィンドウ法では、データ サンプル上で指定の長さのウィンドウをサンプルごとに移動させ、ウィンドウ内のデータの平均をブロックで計算します。指数の重み付け法では、データ サンプルに一連の重み係数を掛け、重み付けしたデータの合計を求めて平均を計算します。これらの方法の詳細については、アルゴリズムを参照してください。
例
Compute Moving Average of Noisy Step Signal
Compare the sliding window averaging method and the exponentially weighted averaging method in Simulink® using the Moving Average block.
端子
入力
x — データ入力
ベクトル | 行列
ブロックは、この入力端子で指定されているデータの移動平均を計算します。m 行 n 列 (m ≥ 1、n ≥ 1) のサイズの実数値または複素数値のマルチチャネル入力を指定します。
[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターが表示され、このパラメーターが選択されていない場合、かつ固定サイズの信号を入力している場合、フレーム長はホップ サイズ (ウィンドウの長さからオーバーラップの長さを引いた値) の倍数でなければなりません。それ以外の場合、入力フレーム長は任意の長さで構いません。
ブロックは、可変サイズの入力 (シミュレーション中にフレーム長が変化する) を受け入れます。可変サイズの信号を入力する場合、信号のフレーム長は任意の長さで構いません。
この端子は、[メソッド] を [Exponential weighting]
に設定して [入力端子から忘却係数を指定] パラメーターを選択するまでは名前なしになります。
データ型: single
| double
複素数のサポート: あり
lambda — 忘却係数
(0,1] の範囲の正の実数スカラー
忘却係数によって、古いデータに与えられる重みが決まります。忘却係数 0.1 よりも忘却係数 0.9 の方が古いデータに対する重みが大きくなります。忘却係数 1.0 は無限メモリを示し、以前の全サンプルに均等な重みが与えられます。
依存関係
この端子は、[メソッド] を [Exponential weighting]
に設定して [入力端子から忘却係数を指定] パラメーターを選択すると表示されます。
データ型: single
| double
出力
Port_1 — 移動平均の出力
ベクトル | 行列
移動平均。ベクトルまたは行列として返されます。このブロックでは、スライディング ウィンドウ法または指数の重み付け法のどちらかを使用し、[メソッド] パラメーターの設定に基づいて移動平均を計算します。詳細については、アルゴリズムを参照してください。
出力信号の次元の詳細について次の表で説明します。
入力信号 | 入力の次元 | [固定サイズの入力信号に対する任意のフレーム長を許可] が表示される場合の出力の次元 | [固定サイズの入力信号に対する任意のフレーム長を許可] が表示されない場合の出力の次元 |
---|---|---|---|
固定サイズ信号 | m 行 n 列。ここで、m はホップ サイズ (ウィンドウの長さからオーバーラップの長さを引いた値) の倍数です。 | (m/ホップ サイズ) 行 n 列 | m 行 n 列 |
固定サイズ信号 | m 行 n 列。ここで、m はホップ サイズ (ウィンドウの長さからオーバーラップの長さを引いた値) の倍数ではありません。 | [固定サイズの入力信号に対する任意のフレーム長を許可] を選択した場合、 [固定サイズの入力信号に対する任意のフレーム長を許可] を選択しなかった場合、ブロックはエラーになります。 | m 行 n 列 |
可変サイズの信号 | m 行 n 列 | ceil (m/ホップ サイズ) 行 n 列 | m 行 n 列 |
出力の上限サイズが ceil
(m/ホップ サイズ) 行 n 列である場合、シミュレーション中は最初の次元がその範囲内で異なるサイズを取り、2 番目の次元のサイズは一定に維持されます。この動作を示す例については、Compute Moving Average of Noisy Step Signalを参照してください。
データ型: single
| double
複素数のサポート: あり
パラメーター
パラメーターが調整可能としてリストされる場合、シミュレーション時にその値を変更できます。
手法 — 平均化方法
Sliding window
(既定値) | Exponential weighting
Sliding window
— [ウィンドウの長さ] の長さのウィンドウを入力データ上で各チャネルに沿って移動させます。ブロックは、ウィンドウが移動する各サンプルについて、ウィンドウ内のデータの平均を計算します。Exponential weighting
— サンプルに一連の重み係数を掛けます。データが古くなるほど、重み係数の大きさは指数的に小さくなりますが、0 になることはありません。平均を計算するために、このアルゴリズムは重み付けしたデータの合計を求めます。
ウィンドウの長さの指定 — ウィンドウの長さを指定するフラグ
オン (既定値) | オフ
このチェック ボックスをオンにすると、スライディング ウィンドウの長さが [ウィンドウの長さ] で指定した値と等しくなります。このチェック ボックスをオフにすると、スライディング ウィンドウの長さが無限になります。このモードでは、ブロックはチャネルの現在のサンプルと以前のすべてのサンプルの平均を計算します。
依存関係
このパラメーターを有効にするには、[メソッド] を [Sliding window]
に設定します。
ウィンドウの長さ — スライディング ウィンドウの長さ
4 (既定値) | 正のスカラー整数
サンプルのスライディング ウィンドウの長さを指定します。
依存関係
このパラメーターを有効にするは、[メソッド] を [Sliding window]
に設定し、[ウィンドウの長さの指定] チェック ボックスを選択します。
オーバーラップの長さ — ウィンドウ間のオーバーラップの長さ
3
(既定値) | 非負の整数
スライディング ウィンドウ間のオーバーラップの長さを非負の整数として指定します。オーバーラップの長さの値は、[0, [ウィンドウの長さ] - 1] の範囲で変化します。
依存関係
このパラメーターを有効にするは、[メソッド] を [Sliding window]
に設定し、[ウィンドウの長さの指定] チェック ボックスを選択します。
固定サイズの入力信号に対する任意のフレーム長を許可 — 固定サイズの入力信号に対する任意のフレーム長を許可
オフ (既定値) | オン
固定サイズの入力信号 (シミュレーション中にサイズが変化しない) に対し、任意のフレーム長を許可するかを指定します。ここで、フレーム長はホップ サイズの倍数である必要はありません。ホップ サイズは、[ウィンドウの長さ] から [オーバーラップの長さ] を引いた値として定義されます。ブロックは、このパラメーター設定を固定サイズの入力信号に対してのみ使用し、可変サイズの入力の場合はこのパラメーターを無視します。
入力信号が可変サイズの信号の場合、そのフレーム長は任意の長さで構いません。つまり、フレーム長がホップ サイズの倍数である必要はありません。
固定サイズの入力信号の場合:
[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターを選択すると、信号のフレーム長がホップ サイズ数の倍数である必要がなくなります。入力がホップ サイズの倍数ではない場合、出力は一般的に可変サイズの信号となります。そのため、任意の入力サイズをサポートするには、ブロックは可変サイズの処理もサポートする必要があります。これは、[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターを選択することで有効にできます。
[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターの選択を解除すると、入力フレーム長がホップ サイズの倍数でなければならなくなります。
依存関係
このパラメーターを有効にするは、[メソッド] を [Sliding window]
に設定し、[ウィンドウの長さの指定] チェック ボックスを選択します。
入力端子から忘却係数を指定 — 忘却係数を指定するフラグ
オフ (既定値) | オン
このチェック ボックスを選択すると、忘却係数は [ラムダ] 端子を介した入力になります。このチェック ボックスの選択を解除すると、忘却係数は [忘却係数] パラメーターを介したブロック ダイアログで指定されます。
依存関係
このパラメーターを有効にするには、[メソッド] を [Exponential weighing]
に設定します。
忘却係数 — 指数の重み付けの係数
0.9 (既定値) | (0,1] の範囲の正の実数スカラー
忘却係数によって、古いデータに与えられる重みが決まります。忘却係数 0.1 よりも忘却係数 0.9 の方が古いデータに対する重みが大きくなります。忘却係数 1.0 は無限メモリを示し、以前の全サンプルに均等な重みが与えられます。
調整可能: Yes
依存関係
このパラメーターを有効にするには、[メソッド] を [Exponential weighting]
に設定し、[入力端子から忘却係数を指定] チェック ボックスの選択を解除します。
シミュレーション実行方法 — 実行するシミュレーションのタイプ
インタープリター型実行
(既定値) | コード生成
実行するシミュレーションのタイプを指定します。このパラメーターは以下のように設定できます。
インタープリター型実行
–– MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションで起動時間が短くなります。コード生成
–– 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。この C コードは、モデルが変更されない限り以降のシミュレーションで再利用されます。このオプションでは起動に時間がかかりますが、その後のシミュレーションは速くなります。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
アルゴリズム
スライディング ウィンドウ法
スライディング ウィンドウ法では、各入力サンプルの出力は現在のサンプルと以前の Len - 1 個のサンプルの平均になります。Len はサンプルのウィンドウの長さです。最初の出力サンプルを計算するために、アルゴリズムはホップ サイズの数の入力サンプルを受け取るまで待機します。ホップ サイズは、ウィンドウの長さからオーバーラップの長さを引いた値として定義されます。ウィンドウ内の残りのサンプルはゼロと見なされます。たとえば、ウィンドウの長さが 5 でオーバーラップの長さが 2 の場合、アルゴリズムは最初の出力サンプルを計算するために、入力サンプルを 3 つ受け取るまで待機します。最初の出力の生成後、ホップ サイズの数の入力サンプルごとに後続の出力サンプルを生成します。
ウィンドウの長さを指定しない場合、アルゴリズムはウィンドウの長さを無限と見なします。このモードでは、出力はチャネルの現在のサンプルと以前のすべてのサンプルの移動平均になります。
たとえば、スライディング ウィンドウ法と指数の重み付け法を参照してください。
指数の重み付け法
指数の重み付け法では、次の式を使用して再帰的に移動平均が計算されます。
— 現在のサンプルの移動平均
— 現在のデータ入力サンプル
— 前のサンプルの移動平均
λ — 忘却係数
— 現在のデータ サンプルに適用される重み係数
— 平均に対する前のデータの影響
アルゴリズムは、最初のサンプル (N = 1) に対して = 1 を選択します。次のサンプルについては、再帰方程式に従って更新された重み係数を使用して平均を計算します。データが古くなるほど、重み係数の大きさは指数的に小さくなります (0 になることはありません)。つまり、現在の平均に対する影響は古いデータよりも新しいデータの方が大きくなります。
重み係数の変化率は忘却係数の値で決まります。忘却係数 0.1 よりも忘却係数 0.9 の方が古いデータに対する重みが大きくなります。忘却係数が 1.0 の場合は無限に記憶します。以前のサンプルに対する重みはすべて同じになります。
たとえば、スライディング ウィンドウ法と指数の重み付け法を参照してください。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2016b で導入R2024a: [シミュレーション実行方法] パラメーターの既定値の変更
[シミュレーション実行方法] パラメーターの既定値は [インタープリター型実行]
になりました。この変更により、ブロックは既定でシミュレーションに MATLAB インタープリターを使用します。
R2022b: 新しい [オーバーラップの長さ] パラメーター
R2022b 以降、[オーバーラップの長さ] パラメーターを使用してスライディング ウィンドウ間のオーバーラップの長さを指定できるようになりました。
R2022b: 任意の入力フレーム長のサポート
Moving Average ブロックは、次に示す条件下で任意のフレーム長の入力信号をサポートします。
入力信号が固定サイズの信号 (シミュレーション中にフレーム長が変化しない) である。[固定サイズの入力信号に対する任意のフレーム長を許可] が有効の場合は、このパラメーターを選択します。
入力信号が可変サイズの信号 (シミュレーション中にフレーム長が変化する) である。
このブロックが任意のフレーム長の入力信号をサポートしている場合、入力フレーム長はホップ サイズの倍数である必要はありません。
参考
ブロック
- Moving RMS | Moving Maximum | Moving Minimum | Moving Standard Deviation | Moving Variance | Median Filter
オブジェクト
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)