diff options
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/UHDDevice.cpp | 4 | ||||
-rw-r--r-- | Transceiver52M/sigProcLib.cpp | 19 |
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 */ |