Merge pull request #283 from drowe67/ms-remove-dpsk
Remove unnecessary BW and DPSK options from UI.pull/288/head
commit
c131a898d4
|
@ -418,13 +418,6 @@ FMA - Supports FMA extensions using YMM state</code></pre>
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 id="ofdm-modem-phase-estimator-options-experimental"><span class="header-section-number">9.2.2</span> OFDM Modem Phase Estimator Options (Experimental)</h3>
|
||||
<p>These options apply to the FreeDV 700D and 2020 modes that use the OFDM modem:</p>
|
||||
<ol type="1">
|
||||
<li><p>The High Bandwidth option gives better performance on channels where the phase changes quickly, for example fast fading HF channels and the Es’Hail 2 satellite. When unchecked, the phase estimator bandwidth is automatically selected. It starts off high to enable fast sync, then switches to low bandwidth to optimise performance for low SNR HF channels.</p></li>
|
||||
<li><p>The DPSK (differential PSK) checkbox has a similar effect - better performance on High SNR channels where the phase changes rapidly. This option converts the OFDM modem to use differential PSK rather than coherent PSK. DPSK is used by earlier FreeDV modes such as FreeDV 1600. It affects the Tx and Rx side, so both sides must select DPSK.</p></li>
|
||||
</ol>
|
||||
<p>If you have problems with 700D or 2020 sync even though you have a strong signal - try these options.</p>
|
||||
<h1 id="helping-improve-freedv"><span class="header-section-number">10</span> Helping Improve FreeDV</h1>
|
||||
<p>If you have an interesting test case, for example:</p>
|
||||
<ol type="1">
|
||||
|
@ -589,6 +582,7 @@ FMA - Supports FMA extensions using YMM state</code></pre>
|
|||
<li>Enhancements:
|
||||
<ul>
|
||||
<li>Add alternate method of determining 2020 support for non-x86 machines. (PR #280)</li>
|
||||
<li>Remove unnecessary BW and DPSK options from UI. (PR #283)</li>
|
||||
<li>Stats on left hand side of main window now auto-reset after user-configurable time period (default 10s). (PR #262, #286)</li>
|
||||
</ul></li>
|
||||
</ol>
|
||||
|
|
|
@ -575,16 +575,6 @@ Clipping | Increases the average power. Ensure your transmitter can handle high
|
|||
Tx Band Pass Filter | Reduces Tx spectrum bandwidth
|
||||
Manual Unsync | Forces modem to remain in sync, and not drop sync automatically
|
||||
|
||||
### OFDM Modem Phase Estimator Options (Experimental)
|
||||
|
||||
These options apply to the FreeDV 700D and 2020 modes that use the OFDM modem:
|
||||
|
||||
1. The High Bandwidth option gives better performance on channels where the phase changes quickly, for example fast fading HF channels and the Es'Hail 2 satellite. When unchecked, the phase estimator bandwidth is automatically selected. It starts off high to enable fast sync, then switches to low bandwidth to optimise performance for low SNR HF channels.
|
||||
|
||||
1. The DPSK (differential PSK) checkbox has a similar effect - better performance on High SNR channels where the phase changes rapidly. This option converts the OFDM modem to use differential PSK rather than coherent PSK. DPSK is used by earlier FreeDV modes such as FreeDV 1600. It affects the Tx and Rx side, so both sides must select DPSK.
|
||||
|
||||
If you have problems with 700D or 2020 sync even though you have a strong signal - try these options.
|
||||
|
||||
# Helping Improve FreeDV
|
||||
|
||||
If you have an interesting test case, for example:
|
||||
|
@ -799,8 +789,9 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
|
|||
* Add missed UI disable on startup for 2020B mode. (PR #279)
|
||||
3. Enhancements:
|
||||
* Add alternate method of determining 2020 support for non-x86 machines. (PR #280)
|
||||
* Remove unnecessary BW and DPSK options from UI. (PR #283)
|
||||
* Stats on left hand side of main window now auto-reset after user-configurable time period (default 10s). (PR #262, #286)
|
||||
|
||||
|
||||
## V1.8.3.1 August 2022
|
||||
|
||||
1. Build system:
|
||||
|
|
BIN
USER_MANUAL.pdf
BIN
USER_MANUAL.pdf
Binary file not shown.
|
@ -191,21 +191,6 @@ OptionsDlg::OptionsDlg(wxWindow* parent, wxWindowID id, const wxString& title, c
|
|||
|
||||
sizerModem->Add(sbSizer_freedv700, 0, wxALL|wxEXPAND, 3);
|
||||
|
||||
//------------------------------
|
||||
// Phase Est Options
|
||||
//------------------------------
|
||||
|
||||
wxStaticBoxSizer* sbSizer_freedvPhaseEst;
|
||||
wxStaticBox *sb_freedvPhaseEst = new wxStaticBox(m_modemTab, wxID_ANY, _("OFDM Modem Phase Estimator Options"));
|
||||
sbSizer_freedvPhaseEst = new wxStaticBoxSizer(sb_freedvPhaseEst, wxHORIZONTAL);
|
||||
|
||||
m_ckboxPhaseEstBW = new wxCheckBox(m_modemTab, wxID_ANY, _("High Bandwidth"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
|
||||
sbSizer_freedvPhaseEst->Add(m_ckboxPhaseEstBW, 0, wxALIGN_LEFT, 0);
|
||||
m_ckboxPhaseEstDPSK = new wxCheckBox(m_modemTab, wxID_ANY, _("DPSK"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
|
||||
sbSizer_freedvPhaseEst->Add(m_ckboxPhaseEstDPSK, 0, wxALIGN_LEFT, 0);
|
||||
|
||||
sizerModem->Add(sbSizer_freedvPhaseEst, 0, wxALL|wxEXPAND, 3);
|
||||
|
||||
//------------------------------
|
||||
// Half/Full duplex selection
|
||||
//------------------------------
|
||||
|
@ -431,9 +416,7 @@ OptionsDlg::OptionsDlg(wxWindow* parent, wxWindowID id, const wxString& title, c
|
|||
m_ckboxFreeDV700txClip->MoveBeforeInTabOrder(m_ckboxFreeDV700Combine);
|
||||
m_ckboxFreeDV700Combine->MoveBeforeInTabOrder(m_ckboxFreeDV700txBPF);
|
||||
m_ckboxFreeDV700txBPF->MoveBeforeInTabOrder(m_ckboxFreeDV700ManualUnSync);
|
||||
m_ckboxFreeDV700ManualUnSync->MoveBeforeInTabOrder(m_ckboxPhaseEstBW);
|
||||
m_ckboxPhaseEstBW->MoveBeforeInTabOrder(m_ckboxPhaseEstDPSK);
|
||||
m_ckboxPhaseEstDPSK->MoveBeforeInTabOrder(m_ckHalfDuplex);
|
||||
m_ckboxFreeDV700ManualUnSync->MoveBeforeInTabOrder(m_ckHalfDuplex);
|
||||
m_ckHalfDuplex->MoveBeforeInTabOrder(m_ckboxMultipleRx);
|
||||
m_ckboxMultipleRx->MoveBeforeInTabOrder(m_ckboxSingleRxThread);
|
||||
m_ckboxSingleRxThread->MoveBeforeInTabOrder(m_statsResetTime);
|
||||
|
@ -586,9 +569,6 @@ void OptionsDlg::ExchangeData(int inout, bool storePersistent)
|
|||
m_ckboxFreeDV700Combine->SetValue(wxGetApp().m_FreeDV700Combine);
|
||||
m_ckboxFreeDV700ManualUnSync->SetValue(wxGetApp().m_FreeDV700ManualUnSync);
|
||||
|
||||
m_ckboxPhaseEstBW->SetValue(wxGetApp().m_PhaseEstBW);
|
||||
m_ckboxPhaseEstDPSK->SetValue(wxGetApp().m_PhaseEstDPSK);
|
||||
|
||||
#ifdef __WXMSW__
|
||||
m_ckboxDebugConsole->SetValue(wxGetApp().m_debug_console);
|
||||
#endif
|
||||
|
@ -709,9 +689,6 @@ void OptionsDlg::ExchangeData(int inout, bool storePersistent)
|
|||
wxGetApp().m_FreeDV700Combine = m_ckboxFreeDV700Combine->GetValue();
|
||||
wxGetApp().m_FreeDV700ManualUnSync = m_ckboxFreeDV700ManualUnSync->GetValue();
|
||||
|
||||
wxGetApp().m_PhaseEstBW = m_ckboxPhaseEstBW->GetValue();
|
||||
wxGetApp().m_PhaseEstDPSK = m_ckboxPhaseEstDPSK->GetValue();
|
||||
|
||||
#ifdef __WXMSW__
|
||||
wxGetApp().m_debug_console = m_ckboxDebugConsole->GetValue();
|
||||
#endif
|
||||
|
|
|
@ -114,9 +114,6 @@ class OptionsDlg : public wxDialog
|
|||
wxCheckBox *m_ckboxFreeDV700txBPF;
|
||||
wxCheckBox *m_ckboxFreeDV700Combine;
|
||||
wxCheckBox *m_ckboxFreeDV700ManualUnSync;
|
||||
|
||||
wxCheckBox *m_ckboxPhaseEstBW;
|
||||
wxCheckBox *m_ckboxPhaseEstDPSK;
|
||||
|
||||
wxRadioButton *m_rb_textEncoding1;
|
||||
wxRadioButton *m_rb_textEncoding2;
|
||||
|
|
|
@ -223,14 +223,12 @@ void FreeDVInterface::stop()
|
|||
rxMode_ = 0;
|
||||
}
|
||||
|
||||
void FreeDVInterface::setRunTimeOptions(int clip, int bpf, int phaseEstBW, int phaseEstDPSK)
|
||||
void FreeDVInterface::setRunTimeOptions(int clip, int bpf)
|
||||
{
|
||||
for (auto& dv : dvObjects_)
|
||||
{
|
||||
freedv_set_clip(dv, clip); // 700D/700E
|
||||
freedv_set_tx_bpf(dv, bpf); // 700D/700E
|
||||
freedv_set_phase_est_bandwidth_mode(dv, phaseEstBW); // 700D/2020
|
||||
freedv_set_dpsk(dv, phaseEstDPSK); // 700D/2020
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ public:
|
|||
int getTxMode() const { return txMode_; }
|
||||
bool isRunning() const { return dvObjects_.size() > 0; }
|
||||
bool isModeActive(int mode) const { return std::find(enabledModes_.begin(), enabledModes_.end(), mode) != enabledModes_.end(); }
|
||||
void setRunTimeOptions(int clip, int bpf, int phaseEstBW, int phaseEstDPSK);
|
||||
void setRunTimeOptions(int clip, int bpf);
|
||||
|
||||
const char* getCurrentModeStr() const;
|
||||
bool usingTestFrames() const;
|
||||
|
|
|
@ -521,9 +521,6 @@ void MainFrame::loadConfiguration_()
|
|||
wxGetApp().m_FreeDV700Combine = 1;
|
||||
wxGetApp().m_FreeDV700ManualUnSync = (float)pConfig->Read(wxT("/FreeDV700/manualUnSync"), f);
|
||||
|
||||
wxGetApp().m_PhaseEstBW = (float)pConfig->Read(wxT("/OFDM/PhaseEstBW"), f);
|
||||
wxGetApp().m_PhaseEstDPSK = (float)pConfig->Read(wxT("/OFDM/PhaseEstDPSK"), f);
|
||||
|
||||
wxGetApp().m_noise_snr = (float)pConfig->Read(wxT("/Noise/noise_snr"), 2);
|
||||
|
||||
wxGetApp().m_debug_console = (float)pConfig->Read(wxT("/Debug/console"), f);
|
||||
|
@ -890,8 +887,6 @@ MainFrame::~MainFrame()
|
|||
pConfig->Write(wxT("/Filter/SpkOutEQEnable"), wxGetApp().m_SpkOutEQEnable);
|
||||
|
||||
pConfig->Write(wxT("/FreeDV700/txClip"), wxGetApp().m_FreeDV700txClip);
|
||||
pConfig->Write(wxT("/OFDM/PhaseEstBW"), wxGetApp().m_PhaseEstBW);
|
||||
pConfig->Write(wxT("/OFDM/PhaseEstDPSK"), wxGetApp().m_PhaseEstDPSK);
|
||||
pConfig->Write(wxT("/Noise/noise_snr"), wxGetApp().m_noise_snr);
|
||||
|
||||
pConfig->Write(wxT("/Debug/console"), wxGetApp().m_debug_console);
|
||||
|
@ -1412,9 +1407,7 @@ void MainFrame::OnTimer(wxTimerEvent &evt)
|
|||
// set some run time options (if applicable)
|
||||
freedvInterface.setRunTimeOptions(
|
||||
(int)wxGetApp().m_FreeDV700txClip,
|
||||
(int)wxGetApp().m_FreeDV700txBPF,
|
||||
(int)wxGetApp().m_PhaseEstBW,
|
||||
(int)wxGetApp().m_PhaseEstDPSK);
|
||||
(int)wxGetApp().m_FreeDV700txBPF);
|
||||
|
||||
// Test Frame Bit Error Updates ------------------------------------
|
||||
|
||||
|
|
|
@ -315,9 +315,6 @@ class MainApp : public wxApp
|
|||
bool m_FreeDV700Combine;
|
||||
bool m_FreeDV700ManualUnSync;
|
||||
|
||||
bool m_PhaseEstBW;
|
||||
bool m_PhaseEstDPSK;
|
||||
|
||||
// Noise simulation
|
||||
|
||||
int m_noise_snr;
|
||||
|
|
Loading…
Reference in New Issue