窓関数
離散フーリエ変換を行うときはデータに窓をかける前処理を行うことがあります。
詳細は”窓関数”で検索してもらえればたくさん情報が手に入りますが、ここではWikipediaから引用します。
窓関数- Wikipedia
窓関数(まどかんすう、英: window function)とは、ある有限区間以外で0となる関数である。 ある関数や信号(データ)に窓関数が掛け合わせられると、区間外は0になり、有限区間内だけが残るので、数値解析が容易になる。 窓関数は、スペクトル分析、フィルタ・デザインや、音声圧縮に応用される。 窓関数を単に窓 (window) ともいい、データに窓関数を掛け合わせることを窓を掛ける (windowing) という。
Wikipediaをみるとわかりますが、窓の種類はたくさんあります。
ここでは一般によく利用されているハミング窓をかける例をActionScriptで。
・窓関数
public function windowing(data:Vector.<Number>, inv:int):void {
var d:Number = 0.0;
var len:int = data.length;
// hamming window
for(var i:int=0; i<len; i++) {
d = 0.54 - 0.46*Math.cos(2*Math.PI*i/(len - 1));
if(inv == 1) data[i] *= d;
else data[i] /= d;
}
}
画像データに窓をかける場合はこれを二次元にすればいいだけです。(円形窓になる)
今回は画像処理ではなく信号処理ですが、フーリエ変換に関連した内容ということで一応紹介だけしました。
Tags: actionscript


Comments
No comments so far.