Main Content

Moving RMS

  • Moving RMS block

ライブラリ:
DSP System Toolbox / Statistics

説明

Moving RMS ブロックは、時間の経過に沿って入力信号の移動平方根平均二乗 (RMS) を各チャネルで個別に計算します。このブロックでは、スライディング ウィンドウ法または指数の重み付け法のどちらかを使用して移動 RMS を計算します。スライディング ウィンドウ法では、データ サンプル上で指定の長さのウィンドウをサンプルごとに移動させ、ウィンドウ内のデータの RMS をブロックで計算します。指数の重み付け法では、ブロックはデータ サンプルを二乗し、一連の重み係数を掛け、重み付けしたデータの合計を求めます。次に、ブロックは合計の平方根を取ることで RMS を計算します。これらの方法の詳細については、アルゴリズムを参照してください。

端子

入力

すべて展開する

ブロックは、この入力端子で指定されているデータの移動 RMS を計算します。m 行 n 列 (m ≥ 1、n ≥ 1) のサイズの実数値または複素数値のマルチチャネル入力を指定します。

[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターが表示され、このパラメーターが選択されていない場合、かつ固定サイズの信号を入力している場合、フレーム長はホップ サイズ (ウィンドウの長さからオーバーラップの長さを引いた値) の倍数でなければなりません。それ以外の場合、入力フレーム長は任意の長さで構いません。

ブロックは、可変サイズの入力 (シミュレーション中にフレーム長が変化する) を受け入れます。可変サイズの信号を入力する場合、信号のフレーム長は任意の長さで構いません。

この端子は、[手法][Exponential weighting] に設定して [入力端子から忘却係数を指定] パラメーターを選択するまでは名前なしになります。

データ型: single | double
複素数のサポート: あり

忘却係数によって、古いデータに与えられる重みが決まります。忘却係数 0.1 よりも忘却係数 0.9 の方が古いデータに対する重みが大きくなります。忘却係数 1.0 は無限メモリを示し、以前の全サンプルに均等な重みが与えられます。

依存関係

この端子は、[手法][Exponential weighting] に設定して [入力端子から忘却係数を指定] パラメーターを選択すると表示されます。

データ型: single | double

出力

すべて展開する

移動 RMS の出力。ベクトルまたは行列として返されます。このブロックでは、スライディング ウィンドウ法または指数の重み付け法のどちらかを使用し、[手法] パラメーターの設定に基づいて移動 RMS を計算します。詳細については、アルゴリズムを参照してください。

出力信号の次元の詳細について次の表で説明します。

入力信号入力の次元[固定サイズの入力信号に対する任意のフレーム長を許可] が表示される場合の出力の次元[固定サイズの入力信号に対する任意のフレーム長を許可] が表示されない場合の出力の次元
固定サイズ信号m 行 n 列。ここで、m はホップ サイズ (ウィンドウの長さからオーバーラップの長さを引いた値) の倍数です。

(m/ホップ サイズ) 行 n 列

m 行 n 列

固定サイズ信号m 行 n 列。ここで、m はホップ サイズ (ウィンドウの長さからオーバーラップの長さを引いた値) の倍数ではありません。

[固定サイズの入力信号に対する任意のフレーム長を許可] を選択した場合、ceil(m/ホップ サイズ) 行 n 列

[固定サイズの入力信号に対する任意のフレーム長を許可] を選択しなかった場合、ブロックはエラーになります。

m 行 n 列

可変サイズの信号m 行 n 列 ceil(m/ホップ サイズ) 行 n 列

m 行 n 列

出力の上限サイズが ceil(m/ホップ サイズ) 行 n 列である場合、シミュレーション中は最初の次元がその範囲内で異なるサイズを取り、2 番目の次元のサイズは一定に維持されます。この動作を示す例については、Compute Moving RMS of Noisy Step Signalを参照してください。

データ型: single | double
複素数のサポート: あり

パラメーター

すべて展開する

パラメーターが調整可能としてリストされる場合、シミュレーション時にその値を変更できます。

  • Sliding window[ウィンドウの長さ] の長さのウィンドウを入力データ上で各チャネルに沿って移動させます。ブロックは、ウィンドウが移動する各サンプルについて、ウィンドウ内のデータの RMS を計算します。

  • Exponential weighting — サンプルの二乗に一連の重み係数を掛けます。データが古くなるほど、重み係数の大きさは指数的に小さくなりますが、0 になることはありません。RMS を計算するために、このアルゴリズムは重み付けしたデータを合計し、その合計の平方根を取ります。

このチェック ボックスをオンにすると、スライディング ウィンドウの長さが [ウィンドウの長さ] で指定した値と等しくなります。このチェック ボックスをオフにすると、スライディング ウィンドウの長さが無限になります。このモードでは、ブロックはチャネルの現在のサンプルと以前のすべてのサンプルの RMS を計算します。

依存関係

このパラメーターを有効にするには、[手法][Sliding window] に設定します。

サンプルのスライディング ウィンドウの長さを指定します。

依存関係

このパラメーターを有効にするは、[手法][Sliding window] に設定し、[ウィンドウの長さの指定] チェック ボックスを選択します。

スライディング ウィンドウ間のオーバーラップの長さを非負の整数として指定します。オーバーラップの長さの値は、[0, [ウィンドウの長さ] - 1] の範囲で変化します。

依存関係

このパラメーターを有効にするは、[手法][Sliding window] に設定し、[ウィンドウの長さの指定] チェック ボックスを選択します。

固定サイズの入力信号 (シミュレーション中にサイズが変化しない) に対し、任意のフレーム長を許可するかを指定します。ここで、フレーム長はホップ サイズの倍数である必要はありません。ホップ サイズは、[ウィンドウの長さ] から [オーバーラップの長さ] を引いた値として定義されます。ブロックは、このパラメーター設定を固定サイズの入力信号に対してのみ使用し、可変サイズの入力の場合はこのパラメーターを無視します。

入力信号が可変サイズの信号の場合、そのフレーム長は任意の長さで構いません。つまり、フレーム長がホップ サイズの倍数である必要はありません。

固定サイズの入力信号の場合:

  • [固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターを選択すると、信号のフレーム長がホップ サイズ数の倍数である必要がなくなります。入力がホップ サイズの倍数ではない場合、出力は一般的に可変サイズの信号となります。そのため、任意の入力サイズをサポートするには、ブロックは可変サイズの処理もサポートする必要があります。これは、[固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターを選択することで有効にできます。

  • [固定サイズの入力信号に対する任意のフレーム長を許可] パラメーターの選択を解除すると、入力フレーム長がホップ サイズの倍数でなければならなくなります。

依存関係

このパラメーターを有効にするは、[手法][Sliding window] に設定し、[ウィンドウの長さの指定] チェック ボックスを選択します。

このチェック ボックスを選択すると、忘却係数は [ラムダ] 端子を介した入力になります。このチェック ボックスの選択を解除すると、忘却係数は [忘却係数] パラメーターを介したブロック ダイアログで指定されます。

依存関係

このパラメーターを有効にするには、[手法][Exponential weighing] に設定します。

忘却係数によって、古いデータに与えられる重みが決まります。忘却係数 0.1 よりも忘却係数 0.9 の方が古いデータに対する重みが大きくなります。忘却係数 1.0 は無限メモリを示し、以前の全サンプルに均等な重みが与えられます。

調整可能: Yes

依存関係

このパラメーターを有効にするには、[手法][Exponential weighting] に設定し、[入力端子から忘却係数を指定] チェック ボックスの選択を解除します。

実行するシミュレーションのタイプを次のいずれかとして指定します。

  • コード生成 –– 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink® は対象ブロックの C コードを生成します。モデルが変更されない限り、Simulink は後続のシミュレーションでその C コードを再利用します。このオプションを使用すると、起動時間は長くなりますが、以降のシミュレーションは [インタープリター型実行] に比べて速くなります。

  • インタープリター型実行 –– MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、起動時間は短くなりますが、以降のシミュレーションは [コード生成] に比べて遅くなります。

ブロックの特性

データ型

double | single

多次元信号

いいえ

可変サイズの信号

はい

アルゴリズム

すべて展開する

拡張機能

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

バージョン履歴

R2016b で導入

すべて展開する