|
|
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
|
|
|
|