一维:
//-----------------------------------------------------------------------------
// name: hanning()
// desc: make window
//-----------------------------------------------------------------------------
void FFT::hanning( float * window, unsigned long length )
{
unsigned long i;
double pi, phase = 0, delta;
pi = 4.*atan(1.0);
delta = 2 * pi / (double) length;
for( i = 0; i < length; i++ )
{
window[i] = (float)(0.5 * (1.0 - cos(phase)));
phase += delta;
}
}
//-----------------------------------------------------------------------------
// name: hamming()
// desc: make window
//-----------------------------------------------------------------------------
void FFT::hamming( float * window, unsigned long length )
{
unsigned long i;
double pi, phase = 0, delta;
pi = 4.*atan(1.0);
delta = 2 * pi / (double) length;
for( i = 0; i < length; i++ )
{
window[i] = (float)(0.54 - .46*cos(phase));
phase += delta;
}
}