Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

enbw

説明

bw = enbw(window) では、等間隔サンプル ウィンドウ window についての両側等価ノイズ帯域幅 bw が返されます。等価ノイズ帯域幅は、周波数ビンごとのノイズ パワーで正規化されます。

bw = enbw(window,fs) では、両側等価ノイズ帯域幅 bw が Hz 単位で返されます。

すべて折りたたむ

長さ 1,000 サンプルのハミング ウィンドウの等価ノイズ帯域幅を求めます。

bw = enbw(hamming(1000))
bw = 1.3638

長さ 10,000 サンプルのフラット トップ ウィンドウの等価ノイズ帯域幅を Hz 単位で求めます。サンプル レートは 44.1 kHz です。

bw = enbw(flattopwin(10000),44.1e3)
bw = 16.6285

128 サンプルのハン ウィンドウの等価矩形ノイズ帯域幅を求めます。

ウィンドウを生成し、2048 周波数にわたる離散フーリエ変換を計算します。ゼロ周波数を中心とするように変換をシフトして、その振幅の 2 乗を計算します。

lw = 128;
win = hann(lw);
lt = 2048;
windft = fftshift(fft(win,lt));

ad = abs(windft).^2;
mg = max(ad);

サンプル レートを 1 kHz に指定します。enbw を使用してウィンドウの等価ノイズ帯域幅を計算し、値が定義と一致することを確認します。

fs = 1000;

bw = enbw(win,fs)
bw = 11.8110
bdef = sum((win).^2)/sum(win)^2*fs
bdef = 11.8110

ウィンドウの振幅の 2 乗をプロットします。高さが振幅の 2 乗のピークに等しく、幅が等価ノイズ帯域幅に等しい矩形を重ね合わせます。

freq = -fs/2:fs/lt:fs/2-fs/lt;

plot(freq,ad, ...
    bw/2*[-1 -1 1 1],mg*[0 1 1 0],'--')
xlim(bw*[-1 1])

矩形の領域が、ウィンドウと同じ合計パワーを含むことを確認します。

Adiff = trapz(freq,ad)-bw*mg
Adiff = 7.2760e-12

正規化周波数を使用して計算を繰り返します。ウィンドウの等価ノイズ帯域幅を求めます。enbw から定義と同じ値が得られることを確認します。

bw = enbw(win)
bw = 1.5118
bdef = sum((win).^2)/sum(win)^2*lw
bdef = 1.5118

ウィンドウの振幅の 2 乗をプロットします。高さが振幅の 2 乗のピークに等しく、幅が等価ノイズ帯域幅に等しい矩形を重ね合わせます。

freqn = -1/2:1/lt:1/2-1/lt;

plot(freqn,ad, ...
    bw/2*[-1 -1 1 1]/lw,mg*[0 1 1 0],'--')
xlim(bw*[-1 1]/lw)

矩形の領域が、ウィンドウと同じ合計パワーを含むことを確認します。

Adiff = trapz(freqn,ad)-bw*mg/lw
Adiff = 0

入力引数

すべて折りたたむ

等間隔サンプル ウィンドウ ベクトル。実数値要素をもつ行ベクトルまたは列ベクトルとして指定します。

例: hamming(1000)

データ型: double | single

サンプリング周波数。正のスカラーとして指定します。

出力引数

すべて折りたたむ

正のスカラーとして指定する等価ノイズ帯域幅。

データ型: double | single

詳細

すべて折りたたむ

等価ノイズ帯域幅

ウィンドウに含まれる "合計パワー" は、そのウィンドウのフーリエ変換の振幅の 2 乗によって生成される曲線の下の領域を指します。ウィンドウの "等価ノイズ帯域幅" は、高さがフーリエ変換の振幅の 2 乗のピークに等しく、面積が合計パワーと等しい矩形の幅を指します。

パーセバルの定理によると、N サンプルのウィンドウ w(n) の合計エネルギーは、時間領域ウィンドウのサンプルの振幅の二乗和またはウィンドウのフーリエ変換の振幅の 2 乗の周波数上の積分値に等しくなります。

1/21/2|W(f)|2df=n|w(n)|2.

ウィンドウのパワー スペクトルのピーク振幅は f = 0 にあります。

|W(0)|2=|nw(n)|2.

等価な矩形の幅、すなわち等価ノイズ帯域幅を求めるには、面積を高さで除算します。

1/21/2|W(f)|2df|W(0)|2=n|w(n)|2|nw(n)|2.

サンプル レート fs が指定されている場合、enbw は前述の式に fs を乗算して返します。

ENBW=fsn|w(n)|2|nw(n)|2.

正規化周波数の場合、関数はビンの幅 fs/N で除算を行います。

ENBW=Nn|w(n)|2|nw(n)|2.

特定のウィンドウに対して次を行う場合の例については、等価矩形ノイズ帯域幅を参照してください。

  • enbw の結果を、指定されたサンプル レートおよび正規化周波数の定義と比較します。

  • 等価矩形帯域幅をウィンドウの振幅スペクトル上にプロットします。

  • ウィンドウに含まれる合計パワーが、高さがウィンドウのフーリエ変換の振幅の 2 乗のピークに等しく、幅が等価ノイズ帯域幅に等しい矩形に含まれるパワーと同じであることを確認します。

参照

[1] harris, fredric j. “On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform.” Proceedings of the IEEE®. Vol. 66, January 1978, pp. 51–83.

拡張機能

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

バージョン履歴

R2013a で導入

参考

|