| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import os.path
- import numpy as np
- import itertools
- import Tools
- # Those patterns are used for tests and benchmarks.
- # For tests, there is the need to add tests for saturation
- def randComplex(nb):
- data = np.random.randn(2*nb)
- data = data/max(data)
- data_comp = data.view(dtype=np.complex128)
- return(data_comp)
- def asReal(a):
- #return(a.view(dtype=np.float64))
- return(a.reshape(np.size(a)).view(dtype=np.float64))
- def writeTests(config):
- NBSAMPLES=256
- data1=randComplex(NBSAMPLES)
- data2=randComplex(NBSAMPLES)
- data3=np.random.randn(NBSAMPLES)
- data3 = data3/max(data3)
-
- config.writeInput(1, asReal(data1))
- config.writeInput(2, asReal(data2))
- config.writeInput(3, data3)
-
- ref = np.conj(data1)
- config.writeReference(1, asReal(ref))
- ref = np.array(np.dot(data1 ,data2))
- config.writeReference(2, asReal(ref))
- ref = np.absolute(data1)**2
- config.writeReference(3, asReal(ref))
- ref = data1 * data2
- config.writeReference(4, asReal(ref))
- ref = data1 * data3
- config.writeReference(5, asReal(ref))
-
- PATTERNDIR = os.path.join("Patterns","DSP","ComplexMaths","ComplexMaths")
- PARAMDIR = os.path.join("Parameters","DSP","ComplexMaths","ComplexMaths")
- configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
- configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31")
- configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15")
- #configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7")
- writeTests(configf32)
- writeTests(configq31)
- writeTests(configq15)
- #writeTests(configq7)
|