##// END OF EJS Templates
Fusion
Fusion

File last commit:

r9:0cad6347e265 default
r11:c08a29e29fbf merge tip default
Show More
data_generator.py
62 lines | 1.6 KiB | text/x-python | PythonLexer
import numpy as np
def getWaveFromRecord( cwf, bufferSize, offset, column ):
yVector = cwf[(0+offset):(bufferSize+offset), column]
return yVector
def sineWave( bufferSize, nbPeriod, amplitude):
deltaX = nbPeriod * 2 * np.pi / bufferSize
xVector = np.arange( bufferSize ) * deltaX
yVector = np.int16( amplitude * np.sin( xVector ) )
return yVector
def continuous( bufferSize, value ):
tmpVector = np.empty( bufferSize )
tmpVector.fill( value )
yVector = np.int16( tmpVector )
return yVector
def step( bufferSize, value ):
tmpVector = np.zeros( bufferSize )
for k in range( bufferSize / 2 ):
tmpVector[ bufferSize / 2 + k ] = value
yVector = np.int16( tmpVector )
return yVector
def dirac( bufferSize, value, position=0 ):
tmpVector = np.zeros( bufferSize )
if position < bufferSize:
tmpVector[position] = value
yVector = np.int16( tmpVector )
return yVector
def generateDataToWrite( bufferSize, wfrm0, wfrm1 ):
dataVector = []
for k in range(bufferSize):
dataVector.append(
( (np.int16(wfrm1[k]) & 0xffff ) << 16)
| (np.int16(wfrm0[k]) & 0xffff )
)
return dataVector
def convertToSigned16Bits( dataToConvert ):
dataInInt16 = np.int16( dataToConvert )
if dataInInt16 < 32768:
val = dataInInt16
else:
val = dataInInt16 - 65536
return val
def convertVectorToSigned16Bits( bufferSize, dataBuffer ):
dataBufferConverted = np.zeros( bufferSize )
for k in range( bufferSize ):
dataBufferConverted[k] = convertToSigned16Bits( dataBuffer[k] )
return dataBufferConverted
def convertToSigned8Bits( dataToConvert ):
dataInInt16 = np.int8( dataToConvert )
if dataInInt16 < 8:
val = dataInInt16
else:
val = dataInInt16 - 16
return val