public FloatHalfBandNoDecimateFilter(Filters filter,float gain){
  mCoefficients=filter.getCoefficients();
  mBuffer=new ArrayList<Float>();
  mBufferSize=mCoefficients.length;
  for (int x=0; x < mCoefficients.length; x++) {
    mBuffer.add(0.0f);
  }
  generateIndexMap(mCoefficients.length);
  mGain=gain;
}

public FloatHalfBandNoDecimateFilter ( Filters filter , float gain ) { mCoefficients = filter . getCoefficients ( ) ; mBuffer = new ArrayList < Float > ( ) ; mBufferSize = mCoefficients . length ; for ( int x = 0 ; x < mCoefficients . length ; x ++ ) { mBuffer . add ( 0.0f ) ; } generateIndexMap ( mCoefficients . length ) ; mGain = gain ; }
half - band filter with decimation by a real valued float . takes advantage of the symmetrical nature of fir filter coefficients by adding oldest and newest sample first , then multiplying once by the corresponding coefficient also , takes advantage of the 0 - valued fir half - band coefficents inherent in the half - band filter , and does not calculate those coefficients . this reduces the workload to ( tap - size - 1 ) / 4 + 1 calculations per sample .
