From c7cf0c1caf6e666d02f22826e6bef1c93f53d0f4 Mon Sep 17 00:00:00 2001 From: LexvanGastel <l.vangastel@studen.utwente.nl> Date: Tue, 1 Apr 2025 12:11:29 +0200 Subject: [PATCH] vraag9 --- main.py | 62 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/main.py b/main.py index 87517a8..f9655e4 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ import scipy.io +import numpy as np from scipy.signal import butter, filtfilt -import scipy.signal +import matplotlib.pyplot as plt def load_emg_data(file_path): @@ -25,8 +26,8 @@ def load_emg_data(file_path): return channel_names -file_path = "emg_data_walking.mat" -load_emg_data(file_path) +#file_path = "emg_data_walking.mat" +#load_emg_data(file_path) chosen_muscles = { 'rectus_fomoris': 0, @@ -43,7 +44,7 @@ class DataRetrieval: def load_data(self): mat_data = scipy.io.loadmat(self.file_path) self.emg_data = mat_data['emg_data_walking'] - self.channel_names = emg_data['data_headers'][0][0] + self.channel_names = self.emg_data['data_headers'][0][0] self.channel_names = [ch[0] for ch in self.channel_names[0]] def get_channel_names(self): @@ -63,15 +64,50 @@ class SignalProcessing: pass #print(dir(scipy.signal)) -mat_data = scipy.io.loadmat('emg_data_walking.mat') -emg_data = mat_data['emg_data_walking'] -sampling_rate = emg_data['sampling_rate'][0][0][0] -data = emg_data['data'][0][0] -num_samples = data.shape[1] +def info_emg_data(file_path): + mat_data = scipy.io.loadmat(file_path) + emg_data = mat_data['emg_data_walking'] + + sampling_rate = emg_data['sampling_rate'][0][0][0] + + data = emg_data['data'][0][0] + num_samples = data.shape[1] + + duration = num_samples / sampling_rate + return sampling_rate, data, num_samples, duration + +#file_path = "emg_data_walking.mat" +#info_emg_data(file_path) + +def plot_emg_data(file_path): + sampling_rate, data, num_samples, duration = info_emg_data(file_path) + + sampling_time = float(1/sampling_rate) + time_vector = np.arange(0,duration,sampling_time) + channel_rectus_femoris = data[chosen_muscles['rectus_fomoris'], :] + channel_tibialis_anterior = data[chosen_muscles['tibialis_anterior'], :] + + plt.figure(figsize=(10,6)) + + plt.subplot(2, 1, 1) + plt.plot(time_vector, channel_rectus_femoris) + plt.title('EMG Data - Rectus femoris') + plt.xlabel('Time [Seconds]') + plt.ylabel('Amplitude') + + plt.subplot(2, 1, 2) + plt.plot(time_vector, channel_tibialis_anterior) + plt.title('EMG Data - Tibialis Anterior') + plt.xlabel('Time [seconds]') + plt.ylabel('Amplitude') + + plt.tight_layout() + plt.show() + +file_path = "emg_data_walking" +plot_emg_data(file_path) + + -duration = num_samples / sampling_rate -print(f"Sampling frequentie: {sampling_rate} Hz") -print(f"Aantal samples: {num_samples}") -print(f"Lengte van de data: {duration}") -- GitLab