Salut à tous, je m'inscris ici en desespoir !
Je vous expose ma situation.

Je travaille sur un projet d'accoustique avec mon ami.
Le but est de recueillir avec un micro des signaux dans une salle, et ensuite analyser les signaux ainsi recueillis (analyse frequentielle, temporelle, spectrogramme etc.)

Je precise que je suis absolument débutant et completement novice avec matlab, c'est la premiere fois que je touche à ce truc ! Ca a l'air mégaperformant mais c'est pas si facile d'acces !

Mon collegue de travail a pondu un programme qui permette d'ouvrir un fichier son/signal et d'effectuer les differentes analyses dessus.

Son programme marche et je suis chargé, à l'aide de GUIDE dans matlab de creer une interface interactive pour exploiter le programme avec :

un pushbutton qui permette de selectionner le fichier a ouvrir
un pushbutton qui effectue l'analyse frequentielle et qui affiche le resultat dans une zone graphique
un pushbutton qui effectue l'analyse temporelle etc.
un pushbutton qui effectue le spectrogramme etc.
un pushbutton qui permette a chaque fois de sauvegarder l'image/graphe obtenu dans la zone graphique.

Question :
est-ce faisable ?
comment ?
j'ai deja fait un fichier .FIG avec mes pushbuttons etc mais mon probleme c'est comment relier ca au programme de mon ami, je vous mets le code ci apres:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
% ouverture de fichier
[file,D]=uigetfile('*AICH1*','Selection fichier');   %permet de sélectionner le fichier AICH1 dans une fenêtre séparée
fud=fopen(file,'r','b');    %ouvre le fichier file et autorise la lecture
    s = fread(fud,'double');    %lit le fichier que représente fud et le met dans s
    fclose(fud);                %referme le fichier
 
s = s - mean(s);            %réajuster la mesure en cas d'amplitude non centrée en zéro
 
% calcul fréq échantillonnage
filename = file;
filename = filename(14:18);
T = str2double(filename)/1000;     %transforme le string en num
fsd = length(s)/T;  %fréquence d'échantillonnage
nfsd = fsd/2;    %fréquence de Nyquist
 
% filtrage
% [b,a]=butter(8,20/nfsd,'high');     %calcul des paramètres de filtrage. (degré du filtre,fréquence de coupure/f Nyquist, passe bas, haut)
% sf=filter(b,a,s);   %filtrage de s donne sf
 
% analyse temporelle
plot(s),ylabel('Volt'),xlabel('Samples');
title('Analyse temporelle');
xlabel('Time (s)');
ylabel('Pression (Pa)');
 
fileAF = file(1:end-6);
fileAT = strcat(fileAF, '_AT');
saveas(gcf, fileAT, 'fig');
 
% analyse fréquentielle
Hs = spectrum.periodogram;
saf = psd(Hs,s,'Fs',fsd);
 
figure; plot(saf);
title('Densité spectrale moyenne');
xlabel('Frequency (Hz)');
xlim([0.01 0.1]);
ylim([-150 0]);
 
fileAF = file(1:end-6);
fileAF = strcat(fileAF, '_AF');
saveas(gcf, fileAF, 'fig');
 
 
% spectrogramme
[Sas, Fas, Tas] = spectrogram(s,1024*16,1024*13,1024*16,fsd);
 
figure; surf(Tas, Fas, 20*log10(abs(Sas)),'EdgeColor','none');
axis xy; axis tight; colormap(jet); view(0,90);
ylim([10 80]);
title('Sonogramme par FFT');
xlabel('Time (s)');
ylabel('Frequency (Hz)');
colorbar;
 
fileAS = file(1:end-6);
fileAS = strcat(fileAS, '_AS');
saveas(gcf, fileAS, 'fig');
Toute aide bienvenue avec d'infinis remerciements !