See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
窓関数 - Wikipedia

窓関数

出典: フリー百科事典『ウィキペディア(Wikipedia)』

窓関数(まどかんすう、window function)とは、ある有限区間以外で0となる関数である。 ある関数や信号(データ)に窓関数が掛け合わせられると、区間外は0になり、有限区間内だけが残るので、数値解析が容易になる。 窓関数は、スペクトル分析フィルタ・デザインや、音声圧縮に応用される。 窓関数を単に (window) ともいい、データに窓関数を掛け合わせることを窓を掛ける (windowing) という。

目次

[編集] 窓関数の意味

フーリエ変換は、区分的に C^1 \, 級な任意の関数 f(x) \, を、三角関数(あるいは指数関数)の線形結合で表す。 なお、f \, のフーリエ変換を \mathfrak{F} f で表す。

フーリエ変換では、関数 f(x) \, も三角関数も、無限区間  (-\infty,\infty) で定義されている。 しかし、実データを数値的にフーリエ変換するなら、無限の長さは扱えないので、有限区間 [a,b] \, でフーリエ変換をおこない、区間外は無視することになる。 これは、関数 f(x) \, を区間外で0とみなすことに等しい(「区間内のデータを周期的に繰り返す」という表現をすることもあるが、DFT(離散フーリエ変換)のばあいはこの2つは等価である)。

つまり、関数  f(x) \, と関数

 w(x) = \begin{cases} 1, & \mbox{if } a \leq x \leq b \\ 0, & \mbox{otherwise} \end{cases}

の積 (wf)(x) = w(x)f(x) \, を求め、そのフーリエ変換 \mathfrak{F} (wf) を、\mathfrak{F} f の代わりに得ていることになる。 このとき掛け合わせた関数 w(x) \, が窓関数である。

ここで定義した窓関数 w(x) \, (矩形窓という)でなくても、有限区間外が0で区間内が有界な関数ならば、窓関数として使える。 そこで、さまざまな窓関数が考案されている。 実際、上の矩形窓はあまり性能がよくない。それは、x = a, b \, にいちじるしい不連続があるからである。 実際に使われる窓関数のほとんどは、両端が滑らかに小さくなり区間外の0につながる、山形の関数である。

[編集] 窓関数の性能

矩形窓のパワー・スペクトル
矩形窓のパワー・スペクトル

窓関数を使って求めたスペクトル \mathfrak{F} (wf) と、本来のスペクトル \mathfrak{F} f は、もちろん同じではない。 積のフーリエ変換はフーリエ変換の畳み込み、つまり、

\mathfrak{F} (wf) = \mathfrak{F} w * \mathfrak{F} f

である。 余分な \mathfrak{F} w が畳み込まれることによって、フーリエ変換の結果は変化するが、この変化は望ましいものではない。

一般に \mathfrak{F} w は、中心が絶対値が大きく、両側に離れるにつれ小さくなるが、0になることはない(w(x) \, が有限区間外で0ならば、常にそうなる)。 ただし、単峰性ではなく、図のように、無数の峰を持つ。 各々の峰をローブといい、中央のいちばん大きいローブをメインローブ、他をサイドローブという。このような \mathfrak{F} w が畳み込まれることにより、スペクトルは、ピークがなまり(周波数分解能が下がり)、ノイズ・フロアが上がる(ダイナミック・レンジが狭まる)ことになる。

窓関数には、

  1. メインローブが狭い(周波数分解能が良い)
  2. サイドローブが低い(ダイナミックレンジが広い)

という2つの特長が要求される。 しかし、この2つはトレード・オフの関係にあり、両立させるには限界がある。 そのため、ある状況では最適だった窓関数が、別の状況ではそうではないということも起こる。

[編集] 窓関数の応用

フーリエ変換に限らず、DCT(離散コサイン変換)や連続ウェーブレット変換でも、窓関数を使う。

とりわけ、近年、音声圧縮などに使われるMDCT(修正離散コサイン変換)のための窓関数は、プリンセン‐ブラッドリー条件 (Princen-Bradley condition) という、他の用途では要求されない性質が必要なこともあり、独特なものが新しく登場している。 なお、プリンセン‐ブラッドリー条件を満たす窓関数を、MDCT窓、プリンセン‐ブラッドリー窓などという。

スペクトル分析に限らず、無限系列を有限系列に断ち切らなければならない状況では、窓関数が使われる。たとえば、IIR(無限インパルス応答フィルタ)をFIR(有限インパルス応答フィルタ)で実現するときなどである。

変わった応用では、窓関数を掛けるのではなく、畳み込むという手法がある。 \mathfrak{F} (w * f) = \mathfrak{F} w \mathfrak{F} f(畳み込みのフーリエ変換はフーリエ変換の積)なので、窓関数がデジタル・フィルタとして働くことになる。

