#include <util_sparx.h>


Public Member Functions | |
| KaiserBessel (float alpha_, int K, float r_, float v_, int N_, float vtable_=0.f, int ntable_=5999) | |
| virtual | ~KaiserBessel () |
| float | I0table_maxerror () |
| Compute the maximum error in the table. | |
| vector< float > | dump_table () |
| virtual float | sinhwin (float x) const |
| Kaiser-Bessel Sinh window function. | |
| virtual float | i0win (float x) const |
| Kaiser-Bessel I0 window function. | |
| float | i0win_tab (float x) const |
| Kaiser-Bessel I0 window function (uses table lookup). | |
| int | get_window_size () const |
| Return the size of the I0 window. | |
| kbsinh_win | get_kbsinh_win () |
| Sinh window function object factory. | |
| kbi0_win | get_kbi0_win () |
| I0 window function object factory. | |
Protected Member Functions | |
| virtual void | build_I0table () |
| 2*pi*alpha*r*vadjust | |
Protected Attributes | |
| float | alpha |
| float | v |
| float | r |
| int | N |
| Kaiser-Bessel parameters. | |
| int | K |
| size in Ix-space | |
| float | vtable |
| I0 window size. | |
| int | ntable |
| table I0 non-zero domain maximum | |
| vector< float > | i0table |
| float | dtable |
| float | alphar |
| table spacing | |
| float | fac |
| alpha*r | |
| float | vadjust |
| 2*pi*alpha*r*v | |
| float | facadj |
| float | fltb |
| Tabulate I0 window for speed. | |
Classes | |
| class | kbi0_win |
| I0 window function object. More... | |
| class | kbsinh_win |
| Sinh window function object. More... | |
(It's a class so that the windowing parameters may be instantiated and held in the instance object.)
The I0 version can be tabulated and interpolated upon demand, but the max error needs to be checked. The "vtable" parameter corresponds to the maximum value of x for which the I0 window is non-zero. Setting "vtable" different from "v" corresponds to a change in units of x. In practice, it is often handy to replace x in some sort of absolute units with x described in terms of grid intervals.
The get_kbsinh_win and get_kbi0_win functions return single-argument function objects, which is what a generic routine is likely to want.
Definition at line 189 of file util_sparx.h.
| KaiserBessel::KaiserBessel | ( | float | alpha_, | |
| int | K, | |||
| float | r_, | |||
| float | v_, | |||
| int | N_, | |||
| float | vtable_ = 0.f, |
|||
| int | ntable_ = 5999 | |||
| ) |
| virtual KaiserBessel::~KaiserBessel | ( | ) | [inline, virtual] |
| virtual void KaiserBessel::build_I0table | ( | ) | [protected, virtual] |
| float KaiserBessel::I0table_maxerror | ( | ) |
Compute the maximum error in the table.
| vector<float> KaiserBessel::dump_table | ( | ) | [inline] |
Definition at line 212 of file util_sparx.h.
References i0table.
00212 { 00213 return i0table; 00214 }
| virtual float KaiserBessel::sinhwin | ( | float | x | ) | const [virtual] |
Kaiser-Bessel Sinh window function.
Reimplemented in FakeKaiserBessel.
Referenced by KaiserBessel::kbsinh_win::operator()().
| virtual float KaiserBessel::i0win | ( | float | x | ) | const [virtual] |
Kaiser-Bessel I0 window function.
Reimplemented in FakeKaiserBessel.
Referenced by KaiserBessel::kbi0_win::operator()().
| float KaiserBessel::i0win_tab | ( | float | x | ) | const [inline] |
Kaiser-Bessel I0 window function (uses table lookup).
Definition at line 220 of file util_sparx.h.
00220 { 00221 /*float absx = fabs(x); 00222 int loc = int(round(absx*fltb)); 00223 return i0table[loc];*/ 00224 float xt; 00225 if(x<0.f) xt = -x*fltb+0.5f; else xt = x*fltb+0.5f; 00226 return i0table[ (int) xt]; 00227 /*return i0table[ (int) (fabs(x)*fltb+0.5f)]; 00228 if (absx > vtable) return 0.f; 00229 float loc = absx/dtable; 00230 return i0table[int(loc + 0.5f)]; */ 00231 }
| int KaiserBessel::get_window_size | ( | ) | const [inline] |
Return the size of the I0 window.
Definition at line 233 of file util_sparx.h.
References K.
Referenced by KaiserBessel::kbi0_win::get_window_size(), and KaiserBessel::kbsinh_win::get_window_size().
00233 { return K; }
| kbsinh_win KaiserBessel::get_kbsinh_win | ( | ) | [inline] |
| kbi0_win KaiserBessel::get_kbi0_win | ( | ) | [inline] |
float KaiserBessel::alpha [protected] |
Definition at line 192 of file util_sparx.h.
float KaiserBessel::v [protected] |
Definition at line 192 of file util_sparx.h.
float KaiserBessel::r [protected] |
Definition at line 192 of file util_sparx.h.
int KaiserBessel::N [protected] |
int KaiserBessel::K [protected] |
float KaiserBessel::vtable [protected] |
int KaiserBessel::ntable [protected] |
vector<float> KaiserBessel::i0table [protected] |
float KaiserBessel::dtable [protected] |
Definition at line 198 of file util_sparx.h.
float KaiserBessel::alphar [protected] |
float KaiserBessel::fac [protected] |
float KaiserBessel::vadjust [protected] |
float KaiserBessel::facadj [protected] |
Definition at line 202 of file util_sparx.h.
float KaiserBessel::fltb [protected] |
Tabulate I0 window for speed.
Definition at line 204 of file util_sparx.h.
Referenced by i0win_tab().
1.5.6