aimsalgo  5.1.2
Neuroimaging image processing
firfilter.h
Go to the documentation of this file.
1 /* This software and supporting documentation are distributed by
2  * Institut Federatif de Recherche 49
3  * CEA/NeuroSpin, Batiment 145,
4  * 91191 Gif-sur-Yvette cedex
5  * France
6  *
7  * This software is governed by the CeCILL-B license under
8  * French law and abiding by the rules of distribution of free software.
9  * You can use, modify and/or redistribute the software under the
10  * terms of the CeCILL-B license as circulated by CEA, CNRS
11  * and INRIA at the following URL "http://www.cecill.info".
12  *
13  * As a counterpart to the access to the source code and rights to copy,
14  * modify and redistribute granted by the license, users are provided only
15  * with a limited warranty and the software's author, the holder of the
16  * economic rights, and the successive licensors have only limited
17  * liability.
18  *
19  * In this respect, the user's attention is drawn to the risks associated
20  * with loading, using, modifying and/or developing or reproducing the
21  * software by the user in light of its specific status of free software,
22  * that may mean that it is complicated to manipulate, and that also
23  * therefore means that it is reserved for developers and experienced
24  * professionals having in-depth computer knowledge. Users are therefore
25  * encouraged to load and test the software's suitability as regards their
26  * requirements in conditions enabling the security of their systems and/or
27  * data to be ensured and, more generally, to use and operate it in the
28  * same conditions as regards security.
29  *
30  * The fact that you are presently reading this means that you have had
31  * knowledge of the CeCILL-B license and that you accept its terms.
32  */
33 
34 
35 #ifndef AIMS_SIGNALFILTER_FIRFILTER_H
36 #define AIMS_SIGNALFILTER_FIRFILTER_H
37 
39 #include <aims/def/general.h>
40 
41 namespace carto
42 {
43  template <class T> class Volume;
44  template <class T> class VolumeRef;
45 }
46 
47 
52 {
57 };
58 
59 
63 {
72 };
73 
74 
78 { protected:
80  float _fSampling;
82  float _fCut;
84  float _fLow;
86  float _fHigh;
88  float _deltaF;
90  float _deltaP;
92  float _deltaS;
94  float _beta;
96  int _type;
98  int _nCoef;
101 
113  void initialize();
115 
116  public:
127  AimsFIRFilter(float fs, float fc, float deltaf, float deltap, float deltas,
128  int type);
138  AimsFIRFilter(float fs, float fl, float fh, float deltaf, float deltap,
139  float deltas, int type);
141  virtual ~AimsFIRFilter();
143 
147  float fSampling() const;
149  float fCut() const;
151  float fLow() const;
153  float fHigh() const;
155  float deltaF() const;
157  float deltaP() const;
159  float deltaS() const;
161  int type() const;
162 
171 };
172 
173 
174 #endif
#define AIMSALGO_API
The class of Finite Impulse Response filters.
Definition: firfilter.h:78
float fCut() const
Return the cut frequency (highpass or lowpass)
carto::VolumeRef< float > * _impulseResponse
Impulse response.
Definition: firfilter.h:100
carto::VolumeRef< float > impulseResponse()
Return the modified impulse response of the F.I.R. filter.
carto::VolumeRef< float > process(const carto::rc_ptr< carto::Volume< float > > &data, AimsDirectionAxis dir=AIMS_X_DIRECTION)
Send a filter processing on a data according to a direction.
float _deltaP
Residual ondulation in pass-band.
Definition: firfilter.h:90
float _fHigh
High cut frequency.
Definition: firfilter.h:86
float fSampling() const
Return the sampling frequency.
int _type
Type of the filter.
Definition: firfilter.h:96
float _beta
Beta parameter.
Definition: firfilter.h:94
void numberOfFIRFilterCoef()
Process the number of coefficients.
float _deltaF
Frequency resolution.
Definition: firfilter.h:88
carto::VolumeRef< float > kaiserWindow()
Return a Kaiser window.
float _fLow
Low cut frequency.
Definition: firfilter.h:84
float fLow() const
Return the low cut frequency (bandpass or bandstop)
float deltaS() const
Return the stopband ripple.
float deltaP() const
Return the passband ripple.
float _deltaS
Residual ondulation in stop-band.
Definition: firfilter.h:92
void initialize()
send the process which evaluate the coefficients
virtual ~AimsFIRFilter()
Destructor free the impulse response.
AimsFIRFilter(float fs, float fl, float fh, float deltaf, float deltap, float deltas, int type)
Constructor dedicated to stopband filters or passband filters.
float fHigh() const
Return the high cut frequency (bandpass or bandstop)
int type() const
Return the type of the filter.
float _fSampling
Sampling frequency.
Definition: firfilter.h:80
AimsFIRFilter(float fs, float fc, float deltaf, float deltap, float deltas, int type)
Constructor dedicated to lowpass filters or highpass filters.
int _nCoef
Number of coefficients.
Definition: firfilter.h:98
float _fCut
Cut frequency.
Definition: firfilter.h:82
carto::VolumeRef< float > idealImpulseResponse()
Return the ideal impulse response of the F.I.R. filter.
float deltaF() const
Return the frequency step.
AimsDirectionAxis
The 4 dimensions.
Definition: firfilter.h:52
@ AIMS_Y_DIRECTION
Definition: firfilter.h:54
@ AIMS_X_DIRECTION
Definition: firfilter.h:53
@ AIMS_T_DIRECTION
Definition: firfilter.h:56
@ AIMS_Z_DIRECTION
Definition: firfilter.h:55
AimsFirFilterType
The different types of finite impulse response filters.
Definition: firfilter.h:63
@ AIMS_FIR_BANDPASS
Definition: firfilter.h:69
@ AIMS_FIR_BANDSTOP
Definition: firfilter.h:71
@ AIMS_FIR_HIGHPASS
Definition: firfilter.h:67
@ AIMS_FIR_LOWPASS
Definition: firfilter.h:65