mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-06 07:07:48 -04:00
Inf/Sup decimators fix (3): all decimators but by 64
This commit is contained in:
parent
f99f7cd598
commit
41319b63e5
File diff suppressed because it is too large
Load Diff
@ -589,6 +589,40 @@ public:
|
|||||||
advancePointer();
|
advancePointer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void myDecimateCen(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
|
||||||
|
{
|
||||||
|
storeSample32(x1, y1);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(x2, y2);
|
||||||
|
doFIR(&out[0], &out[1]);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(x3, y3);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(x4, y4);
|
||||||
|
doFIR(&out[2], &out[3]);
|
||||||
|
advancePointer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void myDecimateCen(int32_t *in, int32_t *out)
|
||||||
|
{
|
||||||
|
storeSample32(in[0], in[1]);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(in[2], in[3]);
|
||||||
|
doFIR(&out[0], &out[1]);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(in[4], in[5]);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(in[6], in[7]);
|
||||||
|
doFIR(&out[2], &out[3]);
|
||||||
|
advancePointer();
|
||||||
|
}
|
||||||
|
|
||||||
void myDecimateInf(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
|
void myDecimateInf(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
|
||||||
{
|
{
|
||||||
storeSample32(-y1, x1);
|
storeSample32(-y1, x1);
|
||||||
@ -606,6 +640,23 @@ public:
|
|||||||
advancePointer();
|
advancePointer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
|
||||||
|
{
|
||||||
|
storeSample32(-y1, x1);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(-x2, -y2);
|
||||||
|
doFIR(&out[0], &out[1]);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(y3, -x3);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(x4, y4);
|
||||||
|
doFIR(&out[2], &out[3]);
|
||||||
|
advancePointer();
|
||||||
|
}
|
||||||
|
|
||||||
void myDecimateSup(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
|
void myDecimateSup(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
|
||||||
{
|
{
|
||||||
storeSample32(y1, -x1);
|
storeSample32(y1, -x1);
|
||||||
@ -623,6 +674,23 @@ public:
|
|||||||
advancePointer();
|
advancePointer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
|
||||||
|
{
|
||||||
|
storeSample32(y1, -x1);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(-x2, -y2);
|
||||||
|
doFIR(&out[0], &out[1]);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(-y3, x3);
|
||||||
|
advancePointer();
|
||||||
|
|
||||||
|
storeSample32(x4, y4);
|
||||||
|
doFIR(&out[2], &out[3]);
|
||||||
|
advancePointer();
|
||||||
|
}
|
||||||
|
|
||||||
/** Simple zero stuffing and filter */
|
/** Simple zero stuffing and filter */
|
||||||
void myInterpolateZeroStuffing(Sample* sample1, Sample* sample2)
|
void myInterpolateZeroStuffing(Sample* sample1, Sample* sample2)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user