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