data_generator.py
62 lines
| 1.6 KiB
| text/x-python
|
PythonLexer
/ test_fft / data_generator.py
|
r9 | 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 | ||||