MCPcopy Create free account
hub / github.com/RangeNetworks/openbts / modulateBurstBasic

Function modulateBurstBasic

Transceiver52M/sigProcLib.cpp:736–767  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

734}
735
736static signalVector *modulateBurstBasic(const BitVector &bits,
737 int guard_len, int sps)
738{
739 int burst_len;
740 signalVector *pulse, burst, *shaped;
741 signalVector::iterator burst_itr;
742
743 if (sps == 1)
744 pulse = GSMPulse1->c0;
745 else
746 pulse = GSMPulse->c0;
747
748 burst_len = sps * (bits.size() + guard_len);
749
750 burst = signalVector(burst_len);
751 burst.isRealOnly(true);
752 burst_itr = burst.begin();
753
754 /* Raw bits are not differentially encoded */
755 for (unsigned i = 0; i < bits.size(); i++) {
756 *burst_itr = 2.0 * (bits[i] & 0x01) - 1.0;
757 burst_itr += sps;
758 }
759
760 GMSKRotate(burst, sps);
761 burst.isRealOnly(false);
762
763 /* Single Gaussian pulse approximation shaping */
764 shaped = convolve(&burst, pulse, NULL, START_ONLY);
765
766 return shaped;
767}
768
769/* Assume input bits are not differentially encoded */
770signalVector *modulateBurst(const BitVector &wBurst, int guardPeriodLength,

Callers 1

modulateBurstFunction · 0.85

Calls 6

signalVectorClass · 0.70
GMSKRotateFunction · 0.70
convolveFunction · 0.70
sizeMethod · 0.45
isRealOnlyMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected