このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
obw
占有帯域幅
構文
説明
出力引数なしで obw(___)
を使用すると、現在の Figure ウィンドウに PSD またはパワー スペクトルがプロットされ、帯域幅に注釈が付けられます。
例
チャープの占有帯域幅
1024 kHz でサンプリングされたチャープのサンプルを 1024 個生成します。チャープの初期周波数は 50 kHz で、サンプリングの最後には 100 kHz に到達します。S/N 比が 40 dB となるホワイト ガウス ノイズを付加します。再現可能な結果が必要な場合は、乱数発生器をリセットします。
nSamp = 1024;
Fs = 1024e3;
SNR = 40;
rng default
t = (0:nSamp-1)'/Fs;
x = chirp(t,50e3,nSamp/Fs,100e3);
x = x+randn(size(x))*std(x)/db2mag(SNR);
信号の占有帯域幅を推定し、パワー スペクトル密度 (PSD) のプロット上で推定値に注釈を付けます。
obw(x,Fs)
ans = 5.5377e+04
別のチャープを生成します。初期周波数 200 kHz、最終周波数 300 kHz および最初の信号の振幅の 2 倍の振幅を指定します。ホワイト ガウス ノイズを付加します。
x2 = 2*chirp(t,200e3,nSamp/Fs,300e3); x2 = x2+randn(size(x2))*std(x2)/db2mag(SNR);
チャープを連結して 2 チャネル信号を生成します。各チャネルの占有帯域幅を推定します。
y = obw([x x2],Fs)
y = 1×2
105 ×
0.5538 1.0546
PSD のプロット上で 2 つのチャネルの占有帯域幅に注釈を付けます。
obw([x x2],Fs);
2 つのチャネルを追加して新しい信号を作成します。PSD をプロットして占有帯域幅に注釈を付けます。
obw(x+x2,Fs);
正弦波の占有帯域幅
1024 kHz でサンプリングされた 100.123 kHz の正弦波のサンプルを 1024 個生成します。S/N 比が 40 dB となるホワイト ガウス ノイズを付加します。再現可能な結果が必要な場合は、乱数発生器をリセットします。
nSamp = 1024;
Fs = 1024e3;
SNR = 40;
rng default
t = (0:nSamp-1)'/Fs;
x = sin(2*pi*t*100.123e3);
x = x + randn(size(x))*std(x)/db2mag(SNR);
periodogram
を使用して、信号のパワー スペクトル密度 (PSD) を計算します。信号と同じ長さおよび形状係数 38 をもつカイザー ウィンドウを指定します。信号の占有帯域幅を推定し、PSD のプロット上で推定値に注釈を付けます。
[Pxx,f] = periodogram(x,kaiser(nSamp,38),[],Fs); obw(Pxx,f);
別の正弦波を生成します。この正弦波の周波数は 257.321 kHz で、振幅は最初の正弦波の 2 倍です。ホワイト ガウス ノイズを付加します。
x2 = 2*sin(2*pi*t*257.321e3); x2 = x2 + randn(size(x2))*std(x2)/db2mag(SNR);
正弦波を連結して 2 チャネル信号を生成します。各チャネルの PSD を推定し、結果から占有帯域幅を特定します。
[Pyy,f] = periodogram([x x2],kaiser(nSamp,38),[],Fs); y = obw(Pyy,f)
y = 1×2
103 ×
7.2001 7.3777
PSD のプロット上で 2 つのチャネルの占有帯域幅に注釈を付けます。
obw(Pyy,f);
2 つのチャネルを追加して新しい信号を作成します。PSD を推定して占有帯域幅に注釈を付けます。
[Pzz,f] = periodogram(x+x2,kaiser(nSamp,38),[],Fs); obw(Pzz,f);
帯域制限された信号の占有帯域幅
正規化されたカットオフ周波数が ラジアン/サンプルおよび ラジアン/サンプルである 88 次のバンドパス FIR フィルターの周波数応答に類似した PSD をもつ信号を生成します。
d = fir1(88,[0.25 0.45]);
ラジアン/サンプルと ラジアン/サンプル間の信号の 99% 占有帯域幅を計算します。PSD をプロットして占有帯域幅と測定間隔に注釈を付けます。
obw(d,[],[0.2 0.6]*pi);
占有帯域幅、その上限と下限および占有帯域パワーを出力します。サンプル レート の指定は、レートを設定しない場合と同じです。
[bw,flo,fhi,power] = obw(d,2*pi,[0.2 0.6]*pi);
fprintf('bw = %.3f*pi, flo = %.3f*pi, fhi = %.3f*pi \n',[bw flo fhi]/pi)
bw = 0.217*pi, flo = 0.240*pi, fhi = 0.458*pi
fprintf('power = %.1f%% of total',power/bandpower(d)*100)
power = 99.0% of total
正規化されたカットオフ周波数が ラジアン/サンプルと ラジアン/サンプルであり、最初のチャネルの 1/10 の振幅をもつ 2 番目のチャネルを追加します。
d = [d;fir1(88,[0.5 0.8])/10]';
ラジアン/サンプルと ラジアン/サンプル間の信号の 50% 占有帯域幅を計算します。PSD をプロットして占有帯域幅と測定間隔に注釈を付けます。
obw(d,[],[0.3 0.9]*pi,50);
各チャネルの占有帯域幅を出力します。 で除算します。
bw = obw(d,[],[0.3 0.9]*pi,50)/pi
bw = 1×2
0.0705 0.1412
入力引数
x
— 入力信号
ベクトル | 行列
ベクトルまたは行列として指定される入力信号。x
がベクトルの場合、単一チャネルとして取り扱われます。x
が行列の場合、obw
は各列に対して占有帯域幅を個別に計算します。x
は有限の値でなければなりません。
例: cos(pi/4*(0:159))+randn(1,160)
は単一チャネルの行ベクトル信号です。
例: cos(pi./[4;2]*(0:159))'+randn(160,2)
は 2 チャネル信号です。
データ型: single
| double
fs
— サンプル レート
正の実数のスカラー
サンプル レート。正の実数スカラーとして指定します。サンプル レートは単位時間あたりのサンプル数です。時間を秒単位で測定している場合、サンプル レートは Hz 単位になります。
データ型: single
| double
pxx
— パワー スペクトル密度
ベクトル | 行列
パワー スペクトル密度 (PSD)。実数の非負の要素を含むベクトルまたは行列として指定します。pxx
が片側推定である場合は、実信号に対応していなければなりません。pxx
が行列の場合、obw
は pxx
の各列の占有帯域幅を個別に計算します。
パワー スペクトル密度は、デシベル単位ではなく、線形単位で表さなければなりません。デシベル値をパワー値に変換するには、db2pow
を使用します。
例: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2))
は、2π Hz でサンプリングされたノイズの多い 2 チャネル正弦波のピリオドグラム PSD 推定値とそれについて計算される周波数を指定します。
データ型: single
| double
f
— 周波数
ベクトル
周波数。ベクトルとして指定します。
データ型: single
| double
sxx
— パワー スペクトル推定
ベクトル | 行列
パワー スペクトル推定。実数の非負の要素を含むベクトルまたは行列として指定します。sxx
が行列の場合、obw
は sxx
の各列の占有帯域幅を個別に計算します。
パワー スペクトルは、デシベル単位ではなく線形単位で表さなければなりません。デシベル値をパワー値に変換するには、db2pow
を使用します。
例: [sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),"power")
では、ホワイト ガウス ノイズに組み込まれる 2 チャネルの正弦波のピリオドグラム パワー スペクトル推定と、計算に使う正規化周波数を指定します。
データ型: single
| double
rbw
— 分解能帯域幅
正のスカラー
分解能帯域幅。正のスカラーで指定されます。この分解能帯域幅は、2 つの値、離散フーリエ変換の周波数分解能と PSD の計算に使用されるウィンドウの等価ノイズ帯域幅の積です。
データ型: single
| double
freqlims
— 周波数の範囲
2 要素ベクトル
周波数の範囲。実数値の 2 要素ベクトルとして指定します。freqlims
を指定しない場合、obw
は入力信号の全帯域幅を使用します。
データ型: single
| double
p
— パワー比率
99 (既定値) | 正のスカラー
パワー比率。0 ~ 100 の間の正のスカラーとして指定します。obw
は、積分されたパワーがスペクトル全体のパワーと交差する点、½(100 – p
) および ½(100 + p
) パーセント点のそれぞれの間の周波数の差を計算します。
データ型: single
| double
出力引数
アルゴリズム
占有帯域幅を特定するため、obw
は箱型ウィンドウを使用してピリオドグラム パワー スペクトル密度の推定を計算し、中点則を使用して推定を積分します。占有帯域幅は、積分されたパワーがスペクトルのパワー全体と交差する点である 0.5% および 99.5% 点の間の周波数の差です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2015a で導入R2023a: gpuArray
オブジェクトの使用
関数 obw
は gpuArray
オブジェクトをサポートしています。この機能を使用するには、Parallel Computing Toolbox™ が必要です。
参考
bandpower
| periodogram
| powerbw
| plomb
| pwelch
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)