22 #ifndef INCLUDE_INTHALFBANDFILTER_ST_H 23 #define INCLUDE_INTHALFBANDFILTER_ST_H 31 template<u
int32_t HBFilterOrder>
402 storeSample(*x2, *y2);
420 storeSample(*x1, *y1);
443 m_samplesDB[m_ptr][0] = sampleI;
444 m_samplesDB[m_ptr][1] = sampleQ;
445 m_samplesDB[m_ptr + m_size][0] = sampleI;
446 m_samplesDB[m_ptr + m_size][1] = sampleQ;
451 m_samplesDB[m_ptr][0] = x;
452 m_samplesDB[m_ptr][1] = y;
453 m_samplesDB[m_ptr + m_size][0] = x;
454 m_samplesDB[m_ptr + m_size][1] = y;
459 m_ptr = m_ptr + 1 < m_size ? m_ptr + 1: 0;
466 if ((m_ptr % 2) == 1)
482 int a = m_ptr + m_size;
485 for (
int i = 0; i < HBFIRFilterTraits<HBFilterOrder>::hbOrder / 4;
i++)
514 if ((m_ptr % 2) == 1)
531 int a = m_ptr + m_size;
534 for (
int i = 0; i < HBFIRFilterTraits<HBFilterOrder>::hbOrder / 4;
i++)
550 *y = m_qEvenAcc >> HBFIRFilterTraits<HBFilterOrder>::hbShift -1;
555 *y = m_qOddAcc >> HBFIRFilterTraits<HBFilterOrder>::hbShift -1;
560 template<u
int32_t HBFilterOrder>
565 for (
int i = 0;
i < m_size;
i++)
567 m_samplesDB[
i][0] = 0;
568 m_samplesDB[
i][1] = 0;
579 #endif // INCLUDE_INTHALFBANDFILTER_DB_H void doFIR(Sample *sample)
bool workInterpolateUpperHalf(Sample *sampleIn, Sample *sampleOut)
void doFIR(int32_t *x, int32_t *y)
void storeSample(const FixReal &sampleI, const FixReal &sampleQ)
bool workInterpolateLowerHalf(Sample *sampleIn, Sample *sampleOut)
bool workDecimateCenter(Sample *sample)
bool workDecimateUpperHalf(Sample *sample)
void myDecimate(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2)
bool workDecimateLowerHalf(Sample *sample)
bool workDecimateCenter(int32_t *x, int32_t *y)
bool workInterpolateCenter(Sample *sampleIn, Sample *SampleOut)
void myInterpolate(Sample *sample1, Sample *sample2)
static void workNA(int ptr, int32_t samples[HBFilterOrder *2][2], int32_t &iEvenAcc, int32_t &qEvenAcc, int32_t &iOddAcc, int32_t &qOddAcc)
void myDecimate(const Sample *sample1, Sample *sample2)
void myInterpolate(int32_t *x1, int32_t *y1, int32_t *x2, int32_t *y2)
void storeSample(int32_t x, int32_t y)