mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-26 01:39:05 -05: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();
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
storeSample32(-y1, x1);
|
||||
@ -606,6 +640,23 @@ public:
|
||||
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)
|
||||
{
|
||||
storeSample32(y1, -x1);
|
||||
@ -623,6 +674,23 @@ public:
|
||||
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 */
|
||||
void myInterpolateZeroStuffing(Sample* sample1, Sample* sample2)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user