1
0
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:
f4exb 2017-10-03 22:49:30 +02:00
parent 878871e120
commit 65ec5015df
3 changed files with 24 additions and 24 deletions

View File

@ -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);

View File

@ -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),

View File

@ -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()),