mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
DSD demod: rescale RF bandwidth and FM deviation
This commit is contained in:
parent
878871e120
commit
65ec5015df
@ -55,9 +55,9 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_config.m_inputSampleRate = 96000;
|
||||
m_config.m_inputFrequencyOffset = 0;
|
||||
m_config.m_rfBandwidth = 100;
|
||||
m_config.m_rfBandwidth = 10000.0;
|
||||
m_config.m_fmDeviation = 5000.0;
|
||||
m_config.m_demodGain = 100;
|
||||
m_config.m_fmDeviation = 100;
|
||||
m_config.m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
|
||||
m_config.m_squelch = -30.0;
|
||||
m_config.m_volume = 1.0;
|
||||
@ -105,8 +105,8 @@ DSDDemod::~DSDDemod()
|
||||
}
|
||||
|
||||
void DSDDemod::configure(MessageQueue* messageQueue,
|
||||
int rfBandwidth,
|
||||
int fmDeviation,
|
||||
Real rfBandwidth,
|
||||
Real fmDeviation,
|
||||
int demodGain,
|
||||
int volume,
|
||||
int baudRate,
|
||||
@ -125,8 +125,8 @@ void DSDDemod::configure(MessageQueue* messageQueue,
|
||||
bool force)
|
||||
{
|
||||
Message* cmd = MsgConfigureDSDDemod::create(rfBandwidth,
|
||||
fmDeviation,
|
||||
demodGain,
|
||||
fmDeviation,
|
||||
volume,
|
||||
baudRate,
|
||||
squelchGate,
|
||||
@ -412,9 +412,9 @@ bool DSDDemod::handleMessage(const Message& cmd)
|
||||
|
||||
apply();
|
||||
|
||||
qDebug() << "DSDDemod::handleMessage: MsgConfigureDSDDemod: m_rfBandwidth: " << m_config.m_rfBandwidth * 100
|
||||
qDebug() << "DSDDemod::handleMessage: MsgConfigureDSDDemod: m_rfBandwidth: " << m_config.m_rfBandwidth
|
||||
<< " m_fmDeviation: " << m_config.m_fmDeviation
|
||||
<< " m_demodGain: " << m_config.m_demodGain / 100.0
|
||||
<< " m_fmDeviation: " << m_config.m_fmDeviation * 100
|
||||
<< " m_volume: " << m_config.m_volume / 10.0
|
||||
<< " m_baudRate: " << m_config.m_baudRate
|
||||
<< " m_squelchGate" << m_config.m_squelchGate
|
||||
@ -456,7 +456,7 @@ void DSDDemod::apply(bool force)
|
||||
(m_config.m_rfBandwidth != m_running.m_rfBandwidth) || force)
|
||||
{
|
||||
m_settingsMutex.lock();
|
||||
m_interpolator.create(16, m_config.m_inputSampleRate, (m_config.m_rfBandwidth * 100) / 2.2);
|
||||
m_interpolator.create(16, m_config.m_inputSampleRate, (m_config.m_rfBandwidth) / 2.2);
|
||||
m_interpolatorDistanceRemain = 0;
|
||||
m_interpolatorDistance = (Real) m_config.m_inputSampleRate / (Real) m_config.m_audioSampleRate;
|
||||
m_phaseDiscri.setFMScaling((float) m_config.m_rfBandwidth / (float) m_config.m_fmDeviation);
|
||||
|
@ -69,8 +69,8 @@ public:
|
||||
void setScopeSink(BasebandSampleSink* sampleSink) { m_scope = sampleSink; }
|
||||
|
||||
void configure(MessageQueue* messageQueue,
|
||||
int rfBandwidth,
|
||||
int fmDeviation,
|
||||
Real rfBandwidth,
|
||||
Real fmDeviation,
|
||||
int demodGain,
|
||||
int volume,
|
||||
int baudRate,
|
||||
@ -139,9 +139,9 @@ private:
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
|
||||
public:
|
||||
int getRFBandwidth() const { return m_rfBandwidth; }
|
||||
Real getRFBandwidth() const { return m_rfBandwidth; }
|
||||
Real getFMDeviation() const { return m_fmDeviation; }
|
||||
int getDemodGain() const { return m_demodGain; }
|
||||
int getFMDeviation() const { return m_fmDeviation; }
|
||||
int getVolume() const { return m_volume; }
|
||||
int getBaudRate() const { return m_baudRate; }
|
||||
int getSquelchGate() const { return m_squelchGate; }
|
||||
@ -157,9 +157,9 @@ private:
|
||||
const QString& getUDPAddress() const { return m_udpAddress; }
|
||||
quint16 getUDPPort() const { return m_udpPort; }
|
||||
|
||||
static MsgConfigureDSDDemod* create(int rfBandwidth,
|
||||
static MsgConfigureDSDDemod* create(Real rfBandwidth,
|
||||
Real fmDeviation,
|
||||
int demodGain,
|
||||
int fmDeviation,
|
||||
int volume,
|
||||
int baudRate,
|
||||
int squelchGate,
|
||||
@ -177,8 +177,8 @@ private:
|
||||
bool force)
|
||||
{
|
||||
return new MsgConfigureDSDDemod(rfBandwidth,
|
||||
fmDeviation,
|
||||
demodGain,
|
||||
fmDeviation,
|
||||
volume,
|
||||
baudRate,
|
||||
squelchGate,
|
||||
@ -198,8 +198,8 @@ private:
|
||||
|
||||
private:
|
||||
Real m_rfBandwidth;
|
||||
Real m_fmDeviation;
|
||||
Real m_demodGain;
|
||||
int m_fmDeviation;
|
||||
int m_volume;
|
||||
int m_baudRate;
|
||||
int m_squelchGate;
|
||||
@ -217,8 +217,8 @@ private:
|
||||
bool m_force;
|
||||
|
||||
MsgConfigureDSDDemod(int rfBandwidth,
|
||||
int fmDeviation,
|
||||
int demodGain,
|
||||
int fmDeviation,
|
||||
int volume,
|
||||
int baudRate,
|
||||
int squelchGate,
|
||||
@ -236,8 +236,8 @@ private:
|
||||
bool force) :
|
||||
Message(),
|
||||
m_rfBandwidth(rfBandwidth),
|
||||
m_fmDeviation(fmDeviation),
|
||||
m_demodGain(demodGain),
|
||||
m_fmDeviation(fmDeviation),
|
||||
m_volume(volume),
|
||||
m_baudRate(baudRate),
|
||||
m_squelchGate(squelchGate),
|
||||
@ -264,11 +264,11 @@ private:
|
||||
struct Config {
|
||||
int m_inputSampleRate;
|
||||
qint64 m_inputFrequencyOffset;
|
||||
int m_rfBandwidth;
|
||||
Real m_rfBandwidth;
|
||||
Real m_fmDeviation;
|
||||
int m_demodGain;
|
||||
int m_volume;
|
||||
int m_baudRate;
|
||||
int m_fmDeviation;
|
||||
int m_squelchGate;
|
||||
Real m_squelch;
|
||||
bool m_audioMute;
|
||||
@ -286,11 +286,11 @@ private:
|
||||
Config() :
|
||||
m_inputSampleRate(-1),
|
||||
m_inputFrequencyOffset(0),
|
||||
m_rfBandwidth(-1),
|
||||
m_rfBandwidth(10000.0),
|
||||
m_fmDeviation(5000.0),
|
||||
m_demodGain(-1),
|
||||
m_volume(-1),
|
||||
m_baudRate(4800),
|
||||
m_fmDeviation(1),
|
||||
m_squelchGate(1),
|
||||
m_squelch(0),
|
||||
m_audioMute(false),
|
||||
|
@ -407,8 +407,8 @@ void DSDDemodGUI::applySettings(bool force)
|
||||
ui->tdmaStereoSplit->setChecked(m_tdmaStereo);
|
||||
|
||||
m_dsdDemod->configure(m_dsdDemod->getInputMessageQueue(),
|
||||
ui->rfBW->value(),
|
||||
ui->fmDeviation->value(),
|
||||
ui->rfBW->value() * 100.0,
|
||||
ui->fmDeviation->value() * 100.0,
|
||||
ui->demodGain->value(),
|
||||
ui->volume->value(),
|
||||
DSDDemodBaudRates::getRate(ui->baudRate->currentIndex()),
|
||||
|
Loading…
Reference in New Issue
Block a user