hann.cpp
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = hann.cpp
  3. //
  4. #include <math.h>
  5. #include <iostream>
  6. #include "hann.h"
  7. #include "misdefs.h"
  8. //======================================================
  9. HannWindow::HannWindow( int length,
  10.                         int zero_ends )
  11.            :GenericWindow(length)
  12. {
  13.    GenerateWindow( length, zero_ends );
  14. }
  15. //=======================================================
  16. void HannWindow::GenerateWindow( int length, 
  17.                                  int zero_ends )
  18. {
  19.    double denom;
  20.    if(zero_ends)
  21.       denom = double(length-1);
  22.    else
  23.       denom = double(length+1);
  24.    for(int n=0; n<Half_Length; n++){
  25.       if(length%2) {
  26.          Half_Lag_Win[n] = 0.5 + 0.5 * cos( TWO_PI*n/denom);
  27.       }
  28.       else{
  29.          Half_Lag_Win[n] = 0.5 + 0.5 * cos( (2*n+1)*PI/denom);
  30.       }
  31.    }
  32.    return;