mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-23 00:18:37 -05:00
Use doubles for all power calculations
This commit is contained in:
parent
dafad384c8
commit
579c05cfe5
@ -43,7 +43,7 @@ public:
|
|||||||
|
|
||||||
int getInputSampleRate() const { return m_running.m_inputSampleRate; }
|
int getInputSampleRate() const { return m_running.m_inputSampleRate; }
|
||||||
int getChannelSampleRate() const { return m_running.m_channelSampleRate; }
|
int getChannelSampleRate() const { return m_running.m_channelSampleRate; }
|
||||||
Real getMagSq() const { return m_magsq == 0 ? 1e-10 : m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
||||||
virtual void start();
|
virtual void start();
|
||||||
@ -120,7 +120,7 @@ private:
|
|||||||
int m_undersampleCount;
|
int m_undersampleCount;
|
||||||
fftfilt::cmplx m_sum;
|
fftfilt::cmplx m_sum;
|
||||||
bool m_usb;
|
bool m_usb;
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
bool m_useInterpolator;
|
bool m_useInterpolator;
|
||||||
|
|
||||||
NCOF m_nco;
|
NCOF m_nco;
|
||||||
|
@ -169,7 +169,7 @@ void ChannelAnalyzerNGGUI::viewChanged()
|
|||||||
|
|
||||||
void ChannelAnalyzerNGGUI::tick()
|
void ChannelAnalyzerNGGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_channelAnalyzer->getMagSq());
|
double powDb = CalcDb::dbPower(m_channelAnalyzer->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
// ui->channelPower->setText(QString::number(powDb, 'f', 1));
|
// ui->channelPower->setText(QString::number(powDb, 'f', 1));
|
||||||
|
@ -41,10 +41,10 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
bool getSquelchOpen() const { return m_squelchOpen; }
|
bool getSquelchOpen() const { return m_squelchOpen; }
|
||||||
|
|
||||||
void getMagSqLevels(Real& avg, Real& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
{
|
{
|
||||||
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
||||||
peak = m_magsqPeak == 0.0 ? 1e-10 : m_magsqPeak;
|
peak = m_magsqPeak == 0.0 ? 1e-10 : m_magsqPeak;
|
||||||
@ -131,9 +131,9 @@ private:
|
|||||||
Real m_squelchLevel;
|
Real m_squelchLevel;
|
||||||
int m_squelchCount;
|
int m_squelchCount;
|
||||||
bool m_squelchOpen;
|
bool m_squelchOpen;
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
Real m_magsqSum;
|
double m_magsqSum;
|
||||||
Real m_magsqPeak;
|
double m_magsqPeak;
|
||||||
int m_magsqCount;
|
int m_magsqCount;
|
||||||
|
|
||||||
MovingAverage<double> m_movingAverage;
|
MovingAverage<double> m_movingAverage;
|
||||||
|
@ -315,11 +315,11 @@ void AMDemodGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void AMDemodGUI::tick()
|
void AMDemodGUI::tick()
|
||||||
{
|
{
|
||||||
Real magsqAvg, magsqPeak;
|
double magsqAvg, magsqPeak;
|
||||||
int nbMagsqSamples;
|
int nbMagsqSamples;
|
||||||
m_amDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
m_amDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
||||||
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
double powDbAvg = CalcDb::dbPower(magsqAvg);
|
||||||
Real powDbPeak = CalcDb::dbPower(magsqPeak);
|
double powDbPeak = CalcDb::dbPower(magsqPeak);
|
||||||
|
|
||||||
ui->channelPowerMeter->levelChanged(
|
ui->channelPowerMeter->levelChanged(
|
||||||
(100.0f + powDbAvg) / 100.0f,
|
(100.0f + powDbAvg) / 100.0f,
|
||||||
|
@ -108,7 +108,8 @@ void BFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
Complex ci, cs, cr;
|
Complex ci, cs, cr;
|
||||||
fftfilt::cmplx *rf;
|
fftfilt::cmplx *rf;
|
||||||
int rf_out;
|
int rf_out;
|
||||||
Real msq, demod;
|
double msq;
|
||||||
|
Real demod;
|
||||||
|
|
||||||
m_sampleBuffer.clear();
|
m_sampleBuffer.clear();
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
bool getPilotLock() const { return m_pilotPLL.locked(); }
|
bool getPilotLock() const { return m_pilotPLL.locked(); }
|
||||||
Real getPilotLevel() const { return m_pilotPLL.get_pilot_level(); }
|
Real getPilotLevel() const { return m_pilotPLL.get_pilot_level(); }
|
||||||
@ -69,7 +69,7 @@ public:
|
|||||||
Real getDemodQua() const { return m_rdsDemod.m_report.qua; }
|
Real getDemodQua() const { return m_rdsDemod.m_report.qua; }
|
||||||
Real getDemodFclk() const { return m_rdsDemod.m_report.fclk; }
|
Real getDemodFclk() const { return m_rdsDemod.m_report.fclk; }
|
||||||
|
|
||||||
void getMagSqLevels(Real& avg, Real& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
{
|
{
|
||||||
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
||||||
m_magsq = avg;
|
m_magsq = avg;
|
||||||
@ -207,10 +207,9 @@ private:
|
|||||||
|
|
||||||
Real m_m1Arg; //!> x^-1 real sample
|
Real m_m1Arg; //!> x^-1 real sample
|
||||||
|
|
||||||
// MovingAverage<Real> m_movingAverage;
|
double m_magsq;
|
||||||
Real m_magsq;
|
double m_magsqSum;
|
||||||
Real m_magsqSum;
|
double m_magsqPeak;
|
||||||
Real m_magsqPeak;
|
|
||||||
int m_magsqCount;
|
int m_magsqCount;
|
||||||
|
|
||||||
AudioVector m_audioBuffer;
|
AudioVector m_audioBuffer;
|
||||||
|
@ -476,7 +476,7 @@ void BFMDemodGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void BFMDemodGUI::tick()
|
void BFMDemodGUI::tick()
|
||||||
{
|
{
|
||||||
Real magsqAvg, magsqPeak;
|
double magsqAvg, magsqPeak;
|
||||||
int nbMagsqSamples;
|
int nbMagsqSamples;
|
||||||
m_bfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
m_bfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
||||||
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
||||||
|
@ -73,7 +73,7 @@ public:
|
|||||||
|
|
||||||
const DSDDecoder& getDecoder() const { return m_dsdDecoder; }
|
const DSDDecoder& getDecoder() const { return m_dsdDecoder; }
|
||||||
|
|
||||||
void getMagSqLevels(Real& avg, Real& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
{
|
{
|
||||||
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
||||||
m_magsq = avg;
|
m_magsq = avg;
|
||||||
@ -273,9 +273,9 @@ private:
|
|||||||
|
|
||||||
Real m_lastArgument;
|
Real m_lastArgument;
|
||||||
MovingAverage<double> m_movingAverage;
|
MovingAverage<double> m_movingAverage;
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
Real m_magsqSum;
|
double m_magsqSum;
|
||||||
Real m_magsqPeak;
|
double m_magsqPeak;
|
||||||
int m_magsqCount;
|
int m_magsqCount;
|
||||||
|
|
||||||
Real m_fmExcursion;
|
Real m_fmExcursion;
|
||||||
|
@ -601,11 +601,11 @@ void DSDDemodGUI::formatStatusText()
|
|||||||
|
|
||||||
void DSDDemodGUI::tick()
|
void DSDDemodGUI::tick()
|
||||||
{
|
{
|
||||||
Real magsqAvg, magsqPeak;
|
double magsqAvg, magsqPeak;
|
||||||
int nbMagsqSamples;
|
int nbMagsqSamples;
|
||||||
m_dsdDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
m_dsdDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
||||||
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
double powDbAvg = CalcDb::dbPower(magsqAvg);
|
||||||
Real powDbPeak = CalcDb::dbPower(magsqPeak);
|
double powDbPeak = CalcDb::dbPower(magsqPeak);
|
||||||
|
|
||||||
ui->channelPowerMeter->levelChanged(
|
ui->channelPowerMeter->levelChanged(
|
||||||
(100.0f + powDbAvg) / 100.0f,
|
(100.0f + powDbAvg) / 100.0f,
|
||||||
|
@ -72,7 +72,7 @@ public:
|
|||||||
Real getMag() { return m_magsq; }
|
Real getMag() { return m_magsq; }
|
||||||
bool getSquelchOpen() const { return m_squelchOpen; }
|
bool getSquelchOpen() const { return m_squelchOpen; }
|
||||||
|
|
||||||
void getMagSqLevels(Real& avg, Real& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
{
|
{
|
||||||
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
||||||
m_magsq = avg;
|
m_magsq = avg;
|
||||||
@ -216,9 +216,9 @@ private:
|
|||||||
Real m_squelchLevel;
|
Real m_squelchLevel;
|
||||||
bool m_squelchOpen;
|
bool m_squelchOpen;
|
||||||
bool m_afSquelchOpen;
|
bool m_afSquelchOpen;
|
||||||
Real m_magsq; //!< displayed averaged value
|
double m_magsq; //!< displayed averaged value
|
||||||
Real m_magsqSum;
|
double m_magsqSum;
|
||||||
Real m_magsqPeak;
|
double m_magsqPeak;
|
||||||
int m_magsqCount;
|
int m_magsqCount;
|
||||||
|
|
||||||
Real m_lastArgument;
|
Real m_lastArgument;
|
||||||
|
@ -419,11 +419,11 @@ void NFMDemodGUI::blockApplySettings(bool block)
|
|||||||
|
|
||||||
void NFMDemodGUI::tick()
|
void NFMDemodGUI::tick()
|
||||||
{
|
{
|
||||||
Real magsqAvg, magsqPeak;
|
double magsqAvg, magsqPeak;
|
||||||
int nbMagsqSamples;
|
int nbMagsqSamples;
|
||||||
m_nfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
m_nfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
||||||
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
double powDbAvg = CalcDb::dbPower(magsqAvg);
|
||||||
Real powDbPeak = CalcDb::dbPower(magsqPeak);
|
double powDbPeak = CalcDb::dbPower(magsqPeak);
|
||||||
|
|
||||||
ui->channelPowerMeter->levelChanged(
|
ui->channelPowerMeter->levelChanged(
|
||||||
(100.0f + powDbAvg) / 100.0f,
|
(100.0f + powDbAvg) / 100.0f,
|
||||||
|
@ -49,9 +49,9 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
void getMagSqLevels(Real& avg, Real& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
{
|
{
|
||||||
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
||||||
m_magsq = avg;
|
m_magsq = avg;
|
||||||
@ -138,9 +138,9 @@ private:
|
|||||||
bool m_usb;
|
bool m_usb;
|
||||||
bool m_dsb;
|
bool m_dsb;
|
||||||
bool m_audioMute;
|
bool m_audioMute;
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
Real m_magsqSum;
|
double m_magsqSum;
|
||||||
Real m_magsqPeak;
|
double m_magsqPeak;
|
||||||
int m_magsqCount;
|
int m_magsqCount;
|
||||||
|
|
||||||
NCOF m_nco;
|
NCOF m_nco;
|
||||||
|
@ -500,11 +500,11 @@ void SSBDemodGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void SSBDemodGUI::tick()
|
void SSBDemodGUI::tick()
|
||||||
{
|
{
|
||||||
Real magsqAvg, magsqPeak;
|
double magsqAvg, magsqPeak;
|
||||||
int nbMagsqSamples;
|
int nbMagsqSamples;
|
||||||
m_ssbDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
m_ssbDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
||||||
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
double powDbAvg = CalcDb::dbPower(magsqAvg);
|
||||||
Real powDbPeak = CalcDb::dbPower(magsqPeak);
|
double powDbPeak = CalcDb::dbPower(magsqPeak);
|
||||||
|
|
||||||
ui->channelPowerMeter->levelChanged(
|
ui->channelPowerMeter->levelChanged(
|
||||||
(100.0f + powDbAvg) / 100.0f,
|
(100.0f + powDbAvg) / 100.0f,
|
||||||
|
@ -50,10 +50,10 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_movingAverage.average(); }
|
double getMagSq() const { return m_movingAverage.average(); }
|
||||||
bool getSquelchOpen() const { return m_squelchOpen; }
|
bool getSquelchOpen() const { return m_squelchOpen; }
|
||||||
|
|
||||||
void getMagSqLevels(Real& avg, Real& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
{
|
{
|
||||||
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
avg = m_magsqCount == 0 ? 1e-10 : m_magsqSum / m_magsqCount;
|
||||||
m_magsq = avg;
|
m_magsq = avg;
|
||||||
@ -142,9 +142,9 @@ private:
|
|||||||
Real m_squelchLevel;
|
Real m_squelchLevel;
|
||||||
int m_squelchState;
|
int m_squelchState;
|
||||||
bool m_squelchOpen;
|
bool m_squelchOpen;
|
||||||
Real m_magsq; //!< displayed averaged value
|
double m_magsq; //!< displayed averaged value
|
||||||
Real m_magsqSum;
|
double m_magsqSum;
|
||||||
Real m_magsqPeak;
|
double m_magsqPeak;
|
||||||
int m_magsqCount;
|
int m_magsqCount;
|
||||||
|
|
||||||
Real m_lastArgument;
|
Real m_lastArgument;
|
||||||
|
@ -319,11 +319,11 @@ void WFMDemodGUI::tick()
|
|||||||
// m_channelPowerDbAvg.feed(powDb);
|
// m_channelPowerDbAvg.feed(powDb);
|
||||||
// ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
// ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
|
||||||
Real magsqAvg, magsqPeak;
|
double magsqAvg, magsqPeak;
|
||||||
int nbMagsqSamples;
|
int nbMagsqSamples;
|
||||||
m_wfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
m_wfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
|
||||||
Real powDbAvg = CalcDb::dbPower(magsqAvg);
|
double powDbAvg = CalcDb::dbPower(magsqAvg);
|
||||||
Real powDbPeak = CalcDb::dbPower(magsqPeak);
|
double powDbPeak = CalcDb::dbPower(magsqPeak);
|
||||||
|
|
||||||
ui->channelPower->setText(QString::number(powDbAvg, 'f', 1));
|
ui->channelPower->setText(QString::number(powDbAvg, 'f', 1));
|
||||||
ui->channelPowerMeter->levelChanged(
|
ui->channelPowerMeter->levelChanged(
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
|
|
||||||
void configure(MessageQueue* messageQueue, SampleFormat sampleFormat, Real outputSampleRate, Real rfBandwidth, int tcpPort, int boost);
|
void configure(MessageQueue* messageQueue, SampleFormat sampleFormat, Real outputSampleRate, Real rfBandwidth, int tcpPort, int boost);
|
||||||
void setSpectrum(MessageQueue* messageQueue, bool enabled);
|
void setSpectrum(MessageQueue* messageQueue, bool enabled);
|
||||||
Real getMagSq() const { return m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
||||||
virtual void start();
|
virtual void start();
|
||||||
@ -148,7 +148,7 @@ protected:
|
|||||||
Real m_rfBandwidth;
|
Real m_rfBandwidth;
|
||||||
int m_tcpPort;
|
int m_tcpPort;
|
||||||
int m_boost;
|
int m_boost;
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
|
|
||||||
Real m_scale;
|
Real m_scale;
|
||||||
Complex m_last, m_this;
|
Complex m_last, m_this;
|
||||||
|
@ -178,7 +178,7 @@ void TCPSrcGUI::channelMarkerChanged()
|
|||||||
|
|
||||||
void TCPSrcGUI::tick()
|
void TCPSrcGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_tcpSrc->getMagSq());
|
double powDb = CalcDb::dbPower(m_tcpSrc->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@ public:
|
|||||||
int boost,
|
int boost,
|
||||||
int volume);
|
int volume);
|
||||||
void setSpectrum(MessageQueue* messageQueue, bool enabled);
|
void setSpectrum(MessageQueue* messageQueue, bool enabled);
|
||||||
Real getMagSq() const { return m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
||||||
virtual void start();
|
virtual void start();
|
||||||
@ -221,7 +221,7 @@ protected:
|
|||||||
bool m_audioStereo;
|
bool m_audioStereo;
|
||||||
int m_volume;
|
int m_volume;
|
||||||
int m_fmDeviation;
|
int m_fmDeviation;
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
|
|
||||||
Real m_scale;
|
Real m_scale;
|
||||||
Complex m_last, m_this;
|
Complex m_last, m_this;
|
||||||
|
@ -215,7 +215,7 @@ void UDPSrcGUI::channelMarkerChanged()
|
|||||||
|
|
||||||
void UDPSrcGUI::tick()
|
void UDPSrcGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_udpSrc->getMagSq());
|
double powDb = CalcDb::dbPower(m_udpSrc->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
}
|
}
|
||||||
|
@ -190,7 +190,7 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq == 0.0 ? 1e-10 : m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||||
|
|
||||||
@ -291,7 +291,7 @@ private:
|
|||||||
Real m_interpolatorDistanceRemain;
|
Real m_interpolatorDistanceRemain;
|
||||||
bool m_interpolatorConsumed;
|
bool m_interpolatorConsumed;
|
||||||
|
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
MovingAverage<double> m_movingAverage;
|
MovingAverage<double> m_movingAverage;
|
||||||
SimpleAGC m_volumeAGC;
|
SimpleAGC m_volumeAGC;
|
||||||
|
|
||||||
|
@ -444,7 +444,7 @@ void AMModGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void AMModGUI::tick()
|
void AMModGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_amMod->getMagSq());
|
double powDb = CalcDb::dbPower(m_amMod->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
|
||||||
|
@ -403,7 +403,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
int getEffectiveSampleRate() const { return m_tvSampleRate; };
|
int getEffectiveSampleRate() const { return m_tvSampleRate; };
|
||||||
Real getMagSq() const { return m_movingAverage.average(); }
|
double getMagSq() const { return m_movingAverage.average(); }
|
||||||
void getCameraNumbers(std::vector<int>& numbers);
|
void getCameraNumbers(std::vector<int>& numbers);
|
||||||
|
|
||||||
static void getBaseValues(int outputSampleRate, int linesPerSecond, int& sampleRateUnits, uint32_t& nbPointsPerRateUnit);
|
static void getBaseValues(int outputSampleRate, int linesPerSecond, int& sampleRateUnits, uint32_t& nbPointsPerRateUnit);
|
||||||
|
@ -741,7 +741,7 @@ void ATVModGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void ATVModGUI::tick()
|
void ATVModGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_atvMod->getMagSq());
|
double powDb = CalcDb::dbPower(m_atvMod->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq == 0 ? 1e-10 : m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ private:
|
|||||||
Lowpass<Real> m_lowpass;
|
Lowpass<Real> m_lowpass;
|
||||||
Bandpass<Real> m_bandpass;
|
Bandpass<Real> m_bandpass;
|
||||||
|
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
MovingAverage<double> m_movingAverage;
|
MovingAverage<double> m_movingAverage;
|
||||||
SimpleAGC m_volumeAGC;
|
SimpleAGC m_volumeAGC;
|
||||||
|
|
||||||
|
@ -500,7 +500,7 @@ void NFMModGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void NFMModGUI::tick()
|
void NFMModGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_nfmMod->getMagSq());
|
double powDb = CalcDb::dbPower(m_nfmMod->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq == 0 ? 1e-10 : m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||||
|
|
||||||
@ -363,7 +363,7 @@ private:
|
|||||||
int m_undersampleCount;
|
int m_undersampleCount;
|
||||||
int m_sumCount;
|
int m_sumCount;
|
||||||
|
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
MovingAverage<double> m_movingAverage;
|
MovingAverage<double> m_movingAverage;
|
||||||
SimpleAGC m_volumeAGC;
|
SimpleAGC m_volumeAGC;
|
||||||
|
|
||||||
|
@ -638,7 +638,7 @@ void SSBModGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void SSBModGUI::tick()
|
void SSBModGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_ssbMod->getMagSq());
|
double powDb = CalcDb::dbPower(m_ssbMod->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ public:
|
|||||||
virtual void stop();
|
virtual void stop();
|
||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
Real getMagSq() const { return m_magsq == 0 ? 1e-10 : m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
|
|
||||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||||
|
|
||||||
@ -323,7 +323,7 @@ private:
|
|||||||
fftfilt::cmplx *m_rfFilterBuffer;
|
fftfilt::cmplx *m_rfFilterBuffer;
|
||||||
int m_rfFilterBufferIndex;
|
int m_rfFilterBufferIndex;
|
||||||
|
|
||||||
Real m_magsq;
|
double m_magsq;
|
||||||
MovingAverage<double> m_movingAverage;
|
MovingAverage<double> m_movingAverage;
|
||||||
SimpleAGC m_volumeAGC;
|
SimpleAGC m_volumeAGC;
|
||||||
|
|
||||||
|
@ -463,7 +463,7 @@ void WFMModGUI::enterEvent(QEvent*)
|
|||||||
|
|
||||||
void WFMModGUI::tick()
|
void WFMModGUI::tick()
|
||||||
{
|
{
|
||||||
Real powDb = CalcDb::dbPower(m_wfmMod->getMagSq());
|
double powDb = CalcDb::dbPower(m_wfmMod->getMagSq());
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "util/db.h"
|
#include "util/db.h"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
Real CalcDb::dbPower(Real magsq, Real floordB)
|
double CalcDb::dbPower(double magsq, double floordB)
|
||||||
{
|
{
|
||||||
if (magsq > 0)
|
if (magsq > 0)
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
class CalcDb
|
class CalcDb
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static Real dbPower(Real magsq, Real floordB = -100.0f);
|
static double dbPower(double magsq, double floordB = -100.0);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* INCLUDE_UTIL_DB_H_ */
|
#endif /* INCLUDE_UTIL_DB_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user