Hamming.java

/*
 * $Id: Hamming.java,v 1.9 2008/03/08 00:17:41 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> Hamming window
 * 
 * @author koga
 * @version $Revision: 1.9 $
 * @see org.mklab.tool.signal.Boxcar
 * @see org.mklab.tool.signal.Bartlett
 * @see org.mklab.tool.signal.Blackman
 * @see org.mklab.tool.signal.Hanning
 */
public class Hamming {

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

}