Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

KaiserWindow.h

00001 #ifndef INCLUDE_KAISERWINDOW_H
00002 #define INCLUDE_KAISERWINDOW_H
00003 /*
00004  * This is the Loris C++ Class Library, implementing analysis, 
00005  * manipulation, and synthesis of digitized sounds using the Reassigned 
00006  * Bandwidth-Enhanced Additive Sound Model.
00007  *
00008  * Loris is Copyright (c) 1999-2004 by Kelly Fitz and Lippold Haken
00009  *
00010  * This program is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2 of the License, or
00013  * (at your option) any later version.
00014  *
00015  * This program is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY, without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00018  * GNU General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU General Public License
00021  * along with this program; if not, write to the Free Software
00022  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023  *
00024  *
00025  * KaiserWindow.h
00026  *
00027  * Definition of class Loris::KaiserWindow.
00028  *
00029  * Kelly Fitz, 14 Dec 1999
00030  * loris@cerlsoundgroup.org
00031  *
00032  * http://www.cerlsoundgroup.org/Loris/
00033  *
00034  */
00035 
00036 #include <vector>
00037 
00038 //  begin namespace
00039 namespace Loris {
00040 
00041 // ---------------------------------------------------------------------------
00042 //  class KaiserWindow
00043 //
00044 //  Class KaiserWindow computes a Kaiser window function (see Kaiser and 
00045 //  Schafer, 1980) for windowing FFT data.
00046 //
00047 //  This _should_ _not_ be a class. Or should it? Could be a namespace like
00048 //  BreakpointUtils.
00049 //
00050 class KaiserWindow
00051 {
00052 //  -- public interface --
00053 public:
00054     static void create( std::vector< double > & samples, double shape );
00055     
00056     static double computeShape( double atten );
00057     static long computeLength( double width, double alpha );
00058 
00059 //  construction is not allowed:
00060 private:
00061     KaiserWindow( void );
00062     
00063 };  // end of class KaiserWindow
00064 
00065 }   //  end of namespace Loris
00066 
00067 #endif /* ndef INCLUDE_KAISERWINDOW_H */

Generated on Thu Apr 14 22:01:55 2005 for Loris by doxygen 1.3.4