NO-OP: whitespace
This commit is contained in:
parent
06854e1315
commit
62470f3cb4
|
@ -76,7 +76,7 @@ FFT::analyze(ARDOUR::Sample *input, WindowingType windowing_type)
|
||||||
|
|
||||||
#define Re (_fftOutput[i])
|
#define Re (_fftOutput[i])
|
||||||
#define Im (_fftOutput[_window_size-i])
|
#define Im (_fftOutput[_window_size-i])
|
||||||
for (uint32_t i=1; i < _data_size - 1; i++) {
|
for (uint32_t i = 1; i < _data_size - 1; ++i) {
|
||||||
|
|
||||||
power = (Re * Re) + (Im * Im);
|
power = (Re * Re) + (Im * Im);
|
||||||
phase = atanf(Im / Re);
|
phase = atanf(Im / Re);
|
||||||
|
@ -95,7 +95,7 @@ FFT::analyze(ARDOUR::Sample *input, WindowingType windowing_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
FFT::calculate()
|
FFT::calculate ()
|
||||||
{
|
{
|
||||||
if (_iterations > 1) {
|
if (_iterations > 1) {
|
||||||
for (uint32_t i=0; i < _data_size - 1; i++) {
|
for (uint32_t i=0; i < _data_size - 1; i++) {
|
||||||
|
@ -106,32 +106,31 @@ FFT::calculate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float *
|
float*
|
||||||
FFT::get_hann_window()
|
FFT::get_hann_window ()
|
||||||
{
|
{
|
||||||
if (_hann_window)
|
if (_hann_window) {
|
||||||
return _hann_window;
|
return _hann_window;
|
||||||
|
}
|
||||||
|
|
||||||
|
_hann_window = (float*) malloc (sizeof (float) * _window_size);
|
||||||
_hann_window = (float *) malloc(sizeof(float) * _window_size);
|
|
||||||
|
|
||||||
double sum = 0.0;
|
double sum = 0.0;
|
||||||
|
|
||||||
for (uint32_t i=0; i < _window_size; i++) {
|
for (uint32_t i = 0; i < _window_size; ++i) {
|
||||||
_hann_window[i]=0.81f * ( 0.5f - (0.5f * (float) cos(2.0f * M_PI * (float)i / (float)(_window_size))));
|
_hann_window[i] = 0.81f * (0.5f - (0.5f * (float) cos (2.0f * M_PI * (float)i / (float)(_window_size))));
|
||||||
sum += _hann_window[i];
|
sum += _hann_window[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
double isum = 1.0 / sum;
|
double isum = 1.0 / sum;
|
||||||
|
|
||||||
for (uint32_t i=0; i < _window_size; i++) {
|
for (uint32_t i = 0; i < _window_size; ++i) {
|
||||||
_hann_window[i] *= isum;
|
_hann_window[i] *= isum;
|
||||||
}
|
}
|
||||||
|
|
||||||
return _hann_window;
|
return _hann_window;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
FFT::~FFT()
|
FFT::~FFT()
|
||||||
{
|
{
|
||||||
if (_hann_window) {
|
if (_hann_window) {
|
||||||
|
|
|
@ -36,42 +36,40 @@ namespace GTKArdour {
|
||||||
|
|
||||||
class FFT
|
class FFT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FFT(uint32_t);
|
FFT (uint32_t);
|
||||||
~FFT();
|
~FFT ();
|
||||||
|
|
||||||
enum WindowingType {
|
enum WindowingType {
|
||||||
NONE,
|
NONE,
|
||||||
HANN
|
HANN
|
||||||
};
|
};
|
||||||
|
|
||||||
void reset();
|
void reset ();
|
||||||
void analyze(ARDOUR::Sample *, WindowingType w = NONE);
|
void analyze (ARDOUR::Sample*, WindowingType w = NONE);
|
||||||
void calculate();
|
void calculate ();
|
||||||
|
|
||||||
uint32_t bins() const { return _data_size; }
|
uint32_t bins () const { return _data_size; }
|
||||||
|
|
||||||
float power_at_bin(uint32_t i) const { return _power_at_bin[i]; }
|
float power_at_bin (uint32_t i) const { return _power_at_bin[i]; }
|
||||||
float phase_at_bin(uint32_t i) const { return _phase_at_bin[i]; }
|
float phase_at_bin (uint32_t i) const { return _phase_at_bin[i]; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
float* get_hann_window ();
|
||||||
|
|
||||||
private:
|
uint32_t const _window_size;
|
||||||
|
uint32_t const _data_size;
|
||||||
|
uint32_t _iterations;
|
||||||
|
|
||||||
float *get_hann_window();
|
float* _hann_window;
|
||||||
|
|
||||||
uint32_t const _window_size;
|
float* _fftInput;
|
||||||
uint32_t const _data_size;
|
float* _fftOutput;
|
||||||
uint32_t _iterations;
|
|
||||||
|
|
||||||
float *_hann_window;
|
float* _power_at_bin;
|
||||||
|
float* _phase_at_bin;
|
||||||
|
|
||||||
float *_fftInput;
|
fftwf_plan _plan;
|
||||||
float *_fftOutput;
|
|
||||||
|
|
||||||
float *_power_at_bin;
|
|
||||||
float *_phase_at_bin;
|
|
||||||
|
|
||||||
fftwf_plan _plan;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user