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

Hankel.hh

Go to the documentation of this file.
00001 /*
00002 
00003     Hankel transform (Abel transform followed by FFT)
00004     Copyright (C) 1995 Colorado School of Mines. All rights reserved.
00005     Copyright (C) 2001 Jussi Laako
00006 
00007     This program is free software; you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation; either version 2 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program; if not, write to the Free Software
00019     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020 
00021     Source converted from cwplib (by Dave Hale and Lydia Deng / Colorado
00022     School of Mines).
00023 
00024     References:
00025     Hansen, E. W., 1985, Fast Hankel transform algorithm:  IEEE Trans. on
00026     Acoustics, Speech and Signal Processing, v. ASSP-33, n. 3, p. 666-671.
00027     (Beware of several errors in the equations in this paper!)
00028 
00029 */
00030 
00031 
00032 #include <dsp/DSPOp.hh>
00033 //#include <dsp/PFAFFT.hh>
00034 
00035 
00036 #ifndef HANKEL_HH
00037     #define HANKEL_HH
00038 
00058     class clHankel
00059     {
00060             long lSize;
00061             long lFFTSize;
00062             float fOutScale0;
00063             float fOutScale1;
00064             double dOutScale0;
00065             double dOutScale1;
00066             clDSPAlloc A;
00067             clDSPAlloc B0;
00068             clDSPAlloc B1;
00069             clDSPAlloc GX;
00070             clDSPAlloc GK;
00071             clDSPOp DSP;
00072             //clPFAFFT FFT;
00078             void InitAbel (const float *);
00080             void InitAbel (const double *);
00087             void DoAbel (float *, const float *);
00089             void DoAbel (double *, const double *);
00093             void UninitAbel ();
00094         public:
00095             clHankel ();
00096             ~clHankel ();
00106             void Initialize (long, const float *);
00108             void Initialize (long, const double *);
00112             void Uninitialize ();
00124             void Process0 (float *, const float *);
00126             void Process0 (double *, const double *);
00138             void Process1 (float *, const float *);
00140             void Process1 (double *, const double *);
00141     };
00142 
00143 #endif

Generated on Tue Mar 2 19:46:44 2004 for libDSP by doxygen 1.3.6