diff --git a/Source/Receiver.cpp b/Source/Receiver.cpp index 6455af1..e47e38b 100644 --- a/Source/Receiver.cpp +++ b/Source/Receiver.cpp @@ -10,7 +10,7 @@ #endif /***************************************************************/ -const uint32_t LPF_OVERSAMPLING = 8; // Arm-Filter: oversampling +const uint32_t LPF_OVERSAMPLING = 16; // Arm-Filter: oversampling const radio_float_t LPF_OMEGA = (radio_float_t)0.48; // Arm-Filter: RC Roll-off const uint32_t RCF_OVERSAMPLING = 16; // RCF_TYPE_POLYPHASE_DISCRETE: oversampling const radio_float_t RCF_ROLLOFF = (radio_float_t)0.35; // RCF_TYPE_POLYPHASE_DISCRETE: RC Roll-off @@ -486,7 +486,6 @@ void Receiver::processBaseband(cpx_t *pIF, uint32_t len) if (RCF_TYPE == RCF_TYPE_POLYPHASE_DISCRETE) { -// IQ_mf = PolyPhaseCpxIpInterpolate(m_pPolyphaseInterpolator, !TimingCorrectorIsStuff(&m_timing_corrector), TimingCorrectorGetMu(&m_timing_corrector)); ComplexScalar __IQ_mf = m_polyPhase.process(TimingCorrectorGetMu(&m_timing_corrector), !TimingCorrectorIsStuff(&m_timing_corrector)); IQ_mf = toCpx(__IQ_mf); } @@ -651,6 +650,7 @@ void Receiver::processBaseband(cpx_t *pIF, uint32_t len) { m_trackers[i] = CpxAddS(CpxScaleRealS(m_trackers[i], 0.995f), CpxScaleRealS(m_trackers_[i], 0.005f)); } + // Statistics SlidingVarProcess(&m_statistics.I_MF, IQ_mf.real); SlidingVarProcess(&m_statistics.Q_MF, IQ_mf.imag); @@ -734,7 +734,7 @@ void Receiver::initFilterRcf() if (RCF_TYPE == RCF_TYPE_POLYPHASE_DISCRETE) { - m_log.log("Calculating %d-tap %d-phase SRRC matched Filter (total %d coefficients)",nrcf, RCF_NUM_PHASES, nrcf*RCF_NUM_PHASES); + printf("Calculating %d-tap %d-phase SRRC matched Filter (total %d coefficients)\n",nrcf, RCF_NUM_PHASES, nrcf*RCF_NUM_PHASES); m_polyPhase.init(NUM_BASEBAND_SAMPLES_PER_SYM, (radio_float_t)NUM_BASEBAND_SAMPLES_PER_SYM, RCF_ROLLOFF, nrcf, RCF_NUM_PHASES); } @@ -759,10 +759,10 @@ void Receiver::initFilterArm() coefArm = new RealScalar[narm]; // FIR Arm filters - m_log.log("Calculating %d-tap Arm LP-Filter fc = %g Hz",narm, NUM_PASSBAND_SAMPLES_PER_SYM*LPF_OMEGA*m_params.symbolrate); + printf("Calculating %d-tap Arm LP-Filter fc = %g Hz\n",narm, NUM_PASSBAND_SAMPLES_PER_SYM*LPF_OMEGA*m_params.symbolrate); FIRCalcLowpass((radio_float_t)(NUM_PASSBAND_SAMPLES_PER_SYM*LPF_OMEGA*m_params.symbolrate/m_params.samplerate), coefArm, narm); -// m_log.log("Calculating %d-tap Arm BP-Filter fc = %g Hz, bw=%g Hz",m_narm, m_params.symbolrate, 4*m_params.symbolrate/3); -// FIRCalcBandpass((radio_float_t)(m_params.symbolrate/m_params.samplerate), 4*(m_params.symbolrate/m_params.samplerate)/3, m_coefArm, m_narm); +// printf("Calculating %d-tap Arm BP-Filter fc = %g Hz, bw=%g Hz\n",narm, m_params.symbolrate, 4*m_params.symbolrate/3); +// FIRCalcBandpass((radio_float_t)(m_params.symbolrate/m_params.samplerate), 4*(m_params.symbolrate/m_params.samplerate)/3, coefArm, narm); down = (uint32_t)(m_params.samplerate/(2*m_params.symbolrate) + 0.5); m_firArmDown.init(down, coefArm, narm); diff --git a/Source/Receiver.h b/Source/Receiver.h index f2768e2..8e90bcb 100644 --- a/Source/Receiver.h +++ b/Source/Receiver.h @@ -30,7 +30,7 @@ using namespace Radio; #define EQ_ENABLE 1 #define MODULATION_TYPE MAP_MODE_QAM -#define RCF_TYPE RCF_TYPE_POLYPHASE_DISCRETE +#define RCF_TYPE RCF_TYPE_POLYPHASE_FARROW #define MAX_NUMBITS_PERSYM 16 // --------------------------------------------------- enum eq_mode