65 "noiseFFT::noiseFFT(const fileName& pFileName, const label skip)"
66 ) <<
"Cannot read file " << pFileName
72 scalar dummyt, dummyp;
74 for (label i=0; i<skip; i++)
78 if (!pFile.
good() || pFile.
eof())
82 "noiseFFT::noiseFFT(const fileName& pFileName, "
84 ) <<
"Number of points in file " << pFileName
85 <<
" is less than the number to be skipped = " << skip
97 while (!(pFile >> t).eof())
103 deltat_ =
T/pData.
size();
136 label windowOffset = N;
138 if ((N + ni*windowOffset) > size())
140 FatalErrorIn(
"noiseFFT::window(const label N, const label n) const")
141 <<
"Requested window is outside set of data" <<
endl
142 <<
"number of data = " << size() <<
endl
143 <<
"size of window = " << N <<
endl
151 label offset = ni*windowOffset;
155 pw[i] = operator[](i + offset);
170 scalar
T = N*deltat_;
204 Pn *= 2.0/
sqrt(scalar(tPn2().size()));
219 FatalErrorIn(
"noiseFFT::meanPf(const label N, const label nw) const")
220 <<
"Requested window is outside set of data" <<
endl
221 <<
"number of data = " << size() <<
endl
222 <<
"size of window = " << N <<
endl
231 for (label wi=0; wi<nw; wi++)
233 MeanPf += Pf(Hwf*window(N, wi));
239 scalar deltaf = 1.0/(N*deltat_);
265 FatalErrorIn(
"noiseFFT::RMSmeanPf(const label N, const label nw) const")
266 <<
"Requested window is outside set of data" <<
endl
267 <<
"number of data = " << size() <<
endl
268 <<
"size of window = " << N <<
endl
277 for (label wi=0; wi<nw; wi++)
279 RMSMeanPf +=
sqr(Pf(Hwf*window(N, wi)));
282 RMSMeanPf =
sqrt(RMSMeanPf/nw);
285 scalar deltaf = 1.0/(N*deltat_);
329 scalar fratio =
cbrt(2.0);
330 scalar deltaf = 1.0/(2*Lf.
size()*deltat_);
332 scalar fl = f1/
sqrt(fratio);
333 scalar
fu = fratio*fl;
335 label istart = label(fl/deltaf);
338 for (label i = istart; i<Lf.
size(); i++)
340 scalar fmi =
sqrt(fu*fl);
342 if (fmi > fU + 1)
break;
347 ldelta[j] = 10*
log10(ldelta[j]);
355 ldelta[j] +=
pow(10, Lf[i]/10.0);
385 scalar fratio =
cbrt(2.0);
386 scalar deltaf = 1.0/(2*Pf.
size()*deltat_);
388 scalar fl = f1/
sqrt(fratio);
389 scalar
fu = fratio*fl;
391 label istart = label(fl/deltaf + 1.0 - SMALL);
394 for (label i = istart; i<Pf.
size(); i++)
396 scalar fmi =
sqrt(fu*fl);
398 if (fmi > fU + 1)
break;
403 pdelta[j] =
sqrt((2.0/3.0)*pdelta[j]);
411 pdelta[j] +=
sqr(Pf[i]);
436 lsum +=
pow(10, Lf[i]/10.0);
439 lsum = 10*
log10(lsum);
447 return p0*
pow(10.0, db/20.0);
456 return p0*
pow(10.0, db/20.0);