Main Content

bandpower

説明

p = bandpower(x) は、入力信号 x の平均パワーを返します。x が行列の場合、bandpower は各列の平均強度を個別に計算します。

p = bandpower(x,fs,freqrange) は、周波数範囲 freqrange の平均パワーを返します。指定された周波数範囲内のパワーを返すには、サンプル レート fs を入力しなければなりません。bandpower は修正ピリオドグラムを使用して freqrange 内の平均パワーを求めます。

p = bandpower(pxx,f,"psd") は、パワー スペクトル密度 (PSD) 推定 pxx を積分して計算された平均パワーを返します。積分値は長方形近似法によって近似されます。入力 fpxx の PSD 推定に対応する周波数のベクトルです。"psd" オプションは、入力が PSD 推定であり、時系列データではないことを示します。

p = bandpower(pxx,f,freqrange,"psd") は、周波数範囲 freqrange に含まれる平均パワーを返します。freqrange の周波数が f の値と一致しない場合は、最も近い値が使用されます。平均パワーは、パワー スペクトル密度 (PSD) 推定 pxx を積分することで計算されます。積分値は長方形近似法によって近似されます。"psd" オプションは、入力が PSD 推定であり、時系列データではないことを示します。

すべて折りたたむ

N(0,1) 加法性ホワイト ガウス ノイズを伴う 100 Hz の正弦波で構成される信号を生成します。サンプリング周波数は 1 kHz です。平均パワーを求めて 2 ノルムと比較します。

t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

p = bandpower(x)
p = 1.5264
l2norm = norm(x,2)^2/numel(x)
l2norm = 1.5264

指定された周波数範囲内のパワー全体のパーセンテージを求めます。

N(0,1) 加法性ホワイト ガウス ノイズを伴う 100 Hz の正弦波で構成される信号を生成します。サンプリング周波数は 1 kHz です。50 Hz ~ 150 Hz の周波数範囲内のパワー全体のパーセント比を求めます。再現可能な結果が必要な場合は、乱数発生器をリセットします。

rng('default')

t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

pband = bandpower(x,1000,[50 150]);
ptot = bandpower(x,1000,[0 500]);
per_power = 100*(pband/ptot)
per_power = 51.9591

ピリオドグラムで PSD 推定を最初に計算することによって平均パワーを求めます。bandpower に PSD 推定を入力します。

N(0,1) 加法性ホワイト ガウス ノイズを伴う 100 Hz の正弦波で構成される信号を生成します。サンプリング周波数は 1 kHz です。ピリオドグラムを求めて 'psd' フラグを使用して、PSD 推定で平均パワーを計算します。結果を時間領域で計算した平均パワーと比較します。

t = 0:0.001:1-0.001;
Fs = 1000;
x = cos(2*pi*100*t)+randn(size(t));

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs);
p = bandpower(Pxx,F,'psd')
p = 1.5264
avpow = norm(x,2)^2/numel(x)
avpow = 1.5264

ピリオドグラムを入力として使い、指定された周波数範囲内のパワー全体のパーセント比を求めます。

N(0,1) 加法性ホワイト ガウス ノイズを伴う 100 Hz の正弦波で構成される信号を生成します。サンプリング周波数は 1 kHz です。ピリオドグラムと対応する周波数ベクトルを求めます。PSD 推定を用いて、50 Hz ~ 150 Hz の周波数範囲内のパワー全体のパーセント比を求めます。

Fs = 1000;
t = 0:1/Fs:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs);
pBand = bandpower(Pxx,F,[50 150],'psd');
pTot = bandpower(Pxx,F,'psd');
per_power = 100*(pBand/pTot)
per_power = 49.1798

N(0,1) 加法性ホワイト ガウス ノイズを伴う 3 個の正弦波から構成されるマルチチャネル信号を作成します。正弦波の周波数は 100 Hz、200 Hz および 300 Hz です。サンプリング周波数は 1 kHz で、信号は 1 秒間持続します。

Fs = 1000;

t = 0:1/Fs:1-1/Fs;

f = [100;200;300];

x = cos(2*pi*f*t)'+randn(length(t),3);

信号の平均強度を求めて 2 ノルムと比較します。

p = bandpower(x)
p = 1×3

    1.5264    1.5382    1.4717

l2norm = dot(x,x)/length(x)
l2norm = 1×3

    1.5264    1.5382    1.4717

入力引数

すべて折りたたむ

入力時系列データ、行ベクトルまたは列ベクトルもしくは行列として指定する。x が行列の場合、その各列は独立チャネルとして扱われます。

例: cos(pi/4*(0:159))'+randn(160,1) は単一チャネルの列ベクトル信号です。

例: cos(pi./[4;2]*(0:159))'+randn(160,2) は 2 チャネルのノイズを含んだ正弦波です。

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

正のスカラーで指定する入力時系列データのサンプリング周波数

データ型: double | single

2 要素の実数値の行ベクトルまたは列ベクトルで指定する、帯域パワーを計算する周波数範囲。入力信号 x が N 個のサンプルを含む場合、freqrange は次の範囲内でなければなりません。

  • x が実数値で N が偶数の場合 [0, fs/2]

  • x が実数値で N が奇数の場合 [0, (N – 1)fs/(2N)]

  • x が複素数値で N が偶数の場合 [–(N – 2)fs/(2N), fs/2]

  • x が複素数値で N が奇数の場合 [–(N – 1)fs/(2N), (N – 1)fs/(2N)]

データ型: double | single

片側または両側 PSD 推定値。非負の要素をもつ実数値列ベクトルまたは行列として指定します。

パワー スペクトル密度は、デシベル単位ではなく、線形単位で表さなければなりません。デシベル値をパワー値に変換するには、db2pow を使用します。

例: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) は、2π Hz でサンプリングされたノイズの多い 2 チャネル正弦波のピリオドグラム PSD 推定値とそれについて計算される周波数を指定します。

データ型: double | single

列ベクトルとして指定する周波数ベクトル。周波数ベクトル fpxx の PSD 推定に対応する周波数を含みます。

データ型: double | single

出力引数

すべて折りたたむ

非負のスカラーとして返す、平均帯域パワー。

データ型: double | single

参照

[1] Hayes, Monson H. Statistical Digital Signal Processing and Modeling. New York: John Wiley & Sons, 1996.

[2] Stoica, Petre, and Randolph Moses. Spectral Analysis of Signals. Upper Saddle River, NJ: Prentice Hall, 2005.

拡張機能

バージョン履歴

R2013a で導入

すべて展開する