AnsweredAssumed Answered

CMSIS DSP Library - spurious output from arm_conv_f32

Question asked by John F. on Nov 9, 2011
Originally Posted 12 October 2011 to OnARM forum (which seems to be dead).

Using arm_conv_f32 with a 7 element array and a 58 element array I get convolution results I expect.

0.0625, 0.125, 0.1875, 0.25, 0.1875, 0.125, 0.0625

0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Output,
0,0,0,0,0,0,0,0,0,0,0,0,0,0.0625,0.1875,0.375,0.625,0.8125,0.9375,1,1,1,1,0.9375,0.8125,0.625,0.375,0.1875,0.0625,
0,0,0,0,0,0.0625,0.1875,0.375,0.5625,0.625,0.5625,0.375,0.1875,0.0625,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0


Changing one array to 57 elements and putting the correct length in the function call I get spurious output (sum of the shorter array elements = 1) at bins 55 and 56 (zero based array).

0.0625, 0.125, 0.1875, 0.25, 0.1875, 0.125, 0.0625
0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Output,
0,0,0,0,0,0,0,0,0,0,0,0,0,0.0625,0.1875,0.375,0.625,0.8125,0.9375,1,1,1,1,0.9375,0.8125,0.625,0.375,0.1875,0.0625,
0,0,0,0,0,0.0625,0.1875,0.375,0.5625,0.625,0.5625,0.375,0.1875,0.0625,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0

Anyone else seen this problem? Is the library function faulty? Have I done something stupid?

I assumed I had done something stupid like a stack overflow etc. but I tried again with this and still get the same results. The function is the same in the ARM CMSIS source and in the STM32 library which includes the DSP library so no updates there.

Anyone using the DSP library out there who could check this out for me and comment please?

Outcomes