メインコンテンツ

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])

Figure contains an axes object. The axes object contains 2 objects of type line.

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

Adiff = trapz(freq,ad)-bw*mg
Adiff = 
1.4552e-11

正規化周波数を使用して計算を繰り返します。ウィンドウの等価ノイズ帯域幅を求めます。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)

Figure contains an axes object. The axes object contains 2 objects of type line.

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

Adiff = trapz(freqn,ad)-bw*mg/lw
Adiff = 
1.4211e-14

入力引数

すべて折りたたむ

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

例: hamming(1000)

データ型: double | single

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

出力引数

すべて折りたたむ

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

データ型: double | single

詳細

すべて折りたたむ

参照

[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 で導入

参考

|