Texas Instruments TMS320C64X DSPfirr4, FIR Filter when the number of coefficients is a multiple

Models: TMS320C64X

1 169
Download 169 pages 59.58 Kb
Page 74
Image 74

DSP_fir_r4

DSP_fir_r4

FIR Filter (when the number of coefficients is a multiple of 4)

Function

 

 

 

 

void DSP_fir_r4 (const short * restrict x, const short * restrict h, short * restrict

 

 

r, int nh, int nr)

 

 

Arguments

 

x[nr+nh−1]

Pointer to input array of size nr + nh – 1.

 

 

h[nh]

Pointer to coefficient array of size nh (coefficients must be in

 

 

 

reverse order).

 

 

r[nr]

Pointer to output array of size nr.

 

 

nh

Number of coefficients. Must be multiple of 4 and 8.

 

 

nr

Number of samples to calculate. Must be multiple of 4.

Description

 

Computes a real FIR filter (direct-form) using coefficients stored in vector h[ ].

 

 

The real data input is stored in vector x[ ]. The filter output result is stored in

 

 

vector r[ ]. This FIR operates on 16-bit data with a 32-bit accumulate. The filter

 

 

calculates nr output samples using nh coefficients.

Algorithm

 

This is the C equivalent of the assembly code without restrictions. Note that

 

 

the assembly code is hand optimized and restrictions may apply.

void DSP_fir_r4(short *x, short *h, short *r, int nh, int nr)

{

int i, j, sum;

for (j = 0; j < nr; j++) { sum = 0;

for (i = 0; i < nh; i++) sum += x[i + j] * h[i];

r[j] = sum >> 15;

}

}

4-46

Page 74
Image 74
Texas Instruments TMS320C64X manual DSPfirr4, FIR Filter when the number of coefficients is a multiple