Brainflow Sample
Brainflow Sample
import time
import numpy as np
import pandas as pd
from brainflow.board_shim import BoardShim, BrainFlowInputParams, LogLevels,
BoardIds
from brainflow.data_filter import DataFilter
def main():
BoardShim.enable_dev_board_logger()
if __name__ == "__main__":
main()
import time
import numpy as np
import pandas as pd
from brainflow.board_shim import BoardShim, BrainFlowInputParams, LogLevels,
BoardIds
from brainflow.data_filter import DataFilter
def main():
BoardShim.enable_dev_board_logger()
if __name__ == "__main__":
main()
---------Signal Filtering--------------
import time
import matplotlib
import numpy as np
import pandas as pd
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def main():
BoardShim.enable_dev_board_logger()
df = pd.DataFrame(np.transpose(data))
plt.figure()
df[eeg_channels].plot(subplots=True)
plt.savefig('after_processing.png')
if __name__ == "__main__":
main()
-----------Denoising-----------------
import time
import matplotlib
import numpy as np
import pandas as pd
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def main():
BoardShim.enable_dev_board_logger()
# demo for denoising, apply different methods to different channels for demo
for count, channel in enumerate(eeg_channels):
# first of all you can try simple moving median or moving average with
different window size
if count == 0:
DataFilter.perform_rolling_filter(data[channel], 3,
AggOperations.MEAN.value)
elif count == 1:
DataFilter.perform_rolling_filter(data[channel], 3,
AggOperations.MEDIAN.value)
# if methods above dont work for your signal you can try wavelet based
denoising
# feel free to try different parameters
else:
DataFilter.perform_wavelet_denoising(data[channel],
WaveletTypes.BIOR3_9, 3,
WaveletDenoisingTypes.SURESHRINK,
ThresholdTypes.HARD,
WaveletExtensionTypes.SYMMETRIC,
NoiseEstimationLevelTypes.FIRST_LEVEL)
df = pd.DataFrame(np.transpose(data))
plt.figure()
df[eeg_channels].plot(subplots=True)
plt.savefig('after_processing.png')
if __name__ == "__main__":
main()
-----------Band power-------------
import time
def main():
BoardShim.enable_dev_board_logger()
eeg_channels = board_descr['eeg_channels']
# second eeg channel of synthetic board is a sine wave at 10Hz, should see huge
alpha
eeg_channel = eeg_channels[1]
# optional detrend
DataFilter.detrend(data[eeg_channel], DetrendOperations.LINEAR.value)
psd = DataFilter.get_psd_welch(data[eeg_channel], nfft, nfft // 2,
sampling_rate,
WindowOperations.BLACKMAN_HARRIS.value)
if __name__ == "__main__":
main()
my_list = [10, 20, 30, 40, 50, 60]
mean = sum(my_list) / len(my_list)
print(mean)