diff --git a/.gitignore b/.gitignore index 7787d3627a3e1b8ab684e871eb1ffb02226ad2b2..72d36c2b470b91c15c8c9c8819a4ad75540a02e3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ bin/* *.su *.bin +*/.DS* +*/*/.DS* .DS* Make_include fdelmodc_cuda.tgz diff --git a/utils/.DS_Store b/utils/.DS_Store deleted file mode 100644 index 5d8b277ada4cef672e1465469fef8caba9df3553..0000000000000000000000000000000000000000 Binary files a/utils/.DS_Store and /dev/null differ diff --git a/utils/freqwave.c b/utils/freqwave.c index a9a05b0aed360609012fe9de80ce5d1d0c711b84..156299e18ff222943be57597663f57e906da725a 100644 --- a/utils/freqwave.c +++ b/utils/freqwave.c @@ -33,7 +33,7 @@ void hilbertTrans(float *data, int nsam); void freqwave(float *wave, int nt, float dt, float fp, float fmin, float flef, float frig, float fmax, float t0, float db, int shift, int cm, int cn, char *w, float scale, int scfft, int inverse, float eps, int verbose) { - int iof, nfreq, nf, i, j, sign, optn, stored; + int it, iof, nfreq, nf, i, j, sign, optn, stored; int ifmin1, ifmin2, ifmax1, ifmax2; float df, fact, alfa, f, max, freq, att, ampl, phase; float tt, dum; @@ -182,6 +182,26 @@ void freqwave(float *wave, int nt, float dt, float fp, float fmin, float flef, f cwave[j].r = 0.0; cwave[j].i = 0.0; } + if (shift == 1) { + sign = 1; + cr1fft(cwave, rwave, optn, sign); + max = rwave[0]*rwave[0]; + for (i = 1; i < optn; i++) { + if (rwave[i] < 0.0) { it=i; break;} + } + it = it; + dum = 0.0; + for (j = 0; j < it; j++) + dum += fabs(rwave[j]); + max = dum; + for (i = 1; i < optn/2; i++) { + dum = dum - fabs(rwave[i-1]) + fabs(rwave[i+it-1]); + //fprintf(stderr,"dum=%f i=%d\n", dum, i); + if ((dum)>(0.03*max*att/it)) { + t0 = (float)i*dt; + } + } + } for (iof = 0; iof < nfreq; iof++) { f = iof*df; tmp.r = cwave[iof].r*cos(2.0*M_PI*f*t0);