mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-04 06:07:49 -04: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_inputSampleRate = 96000;
|
||||||
m_config.m_inputFrequencyOffset = 0;
|
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_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_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_squelch = -30.0;
|
||||||
m_config.m_volume = 1.0;
|
m_config.m_volume = 1.0;
|
||||||
@ -105,8 +105,8 @@ DSDDemod::~DSDDemod()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DSDDemod::configure(MessageQueue* messageQueue,
|
void DSDDemod::configure(MessageQueue* messageQueue,
|
||||||
int rfBandwidth,
|
Real rfBandwidth,
|
||||||
int fmDeviation,
|
Real fmDeviation,
|
||||||
int demodGain,
|
int demodGain,
|
||||||
int volume,
|
int volume,
|
||||||
int baudRate,
|
int baudRate,
|
||||||
@ -125,8 +125,8 @@ void DSDDemod::configure(MessageQueue* messageQueue,
|
|||||||
bool force)
|
bool force)
|
||||||
{
|
{
|
||||||
Message* cmd = MsgConfigureDSDDemod::create(rfBandwidth,
|
Message* cmd = MsgConfigureDSDDemod::create(rfBandwidth,
|
||||||
demodGain,
|
|
||||||
fmDeviation,
|
fmDeviation,
|
||||||
|
demodGain,
|
||||||
volume,
|
volume,
|
||||||
baudRate,
|
baudRate,
|
||||||
squelchGate,
|
squelchGate,
|
||||||
@ -412,9 +412,9 @@ bool DSDDemod::handleMessage(const Message& cmd)
|
|||||||
|
|
||||||
apply();
|
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_demodGain: " << m_config.m_demodGain / 100.0
|
||||||
<< " m_fmDeviation: " << m_config.m_fmDeviation * 100
|
|
||||||
<< " m_volume: " << m_config.m_volume / 10.0
|
<< " m_volume: " << m_config.m_volume / 10.0
|
||||||
<< " m_baudRate: " << m_config.m_baudRate
|
<< " m_baudRate: " << m_config.m_baudRate
|
||||||
<< " m_squelchGate" << m_config.m_squelchGate
|
<< " 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_config.m_rfBandwidth != m_running.m_rfBandwidth) || force)
|
||||||
{
|
{
|
||||||
m_settingsMutex.lock();
|
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_interpolatorDistanceRemain = 0;
|
||||||
m_interpolatorDistance = (Real) m_config.m_inputSampleRate / (Real) m_config.m_audioSampleRate;
|
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);
|
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 setScopeSink(BasebandSampleSink* sampleSink) { m_scope = sampleSink; }
|
||||||
|
|
||||||
void configure(MessageQueue* messageQueue,
|
void configure(MessageQueue* messageQueue,
|
||||||
int rfBandwidth,
|
Real rfBandwidth,
|
||||||
int fmDeviation,
|
Real fmDeviation,
|
||||||
int demodGain,
|
int demodGain,
|
||||||
int volume,
|
int volume,
|
||||||
int baudRate,
|
int baudRate,
|
||||||
@ -139,9 +139,9 @@ private:
|
|||||||
MESSAGE_CLASS_DECLARATION
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
public:
|
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 getDemodGain() const { return m_demodGain; }
|
||||||
int getFMDeviation() const { return m_fmDeviation; }
|
|
||||||
int getVolume() const { return m_volume; }
|
int getVolume() const { return m_volume; }
|
||||||
int getBaudRate() const { return m_baudRate; }
|
int getBaudRate() const { return m_baudRate; }
|
||||||
int getSquelchGate() const { return m_squelchGate; }
|
int getSquelchGate() const { return m_squelchGate; }
|
||||||
@ -157,9 +157,9 @@ private:
|
|||||||
const QString& getUDPAddress() const { return m_udpAddress; }
|
const QString& getUDPAddress() const { return m_udpAddress; }
|
||||||
quint16 getUDPPort() const { return m_udpPort; }
|
quint16 getUDPPort() const { return m_udpPort; }
|
||||||
|
|
||||||
static MsgConfigureDSDDemod* create(int rfBandwidth,
|
static MsgConfigureDSDDemod* create(Real rfBandwidth,
|
||||||
|
Real fmDeviation,
|
||||||
int demodGain,
|
int demodGain,
|
||||||
int fmDeviation,
|
|
||||||
int volume,
|
int volume,
|
||||||
int baudRate,
|
int baudRate,
|
||||||
int squelchGate,
|
int squelchGate,
|
||||||
@ -177,8 +177,8 @@ private:
|
|||||||
bool force)
|
bool force)
|
||||||
{
|
{
|
||||||
return new MsgConfigureDSDDemod(rfBandwidth,
|
return new MsgConfigureDSDDemod(rfBandwidth,
|
||||||
demodGain,
|
|
||||||
fmDeviation,
|
fmDeviation,
|
||||||
|
demodGain,
|
||||||
volume,
|
volume,
|
||||||
baudRate,
|
baudRate,
|
||||||
squelchGate,
|
squelchGate,
|
||||||
@ -198,8 +198,8 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Real m_rfBandwidth;
|
Real m_rfBandwidth;
|
||||||
|
Real m_fmDeviation;
|
||||||
Real m_demodGain;
|
Real m_demodGain;
|
||||||
int m_fmDeviation;
|
|
||||||
int m_volume;
|
int m_volume;
|
||||||
int m_baudRate;
|
int m_baudRate;
|
||||||
int m_squelchGate;
|
int m_squelchGate;
|
||||||
@ -217,8 +217,8 @@ private:
|
|||||||
bool m_force;
|
bool m_force;
|
||||||
|
|
||||||
MsgConfigureDSDDemod(int rfBandwidth,
|
MsgConfigureDSDDemod(int rfBandwidth,
|
||||||
int demodGain,
|
|
||||||
int fmDeviation,
|
int fmDeviation,
|
||||||
|
int demodGain,
|
||||||
int volume,
|
int volume,
|
||||||
int baudRate,
|
int baudRate,
|
||||||
int squelchGate,
|
int squelchGate,
|
||||||
@ -236,8 +236,8 @@ private:
|
|||||||
bool force) :
|
bool force) :
|
||||||
Message(),
|
Message(),
|
||||||
m_rfBandwidth(rfBandwidth),
|
m_rfBandwidth(rfBandwidth),
|
||||||
m_demodGain(demodGain),
|
|
||||||
m_fmDeviation(fmDeviation),
|
m_fmDeviation(fmDeviation),
|
||||||
|
m_demodGain(demodGain),
|
||||||
m_volume(volume),
|
m_volume(volume),
|
||||||
m_baudRate(baudRate),
|
m_baudRate(baudRate),
|
||||||
m_squelchGate(squelchGate),
|
m_squelchGate(squelchGate),
|
||||||
@ -264,11 +264,11 @@ private:
|
|||||||
struct Config {
|
struct Config {
|
||||||
int m_inputSampleRate;
|
int m_inputSampleRate;
|
||||||
qint64 m_inputFrequencyOffset;
|
qint64 m_inputFrequencyOffset;
|
||||||
int m_rfBandwidth;
|
Real m_rfBandwidth;
|
||||||
|
Real m_fmDeviation;
|
||||||
int m_demodGain;
|
int m_demodGain;
|
||||||
int m_volume;
|
int m_volume;
|
||||||
int m_baudRate;
|
int m_baudRate;
|
||||||
int m_fmDeviation;
|
|
||||||
int m_squelchGate;
|
int m_squelchGate;
|
||||||
Real m_squelch;
|
Real m_squelch;
|
||||||
bool m_audioMute;
|
bool m_audioMute;
|
||||||
@ -286,11 +286,11 @@ private:
|
|||||||
Config() :
|
Config() :
|
||||||
m_inputSampleRate(-1),
|
m_inputSampleRate(-1),
|
||||||
m_inputFrequencyOffset(0),
|
m_inputFrequencyOffset(0),
|
||||||
m_rfBandwidth(-1),
|
m_rfBandwidth(10000.0),
|
||||||
|
m_fmDeviation(5000.0),
|
||||||
m_demodGain(-1),
|
m_demodGain(-1),
|
||||||
m_volume(-1),
|
m_volume(-1),
|
||||||
m_baudRate(4800),
|
m_baudRate(4800),
|
||||||
m_fmDeviation(1),
|
|
||||||
m_squelchGate(1),
|
m_squelchGate(1),
|
||||||
m_squelch(0),
|
m_squelch(0),
|
||||||
m_audioMute(false),
|
m_audioMute(false),
|
||||||
|
@ -407,8 +407,8 @@ void DSDDemodGUI::applySettings(bool force)
|
|||||||
ui->tdmaStereoSplit->setChecked(m_tdmaStereo);
|
ui->tdmaStereoSplit->setChecked(m_tdmaStereo);
|
||||||
|
|
||||||
m_dsdDemod->configure(m_dsdDemod->getInputMessageQueue(),
|
m_dsdDemod->configure(m_dsdDemod->getInputMessageQueue(),
|
||||||
ui->rfBW->value(),
|
ui->rfBW->value() * 100.0,
|
||||||
ui->fmDeviation->value(),
|
ui->fmDeviation->value() * 100.0,
|
||||||
ui->demodGain->value(),
|
ui->demodGain->value(),
|
||||||
ui->volume->value(),
|
ui->volume->value(),
|
||||||
DSDDemodBaudRates::getRate(ui->baudRate->currentIndex()),
|
DSDDemodBaudRates::getRate(ui->baudRate->currentIndex()),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user