mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-07-21 10:15:34 -04:00
Channel Analyzer NG: method to get requested sample rate depending on wether the rational downsampler is engaged or not
This commit is contained in:
parent
68943b122b
commit
2008b5fbde
@ -140,7 +140,7 @@ bool ChannelAnalyzerNGGUI::deserialize(const QByteArray& data)
|
|||||||
m_channelMarker.blockSignals(false);
|
m_channelMarker.blockSignals(false);
|
||||||
|
|
||||||
ui->spanLog2->setCurrentIndex(spanLog2);
|
ui->spanLog2->setCurrentIndex(spanLog2);
|
||||||
setNewRate(spanLog2);
|
setNewFinalRate(spanLog2);
|
||||||
ui->BW->setValue(bw);
|
ui->BW->setValue(bw);
|
||||||
ui->lowCut->setValue(lowCut); // does applySettings();
|
ui->lowCut->setValue(lowCut); // does applySettings();
|
||||||
|
|
||||||
@ -175,7 +175,8 @@ void ChannelAnalyzerNGGUI::channelizerInputSampleRateChanged()
|
|||||||
{
|
{
|
||||||
qDebug("ChannelAnalyzerNGGUI::channelizerInputSampleRateChanged(): %d", m_channelizer->getInputSampleRate());
|
qDebug("ChannelAnalyzerNGGUI::channelizerInputSampleRateChanged(): %d", m_channelizer->getInputSampleRate());
|
||||||
ui->channelSampleRate->setValueRange(7, 2000U, m_channelAnalyzer->getInputSampleRate());
|
ui->channelSampleRate->setValueRange(7, 2000U, m_channelAnalyzer->getInputSampleRate());
|
||||||
setNewRate(m_spanLog2);
|
setNewFinalRate(m_spanLog2);
|
||||||
|
applySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChannelAnalyzerNGGUI::on_deltaMinus_toggled(bool minus)
|
void ChannelAnalyzerNGGUI::on_deltaMinus_toggled(bool minus)
|
||||||
@ -189,6 +190,15 @@ void ChannelAnalyzerNGGUI::on_deltaMinus_toggled(bool minus)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ChannelAnalyzerNGGUI::getRequestedChannelSampleRate()
|
||||||
|
{
|
||||||
|
if (ui->useRationalDownsampler->isChecked()) {
|
||||||
|
return ui->channelSampleRate->getValue();
|
||||||
|
} else {
|
||||||
|
return m_channelizer->getInputSampleRate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ChannelAnalyzerNGGUI::on_deltaFrequency_changed(quint64 value)
|
void ChannelAnalyzerNGGUI::on_deltaFrequency_changed(quint64 value)
|
||||||
{
|
{
|
||||||
if (ui->deltaMinus->isChecked()) {
|
if (ui->deltaMinus->isChecked()) {
|
||||||
@ -257,7 +267,7 @@ void ChannelAnalyzerNGGUI::on_lowCut_valueChanged(int value)
|
|||||||
|
|
||||||
void ChannelAnalyzerNGGUI::on_spanLog2_currentIndexChanged(int index)
|
void ChannelAnalyzerNGGUI::on_spanLog2_currentIndexChanged(int index)
|
||||||
{
|
{
|
||||||
if (setNewRate(index)) {
|
if (setNewFinalRate(index)) {
|
||||||
applySettings();
|
applySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,7 +383,7 @@ ChannelAnalyzerNGGUI::ChannelAnalyzerNGGUI(PluginAPI* pluginAPI, DeviceSourceAPI
|
|||||||
ui->scopeGUI->setBuddies(m_scopeVis->getInputMessageQueue(), m_scopeVis, ui->glScope);
|
ui->scopeGUI->setBuddies(m_scopeVis->getInputMessageQueue(), m_scopeVis, ui->glScope);
|
||||||
|
|
||||||
applySettings();
|
applySettings();
|
||||||
setNewRate(m_spanLog2);
|
setNewFinalRate(m_spanLog2);
|
||||||
}
|
}
|
||||||
|
|
||||||
ChannelAnalyzerNGGUI::~ChannelAnalyzerNGGUI()
|
ChannelAnalyzerNGGUI::~ChannelAnalyzerNGGUI()
|
||||||
@ -390,7 +400,7 @@ ChannelAnalyzerNGGUI::~ChannelAnalyzerNGGUI()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ChannelAnalyzerNGGUI::setNewRate(int spanLog2)
|
bool ChannelAnalyzerNGGUI::setNewFinalRate(int spanLog2)
|
||||||
{
|
{
|
||||||
qDebug("ChannelAnalyzerNGGUI::setNewRate");
|
qDebug("ChannelAnalyzerNGGUI::setNewRate");
|
||||||
|
|
||||||
@ -400,7 +410,8 @@ bool ChannelAnalyzerNGGUI::setNewRate(int spanLog2)
|
|||||||
|
|
||||||
m_spanLog2 = spanLog2;
|
m_spanLog2 = spanLog2;
|
||||||
//m_rate = 48000 / (1<<spanLog2);
|
//m_rate = 48000 / (1<<spanLog2);
|
||||||
m_rate = m_channelizer->getInputSampleRate() / (1<<spanLog2);
|
//m_rate = m_channelizer->getInputSampleRate() / (1<<spanLog2);
|
||||||
|
m_rate = getRequestedChannelSampleRate() / (1<<spanLog2);
|
||||||
|
|
||||||
setFiltersUIBoundaries();
|
setFiltersUIBoundaries();
|
||||||
|
|
||||||
@ -481,11 +492,13 @@ void ChannelAnalyzerNGGUI::applySettings()
|
|||||||
ui->deltaMinus->setChecked(m_channelMarker.getCenterFrequency() < 0);
|
ui->deltaMinus->setChecked(m_channelMarker.getCenterFrequency() < 0);
|
||||||
|
|
||||||
m_channelizer->configure(m_channelizer->getInputMessageQueue(),
|
m_channelizer->configure(m_channelizer->getInputMessageQueue(),
|
||||||
m_channelizer->getInputSampleRate(),
|
//m_channelizer->getInputSampleRate(),
|
||||||
|
getRequestedChannelSampleRate(),
|
||||||
m_channelMarker.getCenterFrequency());
|
m_channelMarker.getCenterFrequency());
|
||||||
|
|
||||||
m_channelAnalyzer->configure(m_channelAnalyzer->getInputMessageQueue(),
|
m_channelAnalyzer->configure(m_channelAnalyzer->getInputMessageQueue(),
|
||||||
m_channelizer->getInputSampleRate(), // TODO: specify required channel sample rate
|
//m_channelizer->getInputSampleRate(), // TODO: specify required channel sample rate
|
||||||
|
getRequestedChannelSampleRate(), // TODO: specify required channel sample rate
|
||||||
ui->BW->value() * 100.0,
|
ui->BW->value() * 100.0,
|
||||||
ui->lowCut->value() * 100.0,
|
ui->lowCut->value() * 100.0,
|
||||||
m_spanLog2,
|
m_spanLog2,
|
||||||
|
@ -76,7 +76,7 @@ private:
|
|||||||
ChannelMarker m_channelMarker;
|
ChannelMarker m_channelMarker;
|
||||||
bool m_basicSettingsShown;
|
bool m_basicSettingsShown;
|
||||||
bool m_doApplySettings;
|
bool m_doApplySettings;
|
||||||
int m_rate;
|
int m_rate; //!< sample rate after final in-channel decimation (spanlog2)
|
||||||
int m_spanLog2;
|
int m_spanLog2;
|
||||||
MovingAverage<double> m_channelPowerDbAvg;
|
MovingAverage<double> m_channelPowerDbAvg;
|
||||||
|
|
||||||
@ -90,8 +90,9 @@ private:
|
|||||||
explicit ChannelAnalyzerNGGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget* parent = NULL);
|
explicit ChannelAnalyzerNGGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~ChannelAnalyzerNGGUI();
|
virtual ~ChannelAnalyzerNGGUI();
|
||||||
|
|
||||||
|
int getRequestedChannelSampleRate();
|
||||||
int getEffectiveLowCutoff(int lowCutoff);
|
int getEffectiveLowCutoff(int lowCutoff);
|
||||||
bool setNewRate(int spanLog2);
|
bool setNewFinalRate(int spanLog2); //!< set sample rate after final in-channel decimation
|
||||||
void setFiltersUIBoundaries();
|
void setFiltersUIBoundaries();
|
||||||
|
|
||||||
void blockApplySettings(bool block);
|
void blockApplySettings(bool block);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user