QtiPlot  0.9.8.2
FFTFilter.h
Go to the documentation of this file.
1 /***************************************************************************
2  File : FFTFilter.h
3  Project : QtiPlot
4  --------------------------------------------------------------------
5  Copyright : (C) 2007 by Ion Vasilief
6  Email (use @ for *) : ion_vasilief*yahoo.fr
7  Description : Numerical FFT filtering of data sets
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  * This program is distributed in the hope that it will be useful, *
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
21  * GNU General Public License for more details. *
22  * *
23  * You should have received a copy of the GNU General Public License *
24  * along with this program; if not, write to the Free Software *
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
26  * Boston, MA 02110-1301 USA *
27  * *
28  ***************************************************************************/
29 #ifndef FFTFILTER_H
30 #define FFTFILTER_H
31 
32 #include "Filter.h"
33 
34 class FFTFilter : public Filter
35 {
36 Q_OBJECT
37 
38 public:
39  FFTFilter(ApplicationWindow *parent, QwtPlotCurve *c, int m = 1);
40  FFTFilter(ApplicationWindow *parent, QwtPlotCurve *c, double start, double end, int m = 1);
41  FFTFilter(ApplicationWindow *parent, Graph *g, const QString& curveTitle, int m = 1);
42  FFTFilter(ApplicationWindow *parent, Graph *g, const QString& curveTitle, double start, double end, int m = 1);
43  FFTFilter(ApplicationWindow *parent, Table *t, const QString& xCol, const QString& yCol, int start = 0, int end = -1, int m = 1);
44 
45  enum FilterType{LowPass = 1, HighPass = 2, BandPass = 3, BandBlock = 4};
46 
47  void setFilterType(int type);
48 
50  void setCutoff(double f);
51 
53  void setBand(double lowFreq, double highFreq);
54 
56  void enableOffset(bool offset = true){d_offset = offset;};
57 
58 private:
59  void init(int m);
60  void calculateOutputData(double *x, double *y);
61 
64 
66  double d_low_freq;
67 
69  double d_high_freq;
70 
72  bool d_offset;
73 };
74 
75 #endif
FilterType d_filter_type
The filter type.
Definition: FFTFilter.h:63
A 2D-plotting widget.
Definition: Graph.h:123
void setCutoff(double f)
Sets the cutoff frequency. To be used only for Low Pass and High Pass filters.
Definition: FFTFilter.cpp:95
Definition: FFTFilter.h:45
bool d_offset
Flag telling if the DC offset must be added/substracted when applying a Band Pass/Band block filter r...
Definition: FFTFilter.h:72
void calculateOutputData(double *x, double *y)
Calculates the data for the output curve and store it in the X an Y vectors.
Definition: FFTFilter.cpp:127
Abstract base class for data analysis operations.
Definition: Filter.h:43
double d_high_freq
Upper edge of the band for Band Pass and Band block filters.
Definition: FFTFilter.h:69
Definition: FFTFilter.h:45
void init()
Definition: Filter.cpp:79
FFTFilter(ApplicationWindow *parent, QwtPlotCurve *c, int m=1)
Definition: FFTFilter.cpp:36
FilterType
Definition: FFTFilter.h:45
QtiPlot's main window.
Definition: ApplicationWindow.h:133
void setFilterType(int type)
Definition: FFTFilter.cpp:83
void setBand(double lowFreq, double highFreq)
Sets the cutoff frequencies. To be used only for the Band Pass and Band block filters.
Definition: FFTFilter.cpp:103
Definition: FFTFilter.h:45
void enableOffset(bool offset=true)
Enables/Disables the DC offset when applying a Band Pass/Band block filter.
Definition: FFTFilter.h:56
double d_low_freq
Cutoff frequency for Low Pass and High Pass filters. Lower edge of the band for Band Pass and Band bl...
Definition: FFTFilter.h:66
Definition: FFTFilter.h:34
double * x()
Returns the x values of the input data set.
Definition: Filter.h:98
double * y()
Returns the y values of the input data set.
Definition: Filter.h:100
MDI window providing a spreadsheet table with column logic.
Definition: Table.h:57
Definition: FFTFilter.h:45