aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Transceiver52M/UHDDevice.cpp4
-rw-r--r--Transceiver52M/sigProcLib.cpp19
2 files changed, 16 insertions, 7 deletions
diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp
index 030873c..f63aa56 100644
--- a/Transceiver52M/UHDDevice.cpp
+++ b/Transceiver52M/UHDDevice.cpp
@@ -80,11 +80,11 @@ struct uhd_dev_offset {
#ifdef USE_UHD_3_9
#define B2XX_TIMING_1SPS 1.7153e-4
#define B2XX_TIMING_4SPS 1.1696e-4
-#define B2XX_TIMING_4_4SPS 5.89578e-5
+#define B2XX_TIMING_4_4SPS 6.18462e-5
#else
#define B2XX_TIMING_1SPS 9.9692e-5
#define B2XX_TIMING_4SPS 6.9248e-5
-#define B2XX_TIMING_4_4SPS 4.19034e-5
+#define B2XX_TIMING_4_4SPS 4.52308e-5
#endif
/*
diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index 2182550..6848727 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -935,26 +935,35 @@ static signalVector *mapEdgeSymbols(const BitVector &bits)
return symbols;
}
+/*
+ * EDGE 8-PSK rotate and pulse shape
+ *
+ * Delay the EDGE downlink bursts by one symbol in order to match GMSK pulse
+ * shaping group delay. The difference in group delay arises from the dual
+ * pulse filter combination of the GMSK Laurent represenation whereas 8-PSK
+ * uses a single pulse linear filter.
+ */
static signalVector *shapeEdgeBurst(const signalVector &symbols)
{
- size_t nsyms, nsamps = 625;
+ size_t nsyms, nsamps = 625, sps = 4;
signalVector *burst, *shape;
signalVector::iterator burst_itr;
nsyms = symbols.size();
- if (nsyms * 4 > nsamps)
+ if (nsyms * sps > nsamps)
nsyms = 156;
burst = new signalVector(nsamps, GSMPulse4->c0->size());
- burst_itr = burst->begin();
- for (size_t i = 0; i < nsyms; i++) {
+ /* Delay burst by 1 symbol */
+ burst_itr = burst->begin() + sps;
+ for (size_t i = 0; i < nsyms - 1; i++) {
float phase = i * 3.0f * M_PI / 8.0f;
Complex<float> rot = Complex<float>(cos(phase), sin(phase));
*burst_itr = symbols[i] * rot;
- burst_itr += 4;
+ burst_itr += sps;
}
/* Single Gaussian pulse approximation shaping */