mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-22 08:04:49 -05:00
WDSP: minor adjustments
This commit is contained in:
parent
e81c9cc5b0
commit
49dc91cb6b
22
wdsp/anb.cpp
22
wdsp/anb.cpp
@ -72,18 +72,18 @@ ANB::ANB (
|
|||||||
double _advtime,
|
double _advtime,
|
||||||
double _backtau,
|
double _backtau,
|
||||||
double _threshold
|
double _threshold
|
||||||
)
|
) :
|
||||||
|
run(_run),
|
||||||
|
buffsize(_buffsize),
|
||||||
|
in(_in),
|
||||||
|
out(_out),
|
||||||
|
samplerate(_samplerate),
|
||||||
|
tau(_tau),
|
||||||
|
hangtime(_hangtime),
|
||||||
|
advtime(_advtime),
|
||||||
|
backtau(_backtau),
|
||||||
|
threshold(_threshold)
|
||||||
{
|
{
|
||||||
run = _run;
|
|
||||||
buffsize = _buffsize;
|
|
||||||
in = _in;
|
|
||||||
out = _out;
|
|
||||||
samplerate = _samplerate;
|
|
||||||
tau = _tau;
|
|
||||||
hangtime = _hangtime;
|
|
||||||
advtime = _advtime;
|
|
||||||
backtau = _backtau;
|
|
||||||
threshold = _threshold;
|
|
||||||
wave = new double[((int)(MAX_SAMPLERATE * MAX_TAU) + 1)];
|
wave = new double[((int)(MAX_SAMPLERATE * MAX_TAU) + 1)];
|
||||||
dline_size = (int)((MAX_TAU + MAX_ADVTIME) * MAX_SAMPLERATE) + 1;
|
dline_size = (int)((MAX_TAU + MAX_ADVTIME) * MAX_SAMPLERATE) + 1;
|
||||||
dline = new float[dline_size * 2];
|
dline = new float[dline_size * 2];
|
||||||
|
42
wdsp/nob.cpp
42
wdsp/nob.cpp
@ -39,7 +39,7 @@ warren@wpratt.com
|
|||||||
|
|
||||||
namespace WDSP {
|
namespace WDSP {
|
||||||
|
|
||||||
void NOB::init_nob()
|
void NOB::init()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
double coef;
|
double coef;
|
||||||
@ -85,21 +85,21 @@ NOB::NOB (
|
|||||||
double _max_imp_seq_time,
|
double _max_imp_seq_time,
|
||||||
double _backtau,
|
double _backtau,
|
||||||
double _threshold
|
double _threshold
|
||||||
)
|
) :
|
||||||
|
run(_run),
|
||||||
|
buffsize(_buffsize),
|
||||||
|
in(_in),
|
||||||
|
out(_out),
|
||||||
|
samplerate(_samplerate),
|
||||||
|
mode(_mode),
|
||||||
|
advslewtime(_advslewtime),
|
||||||
|
advtime(_advtime),
|
||||||
|
hangslewtime(_hangslewtime),
|
||||||
|
hangtime(_hangtime),
|
||||||
|
max_imp_seq_time(_max_imp_seq_time),
|
||||||
|
backtau(_backtau),
|
||||||
|
threshold(_threshold)
|
||||||
{
|
{
|
||||||
run = _run;
|
|
||||||
buffsize = _buffsize;
|
|
||||||
in = _in;
|
|
||||||
out = _out;
|
|
||||||
samplerate = _samplerate;
|
|
||||||
mode = _mode;
|
|
||||||
advslewtime = _advslewtime;
|
|
||||||
advtime = _advtime;
|
|
||||||
hangslewtime = _hangslewtime;
|
|
||||||
hangtime = _hangtime;
|
|
||||||
max_imp_seq_time = _max_imp_seq_time;
|
|
||||||
backtau = _backtau;
|
|
||||||
threshold = _threshold;
|
|
||||||
dline_size = (int)(MAX_SAMPLERATE * (
|
dline_size = (int)(MAX_SAMPLERATE * (
|
||||||
MAX_ADV_SLEW_TIME +
|
MAX_ADV_SLEW_TIME +
|
||||||
MAX_ADV_TIME +
|
MAX_ADV_TIME +
|
||||||
@ -126,7 +126,7 @@ NOB::NOB (
|
|||||||
fcoefs[8] = 0.017797128;
|
fcoefs[8] = 0.017797128;
|
||||||
fcoefs[9] = 0.012457989;
|
fcoefs[9] = 0.012457989;
|
||||||
|
|
||||||
init_nob();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
NOB::~NOB()
|
NOB::~NOB()
|
||||||
@ -621,32 +621,32 @@ void NOB::setBuffsize(int size)
|
|||||||
void NOB::setSamplerate(int rate)
|
void NOB::setSamplerate(int rate)
|
||||||
{
|
{
|
||||||
samplerate = (double) rate;
|
samplerate = (double) rate;
|
||||||
init_nob();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NOB::setTau(double tau)
|
void NOB::setTau(double tau)
|
||||||
{
|
{
|
||||||
advslewtime = tau;
|
advslewtime = tau;
|
||||||
hangslewtime = tau;
|
hangslewtime = tau;
|
||||||
init_nob();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NOB::setHangtime(double _time)
|
void NOB::setHangtime(double _time)
|
||||||
{
|
{
|
||||||
hangtime = _time;
|
hangtime = _time;
|
||||||
init_nob();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NOB::setAdvtime(double _time)
|
void NOB::setAdvtime(double _time)
|
||||||
{
|
{
|
||||||
advtime = _time;
|
advtime = _time;
|
||||||
init_nob();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NOB::setBacktau(double tau)
|
void NOB::setBacktau(double tau)
|
||||||
{
|
{
|
||||||
backtau = tau;
|
backtau = tau;
|
||||||
init_nob();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NOB::setThreshold(double thresh)
|
void NOB::setThreshold(double thresh)
|
||||||
|
@ -41,11 +41,11 @@ public:
|
|||||||
int buffsize; // size of input/output buffer
|
int buffsize; // size of input/output buffer
|
||||||
float* in; // input buffer
|
float* in; // input buffer
|
||||||
float* out; // output buffer
|
float* out; // output buffer
|
||||||
int mode;
|
|
||||||
int dline_size; // length of delay line which is 'double dline[length][2]'
|
int dline_size; // length of delay line which is 'double dline[length][2]'
|
||||||
double *dline; // pointer to delay line
|
double *dline; // pointer to delay line
|
||||||
int *imp;
|
int *imp;
|
||||||
double samplerate; // samplerate, used to convert times into sample counts
|
double samplerate; // samplerate, used to convert times into sample counts
|
||||||
|
int mode;
|
||||||
double advslewtime; // transition time, signal<->zero
|
double advslewtime; // transition time, signal<->zero
|
||||||
double advtime; // deadtime (zero output) in advance of detected noise
|
double advtime; // deadtime (zero output) in advance of detected noise
|
||||||
double hangslewtime;
|
double hangslewtime;
|
||||||
@ -116,7 +116,7 @@ public:
|
|||||||
void setThreshold (double thresh);
|
void setThreshold (double thresh);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void init_nob();
|
void init();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ namespace WDSP {
|
|||||||
* *
|
* *
|
||||||
************************************************************************************************/
|
************************************************************************************************/
|
||||||
|
|
||||||
void RESAMPLE::calc_resample()
|
void RESAMPLE::calc()
|
||||||
{
|
{
|
||||||
int x, y, z;
|
int x, y, z;
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
@ -102,7 +102,7 @@ void RESAMPLE::calc_resample()
|
|||||||
delete[] (impulse);
|
delete[] (impulse);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RESAMPLE::decalc_resample()
|
void RESAMPLE::decalc()
|
||||||
{
|
{
|
||||||
delete[] ring;
|
delete[] ring;
|
||||||
delete[] h;
|
delete[] h;
|
||||||
@ -118,24 +118,24 @@ RESAMPLE::RESAMPLE (
|
|||||||
double _fc,
|
double _fc,
|
||||||
int _ncoef,
|
int _ncoef,
|
||||||
double _gain
|
double _gain
|
||||||
)
|
) :
|
||||||
|
run(_run),
|
||||||
|
size(_size),
|
||||||
|
in(_in),
|
||||||
|
out(_out),
|
||||||
|
in_rate(_in_rate),
|
||||||
|
out_rate(_out_rate),
|
||||||
|
fcin(_fc),
|
||||||
|
fc_low(-1.0), // could add to create_resample() parameters
|
||||||
|
ncoefin(_ncoef),
|
||||||
|
gain(_gain)
|
||||||
{
|
{
|
||||||
run = _run;
|
calc();
|
||||||
size = _size;
|
|
||||||
in = _in;
|
|
||||||
out = _out;
|
|
||||||
in_rate = _in_rate;
|
|
||||||
out_rate = _out_rate;
|
|
||||||
fcin = _fc;
|
|
||||||
fc_low = -1.0; // could add to create_resample() parameters
|
|
||||||
ncoefin = _ncoef;
|
|
||||||
gain = _gain;
|
|
||||||
calc_resample();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RESAMPLE::~RESAMPLE()
|
RESAMPLE::~RESAMPLE()
|
||||||
{
|
{
|
||||||
decalc_resample();
|
decalc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -210,25 +210,25 @@ void RESAMPLE::setSize(int _size)
|
|||||||
|
|
||||||
void RESAMPLE::setInRate(int _rate)
|
void RESAMPLE::setInRate(int _rate)
|
||||||
{
|
{
|
||||||
decalc_resample();
|
decalc();
|
||||||
in_rate = _rate;
|
in_rate = _rate;
|
||||||
calc_resample();
|
calc();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RESAMPLE::setOutRate(int _rate)
|
void RESAMPLE::setOutRate(int _rate)
|
||||||
{
|
{
|
||||||
decalc_resample();
|
decalc();
|
||||||
out_rate = _rate;
|
out_rate = _rate;
|
||||||
calc_resample();
|
calc();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RESAMPLE::setFCLow(double _fc_low)
|
void RESAMPLE::setFCLow(double _fc_low)
|
||||||
{
|
{
|
||||||
if (fc_low != _fc_low)
|
if (fc_low != _fc_low)
|
||||||
{
|
{
|
||||||
decalc_resample();
|
decalc();
|
||||||
fc_low = _fc_low;
|
fc_low = _fc_low;
|
||||||
calc_resample();
|
calc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,10 +236,10 @@ void RESAMPLE::setBandwidth(double _fc_low, double _fc_high)
|
|||||||
{
|
{
|
||||||
if (fc_low != _fc_low || _fc_high != fcin)
|
if (fc_low != _fc_low || _fc_high != fcin)
|
||||||
{
|
{
|
||||||
decalc_resample();
|
decalc();
|
||||||
fc_low = _fc_low;
|
fc_low = _fc_low;
|
||||||
fcin = _fc_high;
|
fcin = _fc_high;
|
||||||
calc_resample();
|
calc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,9 +50,9 @@ public:
|
|||||||
double fcin;
|
double fcin;
|
||||||
double fc;
|
double fc;
|
||||||
double fc_low;
|
double fc_low;
|
||||||
double gain;
|
|
||||||
int idx_in; // index for input into ring
|
int idx_in; // index for input into ring
|
||||||
int ncoefin;
|
int ncoefin;
|
||||||
|
double gain;
|
||||||
int ncoef; // number of coefficients
|
int ncoef; // number of coefficients
|
||||||
int L; // interpolation factor
|
int L; // interpolation factor
|
||||||
int M; // decimation factor
|
int M; // decimation factor
|
||||||
@ -89,8 +89,8 @@ public:
|
|||||||
static void destroyV (void* ptr);
|
static void destroyV (void* ptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void calc_resample();
|
void calc();
|
||||||
void decalc_resample();
|
void decalc();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace WDSP
|
} // namespace WDSP
|
||||||
|
@ -31,23 +31,30 @@ warren@wpratt.com
|
|||||||
|
|
||||||
namespace WDSP {
|
namespace WDSP {
|
||||||
|
|
||||||
void SHIFT::calc_shift()
|
void SHIFT::calc()
|
||||||
{
|
{
|
||||||
delta = TWOPI * shift / rate;
|
delta = TWOPI * shift / rate;
|
||||||
cos_delta = cos (delta);
|
cos_delta = cos (delta);
|
||||||
sin_delta = sin (delta);
|
sin_delta = sin (delta);
|
||||||
}
|
}
|
||||||
|
|
||||||
SHIFT::SHIFT (int _run, int _size, float* _in, float* _out, int _rate, double _fshift)
|
SHIFT::SHIFT (
|
||||||
|
int _run,
|
||||||
|
int _size,
|
||||||
|
float* _in,
|
||||||
|
float* _out,
|
||||||
|
int _rate,
|
||||||
|
double _fshift
|
||||||
|
) :
|
||||||
|
run(_run),
|
||||||
|
size(_size),
|
||||||
|
in(_in),
|
||||||
|
out(_out),
|
||||||
|
rate((double) _rate),
|
||||||
|
shift(_fshift)
|
||||||
{
|
{
|
||||||
run = _run;
|
|
||||||
size = _size;
|
|
||||||
in = _in;
|
|
||||||
out = _out;
|
|
||||||
rate = (double) _rate;
|
|
||||||
shift = _fshift;
|
|
||||||
phase = 0.0;
|
phase = 0.0;
|
||||||
calc_shift();
|
calc();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SHIFT::flush()
|
void SHIFT::flush()
|
||||||
@ -99,7 +106,7 @@ void SHIFT::setSamplerate(int _rate)
|
|||||||
{
|
{
|
||||||
rate = _rate;
|
rate = _rate;
|
||||||
phase = 0.0;
|
phase = 0.0;
|
||||||
calc_shift();
|
calc();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SHIFT::setSize(int _size)
|
void SHIFT::setSize(int _size)
|
||||||
@ -119,10 +126,10 @@ void SHIFT::SetRun (int _run)
|
|||||||
run = _run;
|
run = _run;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SHIFT::SetFreq(double fshift)
|
void SHIFT::SetFreq(double _fshift)
|
||||||
{
|
{
|
||||||
shift = fshift;
|
shift = _fshift;
|
||||||
calc_shift();
|
calc();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace WDSP
|
} // namespace WDSP
|
||||||
|
@ -61,7 +61,7 @@ public:
|
|||||||
void SetFreq (double fshift);
|
void SetFreq (double fshift);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void calc_shift ();
|
void calc();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace WDSP
|
} // namespace WDSP
|
||||||
|
Loading…
Reference in New Issue
Block a user