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

pull/162/head
f4exb 2018-04-01 09:33:08 +02:00
rodzic 4c31b2c59d
commit a447193bd7
11 zmienionych plików z 44 dodań i 26 usunięć

Wyświetl plik

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

Wyświetl plik

@ -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
Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -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.

Wyświetl plik

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

Wyświetl plik

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