This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Convolution problem

Note: This was originally posted on 20th August 2013 at http://forums.arm.com

When i obtain high pass filter using arm_conv_partial_f32 function instead of arm_fir_f32 function; i get same output array with opposite signs. This situation is not seen when i use low pass or mid pass filter. Anyone help?
Parents
  • Note: This was originally posted on 22nd August 2013 at http://forums.arm.com

    I have a hunch what is happening.  The FIR filter function arm_fir_f32() requires that the filter coefficients be in time reversed order.  The arm_conv_partial_f32() has the coefficients in normal order.  In a high pass filter, the coefficients typically alternate in sign.  If the length of the filter is even then time flipping the filter is equivalent to scaling by -1.


    When i obtain high pass filter using arm_conv_partial_f32 function instead of arm_fir_f32 function; i get same output array with opposite signs. This situation is not seen when i use low pass or mid pass filter. Anyone help?
Reply
  • Note: This was originally posted on 22nd August 2013 at http://forums.arm.com

    I have a hunch what is happening.  The FIR filter function arm_fir_f32() requires that the filter coefficients be in time reversed order.  The arm_conv_partial_f32() has the coefficients in normal order.  In a high pass filter, the coefficients typically alternate in sign.  If the length of the filter is even then time flipping the filter is equivalent to scaling by -1.


    When i obtain high pass filter using arm_conv_partial_f32 function instead of arm_fir_f32 function; i get same output array with opposite signs. This situation is not seen when i use low pass or mid pass filter. Anyone help?
Children
No data