#define MODE_1400_V0_91 0 // Legacy 1400 from Dec 2012 V0.91 release with incorrect QPSK mapping
#define MODE_1400 1 // 1400 bit/s codec, no FEC
-#define MODE_1600 2 // 1600 bit/s codec, no FEC
+#define MODE_1600 2 // 1300 bit/s codec, + 300 bit/s FEC
#define MODE_2000 3 // 1400 bit/s codec, 600 bit/s FEC on most sensitive bits, 2000 bit/s total
+#define MODE_1600_WIDE 4 // As per 2 but wide carrier spacing
+
+#define FSEP_WIDE 125
#endif //__FDMDV2_DEFINES__
codec2_mode = CODEC2_MODE_1400;
}
-#ifdef DISABLED_FEATURE
- if (m_rb1400->GetValue()) {
- g_mode = MODE_1400;
- g_Nc = 14;
- codec2_mode = CODEC2_MODE_1400;
- }
-#endif
if (m_rb1600->GetValue()) {
g_mode = MODE_1600;
g_Nc = 16;
codec2_mode = CODEC2_MODE_1300;
}
+ if (m_rb1600Wide->GetValue()) {
+ g_mode = MODE_1600_WIDE;
+ g_Nc = 16;
+ codec2_mode = CODEC2_MODE_1300;
+ }
#ifdef DISABLED_FEATURE
+ if (m_rb1400->GetValue()) {
+ g_mode = MODE_1400;
+ g_Nc = 14;
+ codec2_mode = CODEC2_MODE_1400;
+ }
if (m_rb2000->GetValue()) {
g_mode = MODE_2000;
g_Nc = 20;
if (g_mode == MODE_1400_V0_91)
fdmdv_use_old_qpsk_mapping(g_pFDMDV);
+ if (g_mode == MODE_1600_WIDE)
+ fdmdv_set_fsep(g_pFDMDV, FSEP_WIDE);
// adjust scatter diagram for Number of FDM carriers
}
}
- if (g_mode == MODE_1600) {
+ if ((g_mode == MODE_1600) || (g_mode == MODE_1600_WIDE)) {
int recd_codeword, codeword1, j;
recd_codeword = 0;
assert(i <= 2*bits_per_fdmdv_frame);
}
- if (g_mode == MODE_1600) {
+ if ((g_mode == MODE_1600) || (g_mode == MODE_1600_WIDE)) {
int data, codeword1;
/* Protect first 12 out of first 16 excitation bits with (23,12) Golay Code:
#endif
m_rb1600 = new wxRadioButton( this, wxID_ANY, wxT("1600"), wxDefaultPosition, wxDefaultSize, 0);
sbSizer_mode->Add(m_rb1600, 0, wxALIGN_LEFT|wxALL, 1);
+ m_rb1600Wide = new wxRadioButton( this, wxID_ANY, wxT("1600 Wide"), wxDefaultPosition, wxDefaultSize, 0);
+ sbSizer_mode->Add(m_rb1600Wide, 0, wxALIGN_LEFT|wxALL, 1);
#ifdef DISABLED_FEATURE
m_rb2000 = new wxRadioButton( this, wxID_ANY, wxT("2000"), wxDefaultPosition, wxDefaultSize, 0);
sbSizer_mode->Add(m_rb2000, 0, wxALIGN_LEFT|wxALL, 1);
wxRadioButton *m_rb1400;
wxRadioButton *m_rb1600;
wxRadioButton *m_rb2000;
+ wxRadioButton *m_rb1600Wide;
// Virtual event handlers, overide them in your derived class
virtual void topFrame_OnClose( wxCloseEvent& event ) { event.Skip(); }
#ifndef FREEDV_VER_DOT_H
#define FREEDV_VER_DOT_H 1
-#define FREEDV_VERSION "0.96 Beta"
+#define FREEDV_VERSION "0.961 Beta"
#endif //FREEDV_VER_DOT_H