aimsalgo 6.0.0
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
41namespace carto
42{
43 template <class T> class Volume;
44 template <class T> class VolumeRef;
45}
46
47
58
59
73
74
78{ protected:
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
104
115
116 public:
119
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
146
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
float fCut() const
Return the cut frequency (highpass or lowpass)
carto::VolumeRef< float > * _impulseResponse
Impulse response.
Definition firfilter.h:100
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 > idealImpulseResponse()
Return the ideal impulse response of the F.I.R. filter.
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
carto::VolumeRef< float > impulseResponse()
Return the modified impulse response of the F.I.R. filter.
carto::VolumeRef< float > kaiserWindow()
Return a Kaiser window.
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.
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.
int _nCoef
Number of coefficients.
Definition firfilter.h:98
float _fCut
Cut frequency.
Definition firfilter.h:82
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