Пример #1
0
def rotateAcceleration(accel, angles):
  #angles: 0:roll, 1:pitch, 2:yaw
  #accel: 0:x, 1:y, 2:z
  #gravity = rotateGravity(angles)
  #accel[0] -= gravity[0]
  #accel[1] -= gravity[1]
  #accel[2] -= gravity[2]
  rotAccel = [[0.0 for i in range(len(accel[0]))] for i in range(3)]
  roll = [math.radians(i) for i in angles[0]]
  pitch = [math.radians(i) for i in angles[1]]
  yaw = [math.radians(i) for i in angles[2]]
  alpha = 0.05
  accel[0] = filters.lowpass(filters.highpass(accel[0], alpha), 0.2)
  accel[1] = filters.lowpass(filters.highpass(accel[1], alpha), 0.2)
  accel[2] = filters.lowpass(filters.highpass(accel[2], alpha), 0.2)
  for k in range(len(accel[0])):
    R = RtoGround(roll[k], pitch[k], yaw[k])
    for i in range(3):
      for j in range(3):
        rotAccel[i][k] += R[i][j] * accel[j][k]

  return rotAccel
Пример #2
0
def rotateAcceleration(accel, angles):
    #angles: 0:roll, 1:pitch, 2:yaw
    #accel: 0:x, 1:y, 2:z
    #gravity = rotateGravity(angles)
    #accel[0] -= gravity[0]
    #accel[1] -= gravity[1]
    #accel[2] -= gravity[2]
    rotAccel = [[0.0 for i in range(len(accel[0]))] for i in range(3)]
    roll = [math.radians(i) for i in angles[0]]
    pitch = [math.radians(i) for i in angles[1]]
    yaw = [math.radians(i) for i in angles[2]]
    alpha = 0.05
    accel[0] = filters.lowpass(filters.highpass(accel[0], alpha), 0.2)
    accel[1] = filters.lowpass(filters.highpass(accel[1], alpha), 0.2)
    accel[2] = filters.lowpass(filters.highpass(accel[2], alpha), 0.2)
    for k in range(len(accel[0])):
        R = RtoGround(roll[k], pitch[k], yaw[k])
        for i in range(3):
            for j in range(3):
                rotAccel[i][k] += R[i][j] * accel[j][k]

    return rotAccel
Пример #3
0
reshaped_data = None

# Extract data chunk for single channel
channel =21
minutes = 60
seconds = minutes*60
num_samples_per_chunk = seconds*freq
channel_data = reshaped_data_T[channel,:num_samples_per_chunk]
reshaped_data_T = None

# Convert from interger values to microvolts, sub 32768 to go back to signed, 0.195 from analog to digital converter
channel_data_uV = (channel_data.astype(np.float32) - 32768) * 0.195
channel_data = None

# FILTERS (one ch at the time)
channel_data_highpass = highpass(channel_data_uV,BUTTER_ORDER=3, F_HIGH=14250,sampleFreq=30000.0,passFreq=500)
#data_lowpass = butter_filter_lowpass(data_zero_mean[channel_number,:], lowcut=250,  fs=30000, order=3, btype='lowpass')
#channel_data_highpass = butter_filter(channel_data_uV, 500, 5000, fs=30000, order=3, btype='bandpass')

#lowcut = 500
#highcut = 2000
#channel_data_bandpass =  butter_filter(channel_data_uV, lowcut, highcut, fs=30000, order=3, btype='bandstop')

f0 =plt.figure(figsize=(15,4))

sns.set()
sns.set_style('white')
sns.axes_style('white')
sns.despine(left=False)

figure_name =  'uv_ch_22.pdf'