mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-07-16 15:55:21 -04:00
Spectrum averaging: fixed average (2)
This commit is contained in:
parent
56e49baa3b
commit
0b496bd800
@ -38,6 +38,7 @@ GLSpectrum::GLSpectrum(QWidget* parent) :
|
|||||||
m_powerRange(100),
|
m_powerRange(100),
|
||||||
m_decay(0),
|
m_decay(0),
|
||||||
m_sampleRate(500000),
|
m_sampleRate(500000),
|
||||||
|
m_timingRate(1),
|
||||||
m_fftSize(512),
|
m_fftSize(512),
|
||||||
m_displayGrid(true),
|
m_displayGrid(true),
|
||||||
m_displayGridIntensity(5),
|
m_displayGridIntensity(5),
|
||||||
@ -196,6 +197,13 @@ void GLSpectrum::setSampleRate(qint32 sampleRate)
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLSpectrum::setTimingRate(qint32 timingRate)
|
||||||
|
{
|
||||||
|
m_timingRate = timingRate;
|
||||||
|
m_changesPending = true;
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
void GLSpectrum::setDisplayWaterfall(bool display)
|
void GLSpectrum::setDisplayWaterfall(bool display)
|
||||||
{
|
{
|
||||||
m_displayWaterfall = display;
|
m_displayWaterfall = display;
|
||||||
@ -1043,7 +1051,7 @@ void GLSpectrum::applyChanges()
|
|||||||
|
|
||||||
if(m_sampleRate > 0)
|
if(m_sampleRate > 0)
|
||||||
{
|
{
|
||||||
float scaleDiv = (float)m_sampleRate * (m_ssbSpectrum ? 2 : 1);
|
float scaleDiv = ((float)m_sampleRate / (float)m_timingRate) * (m_ssbSpectrum ? 2 : 1);
|
||||||
|
|
||||||
if(!m_invertedWaterfall)
|
if(!m_invertedWaterfall)
|
||||||
{
|
{
|
||||||
|
@ -46,6 +46,7 @@ public:
|
|||||||
|
|
||||||
void setCenterFrequency(qint64 frequency);
|
void setCenterFrequency(qint64 frequency);
|
||||||
void setSampleRate(qint32 sampleRate);
|
void setSampleRate(qint32 sampleRate);
|
||||||
|
void setTimingRate(qint32 timingRate);
|
||||||
void setReferenceLevel(Real referenceLevel);
|
void setReferenceLevel(Real referenceLevel);
|
||||||
void setPowerRange(Real powerRange);
|
void setPowerRange(Real powerRange);
|
||||||
void setDecay(int decay);
|
void setDecay(int decay);
|
||||||
@ -110,6 +111,7 @@ private:
|
|||||||
Real m_powerRange;
|
Real m_powerRange;
|
||||||
int m_decay;
|
int m_decay;
|
||||||
quint32 m_sampleRate;
|
quint32 m_sampleRate;
|
||||||
|
quint32 m_timingRate;
|
||||||
|
|
||||||
int m_fftSize;
|
int m_fftSize;
|
||||||
|
|
||||||
|
@ -229,6 +229,7 @@ void GLSpectrumGUI::on_fftSize_currentIndexChanged(int index)
|
|||||||
void GLSpectrumGUI::on_averagingMode_currentIndexChanged(int index)
|
void GLSpectrumGUI::on_averagingMode_currentIndexChanged(int index)
|
||||||
{
|
{
|
||||||
m_averagingMode = index < 0 ? AvgModeMoving : index > 1 ? AvgModeFixed : (AveragingMode) index;
|
m_averagingMode = index < 0 ? AvgModeMoving : index > 1 ? AvgModeFixed : (AveragingMode) index;
|
||||||
|
|
||||||
if(m_spectrumVis != 0) {
|
if(m_spectrumVis != 0) {
|
||||||
m_spectrumVis->configure(m_messageQueue,
|
m_spectrumVis->configure(m_messageQueue,
|
||||||
m_fftSize,
|
m_fftSize,
|
||||||
@ -237,12 +238,22 @@ void GLSpectrumGUI::on_averagingMode_currentIndexChanged(int index)
|
|||||||
m_averagingMode,
|
m_averagingMode,
|
||||||
(FFTWindow::Function)m_fftWindow);
|
(FFTWindow::Function)m_fftWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_glSpectrum != 0)
|
||||||
|
{
|
||||||
|
if (m_averagingMode == AvgModeFixed) {
|
||||||
|
m_glSpectrum->setTimingRate(m_averagingNb == 0 ? 1 : m_averagingNb);
|
||||||
|
} else {
|
||||||
|
m_glSpectrum->setTimingRate(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLSpectrumGUI::on_averaging_currentIndexChanged(int index)
|
void GLSpectrumGUI::on_averaging_currentIndexChanged(int index)
|
||||||
{
|
{
|
||||||
m_averagingIndex = index;
|
m_averagingIndex = index;
|
||||||
m_averagingNb = getAveragingValue(index);
|
m_averagingNb = getAveragingValue(index);
|
||||||
|
|
||||||
if(m_spectrumVis != 0) {
|
if(m_spectrumVis != 0) {
|
||||||
m_spectrumVis->configure(m_messageQueue,
|
m_spectrumVis->configure(m_messageQueue,
|
||||||
m_fftSize,
|
m_fftSize,
|
||||||
@ -251,6 +262,13 @@ void GLSpectrumGUI::on_averaging_currentIndexChanged(int index)
|
|||||||
m_averagingMode,
|
m_averagingMode,
|
||||||
(FFTWindow::Function)m_fftWindow);
|
(FFTWindow::Function)m_fftWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_glSpectrum != 0)
|
||||||
|
{
|
||||||
|
if (m_averagingMode == AvgModeFixed) {
|
||||||
|
m_glSpectrum->setTimingRate(m_averagingNb == 0 ? 1 : m_averagingNb);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLSpectrumGUI::on_refLevel_currentIndexChanged(int index)
|
void GLSpectrumGUI::on_refLevel_currentIndexChanged(int index)
|
||||||
|
@ -29,7 +29,7 @@ static double trunc(double d)
|
|||||||
|
|
||||||
QString ScaleEngine::formatTick(double value, int decimalPlaces, bool fancyTime)
|
QString ScaleEngine::formatTick(double value, int decimalPlaces, bool fancyTime)
|
||||||
{
|
{
|
||||||
if((m_physicalUnit != Unit::Time) || (!fancyTime) || 1)
|
if((m_physicalUnit != Unit::Time) || (!fancyTime))
|
||||||
{
|
{
|
||||||
return QString("%1").arg(m_makeOpposite ? -value : value, 0, 'f', decimalPlaces);
|
return QString("%1").arg(m_makeOpposite ? -value : value, 0, 'f', decimalPlaces);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ private:
|
|||||||
int m_decimalPlaces;
|
int m_decimalPlaces;
|
||||||
bool m_makeOpposite; // will show -value instead of value
|
bool m_makeOpposite; // will show -value instead of value
|
||||||
|
|
||||||
QString formatTick(double value, int decimalPlaces, bool fancyTime = true);
|
QString formatTick(double value, int decimalPlaces, bool fancyTime = false);
|
||||||
void calcCharSize();
|
void calcCharSize();
|
||||||
void calcScaleFactor();
|
void calcScaleFactor();
|
||||||
double calcMajorTickUnits(double distance, int* retDecimalPlaces);
|
double calcMajorTickUnits(double distance, int* retDecimalPlaces);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user