Texas Instruments TMS320C64X User Manual

Page 66

Advertising
background image

DSP_fir_cplx

4-38

4.4

Filtering and Convolution

Complex FIR Filter

DSP_fir_cplx

Function

void DSP_fir_cplx (const short * restrict x, const short * restrict h, short * restrict
r, int nh, int nr)

Arguments

x[2*(nr+nh−1)] Complex input data. x must point to x[2*(nh−1)].

h[2*nh]

Complex coefficients (in normal order).

r[2*nr]

Complex output data.

nh

Number of complex coefficients. Must be a multiple of 2.

nr

Number of complex output samples. Must be a multiple of 4.

Description

This function implements the FIR filter for complex input data. The filter has
nr output samples and nh coefficients. Each array consists of an even and odd
term with even terms representing the real part and the odd terms the
imaginary part of the element. The pointer to input array x must point to the
(nh)th complex sample; i.e., element 2*(nh−1), upon entry to the function. The
coefficients are expected in normal order.

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_cplx(short *x, short *h, short *r,short nh, short
nr)

{

short i,j;

int imag, real;

for (i = 0; i < 2*nr; i += 2){

imag = 0;

real = 0;

for (j = 0; j < 2*nh; j += 2){

real += h[j] * x[i−j] − h[j+1] * x[i+1−j];

imag += h[j] * x[i+1−j] + h[j+1] * x[i−j];

}

r[i] = (real >> 15);

r[i+1] = (imag >> 15);

}

}

Advertising