FreeDV demod: added 700C. More filter fixes

This commit is contained in:
f4exb 2019-02-27 01:56:27 +01:00
parent 7759f9cebc
commit fdbe8a6b59
9 changed files with 32 additions and 11 deletions

View File

@ -454,6 +454,10 @@ void FreeDVDemod::applyFreeDVMode(FreeDVDemodSettings::FreeDVMode mode)
switch(mode)
{
case FreeDVDemodSettings::FreeDVMode700C:
fdv_mode = FREEDV_MODE_700C;
m_scaleFactor = SDR_RX_SCALEF / 3.2f;
break;
case FreeDVDemodSettings::FreeDVMode700D:
fdv_mode = FREEDV_MODE_700D;
m_scaleFactor = SDR_RX_SCALEF / 3.2f;

View File

@ -192,6 +192,11 @@
<string>800XA</string>
</property>
</item>
<item>
<property name="text">
<string>700C</string>
</property>
</item>
<item>
<property name="text">
<string>700D</string>

View File

@ -162,9 +162,10 @@ int FreeDVDemodSettings::getHiCutoff(FreeDVMode freeDVMode)
case FreeDVMode800XA: // C4FM NB
return 2400.0;
break;
case FreeDVMode700C: // OFDM
case FreeDVMode700D: // OFDM
case FreeDVMode1600: // OFDM
return 2200.0;
return 2400.0;
break;
case FreeDVMode2400A: // C4FM WB
default:
@ -180,9 +181,10 @@ int FreeDVDemodSettings::getLowCutoff(FreeDVMode freeDVMode)
case FreeDVMode800XA: // C4FM NB
return 400.0;
break;
case FreeDVMode700C: // OFDM
case FreeDVMode700D: // OFDM
case FreeDVMode1600: // OFDM
return 800.0;
return 600.0;
break;
case FreeDVMode2400A: // C4FM WB
default:

View File

@ -30,7 +30,8 @@ struct FreeDVDemodSettings
FreeDVMode2400A,
FreeDVMode1600,
FreeDVMode800XA,
FreeDVMode700D
FreeDVMode700C,
FreeDVMode700D,
} FreeDVMode;
qint32 m_inputFrequencyOffset;

View File

@ -648,6 +648,10 @@ void FreeDVMod::applyFreeDVMode(FreeDVModSettings::FreeDVMode mode)
switch(mode)
{
case FreeDVModSettings::FreeDVMode700C:
fdv_mode = FREEDV_MODE_700C;
m_scaleFactor = SDR_TX_SCALEF / 3.2f;
break;
case FreeDVModSettings::FreeDVMode700D:
fdv_mode = FREEDV_MODE_700D;
m_scaleFactor = SDR_TX_SCALEF / 3.2f;

View File

@ -114,7 +114,7 @@ bool FreeDVModGUI::handleMessage(const Message& message)
}
else if (DSPConfigureAudio::match(message))
{
qDebug("FreeDVModGUI::handleMessage: DSPConfigureAudio: %d", m_freeDVMod->getAudioSampleRate());
qDebug("FreeDVModGUI::handleMessage: DSPConfigureAudio: %d", m_freeDVMod->getModemSampleRate());
applyBandwidths(5 - ui->spanLog2->value()); // will update spectrum details with new sample rate
return true;
}
@ -464,14 +464,11 @@ void FreeDVModGUI::displaySettings()
// Prevent uncontrolled triggering of applyBandwidths
ui->spanLog2->blockSignals(true);
ui->spanLog2->setValue(5 - m_settings.m_spanLog2);
ui->gaugeInput->setChecked(m_settings.m_gaugeInputElseModem);
QString s = QString::number(m_freeDVMod->getHiCutoff()/1000.0, 'f', 1);
ui->spanLog2->blockSignals(false);
ui->gaugeInput->setChecked(m_settings.m_gaugeInputElseModem);
// The only one of the four signals triggering applyBandwidths will trigger it once only with all other values
// set correctly and therefore validate the settings and apply them to dependent widgets

View File

@ -405,6 +405,11 @@
<string>800XA</string>
</property>
</item>
<item>
<property name="text">
<string>700C</string>
</property>
</item>
<item>
<property name="text">
<string>700D</string>

View File

@ -178,9 +178,10 @@ int FreeDVModSettings::getHiCutoff(FreeDVMode freeDVMode)
case FreeDVModSettings::FreeDVMode800XA: // C4FM NB
return 2400.0;
break;
case FreeDVModSettings::FreeDVMode700C: // OFDM
case FreeDVModSettings::FreeDVMode700D: // OFDM
case FreeDVModSettings::FreeDVMode1600: // OFDM
return 2200.0;
return 2400.0;
break;
case FreeDVModSettings::FreeDVMode2400A: // C4FM WB
default:
@ -196,9 +197,10 @@ int FreeDVModSettings::getLowCutoff(FreeDVMode freeDVMode)
case FreeDVModSettings::FreeDVMode800XA: // C4FM NB
return 400.0;
break;
case FreeDVModSettings::FreeDVMode700C: // OFDM
case FreeDVModSettings::FreeDVMode700D: // OFDM
case FreeDVModSettings::FreeDVMode1600: // OFDM
return 800.0;
return 600.0;
break;
case FreeDVModSettings::FreeDVMode2400A: // C4FM WB
default:

View File

@ -39,6 +39,7 @@ struct FreeDVModSettings
FreeDVMode2400A,
FreeDVMode1600,
FreeDVMode800XA,
FreeDVMode700C,
FreeDVMode700D
} FreeDVMode;