mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-13 20:01:46 -05:00
WDSP receiver: Removed SNB
This commit is contained in:
parent
7be39b1b55
commit
8b10dd05ff
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <QNetworkRequest>
|
#include <QNetworkRequest>
|
||||||
|
#include <QRecursiveMutex>
|
||||||
|
|
||||||
#include "dsp/mimochannel.h"
|
#include "dsp/mimochannel.h"
|
||||||
#include "dsp/spectrumvis.h"
|
#include "dsp/spectrumvis.h"
|
||||||
@ -185,7 +186,7 @@ private:
|
|||||||
ScopeVis m_scopeSink;
|
ScopeVis m_scopeSink;
|
||||||
QThread *m_thread;
|
QThread *m_thread;
|
||||||
InterferometerBaseband* m_basebandSink;
|
InterferometerBaseband* m_basebandSink;
|
||||||
QMutex m_mutex;
|
QRecursiveMutex m_mutex;
|
||||||
bool m_running;
|
bool m_running;
|
||||||
InterferometerSettings m_settings;
|
InterferometerSettings m_settings;
|
||||||
MessageQueue *m_guiMessageQueue; //!< Input message queue to the GUI
|
MessageQueue *m_guiMessageQueue; //!< Input message queue to the GUI
|
||||||
|
@ -29,14 +29,6 @@ WDSPRxDNRDialog::~WDSPRxDNRDialog()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WDSPRxDNRDialog::setSNB(bool snb)
|
|
||||||
{
|
|
||||||
ui->snb->blockSignals(true);
|
|
||||||
ui->snb->setChecked(snb);
|
|
||||||
ui->snb->blockSignals(false);
|
|
||||||
m_snb = snb;
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDSPRxDNRDialog::setANF(bool anf)
|
void WDSPRxDNRDialog::setANF(bool anf)
|
||||||
{
|
{
|
||||||
ui->anf->blockSignals(true);
|
ui->anf->blockSignals(true);
|
||||||
@ -85,12 +77,6 @@ void WDSPRxDNRDialog::setNR2ArtifactReduction(bool nr2ArtifactReducion)
|
|||||||
m_nr2ArtifactReduction = nr2ArtifactReducion;
|
m_nr2ArtifactReduction = nr2ArtifactReducion;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WDSPRxDNRDialog::on_snb_clicked(bool checked)
|
|
||||||
{
|
|
||||||
m_snb = checked;
|
|
||||||
emit valueChanged(ChangedSNB);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDSPRxDNRDialog::on_anf_clicked(bool checked)
|
void WDSPRxDNRDialog::on_anf_clicked(bool checked)
|
||||||
{
|
{
|
||||||
m_anf = checked;
|
m_anf = checked;
|
||||||
|
@ -30,7 +30,6 @@ class SDRGUI_API WDSPRxDNRDialog : public QDialog {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
enum ValueChanged {
|
enum ValueChanged {
|
||||||
ChangedSNB,
|
|
||||||
ChangedANF,
|
ChangedANF,
|
||||||
ChangedNR,
|
ChangedNR,
|
||||||
ChangedNR2Gain,
|
ChangedNR2Gain,
|
||||||
@ -42,7 +41,6 @@ public:
|
|||||||
explicit WDSPRxDNRDialog(QWidget* parent = nullptr);
|
explicit WDSPRxDNRDialog(QWidget* parent = nullptr);
|
||||||
~WDSPRxDNRDialog();
|
~WDSPRxDNRDialog();
|
||||||
|
|
||||||
void setSNB(bool snb);
|
|
||||||
void setANF(bool anf);
|
void setANF(bool anf);
|
||||||
void setNRScheme(WDSPRxProfile::WDSPRxNRScheme scheme);
|
void setNRScheme(WDSPRxProfile::WDSPRxNRScheme scheme);
|
||||||
void setNR2Gain(WDSPRxProfile::WDSPRxNR2Gain gain);
|
void setNR2Gain(WDSPRxProfile::WDSPRxNR2Gain gain);
|
||||||
@ -50,7 +48,6 @@ public:
|
|||||||
void setNRPosition(WDSPRxProfile::WDSPRxNRPosition position);
|
void setNRPosition(WDSPRxProfile::WDSPRxNRPosition position);
|
||||||
void setNR2ArtifactReduction(bool nr2ArtifactReducion);
|
void setNR2ArtifactReduction(bool nr2ArtifactReducion);
|
||||||
|
|
||||||
bool getSNB() const { return m_snb; }
|
|
||||||
bool getANF() const { return m_anf; }
|
bool getANF() const { return m_anf; }
|
||||||
WDSPRxProfile::WDSPRxNRScheme getNRScheme() const { return m_nrScheme; }
|
WDSPRxProfile::WDSPRxNRScheme getNRScheme() const { return m_nrScheme; }
|
||||||
WDSPRxProfile::WDSPRxNR2Gain getNR2Gain() const { return m_nr2Gain; }
|
WDSPRxProfile::WDSPRxNR2Gain getNR2Gain() const { return m_nr2Gain; }
|
||||||
@ -63,7 +60,6 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::WDSPRxDNRDialog *ui;
|
Ui::WDSPRxDNRDialog *ui;
|
||||||
bool m_snb;
|
|
||||||
bool m_anf;
|
bool m_anf;
|
||||||
WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
|
WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
|
||||||
WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
|
WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
|
||||||
@ -72,7 +68,6 @@ private:
|
|||||||
bool m_nr2ArtifactReduction;
|
bool m_nr2ArtifactReduction;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_snb_clicked(bool checked);
|
|
||||||
void on_anf_clicked(bool checked);
|
void on_anf_clicked(bool checked);
|
||||||
void on_nr_currentIndexChanged(int index);
|
void on_nr_currentIndexChanged(int index);
|
||||||
void on_nr2Gain_currentIndexChanged(int index);
|
void on_nr2Gain_currentIndexChanged(int index);
|
||||||
|
@ -40,16 +40,6 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="snb">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Spectral Noise Blanker</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>SNB</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="anf">
|
<widget class="QCheckBox" name="anf">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
|
@ -301,7 +301,6 @@ void WDSPRxGUI::on_profileIndex_valueChanged(int value)
|
|||||||
m_settings.m_nbAvgTime = m_settings.m_profiles[m_settings.m_profileIndex].m_nbAvgTime;
|
m_settings.m_nbAvgTime = m_settings.m_profiles[m_settings.m_profileIndex].m_nbAvgTime;
|
||||||
// Noise reduction
|
// Noise reduction
|
||||||
m_settings.m_dnr = m_settings.m_profiles[m_settings.m_profileIndex].m_dnr;
|
m_settings.m_dnr = m_settings.m_profiles[m_settings.m_profileIndex].m_dnr;
|
||||||
m_settings.m_snb = m_settings.m_profiles[m_settings.m_profileIndex].m_snb;
|
|
||||||
m_settings.m_anf = m_settings.m_profiles[m_settings.m_profileIndex].m_anf;
|
m_settings.m_anf = m_settings.m_profiles[m_settings.m_profileIndex].m_anf;
|
||||||
m_settings.m_nrScheme = m_settings.m_profiles[m_settings.m_profileIndex].m_nrScheme;
|
m_settings.m_nrScheme = m_settings.m_profiles[m_settings.m_profileIndex].m_nrScheme;
|
||||||
m_settings.m_nr2Gain = m_settings.m_profiles[m_settings.m_profileIndex].m_nr2Gain;
|
m_settings.m_nr2Gain = m_settings.m_profiles[m_settings.m_profileIndex].m_nr2Gain;
|
||||||
@ -908,7 +907,6 @@ void WDSPRxGUI::dnrSetupDialog(const QPoint& p)
|
|||||||
{
|
{
|
||||||
m_dnrDialog = new WDSPRxDNRDialog();
|
m_dnrDialog = new WDSPRxDNRDialog();
|
||||||
m_dnrDialog->move(p);
|
m_dnrDialog->move(p);
|
||||||
m_dnrDialog->setSNB(m_settings.m_snb);
|
|
||||||
m_dnrDialog->setANF(m_settings.m_anf);
|
m_dnrDialog->setANF(m_settings.m_anf);
|
||||||
m_dnrDialog->setNRScheme(m_settings.m_nrScheme);
|
m_dnrDialog->setNRScheme(m_settings.m_nrScheme);
|
||||||
m_dnrDialog->setNR2Gain(m_settings.m_nr2Gain);
|
m_dnrDialog->setNR2Gain(m_settings.m_nr2Gain);
|
||||||
@ -932,11 +930,6 @@ void WDSPRxGUI::dnrSetup(int32_t iValueChanged)
|
|||||||
|
|
||||||
switch (valueChanged)
|
switch (valueChanged)
|
||||||
{
|
{
|
||||||
case WDSPRxDNRDialog::ValueChanged::ChangedSNB:
|
|
||||||
m_settings.m_snb = m_dnrDialog->getSNB();
|
|
||||||
m_settings.m_profiles[m_settings.m_profileIndex].m_snb = m_settings.m_snb;
|
|
||||||
applySettings();
|
|
||||||
break;
|
|
||||||
case WDSPRxDNRDialog::ValueChanged::ChangedANF:
|
case WDSPRxDNRDialog::ValueChanged::ChangedANF:
|
||||||
m_settings.m_anf = m_dnrDialog->getANF();
|
m_settings.m_anf = m_dnrDialog->getANF();
|
||||||
m_settings.m_profiles[m_settings.m_profileIndex].m_anf = m_settings.m_anf;
|
m_settings.m_profiles[m_settings.m_profileIndex].m_anf = m_settings.m_anf;
|
||||||
|
@ -63,7 +63,6 @@ void WDSPRxSettings::resetToDefaults()
|
|||||||
m_nbAvgTime = 50.0;
|
m_nbAvgTime = 50.0;
|
||||||
// Noise reduction
|
// Noise reduction
|
||||||
m_dnr = false;
|
m_dnr = false;
|
||||||
m_snb = false;
|
|
||||||
m_anf = false;
|
m_anf = false;
|
||||||
m_nrScheme = WDSPRxProfile::NRSchemeNR;
|
m_nrScheme = WDSPRxProfile::NRSchemeNR;
|
||||||
m_nr2Gain = WDSPRxProfile::NR2GainGamma;
|
m_nr2Gain = WDSPRxProfile::NR2GainGamma;
|
||||||
@ -125,7 +124,6 @@ QByteArray WDSPRxSettings::serialize() const
|
|||||||
s.writeDouble(27, m_nbAvgTime);
|
s.writeDouble(27, m_nbAvgTime);
|
||||||
// Noise reduction
|
// Noise reduction
|
||||||
s.writeBool( 30, m_dnr);
|
s.writeBool( 30, m_dnr);
|
||||||
s.writeBool( 31, m_snb);
|
|
||||||
s.writeBool( 32, m_anf);
|
s.writeBool( 32, m_anf);
|
||||||
s.writeS32( 33, (int) m_nrScheme);
|
s.writeS32( 33, (int) m_nrScheme);
|
||||||
s.writeS32( 34, (int) m_nr2Gain);
|
s.writeS32( 34, (int) m_nr2Gain);
|
||||||
@ -182,7 +180,6 @@ QByteArray WDSPRxSettings::serialize() const
|
|||||||
s.writeDouble(127 + 50*i, m_profiles[i].m_nbAvgTime);
|
s.writeDouble(127 + 50*i, m_profiles[i].m_nbAvgTime);
|
||||||
// Noise reduction
|
// Noise reduction
|
||||||
s.writeBool (130 + 50*i, m_profiles[i].m_dnr);
|
s.writeBool (130 + 50*i, m_profiles[i].m_dnr);
|
||||||
s.writeBool (131 + 50*i, m_profiles[i].m_snb);
|
|
||||||
s.writeBool (132 + 50*i, m_profiles[i].m_anf);
|
s.writeBool (132 + 50*i, m_profiles[i].m_anf);
|
||||||
s.writeS32 (133 + 50*i, (int) m_profiles[i].m_nrScheme);
|
s.writeS32 (133 + 50*i, (int) m_profiles[i].m_nrScheme);
|
||||||
s.writeS32 (134 + 50*i, (int) m_profiles[i].m_nr2Gain);
|
s.writeS32 (134 + 50*i, (int) m_profiles[i].m_nr2Gain);
|
||||||
@ -253,7 +250,6 @@ bool WDSPRxSettings::deserialize(const QByteArray& data)
|
|||||||
d.readDouble(27, &m_nbAvgTime, 50.0);
|
d.readDouble(27, &m_nbAvgTime, 50.0);
|
||||||
// Nosie reduction
|
// Nosie reduction
|
||||||
d.readBool( 30, &m_dnr, false);
|
d.readBool( 30, &m_dnr, false);
|
||||||
d.readBool( 31, &m_snb, false);
|
|
||||||
d.readBool( 32, &m_anf, false);
|
d.readBool( 32, &m_anf, false);
|
||||||
d.readS32( 33, &tmp, 2);
|
d.readS32( 33, &tmp, 2);
|
||||||
m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
|
m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
|
||||||
@ -330,7 +326,6 @@ bool WDSPRxSettings::deserialize(const QByteArray& data)
|
|||||||
d.readDouble(127 + 50*i, &m_profiles[i].m_nbAvgTime, 50.0);
|
d.readDouble(127 + 50*i, &m_profiles[i].m_nbAvgTime, 50.0);
|
||||||
// Noise reduction
|
// Noise reduction
|
||||||
d.readBool (130 + 50*i, &m_profiles[i].m_dnr, false);
|
d.readBool (130 + 50*i, &m_profiles[i].m_dnr, false);
|
||||||
d.readBool (131 + 50*i, &m_profiles[i].m_snb, false);
|
|
||||||
d.readBool (132 + 50*i, &m_profiles[i].m_anf, false);
|
d.readBool (132 + 50*i, &m_profiles[i].m_anf, false);
|
||||||
d.readS32 (133 + 50*i, &tmp);
|
d.readS32 (133 + 50*i, &tmp);
|
||||||
m_profiles[i].m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
|
m_profiles[i].m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
|
||||||
|
@ -100,7 +100,6 @@ struct WDSPRxProfile
|
|||||||
double m_nbAvgTime; // a.k.a back tau
|
double m_nbAvgTime; // a.k.a back tau
|
||||||
// Noise rediction
|
// Noise rediction
|
||||||
bool m_dnr;
|
bool m_dnr;
|
||||||
bool m_snb;
|
|
||||||
bool m_anf;
|
bool m_anf;
|
||||||
WDSPRxNRScheme m_nrScheme;
|
WDSPRxNRScheme m_nrScheme;
|
||||||
WDSPRxNR2Gain m_nr2Gain;
|
WDSPRxNR2Gain m_nr2Gain;
|
||||||
@ -134,7 +133,6 @@ struct WDSPRxProfile
|
|||||||
m_nbThreshold(30),
|
m_nbThreshold(30),
|
||||||
m_nbAvgTime(50.0),
|
m_nbAvgTime(50.0),
|
||||||
m_dnr(false),
|
m_dnr(false),
|
||||||
m_snb(false),
|
|
||||||
m_anf(false),
|
m_anf(false),
|
||||||
m_nrScheme(NRSchemeNR),
|
m_nrScheme(NRSchemeNR),
|
||||||
m_nr2Gain(NR2GainGamma),
|
m_nr2Gain(NR2GainGamma),
|
||||||
@ -178,7 +176,6 @@ struct WDSPRxSettings
|
|||||||
double m_nbAvgTime;
|
double m_nbAvgTime;
|
||||||
// Noise reduction
|
// Noise reduction
|
||||||
bool m_dnr;
|
bool m_dnr;
|
||||||
bool m_snb;
|
|
||||||
bool m_anf;
|
bool m_anf;
|
||||||
WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
|
WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
|
||||||
WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
|
WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
|
||||||
|
@ -127,6 +127,7 @@ WDSPRxSink::WDSPRxSink() :
|
|||||||
);
|
);
|
||||||
m_rxa->setSpectrumProbe(&m_spectrumProbe);
|
m_rxa->setSpectrumProbe(&m_spectrumProbe);
|
||||||
WDSP::RXA::SetPassband(*m_rxa, 0, m_Bandwidth);
|
WDSP::RXA::SetPassband(*m_rxa, 0, m_Bandwidth);
|
||||||
|
WDSP::ANR::SetANRVals(*m_rxa, 64, 16, 16e-4, 10e-7);
|
||||||
|
|
||||||
applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
|
applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
|
||||||
applySettings(m_settings, true);
|
applySettings(m_settings, true);
|
||||||
@ -346,6 +347,7 @@ void WDSPRxSink::applySettings(const WDSPRxSettings& settings, bool force)
|
|||||||
<< " m_agcSlope: " << settings.m_agcSlope
|
<< " m_agcSlope: " << settings.m_agcSlope
|
||||||
<< " m_agcHangThreshold: " << settings.m_agcHangThreshold
|
<< " m_agcHangThreshold: " << settings.m_agcHangThreshold
|
||||||
<< " m_audioDeviceName: " << settings.m_audioDeviceName
|
<< " m_audioDeviceName: " << settings.m_audioDeviceName
|
||||||
|
<< " m_anf: "<< settings.m_anf
|
||||||
<< " m_dnr: " << settings.m_dnr
|
<< " m_dnr: " << settings.m_dnr
|
||||||
<< " m_nrScheme: " << settings.m_nrScheme
|
<< " m_nrScheme: " << settings.m_nrScheme
|
||||||
<< " m_nrPosition: "<< settings.m_nrPosition
|
<< " m_nrPosition: "<< settings.m_nrPosition
|
||||||
@ -547,11 +549,6 @@ void WDSPRxSink::applySettings(const WDSPRxSettings& settings, bool force)
|
|||||||
WDSP::ANF::SetANFRun(*m_rxa, settings.m_anf ? 1 : 0);
|
WDSP::ANF::SetANFRun(*m_rxa, settings.m_anf ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Caution: Causes corruption
|
|
||||||
if ((m_settings.m_snb != settings.m_snb) || force) {
|
|
||||||
WDSP::SNBA::SetSNBARun(*m_rxa, settings.m_snb ? 1 : 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// CW Peaking
|
// CW Peaking
|
||||||
|
|
||||||
if ((m_settings.m_cwPeaking != settings.m_cwPeaking) || force) {
|
if ((m_settings.m_cwPeaking != settings.m_cwPeaking) || force) {
|
||||||
|
Loading…
Reference in New Issue
Block a user