1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-22 08:04:49 -05:00

DSD demod: make FM deviation independent of RF bandwidth. Bumped version to 3.14.1

This commit is contained in:
f4exb 2018-04-01 09:33:08 +02:00
parent 4c31b2c59d
commit a447193bd7
11 changed files with 44 additions and 26 deletions

View File

@ -35,7 +35,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
*/
QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangel");
QCoreApplication::setApplicationVersion("3.14.0");
QCoreApplication::setApplicationVersion("3.14.1");
#if 1
qApp->setStyle(QStyleFactory::create("fusion"));

View File

@ -56,7 +56,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangelSrv");
QCoreApplication::setApplicationVersion("3.14.0");
QCoreApplication::setApplicationVersion("3.14.1");
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));

8
debian/changelog vendored
View File

@ -1,3 +1,11 @@
sdrangel (3.14.1-1) unstable; urgency=medium
* NFM: fixed lowpass filter initialization (CTCSS)
* DSD demod: set FM deviation independent from RF bandwidth
* DSD demod: implemented DMR negative with DSDcc v1.7.5
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Sun, 01 Apr 2018 12:14:18 +0200
sdrangel (3.14.0-1) unstable; urgency=medium
* New audio devices management

View File

@ -456,13 +456,13 @@ void DSDDemod::applySettings(const DSDDemodSettings& settings, bool force)
m_interpolator.create(16, m_inputSampleRate, (settings.m_rfBandwidth) / 2.2);
m_interpolatorDistanceRemain = 0;
m_interpolatorDistance = (Real) m_inputSampleRate / (Real) 48000;
m_phaseDiscri.setFMScaling((float) settings.m_rfBandwidth / (float) settings.m_fmDeviation);
//m_phaseDiscri.setFMScaling((float) settings.m_rfBandwidth / (float) settings.m_fmDeviation);
m_settingsMutex.unlock();
}
if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force)
{
m_phaseDiscri.setFMScaling((float) settings.m_rfBandwidth / (float) settings.m_fmDeviation);
m_phaseDiscri.setFMScaling(48000.0f / (2.0f*settings.m_fmDeviation));
}
if ((settings.m_squelchGate != m_settings.m_squelchGate) || force)

View File

@ -135,7 +135,7 @@ void DSDDemodGUI::on_demodGain_valueChanged(int value)
void DSDDemodGUI::on_fmDeviation_valueChanged(int value)
{
m_settings.m_fmDeviation = value * 100.0;
ui->fmDeviationText->setText(QString("%1k").arg(value / 10.0, 0, 'f', 1));
ui->fmDeviationText->setText(QString("%1%2k").arg(QChar(0xB1, 0x00)).arg(value / 10.0, 0, 'f', 1));
applySettings();
}
@ -384,7 +384,7 @@ void DSDDemodGUI::displaySettings()
ui->rfBWText->setText(QString("%1k").arg(ui->rfBW->value() / 10.0, 0, 'f', 1));
ui->fmDeviation->setValue(m_settings.m_fmDeviation / 100.0);
ui->fmDeviationText->setText(QString("%1k").arg(ui->fmDeviation->value() / 10.0, 0, 'f', 1));
ui->fmDeviationText->setText(QString("%1%2k").arg(QChar(0xB1, 0x00)).arg(ui->fmDeviation->value() / 10.0, 0, 'f', 1));
ui->squelch->setValue(m_settings.m_squelch * 10.0);
ui->squelchText->setText(QString("%1").arg(ui->squelch->value() / 10.0, 0, 'f', 1));

View File

