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