DSPRelated.com
Forums

21161 vs 21065 fir

Started by Steve Holle August 27, 2003
I was using the ADSP21161 which had the following signature for fir :

float *fir ( 	const float dm input[],
		float dm output[],
		const float pm coeffs[],
		float dm state[],
		int samples,
		int taps
	);

I was forced to switch to the ADSP21065L which has the following
signature for fir :

float fir (	float sample,
		const float pm coeffs[],
		float dm state[],
		int taps
	);

The obvious difference is that the 21161 fir is designed to process an
array of samples and the 21065L is designed to process a single
element.  Does anyone have the asm souce for a 21065L fir that
performs the array instead of the single sample processing.  I've
already tried just performing a for loop in c and it's too slow.

Thanks.
"Steve Holle" <sholle@link-comm.com> wrote in message
news:ba83847d.0308271451.7b9a4709@posting.google.com...
> I was using the ADSP21161 which had the following signature for fir : > > float *fir ( const float dm input[], > float dm output[], > const float pm coeffs[], > float dm state[], > int samples, > int taps > ); > > I was forced to switch to the ADSP21065L which has the following > signature for fir : > > float fir ( float sample, > const float pm coeffs[], > float dm state[], > int taps > ); > > The obvious difference is that the 21161 fir is designed to process an > array of samples and the 21065L is designed to process a single > element. Does anyone have the asm souce for a 21065L fir that > performs the array instead of the single sample processing. I've > already tried just performing a for loop in c and it's too slow.
Look at the src files that come with your VDSP distribution. Specifically, look for 'fir_vec_nonSIMD.asm' under the 2116x directory. This should give you what you want (essentially the difference between the 21161 and the 21065 is the lack of SIMD with reference to what you want to do). I believe this is what you are looking for? Cheers Bhaskar
> > Thanks.