mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-03 13:11:20 -05:00 
			
		
		
		
	DSD demod: rescale demod gain and volume
This commit is contained in:
		
							parent
							
								
									65ec5015df
								
							
						
					
					
						commit
						6e2e8dc2b5
					
				@ -57,7 +57,7 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) :
 | 
			
		||||
	m_config.m_inputFrequencyOffset = 0;
 | 
			
		||||
	m_config.m_rfBandwidth = 10000.0;
 | 
			
		||||
    m_config.m_fmDeviation = 5000.0;
 | 
			
		||||
	m_config.m_demodGain = 100;
 | 
			
		||||
	m_config.m_demodGain = 1.0;
 | 
			
		||||
	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;
 | 
			
		||||
@ -107,8 +107,8 @@ DSDDemod::~DSDDemod()
 | 
			
		||||
void DSDDemod::configure(MessageQueue* messageQueue,
 | 
			
		||||
		Real rfBandwidth,
 | 
			
		||||
		Real fmDeviation,
 | 
			
		||||
		int  demodGain,
 | 
			
		||||
		int  volume,
 | 
			
		||||
		Real demodGain,
 | 
			
		||||
		Real volume,
 | 
			
		||||
		int  baudRate,
 | 
			
		||||
		int  squelchGate,
 | 
			
		||||
		Real squelch,
 | 
			
		||||
@ -182,7 +182,7 @@ void DSDDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
 | 
			
		||||
 | 
			
		||||
            m_magsqCount++;
 | 
			
		||||
 | 
			
		||||
            Real demod = 32768.0f * m_phaseDiscri.phaseDiscriminator(ci) * ((float) m_running.m_demodGain / 100.0f);
 | 
			
		||||
            Real demod = 32768.0f * m_phaseDiscri.phaseDiscriminator(ci) * m_running.m_demodGain;
 | 
			
		||||
            m_sampleCount++;
 | 
			
		||||
 | 
			
		||||
            // AF processing
 | 
			
		||||
@ -414,8 +414,8 @@ bool DSDDemod::handleMessage(const Message& cmd)
 | 
			
		||||
 | 
			
		||||
		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_volume: " << m_config.m_volume / 10.0
 | 
			
		||||
				<< " m_demodGain: " << m_config.m_demodGain
 | 
			
		||||
				<< " m_volume: " << m_config.m_volume
 | 
			
		||||
                << " m_baudRate: " << m_config.m_baudRate
 | 
			
		||||
				<< " m_squelchGate" << m_config.m_squelchGate
 | 
			
		||||
				<< " m_squelch: " << m_config.m_squelch
 | 
			
		||||
@ -483,7 +483,7 @@ void DSDDemod::apply(bool force)
 | 
			
		||||
 | 
			
		||||
    if ((m_config.m_volume != m_running.m_volume) || force)
 | 
			
		||||
    {
 | 
			
		||||
        m_dsdDecoder.setAudioGain(m_config.m_volume / 10.0f);
 | 
			
		||||
        m_dsdDecoder.setAudioGain(m_config.m_volume);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((m_config.m_baudRate != m_running.m_baudRate) || force)
 | 
			
		||||
 | 
			
		||||
@ -71,8 +71,8 @@ public:
 | 
			
		||||
	void configure(MessageQueue* messageQueue,
 | 
			
		||||
			Real rfBandwidth,
 | 
			
		||||
			Real fmDeviation,
 | 
			
		||||
			int  demodGain,
 | 
			
		||||
            int  volume,
 | 
			
		||||
			Real demodGain,
 | 
			
		||||
            Real volume,
 | 
			
		||||
            int  baudRate,
 | 
			
		||||
			int  squelchGate,
 | 
			
		||||
			Real squelch,
 | 
			
		||||
@ -141,8 +141,8 @@ private:
 | 
			
		||||
	public:
 | 
			
		||||
		Real getRFBandwidth() const { return m_rfBandwidth; }
 | 
			
		||||
        Real getFMDeviation() const { return m_fmDeviation; }
 | 
			
		||||
		int  getDemodGain() const { return m_demodGain; }
 | 
			
		||||
        int  getVolume() const { return m_volume; }
 | 
			
		||||
        Real getDemodGain() const { return m_demodGain; }
 | 
			
		||||
        Real getVolume() const { return m_volume; }
 | 
			
		||||
        int  getBaudRate() const { return m_baudRate; }
 | 
			
		||||
		int  getSquelchGate() const { return m_squelchGate; }
 | 
			
		||||
		Real getSquelch() const { return m_squelch; }
 | 
			
		||||
@ -159,8 +159,8 @@ private:
 | 
			
		||||
 | 
			
		||||
		static MsgConfigureDSDDemod* create(Real rfBandwidth,
 | 
			
		||||
                Real fmDeviation,
 | 
			
		||||
				int  demodGain,
 | 
			
		||||
				int  volume,
 | 
			
		||||
                Real demodGain,
 | 
			
		||||
				Real volume,
 | 
			
		||||
				int  baudRate,
 | 
			
		||||
				int  squelchGate,
 | 
			
		||||
				Real squelch,
 | 
			
		||||
@ -200,7 +200,7 @@ private:
 | 
			
		||||
		Real m_rfBandwidth;
 | 
			
		||||
        Real m_fmDeviation;
 | 
			
		||||
		Real m_demodGain;
 | 
			
		||||
		int  m_volume;
 | 
			
		||||
		Real m_volume;
 | 
			
		||||
		int  m_baudRate;
 | 
			
		||||
		int  m_squelchGate;
 | 
			
		||||
		Real m_squelch;
 | 
			
		||||
@ -216,10 +216,10 @@ private:
 | 
			
		||||
        quint16 m_udpPort;
 | 
			
		||||
        bool m_force;
 | 
			
		||||
 | 
			
		||||
		MsgConfigureDSDDemod(int rfBandwidth,
 | 
			
		||||
                int  fmDeviation,
 | 
			
		||||
				int  demodGain,
 | 
			
		||||
				int  volume,
 | 
			
		||||
		MsgConfigureDSDDemod(Real rfBandwidth,
 | 
			
		||||
		        Real fmDeviation,
 | 
			
		||||
		        Real demodGain,
 | 
			
		||||
				Real volume,
 | 
			
		||||
				int  baudRate,
 | 
			
		||||
				int  squelchGate,
 | 
			
		||||
				Real squelch,
 | 
			
		||||
@ -266,8 +266,8 @@ private:
 | 
			
		||||
		qint64 m_inputFrequencyOffset;
 | 
			
		||||
		Real m_rfBandwidth;
 | 
			
		||||
        Real m_fmDeviation;
 | 
			
		||||
		int  m_demodGain;
 | 
			
		||||
		int  m_volume;
 | 
			
		||||
        Real m_demodGain;
 | 
			
		||||
        Real m_volume;
 | 
			
		||||
		int  m_baudRate;
 | 
			
		||||
		int  m_squelchGate;
 | 
			
		||||
		Real m_squelch;
 | 
			
		||||
@ -288,8 +288,8 @@ private:
 | 
			
		||||
			m_inputFrequencyOffset(0),
 | 
			
		||||
			m_rfBandwidth(10000.0),
 | 
			
		||||
            m_fmDeviation(5000.0),
 | 
			
		||||
			m_demodGain(-1),
 | 
			
		||||
			m_volume(-1),
 | 
			
		||||
			m_demodGain(1.0),
 | 
			
		||||
			m_volume(1.0),
 | 
			
		||||
			m_baudRate(4800),
 | 
			
		||||
			m_squelchGate(1),
 | 
			
		||||
			m_squelch(0),
 | 
			
		||||
 | 
			
		||||
@ -409,8 +409,8 @@ void DSDDemodGUI::applySettings(bool force)
 | 
			
		||||
		m_dsdDemod->configure(m_dsdDemod->getInputMessageQueue(),
 | 
			
		||||
			ui->rfBW->value() * 100.0,
 | 
			
		||||
            ui->fmDeviation->value() * 100.0,
 | 
			
		||||
			ui->demodGain->value(),
 | 
			
		||||
			ui->volume->value(),
 | 
			
		||||
			ui->demodGain->value() / 100.0,
 | 
			
		||||
			ui->volume->value() / 10.0,
 | 
			
		||||
			DSDDemodBaudRates::getRate(ui->baudRate->currentIndex()),
 | 
			
		||||
			ui->squelchGate->value(), // in 10ths of ms
 | 
			
		||||
			ui->squelch->value(),
 | 
			
		||||
 | 
			
		||||
@ -33,10 +33,10 @@ void DSDDemodSettings::resetToDefaults()
 | 
			
		||||
    m_inputSampleRate = 96000;
 | 
			
		||||
    m_inputFrequencyOffset = 0;
 | 
			
		||||
    m_rfBandwidth = 10000.0;
 | 
			
		||||
    m_fmDeviation = 5000.0;
 | 
			
		||||
    m_demodGain = 1.0;
 | 
			
		||||
    m_volume = 1.0;
 | 
			
		||||
    m_baudRate = 4800;
 | 
			
		||||
    m_fmDeviation = 5000.0;
 | 
			
		||||
    m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
 | 
			
		||||
    m_squelch = -30.0;
 | 
			
		||||
    m_audioMute = false;
 | 
			
		||||
 | 
			
		||||
@ -26,10 +26,10 @@ struct DSDDemodSettings
 | 
			
		||||
    int m_inputSampleRate;
 | 
			
		||||
    qint64 m_inputFrequencyOffset;
 | 
			
		||||
    Real  m_rfBandwidth;
 | 
			
		||||
    Real  m_fmDeviation;
 | 
			
		||||
    Real  m_demodGain;
 | 
			
		||||
    Real  m_volume;
 | 
			
		||||
    int  m_baudRate;
 | 
			
		||||
    Real  m_fmDeviation;
 | 
			
		||||
    int  m_squelchGate;
 | 
			
		||||
    Real m_squelch;
 | 
			
		||||
    bool m_audioMute;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user