[編集] 窓関数の例

特に断らない限り、区間を [0,1] \, にとり、\max_{x} w(x) = 1 \,正規化した式を書く。 区間を [-1,1] \, にとる資料もある。 w(x) = 0 \, となる場合分けは省略した。w(x) = 0, \mbox{ otherwise} \, を適宜おぎなって読んでほしい。

離散化するには、k = 0, \ldots , N - 1 に対して、x = k / (N - 1) \, と、x = (k + 0.5) / N \, の2種類の方法があるが、特殊な用途を除き、どちらでも大差はない。また、初めから k \, に対する関数 w(k) \, や系列 w_k \, を表す資料もあるので、注意してほしい。

グラフは、x = k / (N - 1) \, と離散化したときの、窓関数自身と、DFTで求めたパワースペクトルである。

[編集] 代表的な窓関数

[編集] 矩形窓

矩形窓
矩形窓
rectangular window。方形窓とも。
単に有限長のデータを用意しただけのとき、暗黙のうちにこの窓関数を使っている。理論上、周波数分解能は最も良い。
  • w(x) = 1, \ \mbox{if } 0 \leq x \leq 1

[編集] ガウス窓

ガウス窓
ガウス窓
Gauss window。ガウシアン窓 (Gaussian window) とも。
理論上、最も高性能な窓関数だが、コンパクト・サポートでない(有界区間の両端で0にならない)ので、実際には使えない。使うときは、適当な区間の外を0にする必要がある。主に、ガボール変換 (Gabor transform)や連続ウェーブレット変換で使われる。
  • w(x) = \exp \left( -\frac{x^2}{\sigma^2} \right)

[編集] ハン窓

ハン窓
ハン窓
hann window(hannは人名由来だが、慣習的に小文字で書く)。フォンハン窓 (von Hann window)、2乗余弦窓、raised cosine windowとも。ユリウス・フォン・ハンが考案した。ハミング窓との連想から「ハニング窓」と呼ばれる例がある。
最もよく使われる窓関数の一つ。
  • w(x) = 0.5 - 0.5 \cos 2 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] ハミング窓

ハミング窓
ハミング窓
hamming window(hammingは人名だが、慣習的に小文字で書く)。ハン窓の改良版として、リチャード・ハミングが考案した。
ハン窓と並び、最もよく使われる窓関数の一つ。ハン窓より周波数分解能が良く、ダイナミック・レンジが狭い。区間の両端で不連続なのが特徴。
  • w(x) = 0.54 - 0.46 \cos 2 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] ブラックマン窓

ブラックマン窓
ブラックマン窓
Blackman window。ラルフ・ブラックマンが考案した。
ハン窓/ハミング窓より、周波数分解能が悪く、ダイナミック・レンジが広い。この種のフィルタの中では、最もよく使われる。
  • w(x) = 0.42 - 0.5 \cos 2 \pi x + 0.08 \cos 4 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] カイザー窓

カイザー窓、
カイザー窓、\alpha = 2 \,
カイザー窓、
カイザー窓、\alpha = 3 \,
Kaiser window。カイザー‐ベッセル窓 (Kaiser‐Bessel window) ともいうが、後述のカイザー‐ベッセル派生窓と紛らわしい。J・F・カイザーが考案した。
実数パラメタ \alpha \geq 0 \, を持つ( \beta = \pi \alpha \, をパラメタとすることもある)。\alpha \, が大きいほど、ダイナミックレンジは広く、周波数分解能は悪くなる。2つの性能を連続的にトレード・オフできるのが特長である。周波数分解能はおおよそ \sqrt \alpha に反比例する。
\alpha = 0 \, では矩形窓と同じ。\alpha = 1.5 \, ではハミニング窓に、\alpha = 2 \, ではハン窓に、\alpha = 3 \, ではブラックマン窓に似た形になる。
詳細はカイザー窓を見よ。
  • w(x) = \frac{ I_0 \left\{ \pi \alpha \sqrt{ 1 - (2 x - 1) ^ 2 } \right\} }{ I_0( \pi \alpha ) }, \ \mbox{if } 0 \leq k \leq 1
ただし、I_0 \, は第1種の0次の変形ベッセル関数

[編集] バートレット窓

バートレット窓
バートレット窓
Bartlett window。三角窓 (triangular window) とも。
教科書には必ず出てくるが、実際に使うことは少ない。
  • w(x) = 1 - 2|x - 0.5|, \ \mbox{if } 0 \leq x \leq 1

[編集] 指数窓

exponential window。
減衰積分をおこなうとき、暗黙のうちにこの窓関数を使っている。コンパクト・サポートでないので、実際に使うときは適当な区間の外を0にする。左右非対称なので、エコー検出など、時間非対称な問題に使う。
  • w(x) = \exp \frac{x}{T}, \ \mbox{if } x \leq 0

