| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import numpy as np
- def q31sat(x):
- if x > 0x7FFFFFFF:
- return(np.int32(0x7FFFFFFF))
- elif x < -0x80000000:
- return(np.int32(0x80000000))
- else:
- return(np.int32(x))
- q31satV=np.vectorize(q31sat)
- def toQ31(x):
- """
- Return an array of Q31 scalars from an array of floats
- :param x: array of float.
- :type x: array
- :return: array of Q31 scalars.
- :rtype: array
- """
- return(q31satV(np.round(np.array(x) * (1<<31))))
- def q15sat(x):
- if x > 0x7FFF:
- return(np.int16(0x7FFF))
- elif x < -0x8000:
- return(np.int16(0x8000))
- else:
- return(np.int16(x))
- q15satV=np.vectorize(q15sat)
- def toQ15(x):
- """
- Return an array of Q15 scalars from an array of floats
- :param x: array of float.
- :type x: array
- :return: array of Q15 scalars.
- :rtype: array
- """
- return(q15satV(np.round(np.array(x) * (1<<15))))
- def q7sat(x):
- if x > 0x7F:
- return(np.int8(0x7F))
- elif x < -0x80:
- return(np.int8(0x80))
- else:
- return(np.int8(x))
- q7satV=np.vectorize(q7sat)
- def toQ7(x):
- """
- Return an array of Q7 scalars from an array of floats
- :param x: array of float.
- :type x: array
- :return: array of Q7 scalars.
- :rtype: array
- """
- return(q7satV(np.round(np.array(x) * (1<<7))))
- def Q31toF32(x):
- """
- Return an array of float values from an array of Q31 values
- :param x: Array of Q31 values.
- :type x: array
- :return: Array of float values.
- :rtype: array
- """
- return(1.0*np.array(x) / 2**31)
- def Q15toF32(x):
- """
- Return an array of float values from an array of Q15 values
- :param x: Array of Q15 values.
- :type x: array
- :return: Array of float values.
- :rtype: array
- """
- return(1.0*np.array(x) / 2**15)
- def Q7toF32(x):
- """
- Return an array of float values from an array of Q7 values
- :param x: Array of Q7 values.
- :type x: array
- :return: Array of float values.
- :rtype: array
- """
- return(1.0*np.array(x) / 2**7)
|