▽1
●
TransFreeBSD ベストアンサー |
両端が0になるのはハニングの方です。
両端が0でないということは、そこが不連続になりますので、高周波成分が入ってサイドローブが大きくなりがちです。
http://ja.wikipedia.org/wiki/%E7%AA%93%E9%96%A2%E6%95%B0#.E3.83.8F.E3.83.B3.E7.AA.93
窓関数には、
- メインローブが狭い(周波数分解能が良い)
- サイドローブが低い(ダイナミックレンジが広い)
という2つの特長が要求される。 しかし、この2つはトレード・オフの関係にあり、両立させるには限界がある。
ハン窓
?
最もよく使われる窓関数の一つ。
?ハミング窓
?
ハン窓と並び、最もよく使われる窓関数の一つ。ハン窓より周波数分解能が良く、ダイナミック・レンジが狭い。区間の両端で不連続なのが特徴。
?
ハン窓は連続です。加えて倍角公式により単項にできるシンプルさがあります。
http://en.wikipedia.org/wiki/Hann_function
特性も悪くなく、教科書的窓関数ではないでしょうか。ハミング窓は、その発展形として周波数分解能を良くしたものです。さらに一般化によって特性を調整できます。
一般化ハミング窓
ハン窓とハミング窓の一般化。実数パラメタ α, 0.5 <= α <= 1 を持ち、α=0.5 でハン窓、α=0.54 でハミング窓、α=1 で矩形窓になる。
極端に言えば有限時間=矩形窓=α=1の一般化ハミング窓とも言えます。
ですので時間/周波数領域変換において必ずついて回る、というのは言い過ぎかもしれませんが、基礎の基礎といえる窓関数ではないでしょうか。
ハミングの波形を作ってたのですが、これで合ってますでしょうか?
参考書どおりにうまく滑らかになっていないので不安です。
http://uploda.cc/img/img50b8a76c324e5.jpg
フーリエ変換などをしたのですが
結果が参考書みたいにならずに下記の結果になってしまいました。
http://uploda.cc/img/img50b8a81d00a75.jpg
環境はMATLABです。
ハミングの式は
0.5*(1-cos(2*pi*(n-1)/n0));
という具合で入れています
MATLAB自身にハミングの関数があるみたいですが
私の環境だとできないみたいです。