[編集] その他の窓関数

[編集] 一般化ハミング窓

ハン窓とハミング窓の一般化。実数パラメタ a, \ 0.5 \leq a \leq 1 を持ち、a = 0.5 \, でハン窓、a = 0.54 \, でハミング窓、a = 1 \, で矩形窓になる。
  • w(x) = a - (1 - a_0) \cos 2 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] バートレット‐ハン窓

バートレット‐ハン窓
バートレット‐ハン窓
Bartlett‐Hann window。修正バートレット‐ハン窓 (modified Bartlett‐Hann window) とも。
バートレット窓とハン窓の線形混合。異なる比率のものを使うこともある。
  • w(x) = 0.62 - 0.48 | x - 0.5 | - 0.38 \cos 2 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] ナットール窓

ナットール窓
ナットール窓
Nuttall window。
  • w(x) = 0.355768 - 0.487396 \cos 2 \pi x + 0.144232 \cos 4 \pi x - 0.012604 \cos 6 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] ブラックマン‐ハリス窓

ブラックマン‐ハリス窓
ブラックマン‐ハリス窓
Blackman‐Harris window。
  • w(x) = 0.35875 - 0.48829 \cos 2 \pi x + 0.14128 \cos 4 \pi x - 0.01168 \cos 6 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] ブラックマン‐ナットール窓

ブラックマン‐ナットール窓
ブラックマン‐ナットール窓
Blackman‐Nuttall window。
  • w(x) = 0.3635819 - 0.4891775 \cos 2 \pi x + 0.1365995 \cos 4 \pi x - 0.0106411 \cos 6 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] フラット・トップ窓

フラット・トップ窓
フラット・トップ窓
flat top window。スペクトルのメインローブの頂部が平らであることから、こう呼ぶ。別の式で表される窓関数を「フラット・トップ窓」と呼ぶことがある。
  • w(x) = 1 - 1.93 \cos 2 \pi x + 1.29 \cos 4 \pi x - 0.388 \cos 6 \pi x + 0.032 \cos 8 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] パルザン窓

Parzen window。
ガウス窓の区分3次関数による近似。
  • w(x) = \begin{cases} 1 - 1.5 x^2 + 0.75 |x|^3, & \mbox{if } |x| \leq 1 \\ 0.25 (2 - |x|)^3, & \mbox{if } 1 \leq |x| \leq 2 \end{cases}

[編集] 赤池窓

Akaike window。
  • w(x) = 0.625 - 0.5 \cos 2 \pi x - 0.125 \cos 4 \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] ウェルチ窓

Welch window。
  • w(x) = 4 x (1 - x), \ \mbox{if } 0 \leq x \leq 1

[編集] MDCT窓関数

MDCT(修正離散コサイン変換)の前処理に使う。 MDCTでの変数定義の慣習にしたがい、離散化には、x = (k + 0.5) / N, \ k = 0, \ldots ,N - 1 のデータ数を 2N \, とした式

x = \frac{ k + 0.5 }{ 2 N}, \ \ k = 0, \ldots ,2 N - 1

を用いることが多い。

[編集] サイン窓

sine window。半波余弦窓 (half cycle sine window) とも。MP3など多くのフォーマットが使用。
  • w(x) = \sin \pi x, \ \mbox{if } 0 \leq x \leq 1

[編集] Vorbis窓

Vorbis window。Vorbisが使用。
  • w(x) = \sin \left( \frac{\pi}{2} \sin^2 \pi x  \right), \ \mbox{if } 0 \leq x \leq 1

[編集] カイザー‐ベッセル派生窓

Kaiser‐Bessel derived window。KBD窓 (KBD window) とも。AC3AACが使用。
詳細はカイザー-ベッセル派生 (KBD) 窓を見よ。

[編集] フィルタとして使う窓関数

[編集] ランツォシュ窓

Lanczos window。ランツォシュ・フィルタとも。ランチョス窓などとも(誤りか)。Lanczosの発音については「現在のハンガリー領出身のユダヤ系ハンガリー人」も参照。
整数パラメタ n \geq 1 \, を持つ。n \, の値によって、n \, 次ランツォシュ窓、ランツォシュ n \, 窓などと呼ぶ。
データのデシメーション(画像縮小など)の前処理に、LPF(低域通過フィルタ)として使われる。
  • w(x) = \mathrm{sinc} x \cdot \mathrm{sinc} \frac{x}{n}, \ \mbox{if } |x| \leq n
ただし、\mathrm{sinc}x = ( \sin \pi x ) / \pi x \, は正規化sinc関数

[編集] 関連項目

[編集] 言語間リンク

[編集] 外部リンク


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -