Moving RMS
移動 RMS

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