Transceiver52M: Setup dual sample rate transceiver

This patch applies oversampling, when selected with 4 sps,
to the downlink only, while running the receiver with
minimal sampling at 1 sps. These split sample rates allow
us to run a highly accurate downlink signal with minimal
distortion, while keeping receive path channel filtering
on the FPGA.

Without this patch, we oversample the receive path and
require a steep receive filter to get similar adjacent
channel suppression as the FPGA halfband / CIC filter
combination, which comes with a high computational cost.

Signed-off-by: Thomas Tsou <tom@tsou.cc>

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6747 19bc5d8c-e614-43d4-8b26-e1612bc8e597
This commit is contained in:
Thomas Tsou
2013-10-17 06:19:05 +00:00
parent 8652b22386
commit 22bc28edc4
10 changed files with 229 additions and 162 deletions

View File

@@ -23,8 +23,6 @@
/** samples per GSM symbol */
#define SAMPSPERSYM 4
#define INCHUNK (625)
#define OUTCHUNK (625)
/** class to interface the transceiver with the USRP */
class RadioInterface {
@@ -36,7 +34,9 @@ protected:
VectorFIFO mReceiveFIFO; ///< FIFO that holds receive bursts
RadioDevice *mRadio; ///< the USRP object
int mSPSTx;
int mSPSRx;
signalVector *sendBuffer;
signalVector *recvBuffer;
unsigned sendCursor;
@@ -52,7 +52,6 @@ protected:
RadioClock mClock; ///< the basestation clock!
int sps; ///< samples per GSM symbol
int receiveOffset; ///< offset b/w transmit and receive GSM timestamps, in timeslots
bool mOn; ///< indicates radio is on