18 #ifndef SDRBASE_DSP_DECIMATORSIF_H_ 19 #define SDRBASE_DSP_DECIMATORSIF_H_ 24 #define DECIMATORS_IF_FILTER_ORDER 64 26 template<u
int InputBits>
32 template<u
int InputBits>
54 template<
typename T, u
int InputBits>
58 void decimate1(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
59 void decimate2_inf(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
60 void decimate2_sup(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
61 void decimate2_cen(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
62 void decimate4_inf(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
63 void decimate4_sup(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
64 void decimate4_cen(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
65 void decimate8_inf(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
66 void decimate8_sup(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
67 void decimate8_cen(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
68 void decimate16_inf(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
69 void decimate16_sup(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
70 void decimate16_cen(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
71 void decimate32_inf(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
72 void decimate32_sup(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
73 void decimate32_cen(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
74 void decimate64_inf(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
75 void decimate64_sup(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
76 void decimate64_cen(FSampleVector::iterator* it,
const T* buf, qint32 nbIAndQ);
86 template<
typename T, u
int InputBits>
91 for (
int pos = 0; pos < nbIAndQ - 1; pos += 2)
94 yimag = buf[pos+1] * decimation_scale<InputBits>::scaleIn;
95 (**it).setReal(xreal);
96 (**it).setImag(yimag);
101 template<
typename T, u
int InputBits>
106 for (
int pos = 0; pos < nbIAndQ - 7; pos += 8)
110 (**it).setReal(xreal);
111 (**it).setImag(yimag);
116 (**it).setReal(xreal);
117 (**it).setImag(yimag);
122 template<
typename T, u
int InputBits>
127 for (
int pos = 0; pos < nbIAndQ - 7; pos += 8)
131 (**it).setReal(xreal);
132 (**it).setImag(yimag);
137 (**it).setReal(xreal);
138 (**it).setImag(yimag);
143 template<
typename T, u
int InputBits>
148 for (
int pos = 0; pos < nbIAndQ - 3; pos += 4)
150 intbuf[0] = buf[pos+2];
151 intbuf[1] = buf[pos+3];
153 m_decimator2.myDecimate(
160 (**it).setImag(intbuf[1] * decimation_scale<InputBits>::scaleIn);
166 template<
typename T, u
int InputBits>
171 for (
int pos = 0; pos < nbIAndQ - 7; pos += 8)
176 (**it).setReal(xreal);
177 (**it).setImag(yimag);
183 template<
typename T, u
int InputBits>
188 for (
int pos = 0; pos < nbIAndQ - 7; pos += 8)
193 (**it).setReal(xreal);
194 (**it).setImag(yimag);
200 template<
typename T, u
int InputBits>
205 for (
int pos = 0; pos < nbIAndQ - 7; pos += 8)
207 intbuf[0] = buf[pos+2];
208 intbuf[1] = buf[pos+3];
209 intbuf[2] = buf[pos+6];
210 intbuf[3] = buf[pos+7];
212 m_decimator2.myDecimate(
217 m_decimator2.myDecimate(
223 m_decimator4.myDecimate(
230 (**it).setImag(intbuf[3] * decimation_scale<InputBits>::scaleIn);
235 template<
typename T, u
int InputBits>
238 float xreal[2], yimag[2];
240 for (
int pos = 0; pos < nbIAndQ - 15; pos += 8)
242 xreal[0] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
243 yimag[0] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
246 xreal[1] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
247 yimag[1] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
249 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
252 (**it).setImag(yimag[1] * decimation_scale<InputBits>::scaleIn);
258 template<
typename T, u
int InputBits>
261 float xreal[2], yimag[2];
263 for (
int pos = 0; pos < nbIAndQ - 15; pos += 8)
265 xreal[0] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
266 yimag[0] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
269 xreal[1] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
270 yimag[1] = (- buf[pos+0] - buf[pos+3] + buf[pos+4] + buf[pos+7]);
272 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
275 (**it).setImag(yimag[1] * decimation_scale<InputBits>::scaleIn);
281 template<
typename T, u
int InputBits>
286 for (
int pos = 0; pos < nbIAndQ - 15; pos += 16)
288 intbuf[0] = buf[pos+2];
289 intbuf[1] = buf[pos+3];
290 intbuf[2] = buf[pos+6];
291 intbuf[3] = buf[pos+7];
292 intbuf[4] = buf[pos+10];
293 intbuf[5] = buf[pos+11];
294 intbuf[6] = buf[pos+14];
295 intbuf[7] = buf[pos+15];
297 m_decimator2.myDecimate(
302 m_decimator2.myDecimate(
307 m_decimator2.myDecimate(
312 m_decimator2.myDecimate(
318 m_decimator4.myDecimate(
323 m_decimator4.myDecimate(
329 m_decimator8.myDecimate(
336 (**it).setImag(intbuf[7] * decimation_scale<InputBits>::scaleIn);
341 template<
typename T, u
int InputBits>
344 float xreal[4], yimag[4];
346 for (
int pos = 0; pos < nbIAndQ - 31; )
348 for (
int i = 0;
i < 4;
i++)
350 xreal[
i] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
351 yimag[
i] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
355 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
356 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
358 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
361 (**it).setImag(yimag[3] * decimation_scale<InputBits>::scaleIn);
367 template<
typename T, u
int InputBits>
370 float xreal[4], yimag[4];
372 for (
int pos = 0; pos < nbIAndQ - 31; )
374 for (
int i = 0;
i < 4;
i++)
376 xreal[
i] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
377 yimag[
i] = (buf[pos+4] + buf[pos+7] - buf[pos+0] - buf[pos+3]);
381 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
382 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
384 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
387 (**it).setImag(yimag[3] * decimation_scale<InputBits>::scaleIn);
393 template<
typename T, u
int InputBits>
398 for (
int pos = 0; pos < nbIAndQ - 31; pos += 32)
400 intbuf[0] = buf[pos+2];
401 intbuf[1] = buf[pos+3];
402 intbuf[2] = buf[pos+6];
403 intbuf[3] = buf[pos+7];
404 intbuf[4] = buf[pos+10];
405 intbuf[5] = buf[pos+11];
406 intbuf[6] = buf[pos+14];
407 intbuf[7] = buf[pos+15];
408 intbuf[8] = buf[pos+18];
409 intbuf[9] = buf[pos+19];
410 intbuf[10] = buf[pos+22];
411 intbuf[11] = buf[pos+23];
412 intbuf[12] = buf[pos+26];
413 intbuf[13] = buf[pos+27];
414 intbuf[14] = buf[pos+30];
415 intbuf[15] = buf[pos+31];
417 m_decimator2.myDecimate(
422 m_decimator2.myDecimate(
427 m_decimator2.myDecimate(
432 m_decimator2.myDecimate(
437 m_decimator2.myDecimate(
442 m_decimator2.myDecimate(
447 m_decimator2.myDecimate(
452 m_decimator2.myDecimate(
458 m_decimator4.myDecimate(
463 m_decimator4.myDecimate(
468 m_decimator4.myDecimate(
473 m_decimator4.myDecimate(
479 m_decimator8.myDecimate(
484 m_decimator8.myDecimate(
490 m_decimator16.myDecimate(
497 (**it).setImag(intbuf[15] * decimation_scale<InputBits>::scaleIn);
502 template<
typename T, u
int InputBits>
505 float xreal[8], yimag[8];
507 for (
int pos = 0; pos < nbIAndQ - 63; )
509 for (
int i = 0;
i < 8;
i++)
511 xreal[
i] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
512 yimag[
i] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
516 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
517 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
518 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
519 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
521 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
522 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
524 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
527 (**it).setImag(yimag[7] * decimation_scale<InputBits>::scaleIn);
533 template<
typename T, u
int InputBits>
536 float xreal[8], yimag[8];
538 for (
int pos = 0; pos < nbIAndQ - 63; )
540 for (
int i = 0;
i < 8;
i++)
542 xreal[
i] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
543 yimag[
i] = (buf[pos+4] + buf[pos+7] - buf[pos+0] - buf[pos+3]);
547 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
548 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
549 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
550 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
552 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
553 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
555 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
558 (**it).setImag(yimag[7] * decimation_scale<InputBits>::scaleIn);
564 template<
typename T, u
int InputBits>
569 for (
int pos = 0; pos < nbIAndQ - 63; pos += 64)
571 intbuf[0] = buf[pos+2];
572 intbuf[1] = buf[pos+3];
573 intbuf[2] = buf[pos+6];
574 intbuf[3] = buf[pos+7];
575 intbuf[4] = buf[pos+10];
576 intbuf[5] = buf[pos+11];
577 intbuf[6] = buf[pos+14];
578 intbuf[7] = buf[pos+15];
579 intbuf[8] = buf[pos+18];
580 intbuf[9] = buf[pos+19];
581 intbuf[10] = buf[pos+22];
582 intbuf[11] = buf[pos+23];
583 intbuf[12] = buf[pos+26];
584 intbuf[13] = buf[pos+27];
585 intbuf[14] = buf[pos+30];
586 intbuf[15] = buf[pos+31];
587 intbuf[16] = buf[pos+34];
588 intbuf[17] = buf[pos+35];
589 intbuf[18] = buf[pos+38];
590 intbuf[19] = buf[pos+39];
591 intbuf[20] = buf[pos+42];
592 intbuf[21] = buf[pos+43];
593 intbuf[22] = buf[pos+46];
594 intbuf[23] = buf[pos+47];
595 intbuf[24] = buf[pos+50];
596 intbuf[25] = buf[pos+51];
597 intbuf[26] = buf[pos+54];
598 intbuf[27] = buf[pos+55];
599 intbuf[28] = buf[pos+58];
600 intbuf[29] = buf[pos+59];
601 intbuf[30] = buf[pos+62];
602 intbuf[31] = buf[pos+63];
604 m_decimator2.myDecimate(
609 m_decimator2.myDecimate(
614 m_decimator2.myDecimate(
619 m_decimator2.myDecimate(
624 m_decimator2.myDecimate(
629 m_decimator2.myDecimate(
634 m_decimator2.myDecimate(
639 m_decimator2.myDecimate(
644 m_decimator2.myDecimate(
649 m_decimator2.myDecimate(
654 m_decimator2.myDecimate(
659 m_decimator2.myDecimate(
664 m_decimator2.myDecimate(
669 m_decimator2.myDecimate(
674 m_decimator2.myDecimate(
679 m_decimator2.myDecimate(
685 m_decimator4.myDecimate(
690 m_decimator4.myDecimate(
695 m_decimator4.myDecimate(
700 m_decimator4.myDecimate(
705 m_decimator4.myDecimate(
710 m_decimator4.myDecimate(
715 m_decimator4.myDecimate(
720 m_decimator4.myDecimate(
726 m_decimator8.myDecimate(
731 m_decimator8.myDecimate(
736 m_decimator8.myDecimate(
741 m_decimator8.myDecimate(
747 m_decimator16.myDecimate(
752 m_decimator16.myDecimate(
758 m_decimator32.myDecimate(
765 (**it).setImag(intbuf[31] * decimation_scale<InputBits>::scaleIn);
770 template<
typename T, u
int InputBits>
773 float xreal[16], yimag[16];
775 for (
int pos = 0; pos < nbIAndQ - 127; )
777 for (
int i = 0;
i < 16;
i++)
779 xreal[
i] = (buf[pos+0] - buf[pos+3] + buf[pos+7] - buf[pos+4]);
780 yimag[
i] = (buf[pos+1] - buf[pos+5] + buf[pos+2] - buf[pos+6]);
784 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
785 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
786 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
787 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
788 m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
789 m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
790 m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
791 m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
793 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
794 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
795 m_decimator4.myDecimate(xreal[9], yimag[9], &xreal[11], &yimag[11]);
796 m_decimator4.myDecimate(xreal[13], yimag[13], &xreal[15], &yimag[15]);
798 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
799 m_decimator8.myDecimate(xreal[11], yimag[11], &xreal[15], &yimag[15]);
801 m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
804 (**it).setImag(yimag[15] * decimation_scale<InputBits>::scaleIn);
810 template<
typename T, u
int InputBits>
813 float xreal[16], yimag[16];
815 for (
int pos = 0; pos < nbIAndQ - 127; )
817 for (
int i = 0;
i < 16;
i++)
819 xreal[
i] = (buf[pos+1] - buf[pos+2] - buf[pos+5] + buf[pos+6]);
820 yimag[
i] = (buf[pos+4] + buf[pos+7] - buf[pos+0] - buf[pos+3]);
824 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
825 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
826 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
827 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
828 m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
829 m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
830 m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
831 m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
833 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
834 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
835 m_decimator4.myDecimate(xreal[9], yimag[9], &xreal[11], &yimag[11]);
836 m_decimator4.myDecimate(xreal[13], yimag[13], &xreal[15], &yimag[15]);
838 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
839 m_decimator8.myDecimate(xreal[11], yimag[11], &xreal[15], &yimag[15]);
841 m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
844 (**it).setImag(yimag[15] * decimation_scale<InputBits>::scaleIn);
850 template<
typename T, u
int InputBits>
855 for (
int pos = 0; pos < nbIAndQ - 127; pos += 128)
857 intbuf[0] = buf[pos+2];
858 intbuf[1] = buf[pos+3];
859 intbuf[2] = buf[pos+6];
860 intbuf[3] = buf[pos+7];
861 intbuf[4] = buf[pos+10];
862 intbuf[5] = buf[pos+11];
863 intbuf[6] = buf[pos+14];
864 intbuf[7] = buf[pos+15];
865 intbuf[8] = buf[pos+18];
866 intbuf[9] = buf[pos+19];
867 intbuf[10] = buf[pos+22];
868 intbuf[11] = buf[pos+23];
869 intbuf[12] = buf[pos+26];
870 intbuf[13] = buf[pos+27];
871 intbuf[14] = buf[pos+30];
872 intbuf[15] = buf[pos+31];
873 intbuf[16] = buf[pos+34];
874 intbuf[17] = buf[pos+35];
875 intbuf[18] = buf[pos+38];
876 intbuf[19] = buf[pos+39];
877 intbuf[20] = buf[pos+42];
878 intbuf[21] = buf[pos+43];
879 intbuf[22] = buf[pos+46];
880 intbuf[23] = buf[pos+47];
881 intbuf[24] = buf[pos+50];
882 intbuf[25] = buf[pos+51];
883 intbuf[26] = buf[pos+54];
884 intbuf[27] = buf[pos+55];
885 intbuf[28] = buf[pos+58];
886 intbuf[29] = buf[pos+59];
887 intbuf[30] = buf[pos+62];
888 intbuf[31] = buf[pos+63];
890 intbuf[32] = buf[pos+66];
891 intbuf[33] = buf[pos+67];
892 intbuf[34] = buf[pos+70];
893 intbuf[35] = buf[pos+71];
894 intbuf[36] = buf[pos+74];
895 intbuf[37] = buf[pos+75];
896 intbuf[38] = buf[pos+78];
897 intbuf[39] = buf[pos+79];
898 intbuf[40] = buf[pos+82];
899 intbuf[41] = buf[pos+83];
900 intbuf[42] = buf[pos+86];
901 intbuf[43] = buf[pos+87];
902 intbuf[44] = buf[pos+90];
903 intbuf[45] = buf[pos+91];
904 intbuf[46] = buf[pos+94];
905 intbuf[47] = buf[pos+95];
906 intbuf[48] = buf[pos+98];
907 intbuf[49] = buf[pos+99];
908 intbuf[50] = buf[pos+102];
909 intbuf[51] = buf[pos+103];
910 intbuf[52] = buf[pos+106];
911 intbuf[53] = buf[pos+107];
912 intbuf[54] = buf[pos+110];
913 intbuf[55] = buf[pos+111];
914 intbuf[56] = buf[pos+114];
915 intbuf[57] = buf[pos+115];
916 intbuf[58] = buf[pos+118];
917 intbuf[59] = buf[pos+119];
918 intbuf[60] = buf[pos+122];
919 intbuf[61] = buf[pos+123];
920 intbuf[62] = buf[pos+126];
921 intbuf[63] = buf[pos+127];
923 m_decimator2.myDecimate(
928 m_decimator2.myDecimate(
933 m_decimator2.myDecimate(
938 m_decimator2.myDecimate(
943 m_decimator2.myDecimate(
948 m_decimator2.myDecimate(
953 m_decimator2.myDecimate(
958 m_decimator2.myDecimate(
963 m_decimator2.myDecimate(
968 m_decimator2.myDecimate(
973 m_decimator2.myDecimate(
978 m_decimator2.myDecimate(
983 m_decimator2.myDecimate(
988 m_decimator2.myDecimate(
993 m_decimator2.myDecimate(
998 m_decimator2.myDecimate(
1003 m_decimator2.myDecimate(
1008 m_decimator2.myDecimate(
1013 m_decimator2.myDecimate(
1018 m_decimator2.myDecimate(
1023 m_decimator2.myDecimate(
1028 m_decimator2.myDecimate(
1033 m_decimator2.myDecimate(
1038 m_decimator2.myDecimate(
1043 m_decimator2.myDecimate(
1048 m_decimator2.myDecimate(
1053 m_decimator2.myDecimate(
1058 m_decimator2.myDecimate(
1063 m_decimator2.myDecimate(
1068 m_decimator2.myDecimate(
1073 m_decimator2.myDecimate(
1078 m_decimator2.myDecimate(
1084 m_decimator4.myDecimate(
1089 m_decimator4.myDecimate(
1094 m_decimator4.myDecimate(
1099 m_decimator4.myDecimate(
1104 m_decimator4.myDecimate(
1109 m_decimator4.myDecimate(
1114 m_decimator4.myDecimate(
1119 m_decimator4.myDecimate(
1124 m_decimator4.myDecimate(
1129 m_decimator4.myDecimate(
1134 m_decimator4.myDecimate(
1139 m_decimator4.myDecimate(
1144 m_decimator4.myDecimate(
1149 m_decimator4.myDecimate(
1154 m_decimator4.myDecimate(
1159 m_decimator4.myDecimate(
1165 m_decimator8.myDecimate(
1170 m_decimator8.myDecimate(
1175 m_decimator8.myDecimate(
1180 m_decimator8.myDecimate(
1185 m_decimator8.myDecimate(
1190 m_decimator8.myDecimate(
1195 m_decimator8.myDecimate(
1200 m_decimator8.myDecimate(
1206 m_decimator16.myDecimate(
1211 m_decimator16.myDecimate(
1216 m_decimator16.myDecimate(
1221 m_decimator16.myDecimate(
1227 m_decimator32.myDecimate(
1232 m_decimator32.myDecimate(
1238 m_decimator64.myDecimate(
1245 (**it).setImag(intbuf[63] * decimation_scale<InputBits>::scaleIn);
void decimate8_sup(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate16_sup(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate4_inf(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate8_inf(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate64_cen(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
IntHalfbandFilterEOF< DECIMATORS_IF_FILTER_ORDER > m_decimator32
void decimate32_sup(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate64_sup(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate2_inf(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate4_cen(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate1(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
IntHalfbandFilterEOF< DECIMATORS_IF_FILTER_ORDER > m_decimator64
void decimate2_sup(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
static const float scaleIn
static const float scaleIn
void decimate64_inf(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate8_cen(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
IntHalfbandFilterEOF< DECIMATORS_IF_FILTER_ORDER > m_decimator2
void decimate16_inf(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate4_sup(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate32_inf(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
static const float scaleIn
void decimate16_cen(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
IntHalfbandFilterEOF< DECIMATORS_IF_FILTER_ORDER > m_decimator4
IntHalfbandFilterEOF< DECIMATORS_IF_FILTER_ORDER > m_decimator8
void decimate2_cen(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
void decimate32_cen(FSampleVector::iterator *it, const T *buf, qint32 nbIAndQ)
static const float scaleIn
IntHalfbandFilterEOF< DECIMATORS_IF_FILTER_ORDER > m_decimator16