From 50b71d3723f77147eeaab1798e6018fc5235c7c6 Mon Sep 17 00:00:00 2001 From: yalmansour1998 <120363766+yalmansour1998@users.noreply.github.com> Date: Mon, 22 Apr 2024 16:35:46 +0200 Subject: [PATCH] Add files via upload --- Matlab/visu_ASCAN.m | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Matlab/visu_ASCAN.m diff --git a/Matlab/visu_ASCAN.m b/Matlab/visu_ASCAN.m new file mode 100644 index 0000000..03a9084 --- /dev/null +++ b/Matlab/visu_ASCAN.m @@ -0,0 +1,70 @@ +clc +clear all +close all + +fichier = 'Dataset\Shear_Wave_Rot00_CSV_Data\Shear_x001-x101_y010_Rot00.csv'; + +donnees = readtable(fichier); +first_row = table2array(donnees(:,:)); +x1 = 1:length(first_row); +% filtre du Hilbert +m_hat = abs(hilbert(first_row)); +%%filtre passe bas +fs=200; +cutoff=7; +order=2; +nyq = 0.5 * fs; +normal_cutoff = cutoff / nyq; +[b, a] = butter(order, normal_cutoff, 'low'); +filtered_passe_bas = abs(filter(b, a, first_row)); + +%filtre passe haut +fs=2000; +cutoff=2; +order=2; +nyq = 0.5 * fs; +normal_cutoff = cutoff / nyq; +[b, a] = butter(order, normal_cutoff, 'high'); +filtered_passe_haut = abs(filter(b, a, first_row)); +%m=(filtered_passe_haut+filtered_passe_bas)./2; +figure +plot(x1,filtered_passe_haut,'r',x1,filtered_passe_bas,'b',x1,m_hat,'black',x1,abs(first_row)); +title('Graphe de ASCAN'); +xlabel('Indice'); +ylabel('amplitude'); + +%%%% 2eme filtre appliquer +%filtre de moyenne mobile +window_size = 40; +filtered_m_hat_smooth = movmean(m_hat, window_size); +filtered_passe_bas_smooth = movmean(filtered_passe_bas, window_size); +filtered_passe_haut_smooth = movmean(filtered_passe_haut, window_size); +figure +plot(x1,filtered_passe_bas_smooth,'b',x1,filtered_passe_haut_smooth,'r',x1,filtered_m_hat_smooth,'black',x1,abs(first_row)); +title('Graphe de ASCAN'); +xlabel('Indice'); +ylabel('amplitude'); + +%filtre adaptatif de réduction de bruit +filtered_m_hat_adaptive = wiener2(m_hat); +filtered_passe_bas_adaptive = wiener2(filtered_passe_bas); +filtered_passe_haut_adaptive = wiener2(filtered_passe_haut); +figure +plot(x1,filtered_passe_bas_smooth,'b',x1,filtered_passe_haut_smooth,'r',x1,filtered_m_hat_smooth,'black',x1,abs(first_row)); +title('Graphe de ASCAN'); +xlabel('Indice'); +ylabel('amplitude'); + +%Le filtre à réponse impulsionnelle infinie +window_size = 31; +b = hamming(window_size); +b = b / sum(b); +filtered_m_hat = filter(b, 1, m_hat); +filtered_passe_bas = filter(b, 1, filtered_passe_bas); +filtered_passe_haut = filter(b, 1, filtered_passe_haut); + +figure +plot(x1,filtered_passe_bas,'b',x1,filtered_passe_haut,'r',x1,filtered_m_hat,'black',x1,abs(first_row)); +title('Graphe de ASCAN'); +xlabel('Indice'); +ylabel('amplitude');