| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import cmsisdsp.fixedpoint as f
- import numpy as np
- #: F64 format
- F64 = 64
- #: F32 format
- F32 = 32
- #: F16 format
- F16 = 16
- #: Q31 fixed point format
- Q31 = 31
- #: Q15 fixed point format
- Q15 = 15
- #: Q7 fixed point format
- Q7 = 7
- class UnknownCMSISDSPDataType(Exception):
- pass
- def convert(samples,format):
- """
- Return an array of scalars in a given format converted from an array of doubles.
- It is typically used to convert a reference table in double to a table with a lower
- accuracy used for a specific implementation of an algorithm.
- :param samples: array of double.
- :type samples: array
- :param format: Format identification (F64,F32,F16,Q31,Q15,Q7).
- :type format: int
- :return: array of scalars in chosen format.
- :rtype: array
- """
- if format==Q31:
- return(f.toQ31(np.array(samples)))
- if format==Q15:
- return(f.toQ15(np.array(samples)))
- if format==Q7:
- return(f.toQ7(np.array(samples)))
- if format==F64:
- return(np.array(samples).astype(dtype=np.float64))
- if format==F32:
- return(np.array(samples).astype(dtype=np.float32))
- if format==F16:
- return(np.array(samples).astype(dtype=np.float16))
- raise UnknownCMSISDSPDataType
|