RMUL2025/lib/cmsis_5/CMSIS/DSP/PythonWrapper/examples/testdsp3.py

56 lines
893 B
Python
Executable File

import cmsisdsp as dsp
import numpy as np
import cmsisdsp.fixedpoint as f
# Test vlog q31 and q15
x = np.array([0.9,0.5,2**-16])
r=dsp.arm_vlog_q15(f.toQ15(x))
print(f.Q15toF32(r)*16.0)
r=dsp.arm_vlog_q31(f.toQ31(x))
print(f.Q31toF32(r)*32.0)
print(np.log(x))
print("")
# Test sin_cos
t=20
sinRef=np.sin(t * np.pi / 180)
cosRef=np.cos(t * np.pi / 180)
print(sinRef)
print(cosRef)
s,c=dsp.arm_sin_cos_f32(t)
print(s)
print(c)
s,c=dsp.arm_sin_cos_q31(f.toQ31(t/180.0))
print(f.Q31toF32(s))
print(f.Q31toF32(c))
print("")
# Test sqrt
a=0.6
print(np.sqrt(a))
err,r=dsp.arm_sqrt_f32(a)
print(err,r)
err,r=dsp.arm_sqrt_q31(f.toQ31(a))
print(err,f.Q31toF32(r))
err,r=dsp.arm_sqrt_q15(f.toQ15(a))
print(err,f.Q15toF32(r))
err,r=dsp.arm_sqrt_f32(-a)
print(err,r)
err,r=dsp.arm_sqrt_q31(f.toQ31(-a))
print(err,f.Q31toF32(r))
err,r=dsp.arm_sqrt_q15(f.toQ15(-a))
print(err,f.Q15toF32(r))