Hanning.java

/*
 * $Id: Hanning.java,v 1.9 2008/03/08 00:17:40 koga Exp $
 * 
 * Copyright (C) 2004 Koga Laboratory. All rights reserved.
 */
package org.mklab.tool.signal;

import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.matrix.IntMatrix;


/**
 * ハニング窓を求めるクラスです。
 * 
 * <p>Hanning window
 * 
 * @author koga
 * @version $Revision: 1.9 $
 * @see org.mklab.tool.signal.Hamming
 */
public class Hanning {

  /**
   * <code>length</code>点ハニング窓を返します。
   * 
   * @param length 窓の長さ
   * @return ハニング窓 (hanning window)
   */
  public static DoubleMatrix hanning(int length) {
    DoubleMatrix window = new DoubleMatrix(IntMatrix.series(1, length)).multiply(2 * Math.PI / (length + 1)).cosElementWise().multiply(0.5).unaryMinus().addElementWise(0.5);
    return window;
  }

}