Logo coherent WaveBurst  
Library Reference Guide
Logo
wseries.hh
Go to the documentation of this file.
1 /*
2 # Copyright (C) 2019 Sergey Klimenko, Gabriele Vedovato
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17 
18 
19 // Wavelet Analysis Tool
20 // universal data container for wavelet transforms
21 // used with DMT and ROOT
22 //
23 //$Id: wseries.hh,v 1.1 2005/05/16 06:05:10 igor Exp $
24 
25 #ifndef WSERIES_HH
26 #define WSERIES_HH
27 
28 #ifndef WAVEARRAY_HH
29 #include "wavearray.hh"
30 #endif
31 
32 #include <vector>
33 #include <list>
34 #include "WaveDWT.hh"
35 #include <complex>
36 #include "wavecomplex.hh"
37 #include "TNamed.h"
38 #include "TH1F.h"
39 
41 typedef std::vector<int> vector_int;
42 
43 
44 template<class DataType_t>
45 class WSeries : public wavearray<DataType_t>
46 {
47 
48  public:
49 
50  // constructors
51 
52  //: Default constructor
53  WSeries();
54 
55  //: Construct WSeries for specific wavelet type
56  //+ default constructor
57  explicit WSeries(const Wavelet &w);
58 
59  //: Construct from wavearray
60  //!param: value - data to initialize the WSeries object
61  explicit WSeries(const wavearray<DataType_t>& value,
62  const Wavelet &w);
63 
64  //: Copy constructor
65  //!param: value - object to copy from
66  WSeries(const WSeries<DataType_t>& value);
67 
68  //: destructor
69  virtual ~WSeries();
70 
71  // operators
72 
75  WSeries<DataType_t>& operator= (const DataType_t);
76 
77  // operator[](const slice &) sets the Slice object of the wavearray class
78  virtual WSeries<DataType_t>& operator[](const std::slice &);
79 
80  //: operators for WSeries objects, which can have different length
81  //: it is required they have the same type of transform (standard or binary)
82  //: and the same size of approximation levels.
83  //: warning: there is no check that approximation levels have the same
84  //: sampling rate.
88 
89  // just to trick ANSI standard
93  virtual WSeries<DataType_t>& operator+=(const DataType_t);
94  virtual WSeries<DataType_t>& operator-=(const DataType_t);
95  virtual WSeries<DataType_t>& operator*=(const DataType_t);
96 
97  // multiply layer by layer this and input wseries
98  void mul(WSeries<DataType_t> &);
99 
100  //: Dump data array to an ASCII file
101  virtual void Dump(const char*, int=0);
102 
103  // accessors
104 
105  //: Get maximum possible level of decompostion
106  int getMaxLevel();
107 
108  //: Get level of decompostion
109  inline int getLevel(){ return pWavelet->m_Level; }
110 
111  //: set level of decompostion
112  inline void setLevel(size_t n){ pWavelet->m_Level = n; }
113 
114  //: Set black pixel probability
115  inline void setbpp(double f) { bpp=f; return; }
116  //: Get black pixel probability
117  inline double getbpp() const { return bpp; }
118 
119  //: Set wavelet rate (0-level)
120  inline void wrate(double r) {wRate=r; return;}
121  //: Get wavelet rate
122  inline double wrate() const { return wRate; }
123 
124  //: Set low frequency boundary
125  inline void setlow(double f) {
126  f_low=f>0. ? f : 0.; return;
127  }
128  //: Get low frequency boundary
129  inline double getlow() const { return f_low; }
130 
131  //: Set high frequency boundary
132  inline void sethigh(double f) {
133  f_high = f; return;
134  }
135  //: get high frequency boundary
136  inline double gethigh() const { return f_high; }
137 
138  //: Get max layer of decompostion
139  inline int maxLayer(){
140  return pWavelet->BinaryTree() ? (1<<getLevel())-1 : getLevel();
141  }
142 
143  // number of samples at zero level
144  inline size_t sizeZero(){return pWavelet->getSlice(0).size();}
145  // number of samples in the original time series
146  inline size_t xsize(){return pWavelet->nSTS;}
147 
148  // maximum sample index in 00 phase
149  inline size_t maxIndex(){return sizeZero()*(maxLayer()+1)-1;}
150 
151  //: Get slice structure for specified layer
152  inline std::slice getSlice(double n){ return pWavelet->getSlice(n); }
153 
154  //: Get wavelet layer frequency resolution
155  inline double resolution(int=0){
156  return frequency(1)-frequency(0);
157  }
158 
159  //: Get central frequency of a layer
160  // l - layer number.
161  // TF map binary dyadic WDM
162  // zero layer Fc dF/2 Fo 0
163  // non-zero Fc +n*dF Fn +n*dF
164  double frequency(int l);
165 
166  //: Get layer index for input frequency
167  // f - frequency Hz
168  // TF map binary dyadic WDM
169  // zero layer Fc dF/2 Fo 0
170  // non-zero Fc +n*dF Fn +n*dF
171  int layer(double f);
172 
173  //: Extract wavelet coefficients from specified layer
174  //!param: n - layer number
175  int getLayer(wavearray<DataType_t> &w, double n);
176 
177  //: replace wavelet data for specified layer with data from Sequence
178  //!param: n - layer number
179  void putLayer(wavearray<DataType_t> &, double n);
180 
181  // extract wavelet amplitude for layer m and wavelet time index n
182  // or sample(n,m)
183  // !param: n - wavelet time index
184  // !param: m - layer number
185  inline DataType_t getSample(int n, double m) {
186  std::slice S = this->getSlice(m);
187  return (n<S.size()) ? this->data[n*S.stride()+S.start()] : 0;
188  }
189 
190  // extract wavelet amplitude for layer m and wavelet time index n
191  // or sample(n,m)
192  // !param: a - new amplitude
193  // !param: n - wavelet time index
194  // !param: m - layer number
195  inline void putSample(DataType_t a, int n, double m) {
196  std::slice S = this->getSlice(m);
197  if(n<S.size()) this->data[n*S.stride()+S.start()]=a;
198  }
199 
200  // mutators
201 
202  virtual void resize(unsigned int);
203  virtual void resample(double, int=6);
204 
205  //: initialize wavelet parameters from Wavelet object
206  void setWavelet(const Wavelet &w);
207  //: return true if WDM transform
208  bool isWDM() {return pWavelet->m_WaveType==WDMT ? true : false;}
209 
210  //: Perform n steps of forward wavelet transform
211  //!param: wavelet - n is number of steps (-1 means full decomposition)
212  // WDM - n=-1 - otrhonormal, n=0 - power, n>0 - upsampled power
213  void Forward(int n = -1);
214  void Forward(wavearray<DataType_t> &, int n = -1);
215  void Forward(wavearray<DataType_t> &, Wavelet &, int n = -1);
216 
217  //: Perform n steps of inverse wavelet transform
218  //!param: n - number of steps (-1 means full reconstruction)
219  void Inverse(int n = -1);
220 
221  // bandpass data and store in TF domain
222  // ts - input time series
223  // flow - low frequence boundary
224  // fhigh - high frequency boundary
225  // n - decomposition parameter
226  void bandpass(wavearray<DataType_t> &ts, double flow, double fhigh, int n=-1);
227 
228  // set wseries coefficients to a in layers between
229  // flow - low frequence boundary
230  // fhigh - high frequency boundary
231  // a - value
232  void bandpass(double flow, double fhigh, double a=0.);
233 
234  // maxEnergy: put maximum energy of delayed samples in this
235  // param: wavearray - input time series
236  // param: wavelet - wavelet used for the transformation
237  // param: double - range of time delays
238  // param: int - downsample factor to obtain coarse TD steps
239  // param: int - clustering mode
240  // returns median energy
241  double maxEnergy(wavearray<DataType_t> &ts, Wavelet &w, double=0, int=1, int=0, TH1F* = NULL);
242 
243  // wdmPacket: converts this to WDM packet series described by pattern
244  // patterns: "/" - chirp, "\" - ringdown, "|" - delta, "*" - pixel
245  // opt = 'e' / 'E' - returns pattern / packet energy
246  // opt = 'l' / 'L' - returns pattern / packet likelihood
247  // opt = 'a' / 'A' - returns packet amplitudes
248  // patterns: "/" - chirp, "\" - ringdown, "|" - delta, "*" - pixel
249  // param: pattern = 0 - "*" single pixel standard search
250  // param: pattern = 1 - "3|" packet
251  // param: pattern = 2 - "3-" packet
252  // param: pattern = 3 - "3/" packet - chirp
253  // param: pattern = 4 - "3\" packet - ringdown
254  // param: pattern = 5 - "5/" packet - chirp
255  // param: pattern = 6 - "5\" packet - ringdown
256  // param: pattern = 7 - "3+" packet
257  // param: pattern = 8 - "3x" cross packet
258  // param: pattern = 9 - "9p" 9-pixel square packet
259  // pattern = else - "*" single pixel standard search
260  // mean of the packet noise distribution is mu=2*K+1, where K is
261  // the effective number of pixels in the packet (K may not be integer)
262  double wdmPacket(int pattern, char opt='L', TH1F* = NULL);
263  double Gamma2Gauss(TH1F* = NULL);
264 
265  // create a wavescan object
266  // produce multi-resolution TF series of input time series x
267  // pws - array of pointers to input time-frequency series
268  // N - number of resolutions
269  // hist - diagnostic histogram
270  void wavescan(WSeries<DataType_t>**, int, TH1F* = NULL);
271 
272 //++++++++++++++ wavelet data conditioning +++++++++++++++++++++++++++
273 
274  //: calculate running medians with window of t seconds
275  //: and subtract the median from this (false key) or
276  //: calculate median for abs(this) and normalize this (true)
277  virtual void median(double t, bool norm=false);
278 
279 
280  //: apply linear predictor to each layer.
281  // param: filter length in seconds
282  // param: filter mode: -1/0/1 - backward/symmetric/forward
283  // param: stride for filter training (0 - train on whole TS)
284  // param: boundary offset to account for wavelet artifacts
285  virtual void lprFilter(double,int=0,double=0.,double=0.);
286 
287  //: tracking of noise non-stationarity and whitening.
288  // param 1 - time window dT. if = 0 - dT=T, where T is wavearray duration
289  // param 2 - mode: 0 - no whitening, 1 - single whitening, >1 - double whitening
290  // mode <0 - whitening using guadrature (WDM wavelet only)
291  // param 3 - boundary offset
292  // param 4 - noise sampling interval (window stride)
293  // the number of measurements is k=int((T-2*offset)/stride)
294  // if stride=0, then stride is set to dT
295  // return: noise array if param2>0, median if param2=0
296  //!what it does: each wavelet layer is devided into k intervals.
297  //!The data for each interval is sorted and the following parameters
298  //!are calculated: median and the amplitude
299  //!corresponding to 31% percentile (wp). Wavelet amplitudes (w) are
300  //!normalized as w' = (w-median(t))/wp(t), where median(t) and wp(t)
301  //!is a linear interpolation between (median,wp) measurements for
302  //!each interval.
303  virtual WSeries<double> white(double,int,double=0.,double=0.);
304 
305  //: whiten TF map by using input noise array
306  virtual bool white(WSeries<double> ws, int mode=0);
307 
308  //: local whitening, works only for binary wavelets.
309  //: returns array of noise rms for wavelet layers
310  //!param: n - number of decomposition steps
311  //!algorithm:
312  //! 1) do forward wavelet transform with n decomposition steps
313  //! 2) whiten wavelet layers and calculate noise rms as
314  //! 1/Sum(1/var)
315  //! 3) do inverse wavelet transform with n reconstruction steps
316  virtual wavearray<double> filter(size_t);
317 
318  //: works only for binary wavelets.
319  //: calculates, corrects and returns noise variability
320  //!param: first - time window to calculate normalization constants
321  //! second - low frequency boundary for correction
322  //! third - high frequency boundary for correction
323  //!algorithm:
324  //! 1) sort wavelet amplitudes with the same time stamp
325  //! 2) calculate left(p) and right(p) amplitudes
326  //! put (right(p)-left(p))/2 into output array
327  //! 3) if first parameter >0 - devide WSeries by average
328  //! variability
329  virtual WSeries<float> variability(double=0., double=-1., double=-1.);
330 
331  //: Selection of a fixed fraction of pixels
332  //: reduced wavelet amplitudes are stored in this
333  //: Returns fraction of non-zero coefficients.
334  //!param: t - sub interval duration. If can not divide on integer
335  // number of sub-intervals then add leftover to the last
336  // one.
337  //!param: f - black pixel fraction
338  //!param: m - mode
339  //!options: f = 0, m = 0 - returns black pixel occupancy
340  //! m = 1 - set threshold f
341  //! m = 2 - random policy
342  //! m = 0 - random pixel selection
343  virtual double fraction(double=0.,double=0.,int=0);
344 
345  //: calculate rank logarithic significance of wavelet pixels
346  //: reduced wavelet amplitudes are stored in this
347  //: Returns pixel occupancy for significance>0.
348  //!param: n - sub-interval duration in seconds
349  //!param: f - black pixel fraction
350  //!options: f = 0 - returns black pixel occupancy
351  virtual double significance(double, double=1.);
352 
353  //: calculate running rank logarithic significance of wavelet pixels
354  //: reduced wavelet amplitudes are stored in this
355  //: Returns pixel occupancy for significance>0.
356  //!param: n - sub-interval duration in domain units
357  //!param: f - black pixel fraction
358  //!options: f = 0 - returns black pixel occupancy
359  virtual double rsignificance(size_t=0, double=1.);
360 
361  //: calculate running rank logarithic significance of wavelet pixels
362  //: reduced wavelet amplitudes are stored in this
363  //: Returns pixel occupancy for significance>0.
364  //!param: T - sliding window duration in seconds
365  //!param: f - black pixel fraction
366  //!param: t - sliding step in seconds
367  //!options: f = 0 - returns black pixel occupancy
368  //!options: t = 0 - sliding step = wavelet time resolution.
369  virtual double rSignificance(double, double=1., double=0.);
370 
371  //: calculate running logarithic significance of wavelet pixels
372  //: reduced wavelet amplitudes are stored in this
373  //: Returns pixel occupancy for significance>0.
374  //!param: T - sliding window duration in seconds
375  //!param: f - black pixel fraction
376  //!param: t - sliding step in seconds
377  //!options: f = 0 - returns black pixel occupancy
378  //!options: t = 0 - sliding step = wavelet time resolution.
379  virtual double gSignificance(double, double=1., double=0.);
380 
381  //: Selection of a fixed fraction of pixels for each wavelet layer
382  //: Returns fraction of non-zero coefficients.
383  //!param: f - black pixel fraction
384  //!param: m - mode
385  //!options: f = 0 - returns black pixel occupancy
386  //! m = 1 - set threshold f, returns percentile amplitudes
387  //! m =-1 - set threshold f, returns wavelet amplitudes
388  //! m > 1 - random policy,returns percentile amplitudes
389  //! m <-1 - random policy,returns wavelet amplitudes
390  //! m = 0 - random pixel selection
391  //! if m<0 return wavelet amplitudes instead of the percentile amplitude
392  virtual double percentile(double=0.,int=0, WSeries<DataType_t>* = NULL);
393 
394  //: clean up single pixels
395  //!param: S - threshold on pixel significance
396  //!return pixel occupancy.
397  virtual double pixclean(double=0.);
398 
399  //: select pixels from *this which satisfy a coincidence rule
400  //: within specified window
401  //!param: WSeries object used for coincidence
402  //!param: coincidence window in seconds
403  //!return pixel occupancy
404  virtual double coincidence(WSeries<DataType_t> &, int=0, int=0, double=0.);
405 
406  //: select pixels from *this which satisfy a coincidence rule
407  //: within specified window w, above threshold T,
408  //!param: WSeries object used for coincidence
409  //!param: coincidence window in seconds
410  //!param: threshold on significance
411  //!return pixel occupancy
412  virtual double Coincidence(WSeries<DataType_t> &, double=0., double=0.);
413 
414  //: calculate calibration coefficients and apply energy calibration
415  //: to wavelet data in this
416  //: AS_Q calibration: R(f)=(1 + gamma*(R*C-1))/alpha*C
417  //: DARM calibration: R(f)=(1 + gamma*(R*C-1))/gamma*C
418  //: input
419  //!param: number of samples in calibration arrays R & C
420  //!param: frequency resolution
421  //!param: pointer to response function R in Fourier domain
422  //!param: pointer to sensing function C in Fourier domain
423  //!param: time dependent calibration coefficient alpha
424  //!param: time dependent calibration coefficient gamma
425  //!param: 0/1 - AS_Q/DARM_ERR calibration, by default is 0
426  //!return array with calibration constants for each wavelet layer
427  virtual WSeries<double> calibrate(size_t, double,
428  d_complex*, d_complex*,
431  size_t ch=0);
432 
433 
434  //: mask WSeries data with the pixel mask defined in wavecluster object
435  //!param: int n
436  //! if n<0, zero pixels defined in mask (regression)
437  //! if n>=0, zero all pixels except ones defined in the mask
438  //!param: bool - if true, set WSeries data to be positive
439  //! if pMask.size()=0, mask(0,true) is equivalent to abs(data)
440  //!return core pixel occupancy
441  //virtual double mask(int=1, bool=false);
442 
443  //: calculate pixel occupancy for clusters passed selection cuts
444  //!param: true - core pccupancy, false - total occupancy;
445  //!return wavearray<double> with occupancy.
446  //virtual wavearray<double> occupancy(bool=true);
447 
448 
449  // print wseries parameters
450  void print(); // *MENU*
451  virtual void Browse(TBrowser *b) {print();}
452 
453 // data members
454 
455  //: parameters of wavelet transform
457  //: whitening mode
458  size_t w_mode;
459  //: black pixel probability
460  double bpp;
461  //: wavelet zero layer rate
462  double wRate;
463  //: low frequency boundary
464  double f_low;
465  //: high frequency boundary
466  double f_high;
467 
468  ClassDef(WSeries,1)
469 
470 }; // class WSeries<DataType_t>
471 
472 
473 #endif // WSERIES_HH
474 
wavearray< double > t(hp.size())
void mul(WSeries< DataType_t > &)
Definition: wseries.cc:135
void sethigh(double f)
Definition: wseries.hh:132
virtual void resize(unsigned int)
Definition: wseries.cc:901
double f_low
Definition: wseries.hh:464
double f_high
Definition: wseries.hh:466
double getlow() const
Definition: wseries.hh:129
size_t xsize()
Definition: wseries.hh:146
int layer(double f)
Definition: wseries.cc:167
par [0] value
int getMaxLevel()
Definition: wseries.cc:103
TString opt
wavearray< double > a(hp.size())
virtual double percentile(double=0., int=0, WSeries< DataType_t > *=NULL)
param: f - black pixel fraction param: m - mode options: f = 0 - returns black pixel occupancy m = 1 ...
Definition: wseries.cc:2082
virtual WSeries< float > variability(double=0., double=-1., double=-1.)
param: first - time window to calculate normalization constants second - low frequency boundary for c...
Definition: wseries.cc:1296
int n
Definition: cwb_net.C:28
virtual WSeries< DataType_t > & operator+=(WSeries< DataType_t > &)
Definition: wseries.cc:796
void bandpass(wavearray< DataType_t > &ts, double flow, double fhigh, int n=-1)
Definition: wseries.cc:313
size_t maxIndex()
Definition: wseries.hh:149
void putSample(DataType_t a, int n, double m)
Definition: wseries.hh:195
std::vector< int > vector_int
Definition: wseries.hh:41
virtual double rSignificance(double, double=1., double=0.)
param: T - sliding window duration in seconds param: f - black pixel fraction param: t - sliding step...
Definition: wseries.cc:1683
void setlow(double f)
Definition: wseries.hh:125
std::slice getSlice(double n)
Definition: wseries.hh:152
int m
Definition: cwb_net.C:28
double gethigh() const
Definition: wseries.hh:136
virtual WSeries< DataType_t > & operator*=(WSeries< DataType_t > &)
Definition: wseries.cc:771
cout<< "SNR "<< xsnr<< endl;wavearray< double > f
Definition: ComputeSNR.C:75
virtual double significance(double, double=1.)
param: n - sub-interval duration in seconds param: f - black pixel fraction options: f = 0 - returns ...
Definition: wseries.cc:1487
void setWavelet(const Wavelet &w)
Definition: wseries.cc:234
double wRate
Definition: wseries.hh:462
size_t mode
wavearray< double > w
Definition: Test1.C:27
void wrate(double r)
Definition: wseries.hh:120
int getLevel()
Definition: wseries.hh:109
size_t size() const
Definition: wslice.hh:89
size_t w_mode
Definition: wseries.hh:458
double wrate() const
Definition: wseries.hh:122
virtual double gSignificance(double, double=1., double=0.)
param: T - sliding window duration in seconds param: f - black pixel fraction param: t - sliding step...
Definition: wseries.cc:1837
size_t start() const
Definition: wslice.hh:85
virtual wavearray< double > filter(size_t)
param: n - number of decomposition steps algorithm: 1) do forward wavelet transform with n decomposit...
Definition: wseries.cc:1260
int pattern
double maxEnergy(wavearray< DataType_t > &ts, Wavelet &w, double=0, int=1, int=0, TH1F *=NULL)
Definition: wseries.cc:504
virtual WSeries< DataType_t > & operator-=(WSeries< DataType_t > &)
Definition: wseries.cc:820
size_t stride() const
Definition: wslice.hh:93
bool isWDM()
Definition: wseries.hh:208
virtual double fraction(double=0., double=0., int=0)
param: t - sub interval duration. If can not divide on integer
Definition: wseries.cc:1374
double fhigh
wavecomplex d_complex
Definition: wseries.hh:40
int getLayer(wavearray< DataType_t > &w, double n)
param: n - layer number
Definition: wseries.cc:193
int l
Definition: Wavelet.hh:49
virtual double coincidence(WSeries< DataType_t > &, int=0, int=0, double=0.)
param: WSeries object used for coincidence param: coincidence window in seconds return pixel occupanc...
Definition: wseries.cc:929
void setLevel(size_t n)
Definition: wseries.hh:112
double getbpp() const
Definition: wseries.hh:117
regression r
Definition: Regression_H1.C:44
virtual std::slice getSlice() const
Definition: wavearray.hh:147
double flow
virtual ~WSeries()
Definition: wseries.cc:94
virtual WSeries< DataType_t > & operator[](const std::slice &)
Definition: wseries.cc:731
void wavescan(WSeries< DataType_t > **, int, TH1F *=NULL)
Definition: wseries.cc:622
wavearray< double > ts(N)
virtual void Browse(TBrowser *b)
Definition: wseries.hh:451
WSeries()
Definition: wseries.cc:41
virtual void resample(double, int=6)
Definition: wseries.cc:915
void print()
param: int n if n<0, zero pixels defined in mask (regression) if n>=0, zero all pixels except ones de...
Definition: wseries.cc:2352
double resolution(int=0)
Definition: wseries.hh:155
double Gamma2Gauss(TH1F *=NULL)
Definition: wseries.cc:576
virtual double Coincidence(WSeries< DataType_t > &, double=0., double=0.)
param: WSeries object used for coincidence param: coincidence window in seconds param: threshold on s...
Definition: wseries.cc:1020
virtual void lprFilter(double, int=0, double=0., double=0.)
Definition: wseries.cc:1126
void Forward(int n=-1)
param: wavelet - n is number of steps (-1 means full decomposition)
Definition: wseries.cc:246
Meyer< double > S(1024, 2)
virtual void median(double t, bool norm=false)
Definition: wseries.cc:1109
WSeries< DataType_t > & operator=(const wavearray< DataType_t > &)
Definition: wseries.cc:702
void setbpp(double f)
Definition: wseries.hh:115
virtual double pixclean(double=0.)
param: S - threshold on pixel significance return pixel occupancy.
Definition: wseries.cc:1983
DataType_t * data
Definition: wavearray.hh:319
DataType_t getSample(int n, double m)
Definition: wseries.hh:185
WaveDWT< DataType_t > * pWavelet
Definition: wseries.hh:456
double wdmPacket(int pattern, char opt='L', TH1F *=NULL)
Definition: wseries.cc:376
void Inverse(int n=-1)
param: n - number of steps (-1 means full reconstruction)
Definition: wseries.cc:291
size_t sizeZero()
Definition: wseries.hh:144
void putLayer(wavearray< DataType_t > &, double n)
param: n - layer number
Definition: wseries.cc:219
virtual void Dump(const char *, int=0)
Definition: wseries.cc:867
double frequency(int l)
Definition: wseries.cc:117
int maxLayer()
Definition: wseries.hh:139
virtual double rsignificance(size_t=0, double=1.)
param: n - sub-interval duration in domain units param: f - black pixel fraction options: f = 0 - ret...
Definition: wseries.cc:1590
double bpp
Definition: wseries.hh:460
virtual WSeries< double > calibrate(size_t, double, d_complex *, d_complex *, wavearray< double > &, wavearray< double > &, size_t ch=0)
param: number of samples in calibration arrays R & C param: frequency resolution param: pointer to re...
Definition: wseries.cc:2207
virtual WSeries< double > white(double, int, double=0., double=0.)
what it does: each wavelet layer is devided into k intervals.
Definition: wseries.cc:1146