x
|
sinest.h
Go to the documentation of this file.
36 void ddWindow(cdouble* ddx, cdouble* dx, cdouble* x, double f, int N, int M, double* c, int K1, int K2);
41 double IPWindow(double f, cdouble* x, int N, int M, double* c, double iH2, int K1, int K2, bool returnamplitude);
44 double ddIPWindow(double f, cdouble* x, int N, int M, double* c, double iH2, int K1, int K2, double& dipwindow, double& ipwindow);
46 double sIPWindow(double f, int L, cdouble** x, int N, int M, double* c, double iH2, int K1, int K2, cdouble* ej2ph=0);
48 double dsIPWindow(double f, int L, cdouble** x, int N, int M, double* c, double iH2, int K1, int K2, double& sip);
50 double ddsIPWindow(double f, int L, cdouble** x, int N, int M, double* c, double iH2, int K1, int K2, double& dsip, double& sip);
52 double ddsIPWindow_unn(double f, cdouble* x, int N, int M, double* c, int K1, int K2, double& dsipwindow, double& sipwindow, cdouble* w_unn=0);
54 double sIPWindowC(double f, int L, double offst_rel, cdouble** x, int N, int M, double* c, double iH2, int K1, int K2, cdouble* ej2ph=0);
56 double dsIPWindowC(double f, int L, double offst_rel, cdouble** x, int N, int M, double* c, double iH2, int K1, int K2, double& sip);
58 double ddsIPWindowC(double f, int L, double offst_rel, cdouble** x, int N, int M, double* c, double iH2, int K1, int K2, double& dsip, double& sip);
62 double LSESinusoid(cdouble* x, int N, double B, int M, double* c, double iH2, double& a, double& pp, double epf=1e-6);
63 void LSESinusoid(double& f, cdouble* x, int N, double B, int M, double* c, double iH2, double& a, double& pp, double epf=1e-6);
64 double LSESinusoid(int f1, int f2, cdouble* x, int N, double B, int M, double* c, double iH2, double& a, double& pp, double epf);
65 int LSESinusoid(double& f, double f1, double f2, cdouble* x, int N, double B, int M, double* c, double iH2, double& a, double& pp, double epf);
66 double LSESinusoidMP(double& f, double f1, double f2, cdouble** x, int Fr, int N, double B, int M, double* c, double iH2, double* a, double* ph, double epf);
69 void IPMulti(int I, double* f, cdouble* lmd, cdouble* x, int Wid, int K1, int K2, int M, double* c, double eps=0);
70 void IPMulti(int I, double* f, cdouble* lmd, cfloat* x, int Wid, int K1, int K2, int M, double* c, double eps=0, double* sens=0, double* r1=0);
71 void IPMultiSens(int I, double* f, int Wid, int K1, int K2, int M, double* c, double* sens, double eps=0);
72 double IPMulti(int I, double* f, cdouble* lmd, cdouble* x, int Wid, int M, double* c, double iH2, int B);
73 double IPMulti_Direct(int I, double* f, double* ph, double* a, cdouble* x, int Wid, int M, double* c, double iH2, int B);
74 double IPMulti_GS(int I, double* f, double* ph, double* a, cdouble* x, int Wid, int M, double* c, double iH2, int B, double** L=0, double** Q=0);
75 cdouble* IPMulti(int I, int J, double* f, double* ph, double* a, cdouble* x, int Wid, int M, double* c, cdouble** wt=0, cdouble** Q=0, double** L=0, MList* RetList=0);
79 double ddWindowDuo(double df, int N, double* d, int M, double& dwindow, double& window, cdouble* w);
80 double sIPWindowDuo(double f1, double f2, cdouble* x, int N, double* c, double* d, int M, double iH2, int K1, int K2, cdouble& lmd1, cdouble& lmd2);
82 void ddsIPWindowDuo(double* ddsip2, double f1, double f2, cdouble* x, int N, double* c, double* d, int M, double iH2, int K1, int K2, cdouble& lmd1, cdouble& lmd2);
84 int LSEDuo(double& f2, double fmin, double fmax, double f1, cdouble* x, int N, double B, double* c, double* d, int M, double iH2, cdouble& r1, cdouble &r2, double epf);
87 void TFReas(double& f, double& t, double& fslope, int Wid, cdouble* data, double* win, double* dwin, double* ddwin, double* plogaslope=0);
88 void TFReas(double& f, double t, double& a, double& ph, double& fslope, int Wid, cdouble* data, double* w, double* dw, double* ddw, double* win=0);
91 typedef double (*TBasicAnalyzer)(double* fs, double* as, double* phs, double* das, cdouble* x, int Count, int Wid, int Offst, __int16* ref, int reserved, bool LogA);
92 void AdditiveUpdate(double* fs, double* as, double* phs, double* das, cdouble* x, int Count, int Wid, int Offst, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false);
93 void AdditiveAnalyzer(double* fs, double* as, double* phs, double* das, cdouble* x, int Count, int Wid, int Offst, __int16* ref, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false);
94 void MultiplicativeUpdate(double* fs, double* as, double* phs, double* das, cdouble* x, int Count, int Wid, int Offst, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false);
95 void MultiplicativeAnalyzer(double* fs, double* as, double* phs, double* das, cdouble* x, int Count, int Wid, int Offst, __int16* ref, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false);
96 void MultiplicativeUpdateF(double* fs, double* as, double* phs, __int16* x, int Fr, int frst, int fren, int Wid, int Offst);
98 void ReEstFreq(int FrCount, int Wid, int Offst, double* x, double* fbuf, double* abuf, double* pbuf, double* win, int M, double* c, double iH2, cdouble* w, cdouble* xc, cdouble* xs, double* ps, double* fa, double* fb, double* fc, double* fd, double* ns, int* Wids=0);
99 void ReEstFreq_2(int FrCount, int Wid, int Offst, double* x, double* fbuf, double* abuf, double* pbuf, double* win, int M, double* c, double iH2, cdouble* w, cdouble* xc, cdouble* xs, double* f3, double* f2, double* f1, double* f0, double* ns);
100 void ReEstFreqAmp(int FrCount, int Wid, int Offst, double* x, double* fbuf, double* abuf, double* pbuf, double* win, int M, double* c, double iH2, cdouble* w, cdouble* xc, cdouble* xs, double* ps, double* as, double* fa, double* fb, double* fc, double* fd, double* aa, double* ab, double* ac, double* ad, double* ns, int* Wids=0);
101 int Reestimate2(int FrCount, int Wid, int Offst, double* win, int M, double* c, double iH2, double* x, double* ae, double* fe, double* pe, double* aret, double* fret, double *pret, int maxiter, int* Wids=0);
104 void Derivative(int M, double (**h)(double t, void*), double (**dh)(double t, void*), cdouble* r, int p0s, int* p0, int q0s, int* q0, int Wid, double* s, double** win, double omg, void* harg);
105 void DerivativeLS(int K, int M, double (**h)(double t, void* harg), double (**dh)(double t, void* harg), cdouble* r, int p0s, int* p0, int q0s, int* q0, int Wid, double* s, double** win, double omg, void* harg, bool r0=false);
106 void DerivativeLS(int Fr, int K, int M, double (**h)(double t, void* harg), double (**dh)(double t, void* harg), cdouble* r, int p0s, int* p0, int q0s, int* q0, int Wid, double* s, double** win, double omg, void* harg, bool r0=false);
109 void TFAS05(double& f, double& t, double& a, double& ph, double& aesp, double& fslope, int Wid, double* data, double* w, double res=1);
110 void TFAS05_enh(double& f, double& t, double& a, double& ph, double& aesp, double& fslope, int Wid, double* data, double* w, double res=1);
111 void TFAS05_enh(double& f, double& t, double& a, double& ph, int Wid, double* data, double* w, double res=1);
114 void DerivativePiecewise(int N, cdouble* aita, int L, double* f, int T, cdouble* s, double*** A, int M, double** h, int I, cdouble** u, cdouble** du, int endmode=0, cdouble* ds=0);
115 void DerivativePiecewise2(int Np, double* p, int Nq, double* q, int L, double* f, int T, cdouble* s, double*** A, double*** B, int M, double** h, int I, cdouble** u, cdouble** du, int endmode=0, cdouble* ds=0);
116 void DerivativePiecewise3(int Np, double* p, int Nq, double* q, int L, double* f, int T, cdouble* s, double*** DA, double*** B, int M, double** h, int I, cdouble** u, cdouble** du, int endmode=0, cdouble* ds=0, double** dh=0);
124 void ssLinearSpline(int L, int T, int M, int &N, double** &h, double*** &A, MList* mlist, int mode=0);
125 void ssCubicHermite(int L, int T, int M, int& N, double** &h, double*** &A, MList* mlist, int mode=0);
126 void ssCubicSpline(int L, int T, int M, int& N, double** &h, double*** &A, MList* mlist, int mode=0);
127 void DerivativePiecewiseI(cdouble* aita, int L, double* f, int T, cdouble* s, int M, void (*SpecifyA)(int L, int T, int M, int &N, double*** &A, MList* mlist, int mode), int ssmode=0, int WinOrder=2, int I=2, int endmode=0, cdouble* ds=0);
128 void DerivativePiecewiseII(double* p, double* q, int L, double* f, int T, cdouble* s, int M, void (*SpecifyA)(int L, int T, int M, int &N, double*** &A, MList* mlist, int mode), int ssAmode, void (*SpecifyB)(int L, int T, int M, int &N, double*** &B, MList* mlist, int mode), int ssBmode, int WinOrder=2, int I=2, int endmode=0, cdouble* ds=0);
129 void DerivativePiecewiseIII(double* p, double* q, int L, double* f, int T, cdouble* s, int M, void (*SpecifyA)(int L, int T, int M, int &N, double*** &A, MList* mlist, int mode), int ssAmode, void (*SpecifyB)(int L, int T, int M, int &N, double*** &B, MList* mlist, int mode), int ssBmode, int WinOrder=2, int I=2, int endmode=0, cdouble* ds=0);
130 double AmpPhCorrectionExpA(cdouble* s2, int N, cdouble* aita, int L, int T, cdouble* sre, int M, double** h, double** dih, double*** A, void (*SpecifyA)(int L, int T, int M, int &N, double*** &A, MList* mlist, int mode), int WinOrder);
145 template<class Ts>cdouble DerivativeLSv(int Wid, Ts* s, int I, cdouble** v, cdouble** dv, int M, double **h, cdouble* lmd, int p0s, int* p0, int q0s, int* q0)
148 if (I<ceil(Kr/2.0)) throw("insufficient test functions"); //Kr/2 complex equations are needed to solve the unknowns
212 template<class Ts, class Tu>cdouble DerivativeLS(int Wid, Ts* s, int I, double omg, Tu** u, Tu** du, int M, double **h, cdouble* lmd, int p0s, int* p0, int q0s, int* q0)
239 template<class Tu>cdouble DerivativeLS_AmpPh(int Wid, int M, double** integr_h, cdouble* lmd, double omg, Tu* u0, cdouble sv0)
263 template<class Tu, class Ts>cdouble DerivativeLS_AmpPh(int Wid, int M, double** integr_h, cdouble* lmd, double omg, Tu* u0, Ts* s)
278 cdouble DerivativeLSv_AmpPh(int, int, double**, cdouble*, cdouble*, cdouble); //the "v" version is implemented as a normal function in SinEst.cpp.
291 template<class Ts> void DerivativeLSv(int Wid, Ts* s, int I, cdouble** v, cdouble** dv, int M, double **h, double **integr_h, cdouble* lmd, int p0s, int* p0, int q0s, int* q0)
309 template<class Ts, class Tu>void DerivativeLS(int Wid, Ts* s, int I, double omg, Tu** u, Tu** du, int M, double **h, double **integr_h, cdouble* lmd, int p0s, int* p0, int q0s, int* q0)
334 C[0]=1.0/(1<<(K-1)); double lC=C[0]; for (int i=1; i+i<=K; i++){lC=lC*(K-i+1)/i; C[i]=(i%2)?(-lC):lC;}
353 if (K%2==0){double tmp=C[K/2]*0.5; if (K/2%2) tmp=-tmp; for (int n=0; n<=Wid; n++) w[0][n]+=tmp;}
void TFAS05_enh(double &f, double &t, double &a, double &ph, double &aesp, double &fslope, int Wid, double *data, double *w, double res=1)
Definition: sinest.cpp:2767
void ReEstFreqAmp(int FrCount, int Wid, int Offst, double *x, double *fbuf, double *abuf, double *pbuf, double *win, int M, double *c, double iH2, cdouble *w, cdouble *xc, cdouble *xs, double *ps, double *as, double *fa, double *fb, double *fc, double *fd, double *aa, double *ab, double *ac, double *ad, double *ns, int *Wids=0)
Definition: sinest.cpp:2026
void ReEstFreq_2(int FrCount, int Wid, int Offst, double *x, double *fbuf, double *abuf, double *pbuf, double *win, int M, double *c, double iH2, cdouble *w, cdouble *xc, cdouble *xs, double *f3, double *f2, double *f1, double *f0, double *ns)
Definition: sinest.cpp:1944
double AmpPhCorrectionExpA(cdouble *s2, int N, cdouble *aita, int L, int T, cdouble *sre, int M, double **h, double **dih, double ***A, void(*SpecifyA)(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode), int WinOrder)
Definition: sinest.cpp:3875
void Derivative(int M, double(**h)(double t, void *), double(**dh)(double t, void *), cdouble *r, int p0s, int *p0, int q0s, int *q0, int Wid, double *s, double **win, double omg, void *harg)
Definition: sinest.cpp:2334
void IPMultiSens(int I, double *f, int Wid, int K1, int K2, int M, double *c, double *sens, double eps=0)
Definition: sinest.cpp:1006
cdouble DerivativeLSv(int Wid, Ts *s, int I, cdouble **v, cdouble **dv, int M, double **h, cdouble *lmd, int p0s, int *p0, int q0s, int *q0)
Definition: sinest.h:145
cdouble DerivativeLS_AmpPh(int Wid, int M, double **integr_h, cdouble *lmd, double omg, Tu *u0, cdouble sv0)
Definition: sinest.h:239
void MultiplicativeAnalyzer(double *fs, double *as, double *phs, double *das, cdouble *x, int Count, int Wid, int Offst, __int16 *ref, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false)
Definition: sinest.cpp:1764
void ddsIPWindowDuo(double *ddsip2, double f1, double f2, cdouble *x, int N, double *c, double *d, int M, double iH2, int K1, int K2, cdouble &lmd1, cdouble &lmd2)
Definition: sinest.cpp:1365
cdouble * Window(cdouble *x, double f, int N, int M, double *c, int K1, int K2)
Definition: sinest.cpp:102
int LSEDuo(double &f2, double fmin, double fmax, double f1, cdouble *x, int N, double B, double *c, double *d, int M, double iH2, cdouble &r1, cdouble &r2, double epf)
Definition: sinest.cpp:1415
void ddWindow(cdouble *ddx, cdouble *dx, cdouble *x, double f, int N, int M, double *c, int K1, int K2)
Definition: sinest.cpp:208
double WindowDuo(double df, int N, double *d, int M, cdouble *w)
Definition: sinest.cpp:1262
void ReEstFreq(int FrCount, int Wid, int Offst, double *x, double *fbuf, double *abuf, double *pbuf, double *win, int M, double *c, double iH2, cdouble *w, cdouble *xc, cdouble *xs, double *ps, double *fa, double *fb, double *fc, double *fd, double *ns, int *Wids=0)
Definition: sinest.cpp:1853
cdouble DerivativeLSv_AmpPh(int, int, double **, cdouble *, cdouble *, cdouble)
Definition: sinest.cpp:2801
double dsIPWindow(double f, int L, cdouble **x, int N, int M, double *c, double iH2, int K1, int K2, double &sip)
Definition: sinest.cpp:401
void AdditiveAnalyzer(double *fs, double *as, double *phs, double *das, cdouble *x, int Count, int Wid, int Offst, __int16 *ref, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false)
Definition: sinest.cpp:1676
void DerivativePiecewiseII(double *p, double *q, int L, double *f, int T, cdouble *s, int M, void(*SpecifyA)(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode), int ssAmode, void(*SpecifyB)(int L, int T, int M, int &N, double ***&B, MList *mlist, int mode), int ssBmode, int WinOrder=2, int I=2, int endmode=0, cdouble *ds=0)
Definition: sinest.cpp:3791
double IPMulti_Direct(int I, double *f, double *ph, double *a, cdouble *x, int Wid, int M, double *c, double iH2, int B)
Definition: sinest.cpp:1085
void DerivativePiecewise2(int Np, double *p, int Nq, double *q, int L, double *f, int T, cdouble *s, double ***A, double ***B, int M, double **h, int I, cdouble **u, cdouble **du, int endmode=0, cdouble *ds=0)
Definition: sinest.cpp:3077
Definition: arrayalloc.h:83
double dsIPWindowC(double f, int L, double offst_rel, cdouble **x, int N, int M, double *c, double iH2, int K1, int K2, double &sip)
Definition: sinest.cpp:577
double sIPWindowC(double f, int L, double offst_rel, cdouble **x, int N, int M, double *c, double iH2, int K1, int K2, cdouble *ej2ph=0)
Definition: sinest.cpp:524
void DerivativePiecewiseIII(double *p, double *q, int L, double *f, int T, cdouble *s, int M, void(*SpecifyA)(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode), int ssAmode, void(*SpecifyB)(int L, int T, int M, int &N, double ***&B, MList *mlist, int mode), int ssBmode, int WinOrder=2, int I=2, int endmode=0, cdouble *ds=0)
Definition: sinest.cpp:3830
double ddIPWindow(double f, cdouble *x, int N, int M, double *c, double iH2, int K1, int K2, double &dipwindow, double &ipwindow)
Definition: sinest.cpp:296
void DerivativePiecewise(int N, cdouble *aita, int L, double *f, int T, cdouble *s, double ***A, int M, double **h, int I, cdouble **u, cdouble **du, int endmode=0, cdouble *ds=0)
Definition: sinest.cpp:2892
double sIPWindowDuo(double f1, double f2, cdouble *x, int N, double *c, double *d, int M, double iH2, int K1, int K2, cdouble &lmd1, cdouble &lmd2)
Definition: sinest.cpp:1324
void TFAS05(double &f, double &t, double &a, double &ph, double &aesp, double &fslope, int Wid, double *data, double *w, double res=1)
Definition: sinest.cpp:2673
void DerivativeLS(int K, int M, double(**h)(double t, void *harg), double(**dh)(double t, void *harg), cdouble *r, int p0s, int *p0, int q0s, int *q0, int Wid, double *s, double **win, double omg, void *harg, bool r0=false)
Definition: sinest.cpp:2456
void AdditiveUpdate(double *fs, double *as, double *phs, double *das, cdouble *x, int Count, int Wid, int Offst, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false)
Definition: sinest.cpp:1597
void dWindow(cdouble *dx, cdouble *x, double f, int N, int M, double *c, int K1, int K2)
Definition: sinest.cpp:154
double IPWindow(double f, cdouble *x, int N, int M, double *c, double iH2, int K1, int K2, bool returnamplitude)
Definition: sinest.cpp:269
double ddWindowDuo(double df, int N, double *d, int M, double &dwindow, double &window, cdouble *w)
Definition: sinest.cpp:1291
double LSESinusoid(cdouble *x, int N, double B, int M, double *c, double iH2, double &a, double &pp, double epf=1e-6)
Definition: sinest.cpp:685
void ssLinearSpline(int L, int T, int M, int &N, double **&h, double ***&A, MList *mlist, int mode=0)
Definition: sinest.cpp:3618
double IPMulti_GS(int I, double *f, double *ph, double *a, cdouble *x, int Wid, int M, double *c, double iH2, int B, double **L=0, double **Q=0)
Definition: sinest.cpp:1143
double ddsIPWindowC(double f, int L, double offst_rel, cdouble **x, int N, int M, double *c, double iH2, int K1, int K2, double &dsip, double &sip)
Definition: sinest.cpp:624
double ddsIPWindow(double f, int L, cdouble **x, int N, int M, double *c, double iH2, int K1, int K2, double &dsip, double &sip)
Definition: sinest.cpp:485
void TFReas(double &f, double &t, double &fslope, int Wid, cdouble *data, double *win, double *dwin, double *ddwin, double *plogaslope=0)
Definition: sinest.cpp:1503
void setu(int I, int Wid, cdouble **&u, cdouble **&du, int WinOrder=2, MList *mlist=0)
Definition: sinest.cpp:3719
void ssALinearSpline(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode=0)
Definition: sinest.cpp:3602
int Reestimate2(int FrCount, int Wid, int Offst, double *win, int M, double *c, double iH2, double *x, double *ae, double *fe, double *pe, double *aret, double *fret, double *pret, int maxiter, int *Wids=0)
Definition: sinest.cpp:2135
double sIPWindow(double f, int L, cdouble **x, int N, int M, double *c, double iH2, int K1, int K2, cdouble *ej2ph=0)
Definition: sinest.cpp:362
double ddsIPWindow_unn(double f, cdouble *x, int N, int M, double *c, int K1, int K2, double &dsipwindow, double &sipwindow, cdouble *w_unn=0)
Definition: sinest.cpp:440
void MultiplicativeUpdate(double *fs, double *as, double *phs, double *das, cdouble *x, int Count, int Wid, int Offst, TBasicAnalyzer BasicAnalyzer, int reserved, bool LogA=false)
Definition: sinest.cpp:1695
cdouble IPWindowC(double f, cdouble *x, int N, int M, double *c, double iH2, int K1, int K2)
Definition: sinest.cpp:335
Definition: xcomplex.h:26
void ssACubicHermite(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode=0)
Definition: sinest.cpp:3632
void ssCubicHermite(int L, int T, int M, int &N, double **&h, double ***&A, MList *mlist, int mode=0)
Definition: sinest.cpp:3654
void DerivativePiecewiseI(cdouble *aita, int L, double *f, int T, cdouble *s, int M, void(*SpecifyA)(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode), int ssmode=0, int WinOrder=2, int I=2, int endmode=0, cdouble *ds=0)
Definition: sinest.cpp:3756
void ssACubicSpline(int L, int T, int M, int &N, double ***&A, MList *mlist, int mode=0)
Definition: sinest.cpp:3669
void ssCubicSpline(int L, int T, int M, int &N, double **&h, double ***&A, MList *mlist, int mode=0)
Definition: sinest.cpp:3703
void IPMulti(int I, double *f, cdouble *lmd, cdouble *x, int Wid, int K1, int K2, int M, double *c, double eps=0)
Definition: sinest.cpp:930
void DerivativePiecewise3(int Np, double *p, int Nq, double *q, int L, double *f, int T, cdouble *s, double ***DA, double ***B, int M, double **h, int I, cdouble **u, cdouble **du, int endmode=0, cdouble *ds=0, double **dh=0)
Definition: sinest.cpp:3333
double LSESinusoidMP(double &f, double f1, double f2, cdouble **x, int Fr, int N, double B, int M, double *c, double iH2, double *a, double *ph, double epf)
Definition: sinest.cpp:850
Generated on Fri Dec 27 2024 07:09:12 for x by 1.8.11