118 inline bool inUse(
void)
const;
179 inline double axb(
double,
double);
180 inline double wrap(
double);
181 inline long intw(
double);
188 f *= (
nLPF >= 0) ? 1 : 2;
193 {
return (a-
long(a))*long(b) + (b-long(b))*
long(a) + (a-long(a))*(b-
long(b));}
196 {
return (a>0) ? long(a+0.5) : long(a-0.5);}
200 long l = a>0 ? long(a/
PI/2. + 0.5) : long(a/
PI/2. - 0.5);
216 #endif // linefilter_HH
std::list< linedata > lineList
The linefilter class containes methods to track and remove quasi- monochromatic lines.
wavearray< double > a(hp.size())
void setFilter(int nF=1, int nL=0, int nS=1, int nD=-1, int nB=5, int nR=6, int nW=8)
double getStartTime(void) const
void apply(WaveData &ts)
Operate on wavearray object.
double getCurrentTime(void) const
std::vector< float > line
cout<< endl;cout<< "ts size = "<< ts.size()<< " ts rate = "<< ts.rate()<< endl;tf.Forward(ts, wdm);int levels=tf.getLevel();cout<< "tf size = "<< tf.size()<< endl;double dF=tf.resolution();double dT=1./(2 *dF);cout<< "rate(hz) : "<< RATE<< "\t layers : "<< nLAYERS<< "\t dF(hz) : "<< dF<< "\t dT(ms) : "<< dT *1000.<< endl;int itime=TIME_PIXEL_INDEX;int ifreq=FREQ_PIXEL_INDEX;int index=(levels+1)*itime+ifreq;double time=itime *dT;double freq=(ifreq >0)?ifreq *dF:dF/4;cout<< endl;cout<< "PIXEL TIME = "<< time<< " sec "<< endl;cout<< "PIXEL FREQ = "<< freq<< " Hz "<< endl;cout<< endl;wavearray< double > x
void reset()
Clear/release the internal History vector and reset the current time.
linefilter * clone(void) const
Clone a linefilter.
std::vector< f_complex > amplitude
bool LoadTrend(const char *)
linedata getLine(WaveData &)
wavearray< float > getTrend(int, char)
std::vector< float > filter
WaveData getPSD(const WaveData &, int=1)
void setFScan(double f=0., double sn=2., double fS=0.45, int nS=20)
double getOmega(const WaveData &, int=2)
double axb(double, double)
linefilter(void)
Build an empty linefilter.
bool DumpTrend(const char *, int=0)
double makeFilter(const WaveData &, int=0)
wavearray< double > ts(N)
std::complex< float > f_complex
double fScan(const WaveData &)
linedata getHeteroLine(WaveData &)
wavearray< wavereal > WaveData
~linefilter(void)
Destroy the linefilter object and release the function storage.
double Interference(WaveData &, double)
std::vector< float > noise
unsigned int maxLine(int)