18 #ifndef INCLUDE_DSP_SAMPLESINKFIFODECIMATOR_H_ 19 #define INCLUDE_DSP_SAMPLESINKFIFODECIMATOR_H_ 26 template<u
int32_t SdrBits, u
int32_t InputBits>
98 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
132 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
136 SampleVector::iterator it;
140 for (
int pos = 0; pos < len - 1; pos += 2)
150 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
154 SampleVector::iterator it;
158 for (
int pos = 0; pos < len - 7; pos += 8)
174 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
178 SampleVector::iterator it;
182 for (
int pos = 0; pos < len - 7; pos += 8)
198 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
202 SampleVector::iterator it;
206 for (
int pos = 0; pos < len - 7; pos += 8)
222 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
226 SampleVector::iterator it;
230 for (
int pos = 0; pos < len - 7; pos += 8)
242 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
252 SampleVector::iterator it;
256 for (
int pos = 0; pos < len - 7; pos += 8)
268 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
271 qint32 xreal[2], yimag[2];
272 SampleVector::iterator it;
276 for (
int pos = 0; pos < len - 15; pos += 8)
285 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
294 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
297 qint32 xreal[2], yimag[2];
298 SampleVector::iterator it;
302 for (
int pos = 0; pos < len - 15; pos += 8)
311 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
320 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
325 qint32 xreal[4], yimag[4];
326 SampleVector::iterator it;
330 for (
int pos = 0; pos < len - 31; )
332 for (
int i = 0;
i < 4;
i++)
339 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
340 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
342 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
351 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
356 qint32 xreal[4], yimag[4];
357 SampleVector::iterator it;
361 for (
int pos = 0; pos < len - 31; )
363 for (
int i = 0;
i < 4;
i++)
370 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
371 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
373 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
382 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
385 qint32 xreal[8], yimag[8];
386 SampleVector::iterator it;
390 for (
int pos = 0; pos < len - 63; )
392 for (
int i = 0;
i < 8;
i++)
399 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
400 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
401 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
402 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
404 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
405 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
407 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
416 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
419 qint32 xreal[8], yimag[8];
420 SampleVector::iterator it;
424 for (
int pos = 0; pos < len - 63; )
426 for (
int i = 0;
i < 8;
i++)
433 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
434 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
435 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
436 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
438 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
439 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
441 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
450 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
453 qint32 xreal[16], yimag[16];
454 SampleVector::iterator it;
458 for (
int pos = 0; pos < len - 127; )
460 for (
int i = 0;
i < 16;
i++)
467 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
468 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
469 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
470 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
471 m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
472 m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
473 m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
474 m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
476 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
477 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
478 m_decimator4.myDecimate(xreal[9], yimag[9], &xreal[11], &yimag[11]);
479 m_decimator4.myDecimate(xreal[13], yimag[13], &xreal[15], &yimag[15]);
481 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
482 m_decimator8.myDecimate(xreal[11], yimag[11], &xreal[15], &yimag[15]);
484 m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
493 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
496 qint32 xreal[16], yimag[16];
497 SampleVector::iterator it;
501 for (
int pos = 0; pos < len - 127; )
503 for (
int i = 0;
i < 16;
i++)
510 m_decimator2.myDecimate(xreal[0], yimag[0], &xreal[1], &yimag[1]);
511 m_decimator2.myDecimate(xreal[2], yimag[2], &xreal[3], &yimag[3]);
512 m_decimator2.myDecimate(xreal[4], yimag[4], &xreal[5], &yimag[5]);
513 m_decimator2.myDecimate(xreal[6], yimag[6], &xreal[7], &yimag[7]);
514 m_decimator2.myDecimate(xreal[8], yimag[8], &xreal[9], &yimag[9]);
515 m_decimator2.myDecimate(xreal[10], yimag[10], &xreal[11], &yimag[11]);
516 m_decimator2.myDecimate(xreal[12], yimag[12], &xreal[13], &yimag[13]);
517 m_decimator2.myDecimate(xreal[14], yimag[14], &xreal[15], &yimag[15]);
519 m_decimator4.myDecimate(xreal[1], yimag[1], &xreal[3], &yimag[3]);
520 m_decimator4.myDecimate(xreal[5], yimag[5], &xreal[7], &yimag[7]);
521 m_decimator4.myDecimate(xreal[9], yimag[9], &xreal[11], &yimag[11]);
522 m_decimator4.myDecimate(xreal[13], yimag[13], &xreal[15], &yimag[15]);
524 m_decimator8.myDecimate(xreal[3], yimag[3], &xreal[7], &yimag[7]);
525 m_decimator8.myDecimate(xreal[11], yimag[11], &xreal[15], &yimag[15]);
527 m_decimator16.myDecimate(xreal[7], yimag[7], &xreal[15], &yimag[15]);
536 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
540 SampleVector::iterator it;
544 for (
int pos = 0; pos < len - 3; pos += 4)
547 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre2;
549 m_decimator2.myDecimate(
550 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre2,
551 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre2,
561 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
565 SampleVector::iterator it;
569 for (
int pos = 0; pos < len - 7; pos += 8)
572 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre4;
573 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre4;
574 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre4;
576 m_decimator2.myDecimate(
577 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre4,
578 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre4,
581 m_decimator2.myDecimate(
582 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre4,
583 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre4,
587 m_decimator4.myDecimate(
599 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
603 SampleVector::iterator it;
607 for (
int pos = 0; pos < len - 15; pos += 16)
610 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre8;
611 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre8;
612 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre8;
613 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre8;
614 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre8;
615 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre8;
616 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre8;
618 m_decimator2.myDecimate(
619 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre8,
620 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre8,
623 m_decimator2.myDecimate(
624 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre8,
625 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre8,
628 m_decimator2.myDecimate(
629 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre8,
630 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre8,
633 m_decimator2.myDecimate(
634 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre8,
635 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre8,
639 m_decimator4.myDecimate(
644 m_decimator4.myDecimate(
650 m_decimator8.myDecimate(
662 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
666 SampleVector::iterator it;
670 for (
int pos = 0; pos < len - 31; pos += 32)
673 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre16;
674 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre16;
675 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre16;
676 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre16;
677 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre16;
678 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre16;
679 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre16;
680 intbuf[8] = buf[pos+18] << decimation_shifts<SdrBits, InputBits>::pre16;
681 intbuf[9] = buf[pos+19] << decimation_shifts<SdrBits, InputBits>::pre16;
682 intbuf[10] = buf[pos+22] << decimation_shifts<SdrBits, InputBits>::pre16;
683 intbuf[11] = buf[pos+23] << decimation_shifts<SdrBits, InputBits>::pre16;
684 intbuf[12] = buf[pos+26] << decimation_shifts<SdrBits, InputBits>::pre16;
685 intbuf[13] = buf[pos+27] << decimation_shifts<SdrBits, InputBits>::pre16;
686 intbuf[14] = buf[pos+30] << decimation_shifts<SdrBits, InputBits>::pre16;
687 intbuf[15] = buf[pos+31] << decimation_shifts<SdrBits, InputBits>::pre16;
689 m_decimator2.myDecimate(
690 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre16,
691 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre16,
694 m_decimator2.myDecimate(
695 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre16,
696 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre16,
699 m_decimator2.myDecimate(
700 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre16,
701 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre16,
704 m_decimator2.myDecimate(
705 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre16,
706 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre16,
709 m_decimator2.myDecimate(
710 buf[pos+16] << decimation_shifts<SdrBits, InputBits>::pre16,
711 buf[pos+17] << decimation_shifts<SdrBits, InputBits>::pre16,
714 m_decimator2.myDecimate(
715 buf[pos+20] << decimation_shifts<SdrBits, InputBits>::pre16,
716 buf[pos+21] << decimation_shifts<SdrBits, InputBits>::pre16,
719 m_decimator2.myDecimate(
720 buf[pos+24] << decimation_shifts<SdrBits, InputBits>::pre16,
721 buf[pos+25] << decimation_shifts<SdrBits, InputBits>::pre16,
724 m_decimator2.myDecimate(
725 buf[pos+28] << decimation_shifts<SdrBits, InputBits>::pre16,
726 buf[pos+29] << decimation_shifts<SdrBits, InputBits>::pre16,
730 m_decimator4.myDecimate(
735 m_decimator4.myDecimate(
740 m_decimator4.myDecimate(
745 m_decimator4.myDecimate(
751 m_decimator8.myDecimate(
756 m_decimator8.myDecimate(
762 m_decimator16.myDecimate(
774 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
778 SampleVector::iterator it;
782 for (
int pos = 0; pos < len - 63; pos += 64)
785 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre32;
786 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre32;
787 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre32;
788 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre32;
789 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre32;
790 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre32;
791 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre32;
792 intbuf[8] = buf[pos+18] << decimation_shifts<SdrBits, InputBits>::pre32;
793 intbuf[9] = buf[pos+19] << decimation_shifts<SdrBits, InputBits>::pre32;
794 intbuf[10] = buf[pos+22] << decimation_shifts<SdrBits, InputBits>::pre32;
795 intbuf[11] = buf[pos+23] << decimation_shifts<SdrBits, InputBits>::pre32;
796 intbuf[12] = buf[pos+26] << decimation_shifts<SdrBits, InputBits>::pre32;
797 intbuf[13] = buf[pos+27] << decimation_shifts<SdrBits, InputBits>::pre32;
798 intbuf[14] = buf[pos+30] << decimation_shifts<SdrBits, InputBits>::pre32;
799 intbuf[15] = buf[pos+31] << decimation_shifts<SdrBits, InputBits>::pre32;
800 intbuf[16] = buf[pos+34] << decimation_shifts<SdrBits, InputBits>::pre32;
801 intbuf[17] = buf[pos+35] << decimation_shifts<SdrBits, InputBits>::pre32;
802 intbuf[18] = buf[pos+38] << decimation_shifts<SdrBits, InputBits>::pre32;
803 intbuf[19] = buf[pos+39] << decimation_shifts<SdrBits, InputBits>::pre32;
804 intbuf[20] = buf[pos+42] << decimation_shifts<SdrBits, InputBits>::pre32;
805 intbuf[21] = buf[pos+43] << decimation_shifts<SdrBits, InputBits>::pre32;
806 intbuf[22] = buf[pos+46] << decimation_shifts<SdrBits, InputBits>::pre32;
807 intbuf[23] = buf[pos+47] << decimation_shifts<SdrBits, InputBits>::pre32;
808 intbuf[24] = buf[pos+50] << decimation_shifts<SdrBits, InputBits>::pre32;
809 intbuf[25] = buf[pos+51] << decimation_shifts<SdrBits, InputBits>::pre32;
810 intbuf[26] = buf[pos+54] << decimation_shifts<SdrBits, InputBits>::pre32;
811 intbuf[27] = buf[pos+55] << decimation_shifts<SdrBits, InputBits>::pre32;
812 intbuf[28] = buf[pos+58] << decimation_shifts<SdrBits, InputBits>::pre32;
813 intbuf[29] = buf[pos+59] << decimation_shifts<SdrBits, InputBits>::pre32;
814 intbuf[30] = buf[pos+62] << decimation_shifts<SdrBits, InputBits>::pre32;
815 intbuf[31] = buf[pos+63] << decimation_shifts<SdrBits, InputBits>::pre32;
817 m_decimator2.myDecimate(
818 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre32,
819 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre32,
822 m_decimator2.myDecimate(
823 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre32,
824 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre32,
827 m_decimator2.myDecimate(
828 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre32,
829 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre32,
832 m_decimator2.myDecimate(
833 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre32,
834 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre32,
837 m_decimator2.myDecimate(
838 buf[pos+16] << decimation_shifts<SdrBits, InputBits>::pre32,
839 buf[pos+17] << decimation_shifts<SdrBits, InputBits>::pre32,
842 m_decimator2.myDecimate(
843 buf[pos+20] << decimation_shifts<SdrBits, InputBits>::pre32,
844 buf[pos+21] << decimation_shifts<SdrBits, InputBits>::pre32,
847 m_decimator2.myDecimate(
848 buf[pos+24] << decimation_shifts<SdrBits, InputBits>::pre32,
849 buf[pos+25] << decimation_shifts<SdrBits, InputBits>::pre32,
852 m_decimator2.myDecimate(
853 buf[pos+28] << decimation_shifts<SdrBits, InputBits>::pre32,
854 buf[pos+29] << decimation_shifts<SdrBits, InputBits>::pre32,
857 m_decimator2.myDecimate(
858 buf[pos+32] << decimation_shifts<SdrBits, InputBits>::pre32,
859 buf[pos+33] << decimation_shifts<SdrBits, InputBits>::pre32,
862 m_decimator2.myDecimate(
863 buf[pos+36] << decimation_shifts<SdrBits, InputBits>::pre32,
864 buf[pos+37] << decimation_shifts<SdrBits, InputBits>::pre32,
867 m_decimator2.myDecimate(
868 buf[pos+40] << decimation_shifts<SdrBits, InputBits>::pre32,
869 buf[pos+41] << decimation_shifts<SdrBits, InputBits>::pre32,
872 m_decimator2.myDecimate(
873 buf[pos+44] << decimation_shifts<SdrBits, InputBits>::pre32,
874 buf[pos+45] << decimation_shifts<SdrBits, InputBits>::pre32,
877 m_decimator2.myDecimate(
878 buf[pos+48] << decimation_shifts<SdrBits, InputBits>::pre32,
879 buf[pos+49] << decimation_shifts<SdrBits, InputBits>::pre32,
882 m_decimator2.myDecimate(
883 buf[pos+52] << decimation_shifts<SdrBits, InputBits>::pre32,
884 buf[pos+53] << decimation_shifts<SdrBits, InputBits>::pre32,
887 m_decimator2.myDecimate(
888 buf[pos+56] << decimation_shifts<SdrBits, InputBits>::pre32,
889 buf[pos+57] << decimation_shifts<SdrBits, InputBits>::pre32,
892 m_decimator2.myDecimate(
893 buf[pos+60] << decimation_shifts<SdrBits, InputBits>::pre32,
894 buf[pos+61] << decimation_shifts<SdrBits, InputBits>::pre32,
898 m_decimator4.myDecimate(
903 m_decimator4.myDecimate(
908 m_decimator4.myDecimate(
913 m_decimator4.myDecimate(
918 m_decimator4.myDecimate(
923 m_decimator4.myDecimate(
928 m_decimator4.myDecimate(
933 m_decimator4.myDecimate(
939 m_decimator8.myDecimate(
944 m_decimator8.myDecimate(
949 m_decimator8.myDecimate(
954 m_decimator8.myDecimate(
960 m_decimator16.myDecimate(
965 m_decimator16.myDecimate(
971 m_decimator32.myDecimate(
984 template<
typename T, u
int32_t SdrBits, u
int32_t InputBits>
988 SampleVector::iterator it;
992 for (
int pos = 0; pos < len - 127; pos += 128)
995 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre64;
996 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre64;
997 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre64;
998 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre64;
999 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre64;
1000 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre64;
1001 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre64;
1002 intbuf[8] = buf[pos+18] << decimation_shifts<SdrBits, InputBits>::pre64;
1003 intbuf[9] = buf[pos+19] << decimation_shifts<SdrBits, InputBits>::pre64;
1004 intbuf[10] = buf[pos+22] << decimation_shifts<SdrBits, InputBits>::pre64;
1005 intbuf[11] = buf[pos+23] << decimation_shifts<SdrBits, InputBits>::pre64;
1006 intbuf[12] = buf[pos+26] << decimation_shifts<SdrBits, InputBits>::pre64;
1007 intbuf[13] = buf[pos+27] << decimation_shifts<SdrBits, InputBits>::pre64;
1008 intbuf[14] = buf[pos+30] << decimation_shifts<SdrBits, InputBits>::pre64;
1009 intbuf[15] = buf[pos+31] << decimation_shifts<SdrBits, InputBits>::pre64;
1010 intbuf[16] = buf[pos+34] << decimation_shifts<SdrBits, InputBits>::pre64;
1011 intbuf[17] = buf[pos+35] << decimation_shifts<SdrBits, InputBits>::pre64;
1012 intbuf[18] = buf[pos+38] << decimation_shifts<SdrBits, InputBits>::pre64;
1013 intbuf[19] = buf[pos+39] << decimation_shifts<SdrBits, InputBits>::pre64;
1014 intbuf[20] = buf[pos+42] << decimation_shifts<SdrBits, InputBits>::pre64;
1015 intbuf[21] = buf[pos+43] << decimation_shifts<SdrBits, InputBits>::pre64;
1016 intbuf[22] = buf[pos+46] << decimation_shifts<SdrBits, InputBits>::pre64;
1017 intbuf[23] = buf[pos+47] << decimation_shifts<SdrBits, InputBits>::pre64;
1018 intbuf[24] = buf[pos+50] << decimation_shifts<SdrBits, InputBits>::pre64;
1019 intbuf[25] = buf[pos+51] << decimation_shifts<SdrBits, InputBits>::pre64;
1020 intbuf[26] = buf[pos+54] << decimation_shifts<SdrBits, InputBits>::pre64;
1021 intbuf[27] = buf[pos+55] << decimation_shifts<SdrBits, InputBits>::pre64;
1022 intbuf[28] = buf[pos+58] << decimation_shifts<SdrBits, InputBits>::pre64;
1023 intbuf[29] = buf[pos+59] << decimation_shifts<SdrBits, InputBits>::pre64;
1024 intbuf[30] = buf[pos+62] << decimation_shifts<SdrBits, InputBits>::pre64;
1025 intbuf[31] = buf[pos+63] << decimation_shifts<SdrBits, InputBits>::pre64;
1027 intbuf[32] = buf[pos+66] << decimation_shifts<SdrBits, InputBits>::pre64;
1028 intbuf[33] = buf[pos+67] << decimation_shifts<SdrBits, InputBits>::pre64;
1029 intbuf[34] = buf[pos+70] << decimation_shifts<SdrBits, InputBits>::pre64;
1030 intbuf[35] = buf[pos+71] << decimation_shifts<SdrBits, InputBits>::pre64;
1031 intbuf[36] = buf[pos+74] << decimation_shifts<SdrBits, InputBits>::pre64;
1032 intbuf[37] = buf[pos+75] << decimation_shifts<SdrBits, InputBits>::pre64;
1033 intbuf[38] = buf[pos+78] << decimation_shifts<SdrBits, InputBits>::pre64;
1034 intbuf[39] = buf[pos+79] << decimation_shifts<SdrBits, InputBits>::pre64;
1035 intbuf[40] = buf[pos+82] << decimation_shifts<SdrBits, InputBits>::pre64;
1036 intbuf[41] = buf[pos+83] << decimation_shifts<SdrBits, InputBits>::pre64;
1037 intbuf[42] = buf[pos+86] << decimation_shifts<SdrBits, InputBits>::pre64;
1038 intbuf[43] = buf[pos+87] << decimation_shifts<SdrBits, InputBits>::pre64;
1039 intbuf[44] = buf[pos+90] << decimation_shifts<SdrBits, InputBits>::pre64;
1040 intbuf[45] = buf[pos+91] << decimation_shifts<SdrBits, InputBits>::pre64;
1041 intbuf[46] = buf[pos+94] << decimation_shifts<SdrBits, InputBits>::pre64;
1042 intbuf[47] = buf[pos+95] << decimation_shifts<SdrBits, InputBits>::pre64;
1043 intbuf[48] = buf[pos+98] << decimation_shifts<SdrBits, InputBits>::pre64;
1044 intbuf[49] = buf[pos+99] << decimation_shifts<SdrBits, InputBits>::pre64;
1045 intbuf[50] = buf[pos+102] << decimation_shifts<SdrBits, InputBits>::pre64;
1046 intbuf[51] = buf[pos+103] << decimation_shifts<SdrBits, InputBits>::pre64;
1047 intbuf[52] = buf[pos+106] << decimation_shifts<SdrBits, InputBits>::pre64;
1048 intbuf[53] = buf[pos+107] << decimation_shifts<SdrBits, InputBits>::pre64;
1049 intbuf[54] = buf[pos+110] << decimation_shifts<SdrBits, InputBits>::pre64;
1050 intbuf[55] = buf[pos+111] << decimation_shifts<SdrBits, InputBits>::pre64;
1051 intbuf[56] = buf[pos+114] << decimation_shifts<SdrBits, InputBits>::pre64;
1052 intbuf[57] = buf[pos+115] << decimation_shifts<SdrBits, InputBits>::pre64;
1053 intbuf[58] = buf[pos+118] << decimation_shifts<SdrBits, InputBits>::pre64;
1054 intbuf[59] = buf[pos+119] << decimation_shifts<SdrBits, InputBits>::pre64;
1055 intbuf[60] = buf[pos+122] << decimation_shifts<SdrBits, InputBits>::pre64;
1056 intbuf[61] = buf[pos+123] << decimation_shifts<SdrBits, InputBits>::pre64;
1057 intbuf[62] = buf[pos+126] << decimation_shifts<SdrBits, InputBits>::pre64;
1058 intbuf[63] = buf[pos+127] << decimation_shifts<SdrBits, InputBits>::pre64;
1060 m_decimator2.myDecimate(
1061 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre64,
1062 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre64,
1065 m_decimator2.myDecimate(
1066 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre64,
1067 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre64,
1070 m_decimator2.myDecimate(
1071 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre64,
1072 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre64,
1075 m_decimator2.myDecimate(
1076 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre64,
1077 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre64,
1080 m_decimator2.myDecimate(
1081 buf[pos+16] << decimation_shifts<SdrBits, InputBits>::pre64,
1082 buf[pos+17] << decimation_shifts<SdrBits, InputBits>::pre64,
1085 m_decimator2.myDecimate(
1086 buf[pos+20] << decimation_shifts<SdrBits, InputBits>::pre64,
1087 buf[pos+21] << decimation_shifts<SdrBits, InputBits>::pre64,
1090 m_decimator2.myDecimate(
1091 buf[pos+24] << decimation_shifts<SdrBits, InputBits>::pre64,
1092 buf[pos+25] << decimation_shifts<SdrBits, InputBits>::pre64,
1095 m_decimator2.myDecimate(
1096 buf[pos+28] << decimation_shifts<SdrBits, InputBits>::pre64,
1097 buf[pos+29] << decimation_shifts<SdrBits, InputBits>::pre64,
1100 m_decimator2.myDecimate(
1101 buf[pos+32] << decimation_shifts<SdrBits, InputBits>::pre64,
1102 buf[pos+33] << decimation_shifts<SdrBits, InputBits>::pre64,
1105 m_decimator2.myDecimate(
1106 buf[pos+36] << decimation_shifts<SdrBits, InputBits>::pre64,
1107 buf[pos+37] << decimation_shifts<SdrBits, InputBits>::pre64,
1110 m_decimator2.myDecimate(
1111 buf[pos+40] << decimation_shifts<SdrBits, InputBits>::pre64,
1112 buf[pos+41] << decimation_shifts<SdrBits, InputBits>::pre64,
1115 m_decimator2.myDecimate(
1116 buf[pos+44] << decimation_shifts<SdrBits, InputBits>::pre64,
1117 buf[pos+45] << decimation_shifts<SdrBits, InputBits>::pre64,
1120 m_decimator2.myDecimate(
1121 buf[pos+48] << decimation_shifts<SdrBits, InputBits>::pre64,
1122 buf[pos+49] << decimation_shifts<SdrBits, InputBits>::pre64,
1125 m_decimator2.myDecimate(
1126 buf[pos+52] << decimation_shifts<SdrBits, InputBits>::pre64,
1127 buf[pos+53] << decimation_shifts<SdrBits, InputBits>::pre64,
1130 m_decimator2.myDecimate(
1131 buf[pos+56] << decimation_shifts<SdrBits, InputBits>::pre64,
1132 buf[pos+57] << decimation_shifts<SdrBits, InputBits>::pre64,
1135 m_decimator2.myDecimate(
1136 buf[pos+60] << decimation_shifts<SdrBits, InputBits>::pre64,
1137 buf[pos+61] << decimation_shifts<SdrBits, InputBits>::pre64,
1140 m_decimator2.myDecimate(
1141 buf[pos+64] << decimation_shifts<SdrBits, InputBits>::pre64,
1142 buf[pos+65] << decimation_shifts<SdrBits, InputBits>::pre64,
1145 m_decimator2.myDecimate(
1146 buf[pos+68] << decimation_shifts<SdrBits, InputBits>::pre64,
1147 buf[pos+69] << decimation_shifts<SdrBits, InputBits>::pre64,
1150 m_decimator2.myDecimate(
1151 buf[pos+72] << decimation_shifts<SdrBits, InputBits>::pre64,
1152 buf[pos+73] << decimation_shifts<SdrBits, InputBits>::pre64,
1155 m_decimator2.myDecimate(
1156 buf[pos+76] << decimation_shifts<SdrBits, InputBits>::pre64,
1157 buf[pos+77] << decimation_shifts<SdrBits, InputBits>::pre64,
1160 m_decimator2.myDecimate(
1161 buf[pos+80] << decimation_shifts<SdrBits, InputBits>::pre64,
1162 buf[pos+81] << decimation_shifts<SdrBits, InputBits>::pre64,
1165 m_decimator2.myDecimate(
1166 buf[pos+84] << decimation_shifts<SdrBits, InputBits>::pre64,
1167 buf[pos+85] << decimation_shifts<SdrBits, InputBits>::pre64,
1170 m_decimator2.myDecimate(
1171 buf[pos+88] << decimation_shifts<SdrBits, InputBits>::pre64,
1172 buf[pos+89] << decimation_shifts<SdrBits, InputBits>::pre64,
1175 m_decimator2.myDecimate(
1176 buf[pos+92] << decimation_shifts<SdrBits, InputBits>::pre64,
1177 buf[pos+93] << decimation_shifts<SdrBits, InputBits>::pre64,
1180 m_decimator2.myDecimate(
1181 buf[pos+96] << decimation_shifts<SdrBits, InputBits>::pre64,
1182 buf[pos+97] << decimation_shifts<SdrBits, InputBits>::pre64,
1185 m_decimator2.myDecimate(
1186 buf[pos+100] << decimation_shifts<SdrBits, InputBits>::pre64,
1187 buf[pos+101] << decimation_shifts<SdrBits, InputBits>::pre64,
1190 m_decimator2.myDecimate(
1191 buf[pos+104] << decimation_shifts<SdrBits, InputBits>::pre64,
1192 buf[pos+105] << decimation_shifts<SdrBits, InputBits>::pre64,
1195 m_decimator2.myDecimate(
1196 buf[pos+108] << decimation_shifts<SdrBits, InputBits>::pre64,
1197 buf[pos+109] << decimation_shifts<SdrBits, InputBits>::pre64,
1200 m_decimator2.myDecimate(
1201 buf[pos+112] << decimation_shifts<SdrBits, InputBits>::pre64,
1202 buf[pos+113] << decimation_shifts<SdrBits, InputBits>::pre64,
1205 m_decimator2.myDecimate(
1206 buf[pos+116] << decimation_shifts<SdrBits, InputBits>::pre64,
1207 buf[pos+117] << decimation_shifts<SdrBits, InputBits>::pre64,
1210 m_decimator2.myDecimate(
1211 buf[pos+120] << decimation_shifts<SdrBits, InputBits>::pre64,
1212 buf[pos+121] << decimation_shifts<SdrBits, InputBits>::pre64,
1215 m_decimator2.myDecimate(
1216 buf[pos+124] << decimation_shifts<SdrBits, InputBits>::pre64,
1217 buf[pos+125] << decimation_shifts<SdrBits, InputBits>::pre64,
1221 m_decimator4.myDecimate(
1226 m_decimator4.myDecimate(
1231 m_decimator4.myDecimate(
1236 m_decimator4.myDecimate(
1241 m_decimator4.myDecimate(
1246 m_decimator4.myDecimate(
1251 m_decimator4.myDecimate(
1256 m_decimator4.myDecimate(
1261 m_decimator4.myDecimate(
1266 m_decimator4.myDecimate(
1271 m_decimator4.myDecimate(
1276 m_decimator4.myDecimate(
1281 m_decimator4.myDecimate(
1286 m_decimator4.myDecimate(
1291 m_decimator4.myDecimate(
1296 m_decimator4.myDecimate(
1302 m_decimator8.myDecimate(
1307 m_decimator8.myDecimate(
1312 m_decimator8.myDecimate(
1317 m_decimator8.myDecimate(
1322 m_decimator8.myDecimate(
1327 m_decimator8.myDecimate(
1332 m_decimator8.myDecimate(
1337 m_decimator8.myDecimate(
1343 m_decimator16.myDecimate(
1348 m_decimator16.myDecimate(
1353 m_decimator16.myDecimate(
1358 m_decimator16.myDecimate(
1364 m_decimator32.myDecimate(
1369 m_decimator32.myDecimate(
1375 m_decimator64.myDecimate(
void decimate32_sup(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate8_sup(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate16_cen(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate4_cen(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
IntHalfbandFilter< qint32, 32 > m_decimator64
IntHalfbandFilter< qint32, 32 > m_decimator4
void decimate16_sup(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
IntHalfbandFilter< qint32, 32 > m_decimator16
void decimate32_inf(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate8_cen(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate8_inf(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
IntHalfbandFilter< qint32, 32 > m_decimator8
void getWriteIterator(SampleVector::iterator &it1)
void decimate4_inf(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate64_inf(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate2_sup(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate2_inf(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate64_sup(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate64_cen(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate1(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate4_sup(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate2_cen(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate2_u(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate32_cen(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
void decimate16_inf(SampleSinkFifoDoubleBuffered &fifo, const T *buf, qint32 len)
IntHalfbandFilter< qint32, 32 > m_decimator32
void bumpIndex(SampleVector::iterator &it1)
IntHalfbandFilter< qint32, 32 > m_decimator2