mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-10 10:33:29 -05:00
IQ swap: fixed decimators
This commit is contained in:
parent
c4136c6a44
commit
c8f87d1c87
File diff suppressed because it is too large
Load Diff
@ -49,11 +49,12 @@ public:
|
|||||||
void decimate64_cen(FSampleVector::iterator* it, const float* buf, qint32 nbIAndQ);
|
void decimate64_cen(FSampleVector::iterator* it, const float* buf, qint32 nbIAndQ);
|
||||||
|
|
||||||
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator2; // 1st stages
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator2; // 1st stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator4; // 2nd stages
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, true> m_decimator2s; // 1st stages - straight
|
||||||
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator8; // 3rd stages
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, true> m_decimator4; // 2nd stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator16; // 4th stages
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, true> m_decimator8; // 3rd stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator32; // 5th stages
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, true> m_decimator16; // 4th stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, IQOrder> m_decimator64; // 6th stages
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, true> m_decimator32; // 5th stages
|
||||||
|
IntHalfbandFilterEOF<DECIMATORSFF_HB_FILTER_ORDER, true> m_decimator64; // 6th stages
|
||||||
};
|
};
|
||||||
|
|
||||||
template<bool IQOrder>
|
template<bool IQOrder>
|
||||||
@ -93,10 +94,10 @@ void DecimatorsFF<IQOrder>::decimate8_inf(FSampleVector::iterator* it, const flo
|
|||||||
xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
|
xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
|
||||||
yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
|
yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
|
|
||||||
(**it).setReal(xreal[1]);
|
(**it).setReal(IQOrder ? xreal[1] : yimag[1]);
|
||||||
(**it).setImag(yimag[1]);
|
(**it).setImag(IQOrder ? yimag[1] : xreal[1]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -116,10 +117,10 @@ void DecimatorsFF<IQOrder>::decimate8_sup(FSampleVector::iterator* it, const flo
|
|||||||
xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
|
xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
|
||||||
yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
|
yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
|
|
||||||
(**it).setReal(xreal[1]);
|
(**it).setReal(IQOrder ? xreal[1] : yimag[1]);
|
||||||
(**it).setImag(yimag[1]);
|
(**it).setImag(IQOrder ? yimag[1] : xreal[1]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -141,13 +142,13 @@ void DecimatorsFF<IQOrder>::decimate16_inf(FSampleVector::iterator* it, const fl
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
(**it).setReal(xreal[3]);
|
(**it).setReal(IQOrder ? xreal[3] : yimag[3]);
|
||||||
(**it).setImag(yimag[3]);
|
(**it).setImag(IQOrder ? yimag[3] : xreal[3]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -169,13 +170,13 @@ void DecimatorsFF<IQOrder>::decimate16_sup(FSampleVector::iterator* it, const fl
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
(**it).setReal(xreal[3]);
|
(**it).setReal(IQOrder ? xreal[3] : yimag[3]);
|
||||||
(**it).setImag(yimag[3]);
|
(**it).setImag(IQOrder ? yimag[3] : xreal[3]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -195,18 +196,18 @@ void DecimatorsFF<IQOrder>::decimate32_inf(FSampleVector::iterator* it, const fl
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
(**it).setReal(xreal[7]);
|
(**it).setReal(IQOrder ? xreal[7] : yimag[7]);
|
||||||
(**it).setImag(yimag[7]);
|
(**it).setImag(IQOrder ? yimag[7] : xreal[7]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -226,18 +227,18 @@ void DecimatorsFF<IQOrder>::decimate32_sup(FSampleVector::iterator* it, const fl
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
(**it).setReal(xreal[7]);
|
(**it).setReal(IQOrder ? xreal[7] : yimag[7]);
|
||||||
(**it).setImag(yimag[7]);
|
(**it).setImag(IQOrder ? yimag[7] : xreal[7]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -257,14 +258,14 @@ void DecimatorsFF<IQOrder>::decimate64_inf(FSampleVector::iterator* it, const fl
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
m_decimator2s.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
||||||
m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
m_decimator2s.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
||||||
m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
m_decimator2s.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
||||||
m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
m_decimator2s.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
@ -276,8 +277,8 @@ void DecimatorsFF<IQOrder>::decimate64_inf(FSampleVector::iterator* it, const fl
|
|||||||
|
|
||||||
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
(**it).setReal(xreal[15]);
|
(**it).setReal(IQOrder ? xreal[15] : yimag[15]);
|
||||||
(**it).setImag(yimag[15]);
|
(**it).setImag(IQOrder ? yimag[15] : xreal[15]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -297,14 +298,14 @@ void DecimatorsFF<IQOrder>::decimate64_sup(FSampleVector::iterator* it, const fl
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
m_decimator2s.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
||||||
m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
m_decimator2s.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
||||||
m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
m_decimator2s.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
||||||
m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
m_decimator2s.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
@ -316,8 +317,8 @@ void DecimatorsFF<IQOrder>::decimate64_sup(FSampleVector::iterator* it, const fl
|
|||||||
|
|
||||||
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
(**it).setReal(xreal[15]);
|
(**it).setReal(IQOrder ? xreal[15] : yimag[15]);
|
||||||
(**it).setImag(yimag[15]);
|
(**it).setImag(IQOrder ? yimag[15] : xreal[15]);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,12 @@ public:
|
|||||||
void decimate64_cen(SampleVector::iterator* it, const float* buf, qint32 nbIAndQ);
|
void decimate64_cen(SampleVector::iterator* it, const float* buf, qint32 nbIAndQ);
|
||||||
|
|
||||||
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator2; // 1st stages
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator2; // 1st stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator4; // 2nd stages
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, true> m_decimator2s; // 1st stages - straight
|
||||||
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator8; // 3rd stages
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, true> m_decimator4; // 2nd stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator16; // 4th stages
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, true> m_decimator8; // 3rd stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator32; // 5th stages
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, true> m_decimator16; // 4th stages
|
||||||
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, IQOrder> m_decimator64; // 6th stages
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, true> m_decimator32; // 5th stages
|
||||||
|
IntHalfbandFilterEOF<DECIMATORSFI_HB_FILTER_ORDER, true> m_decimator64; // 6th stages
|
||||||
};
|
};
|
||||||
|
|
||||||
template<bool IQOrder>
|
template<bool IQOrder>
|
||||||
@ -93,10 +94,10 @@ void DecimatorsFI<IQOrder>::decimate8_inf(SampleVector::iterator* it, const floa
|
|||||||
xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
|
xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
|
||||||
yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
|
yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
|
|
||||||
(**it).setReal(xreal[1] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[1] : yimag[1]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[1] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[1] : xreal[1]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -116,10 +117,10 @@ void DecimatorsFI<IQOrder>::decimate8_sup(SampleVector::iterator* it, const floa
|
|||||||
xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
|
xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
|
||||||
yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
|
yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
|
|
||||||
(**it).setReal(xreal[1] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[1] : yimag[1]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[1] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[1] : xreal[1]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -141,13 +142,13 @@ void DecimatorsFI<IQOrder>::decimate16_inf(SampleVector::iterator* it, const flo
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
(**it).setReal(xreal[3] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[3] : yimag[3]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[3] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[3] : xreal[3]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -169,13 +170,13 @@ void DecimatorsFI<IQOrder>::decimate16_sup(SampleVector::iterator* it, const flo
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
(**it).setReal(xreal[3] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[3] : yimag[3]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[3] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[3] : xreal[3]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -195,18 +196,18 @@ void DecimatorsFI<IQOrder>::decimate32_inf(SampleVector::iterator* it, const flo
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
(**it).setReal(xreal[7] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[7] : yimag[7]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[7] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[7] : xreal[7]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -226,18 +227,18 @@ void DecimatorsFI<IQOrder>::decimate32_sup(SampleVector::iterator* it, const flo
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
(**it).setReal(xreal[7] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[7] : yimag[7]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[7] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[7] : xreal[7]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -257,14 +258,14 @@ void DecimatorsFI<IQOrder>::decimate64_inf(SampleVector::iterator* it, const flo
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
m_decimator2s.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
||||||
m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
m_decimator2s.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
||||||
m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
m_decimator2s.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
||||||
m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
m_decimator2s.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
@ -276,8 +277,8 @@ void DecimatorsFI<IQOrder>::decimate64_inf(SampleVector::iterator* it, const flo
|
|||||||
|
|
||||||
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
(**it).setReal(xreal[15] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[15] : yimag[15]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[15] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[15] : xreal[15]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -297,14 +298,14 @@ void DecimatorsFI<IQOrder>::decimate64_sup(SampleVector::iterator* it, const flo
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
m_decimator2s.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
||||||
m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
m_decimator2s.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
||||||
m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
m_decimator2s.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
||||||
m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
m_decimator2s.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
@ -316,8 +317,8 @@ void DecimatorsFI<IQOrder>::decimate64_sup(SampleVector::iterator* it, const flo
|
|||||||
|
|
||||||
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
(**it).setReal(xreal[15] * SDR_RX_SCALED);
|
(**it).setReal((IQOrder ? xreal[15] : yimag[15]) * SDR_RX_SCALED);
|
||||||
(**it).setImag(yimag[15] * SDR_RX_SCALED);
|
(**it).setImag((IQOrder ? yimag[15] : xreal[15]) * SDR_RX_SCALED);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
|
@ -76,11 +76,12 @@ public:
|
|||||||
void decimate64_cen(FSampleVector::iterator* it, const T* buf, qint32 nbIAndQ);
|
void decimate64_cen(FSampleVector::iterator* it, const T* buf, qint32 nbIAndQ);
|
||||||
|
|
||||||
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator2; // 1st stages
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator2; // 1st stages
|
||||||
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator4; // 2nd stages
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, true> m_decimator2s; // 1st stages - straight
|
||||||
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator8; // 3rd stages
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, true> m_decimator4; // 2nd stages
|
||||||
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator16; // 4th stages
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, true> m_decimator8; // 3rd stages
|
||||||
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator32; // 5th stages
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, true> m_decimator16; // 4th stages
|
||||||
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, IQOrder> m_decimator64; // 6th stages
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, true> m_decimator32; // 5th stages
|
||||||
|
IntHalfbandFilterEOF<DECIMATORS_IF_FILTER_ORDER, true> m_decimator64; // 6th stages
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T, uint InputBits, bool IQOrder>
|
template<typename T, uint InputBits, bool IQOrder>
|
||||||
@ -254,10 +255,10 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate8_inf(FSampleVector::iterator*
|
|||||||
xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
|
xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
|
||||||
yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
|
yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
|
|
||||||
(**it).setReal(xreal[1] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[1] : yimag[1]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[1] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[1] : xreal[1]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -277,10 +278,10 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate8_sup(FSampleVector::iterator*
|
|||||||
xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
|
xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
|
||||||
yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
|
yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
|
|
||||||
(**it).setReal(xreal[1] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[1] : yimag[1]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[1] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[1] : xreal[1]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -360,13 +361,13 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate16_inf(FSampleVector::iterator
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
(**it).setReal(xreal[3] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[3] : yimag[3]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[3] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[3] : xreal[3]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -386,13 +387,13 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate16_sup(FSampleVector::iterator
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
|
|
||||||
(**it).setReal(xreal[3] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[3] : yimag[3]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[3] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[3] : xreal[3]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -521,18 +522,18 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate32_inf(FSampleVector::iterator
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
(**it).setReal(xreal[7] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[7] : yimag[7]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[7] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[7] : xreal[7]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -552,18 +553,18 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate32_sup(FSampleVector::iterator
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
|
||||||
|
|
||||||
(**it).setReal(xreal[7] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[7] : yimag[7]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[7] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[7] : xreal[7]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -789,14 +790,14 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate64_inf(FSampleVector::iterator
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
m_decimator2s.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
||||||
m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
m_decimator2s.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
||||||
m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
m_decimator2s.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
||||||
m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
m_decimator2s.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
@ -808,8 +809,8 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate64_inf(FSampleVector::iterator
|
|||||||
|
|
||||||
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
(**it).setReal(xreal[15] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[15] : yimag[15]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[15] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[15] : xreal[15]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
@ -829,14 +830,14 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate64_sup(FSampleVector::iterator
|
|||||||
pos += 8;
|
pos += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
m_decimator2s.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
|
||||||
m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
m_decimator2s.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
|
||||||
m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
m_decimator2s.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
|
||||||
m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
m_decimator2s.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
|
||||||
m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
m_decimator2s.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
|
||||||
m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
m_decimator2s.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
|
||||||
m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
m_decimator2s.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
|
||||||
m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
m_decimator2s.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
|
||||||
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
|
||||||
@ -848,8 +849,8 @@ void DecimatorsIF<T, InputBits, IQOrder>::decimate64_sup(FSampleVector::iterator
|
|||||||
|
|
||||||
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
|
||||||
|
|
||||||
(**it).setReal(xreal[15] * decimation_scale<InputBits>::scaleIn);
|
(**it).setReal((IQOrder ? xreal[15] : yimag[15]) * decimation_scale<InputBits>::scaleIn);
|
||||||
(**it).setImag(yimag[15] * decimation_scale<InputBits>::scaleIn);
|
(**it).setImag((IQOrder ? yimag[15] : xreal[15]) * decimation_scale<InputBits>::scaleIn);
|
||||||
|
|
||||||
++(*it);
|
++(*it);
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user