@ -827,7 +827,7 @@
<rect>
<x>50</x>
<y>107</y>
<width>151</width>
<width>141</width>
<height>16</height>
</rect>
</property>
@ -835,13 +835,16 @@
<string>Maximum frequency deviation (kHz)</string>
</property>
<property name="maximum">
<number>500</number>
<number>100</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>35</number>
</property>
<property name="sliderPosition">
<number>50</number>
<number>35</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -863,20 +866,20 @@
<widget class="QLabel" name="fmDeviationText">
<property name="geometry">
<rect>
<x>210</x>
<x>200</x>
<y>100</y>
<width>40</width>
<width>50</width>
<height>29</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>40</width>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>00.0k</string>
<string>+00.0k</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -900,7 +903,7 @@
<rect>
<x>50</x>
<y>137</y>
<width>151</width>
<width>141</width>
<height>16</height>
</rect>
</property>
@ -917,7 +920,7 @@
<number>50</number>
</property>
<property name="maximum">
<number>400</number>
<number>200</number>
</property>
<property name="pageStep">
<number>1</number>
@ -1054,15 +1057,15 @@
<widget class="QLabel" name="demodGainText">
<property name="geometry">
<rect>
<x>210</x>
<x>200</x>
<y>130</y>
<width>40</width>
<width>50</width>
<height>29</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>35</width>
<width>50</width>
<height>0</height>
</size>
</property>

View File

@ -25,7 +25,7 @@
const PluginDescriptor DSDDemodPlugin::m_pluginDescriptor = {
QString("DSD Demodulator"),
QString("3.14.0"),
QString("3.14.1"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,

View File

@ -32,8 +32,8 @@ void DSDDemodSettings::resetToDefaults()
{
m_inputFrequencyOffset = 0;
m_rfBandwidth = 12500.0;
m_fmDeviation = 5000.0;
m_demodGain = 1.25;
m_fmDeviation = 3500.0;
m_demodGain = 1.0;
m_volume = 2.0;
m_baudRate = 4800;
m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack

View File

@ -273,7 +273,7 @@ This display shows the sampled points of the demodulated FM signal in a XY plane
- X as the signal at time t and Y the signal at time t minus symbol time if "transitions constellation" is selected by button (B.13)
- X as the signal and Y as the synchronization signal if "symbol synchronization" is selected by button (B.13)
The display shows 16 points as yellow crosses that can be used to tune the center frequency and FM deviation and gain so that symbol recovery can be done with the best conditions. In the rest of the documentation they will be referenced with numbers fron 0 to 15 starting at the top left corner and going from left to right and top to bottom.
The display shows 16 points as yellow crosses that can be used to tune the center frequency (A.1) and FM deviation (B.17) so that symbol recovery can be done with the best conditions. In the rest of the documentation they will be referenced with numbers fron 0 to 15 starting at the top left corner and going from left to right and top to bottom.
<h5>Transition constellation display</h5>
@ -351,6 +351,8 @@ This can be one of the following:
- `+DMRd`: non-inverted DMR data frame
- `+DMRv`: non-inverted DMR voice frame
- `-DMRd`: inverted DMR data frame
- `-DMRv`: inverted DMR voice frame
- `+D-STAR`: non-inverted D-Star frame
- `-D-STAR`: inverted D-Star frame
- `+D-STAR_HD`: non-inverted D-Star header frame encountered
@ -445,8 +447,13 @@ This button tunes the persistence decay of the points displayer on B.1. The trac
<h4>B.17: Maximum expected FM deviation</h4>
This is the deviation in kHz leading to maximum (100%) deviation. You should aim for 30 to 50% (+/-300 to +/-500m) deviation on the scope display.
This is the one side deviation in kHz (&#177;) leading to maximum (100%) deviation. You should adjust this value to make the figure on the signal scope fill the entire screen as shown in the screenshots above. The typical deviations by mode for a unit gain (1.0 at B.18) are:
- DMR: &#177;5.4k
- dPMR: &#177;2.7k
- D-Star: &#177;3.5k
- YSF: &#177;7.0k
<h4>B.18: Gain after discriminator</h4>
This is the gain applied to the output of the discriminator before the decoder
This is the gain applied to the output of the discriminator before the decoder. Normally this would be set at unit gain 1.0 while the FM deviation is adjusted. However this can be used to extend the range of FM adjustment.

View File

@ -7,7 +7,7 @@
const PluginDescriptor NFMPlugin::m_pluginDescriptor = {
QString("NFM Demodulator"),
QString("3.14.0"),
QString("3.14.1"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,

View File

@ -23,7 +23,7 @@
const PluginDescriptor NFMModPlugin::m_pluginDescriptor = {
QString("NFM Modulator"),
QString("3.12.0"),
QString("3.14.1"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,