From 5a77ce098c05a58c8ee550253c92e28981cb3031 Mon Sep 17 00:00:00 2001 From: LexvanGastel <l.vangastel@studen.utwente.nl> Date: Tue, 1 Apr 2025 13:59:28 +0200 Subject: [PATCH] vraag 10 --- main.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/main.py b/main.py index f9655e4..184dcb8 100644 --- a/main.py +++ b/main.py @@ -81,6 +81,13 @@ def info_emg_data(file_path): #file_path = "emg_data_walking.mat" #info_emg_data(file_path) +def compute_fft(signal, sampling_rate): + N = len(signal) + fft_values = np.fft.fft(signal) + fft_magnitude = np.abs(fft_values[:N//2]) + freq = np.fft.fftfreq(N, d=1/sampling_rate)[:N//2] + return freq, fft_magnitude + def plot_emg_data(file_path): sampling_rate, data, num_samples, duration = info_emg_data(file_path) @@ -89,6 +96,9 @@ def plot_emg_data(file_path): channel_rectus_femoris = data[chosen_muscles['rectus_fomoris'], :] channel_tibialis_anterior = data[chosen_muscles['tibialis_anterior'], :] + freq_rf, fft_rf = compute_fft(channel_rectus_femoris, sampling_rate) + freq_ta, fft_ta = compute_fft(channel_tibialis_anterior, sampling_rate) + plt.figure(figsize=(10,6)) plt.subplot(2, 1, 1) @@ -96,12 +106,29 @@ def plot_emg_data(file_path): plt.title('EMG Data - Rectus femoris') plt.xlabel('Time [Seconds]') plt.ylabel('Amplitude') + plt.legend() 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.legend() + + plt.tight_layout() + plt.show() + + plt.subplot(2, 2, 3) + plt.plot(freq_rf, fft_rf) + plt.title('Power Spectrum - Rectus Femoris') + plt.xlabel('Frequency [Hz]') + plt.ylabel('Magnitude') + + plt.subplot(2, 2, 4) + plt.plot(freq_ta, fft_ta) + plt.title('Power Spectrum - Tibialis Anterior') + plt.xlabel('Frequency [Hz]') + plt.ylabel('Magnitude') plt.tight_layout() plt.show() @@ -111,3 +138,5 @@ plot_emg_data(file_path) + + -- GitLab