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