41 linhas
1.2 KiB
Python
Arquivo Executável
41 linhas
1.2 KiB
Python
Arquivo Executável
import timeit
|
|
import numpy as np
|
|
import plugin_interface as plugintypes
|
|
|
|
class PluginNoiseTest(plugintypes.IPluginExtended):
|
|
# update counters value
|
|
def __call__(self, sample):
|
|
# keep tract of absolute value of
|
|
self.diff = np.add(self.diff,np.absolute(np.asarray(sample.channel_data)))
|
|
self.sample_count = self.sample_count + 1
|
|
|
|
|
|
elapsed_time = timeit.default_timer() - self.last_report
|
|
if elapsed_time > self.polling_interval:
|
|
channel_noise_power = np.divide(self.diff,self.sample_count)
|
|
|
|
print (channel_noise_power)
|
|
self.diff = np.zeros(self.eeg_channels)
|
|
self.last_report = timeit.default_timer()
|
|
|
|
|
|
|
|
# # Instanciate "monitor" thread
|
|
def activate(self):
|
|
# The difference between the ref and incoming signal.
|
|
# IMPORTANT: For noise tests, the reference and channel should have the same input signal.
|
|
self.diff = np.zeros(self.eeg_channels)
|
|
self.last_report = timeit.default_timer()
|
|
self.sample_count = 0
|
|
self.polling_interval = 1.0
|
|
|
|
if len(self.args) > 0:
|
|
self.polling_interval = float(self.args[0])
|
|
|
|
|
|
|
|
def show_help(self):
|
|
print ("Optional argument: polling_interval -- in seconds, default: 10. \n \
|
|
Returns the power of the system noise.\n \
|
|
NOTE: The reference and channel should have the same input signal.")
|