From 6cb7498e64fb34dcc9a45ea57515016e22485eda Mon Sep 17 00:00:00 2001 From: Tom Tsou Date: Fri, 23 Jan 2015 19:03:13 -0800 Subject: [PATCH] TransceiverUHD: Correct receive RRC pulse shaping filter bandwidth Existing implementation was using the same RRC prototype filter on transmit and receive filterbanks. But, the receive input from the device is 6.25 Msps vs 3.84 Msps, which leads to wider RRC filter bandwidth than specified and excess noise being present in the signal. Correct by scaling the time domain pulse by a factor of 384/625 to obtain the appropriate pulse shape. Signed-off-by: Tom Tsou --- TransceiverUHD/RadioInterface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TransceiverUHD/RadioInterface.cpp b/TransceiverUHD/RadioInterface.cpp index 65b2420..50d3b1b 100644 --- a/TransceiverUHD/RadioInterface.cpp +++ b/TransceiverUHD/RadioInterface.cpp @@ -139,7 +139,8 @@ RadioInterface::~RadioInterface(void) bool RadioInterface::init() { dnsampler = new Resampler(RESAMP_INRATE, RESAMP_OUTRATE, RESAMP_TAP_LEN); - if (!dnsampler->init(Resampler::FILTER_TYPE_RRC)) { + if (!dnsampler->init(Resampler::FILTER_TYPE_RRC, + (float) RESAMP_INRATE / (float) RESAMP_OUTRATE)) { LOG(ALERT) << "Rx resampler failed to initialize"; return false; }