|
|
| DSP_fltoq15 | |
| Float to Q15 Conversion | |||
DSP_fltoq15 | ||||
Function |
| void DSP_fltoq15 (float *x, short *r, short nx) |
| |
Arguments |
| x[nx] | Pointer to | |
|
|
| 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 |