DSP_fltoq15

 

Float to Q15 Conversion

DSP_fltoq15

Function

 

void DSP_fltoq15 (float *x, short *r, short nx)

 

Arguments

 

x[nx]

Pointer to floating-point input vector of size nx. x should contain

 

 

 

the numbers normalized between [−1,1).

 

 

r[nx]

Pointer to output data vector of size nx containing the Q.15

 

 

 

equivalent of vector x.

 

 

nx

Length of input and output data vectors. Must be multiple of 2.

Description

 

Convert the IEEE floating point numbers stored in vector x[ ] into Q.15 format

 

 

numbers stored in vector r[ ]. Results are truncated toward zero. Values that

 

 

exceed the size limit will be saturated to 0x7fff if value is positive and 0x8000

 

 

if value is negative. All values too small to be correctly represented will be

 

 

truncated to 0.

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 fltoq15(float x[], short r[], short nx)

{

int i, a;

for(i = 0; i < nx; i++)

{

a = 32768 * x[i];

// saturate to 16−bit // if (a>32767) a = 32767; if (a<−32768) a = −32768;

r[i] = (short) a;

}

}

Special Requirements nx must be a multiple of 2.

C64x+ DSPLIB Reference

4-85

Page 113
Image 113
Texas Instruments TMS320C64X manual Float to Q15 Conversion, DSPfltoq15