|
|
|
|
@ -24,6 +24,8 @@ static void checkInnerTail(float32_t *b)
|
|
|
|
|
ASSERT_TRUE(b[3] == 0.0f);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Coef must be padded to a multiple of 4
|
|
|
|
|
#define FIRCOEFPADDING 2
|
|
|
|
|
|
|
|
|
|
void FIRF32::test_fir_f32()
|
|
|
|
|
{
|
|
|
|
|
@ -44,6 +46,7 @@ static void checkInnerTail(float32_t *b)
|
|
|
|
|
#endif
|
|
|
|
|
int blockSize;
|
|
|
|
|
int numTaps;
|
|
|
|
|
int round;
|
|
|
|
|
int nb=0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -61,12 +64,24 @@ static void checkInnerTail(float32_t *b)
|
|
|
|
|
blockSize = configp[0];
|
|
|
|
|
numTaps = configp[1];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nb += 2*blockSize;
|
|
|
|
|
|
|
|
|
|
#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
|
|
|
|
|
/* Copy coefficients and pad to zero
|
|
|
|
|
*/
|
|
|
|
|
memset(coeffArray,0,32*sizeof(float32_t));
|
|
|
|
|
memset(coeffArray,127,32*sizeof(float32_t));
|
|
|
|
|
round = numTaps >> FIRCOEFPADDING;
|
|
|
|
|
if ((round << FIRCOEFPADDING) < numTaps)
|
|
|
|
|
{
|
|
|
|
|
round ++;
|
|
|
|
|
}
|
|
|
|
|
round = round<<FIRCOEFPADDING;
|
|
|
|
|
memset(coeffArray,0,round*sizeof(float32_t));
|
|
|
|
|
|
|
|
|
|
//printf("blockSize=%d, numTaps=%d, round=%d (%d)\n",blockSize,numTaps,round,round - numTaps);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(j=0;j < numTaps; j++)
|
|
|
|
|
{
|
|
|
|
|
coeffArray[j] = orgcoefsp[j];
|
|
|
|
|
|