Blackman.java
/*
* $Id: Blackman.java,v 1.10 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> Blackman window
*
* @author koga
* @version $Revision: 1.10 $
* @see org.mklab.tool.signal.Bartlett
* @see org.mklab.tool.signal.Boxcar
*/
public class Blackman {
/**
* <code>length</code>点のブラックマン窓を返します。
*
* @param length 窓の長さ
* @return バートレット窓 (blackman window)
*/
public static DoubleMatrix blackman(int length) {
DoubleMatrix tt = new DoubleMatrix(IntMatrix.series(0, length - 1)).divide((double)(length - 1));
DoubleMatrix win = tt.multiply(4 * Math.PI).cosElementWise().multiply(0.08).subtract((tt.multiply(2 * Math.PI)).cosElementWise().multiply(0.5)).addElementWise(0.42);
return win;
}
}