sigProcLib: Constify demodulation functions burst argument.
demodCommon() used to scale input vector in place which changed original data.
That's a bad practice and is not really necessary, so I've changed the code to
scale burst after it's copied to a new vector during a delay operation.
Change-Id: Ic45f71b634e48808356d68925bb9f5783e0bf0d3
diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index eaaae34..4c2222c 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -1253,7 +1253,7 @@
}
}
-signalVector *delayVector(signalVector *in, signalVector *out, float delay)
+signalVector *delayVector(const signalVector *in, signalVector *out, float delay)
{
int whole, index;
float frac;
@@ -2060,7 +2060,7 @@
* the output is downsampled prior to the 1 SPS modulation specific
* stages.
*/
-static signalVector *demodCommon(signalVector &burst, int sps,
+static signalVector *demodCommon(const signalVector &burst, int sps,
complex chan, float toa)
{
signalVector *delay, *dec;
@@ -2068,8 +2068,8 @@
if ((sps != 1) && (sps != 4))
return NULL;
- scaleVector(burst, (complex) 1.0 / chan);
delay = delayVector(&burst, NULL, -toa * (float) sps);
+ scaleVector(*delay, (complex) 1.0 / chan);
if (sps == 1)
return delay;
@@ -2085,7 +2085,7 @@
* 4 SPS (if activated) to minimize distortion through the fractional
* delay filters. Symbol rotation and after always operates at 1 SPS.
*/
-SoftVector *demodGmskBurst(signalVector &rxBurst, int sps,
+SoftVector *demodGmskBurst(const signalVector &rxBurst, int sps,
complex channel, float TOA)
{
SoftVector *bits;
@@ -2114,7 +2114,7 @@
* through the fractional delay filters at 1 SPS renders signal
* nearly unrecoverable.
*/
-SoftVector *demodEdgeBurst(signalVector &burst, int sps,
+SoftVector *demodEdgeBurst(const signalVector &burst, int sps,
complex chan, float toa)
{
SoftVector *bits;
@@ -2138,7 +2138,7 @@
return bits;
}
-SoftVector *demodAnyBurst(signalVector &burst, int sps, complex amp,
+SoftVector *demodAnyBurst(const signalVector &burst, int sps, complex amp,
float toa, CorrType type)
{
if (type == EDGE)