Loris::ReassignedSpectrum Class Reference
#include <ReassignedSpectrum.h>
List of all members.
Detailed Description
Computes a reassigned short-time Fourier spectrum using the transform method of Auger and Flandrin.
Member Typedef Documentation
An unsigned integral type large enough to represent the length of any transform.
Constructor & Destructor Documentation
Loris::ReassignedSpectrum::ReassignedSpectrum |
( |
const std::vector< double > & |
window |
) |
|
Construct a new instance using the specified short-time window. Transform lengths are the smallest power of two greater than twice the window length.
Loris::ReassignedSpectrum::ReassignedSpectrum |
( |
const std::vector< double > & |
window, |
|
|
const std::vector< double > & |
windowDerivative | |
|
) |
| | |
Construct a new instance using the specified short-time window and its time derivative. Transform lengths are the smallest power of two greater than twice the window length.
Member Function Documentation
double Loris::ReassignedSpectrum::convergence |
( |
long |
idx |
) |
const |
Compute and return the convergence indicator, computed from the mixed partial derivative of spectral phase, optionally used in BW enhanced analysis as a convergence indicator. The convergence value is on the range [0,1], 0 for a sinusoid, and 1 for an impulse.
- Parameters:
-
| idx | the frequency sample at which to evaluate the transform |
double Loris::ReassignedSpectrum::frequencyCorrection |
( |
long |
sample |
) |
const |
Compute the frequency correction at the specified frequency sample using the method of Auger and Flandrin to evaluate the partial derivative of spectrum phase w.r.t. time.
Correction is computed in fractional frequency samples, because that's the kind of frequency domain ramp we used on our window. sample is the frequency sample index, the nominal component frequency in samples.
double Loris::ReassignedSpectrum::reassignedFrequency |
( |
long |
idx |
) |
const |
Return the reassigned frequency in fractional frequency samples computed at the specified transform index.
- Parameters:
-
| idx | the frequency sample at which to evaluate the transform |
double Loris::ReassignedSpectrum::reassignedMagnitude |
( |
long |
idx |
) |
const |
Return the spectrum magnitude (absolute) computed at the specified transform index.
- Parameters:
-
| idx | the frequency sample at which to evaluate the transform |
double Loris::ReassignedSpectrum::reassignedPhase |
( |
long |
idx |
) |
const |
Return the phase in radians computed at the specified transform index. The reassigned phase is shifted to account for the time correction according to the corrected frequency.
- Parameters:
-
| idx | the frequency sample at which to evaluate the transform |
double Loris::ReassignedSpectrum::reassignedTime |
( |
long |
idx |
) |
const |
Return the reassigned time in fractional samples computed at the specified transform index.
- Parameters:
-
| idx | the frequency sample at which to evaluate the transform |
double Loris::ReassignedSpectrum::timeCorrection |
( |
long |
sample |
) |
const |
Compute the time correction at the specified frequency sample using the method of Auger and Flandrin to evaluate the partial derivative of spectrum phase w.r.t. frequency.
Correction is computed in fractional samples, because that's the kind of ramp we used on our window.
void Loris::ReassignedSpectrum::transform |
( |
const double * |
sampsBegin, |
|
|
const double * |
pos, |
|
|
const double * |
sampsEnd | |
|
) |
| | |
Compute the reassigned Fourier transform of the samples on the half open range [sampsBegin, sampsEnd), aligning sampCenter with the center of the analysis window.
- Parameters:
-
| sampsBegin | pointer representing the beginning of the (half-open) range of samples to transform |
| sampCenter | the sample in the range that is to be aligned with the center of the analysis window |
| sampsEnd | pointer representing the end of the (half-open) range of samples to transform |
- Precondition:
- sampsBegin must not be past sampCenter
-
sampsEnd must be past sampCenter
- Postcondition:
- the transform buffers store the reassigned short-time transform data for the specified samples
const std::vector< double >& Loris::ReassignedSpectrum::window |
( |
void |
|
) |
const |
Return read access to the short-time window samples. (Peers may need to know about the analysis window or about the scale factors in introduces.)
The documentation for this class was generated from the following file: