ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

gausswin

説明

w = gausswin(L) では、L 点のガウス ウィンドウが返されます。

w = gausswin(L,alpha) では、幅係数 alpha をもつ L 点のガウス ウィンドウが返されます。

メモ

ウィンドウの一部が切り取られて表示される場合は、点の数 L を大きくします。

すべて折りたたむ

64 点のガウス ウィンドウを作成します。結果を wvtool で表示します。

L = 64;
wvtool(gausswin(L))

この例では、ガウス ウィンドウのフーリエ変換も逆数の標準偏差をもつガウスとなることを示します。これは、時間と周波数の間の不確かさの原理を示したものです。

gausswin と定義式を使って長さ 64 のガウス ウィンドウを作成します。α=8 を設定すると、結果は 64/16 = 4 の標準偏差となります。したがって、ガウスが基本的に平均値 +/- 3 の標準偏差に制限される、すなわちおよそ [-12, 12] をサポートすることが予想されます。

N = 64;
n = -(N-1)/2:(N-1)/2;
alpha = 8;

w = gausswin(N,alpha);

stdev = (N-1)/(2*alpha);
y = exp(-1/2*(n/stdev).^2);

plot(n,w)
hold on
plot(n,y,'.')
hold off

xlabel('Samples')
title('Gaussian Window, N = 64')

256 点でガウス ウィンドウのフーリエ変換を求めます。fftshift を使用してフーリエ変換の中央を周波数ゼロ (DC) に揃えます。

nfft = 4*N;
freq = -pi:2*pi/nfft:pi-pi/nfft;

wdft = fftshift(fft(w,nfft));

ガウス ウィンドウのフーリエ変換もまた、時間領域の標準偏差の逆数を標準偏差とするガウスです。ガウスの正規化係数を計算に含めます。

ydft = exp(-1/2*(freq/(1/stdev)).^2)*(stdev*sqrt(2*pi));

plot(freq/pi,abs(wdft))
hold on
plot(freq/pi,abs(ydft),'.')
hold off

xlabel('Normalized frequency (\times\pi rad/sample)')
title('Fourier Transform of Gaussian Window')

入力引数

すべて折りたたむ

ウィンドウの長さ。正の整数で指定します。

データ型: single | double

幅係数。正の実数スカラーとして指定します。alpha はウィンドウの幅に反比例します。

データ型: single | double

出力引数

すべて折りたたむ

ガウス ウィンドウ。列ベクトルとして返されます。

アルゴリズム

ガウス ウィンドウの係数は、次の方程式から計算されます

w(n)=e12(αn(L1)/2)2=en2/2σ2,

ここで、–(L – 1)/2 ≤ n ≤ (L – 1)/2 であり、α は、ガウス確率変数の標準偏差 σ に反比例します。ガウス確率密度関数の標準偏差との完全一致は σ = (L – 1)/(2α) の場合です。

参照

[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1999, pp. 468–471.

[2] Hansen, Eric W.,Fourier Transforms: Principles and Applications. New York, John Wiley & Sons, 2014.

拡張機能

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

R2006a より前に導入