From: yomguy Date: Thu, 27 Mar 2008 11:38:55 +0000 (+0000) Subject: * Fix new function name in the DOC X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=f63af35de56db69a6bb55c89267b9b26e74a64d7;p=cnaq.git * Fix new function name in the DOC git-svn-id: http://svn.parisson.org/svn/CNAQ/trunk@155 5fc3e0e6-29bc-4d03-b52b-c088cb822bde --- diff --git a/CNAQ.fig b/CNAQ.fig index ccc3771..e6a1b1b 100644 Binary files a/CNAQ.fig and b/CNAQ.fig differ diff --git a/CNAQ.m b/CNAQ.m index de44c7b..69a00df 100644 --- a/CNAQ.m +++ b/CNAQ.m @@ -111,7 +111,7 @@ varargout{1} = handles.output; % uiwait(handles.figure1); % ============================================================== -cnaq_version = '0.2'; +cnaq_version = get_version(); % ============================================================== @@ -176,94 +176,6 @@ set(handles.voices_out,'String','1|1 2|1 2 3|1 2 3 4'); set(handles.in_on_off,'UserData',device); set(handles.save_button,'UserData',latency); -% ============================================================== -% TOOLS -% ============================================================== - -function id = get_id(handles) - home_dir = get(handles.home_dir_box,'String'); - id_file = [home_dir '\ID.m']; - if exist(id_file) == 0 - id = '1'; - elseif exist(id_file) == 2 - fid = fopen(id_file, 'r'); - id = fgetl(fid); - fclose(fid); - end - -function increment_id(handles) - home_dir = get(handles.home_dir_box,'String'); - id_file = [home_dir '\ID.m']; - id = get_id(handles); - id = num2str(str2double(id) + 1); - fid = fopen(id_file, 'w+'); - fprintf(fid, id); - fclose(fid); - set(handles.ID,'String',id); - -function f_s = get_fs(handles) - fs_ind = get(handles.f_s,'Value'); - if fs_ind == 1 - f_s = 44100; - elseif fs_ind == 2 - f_s = 48000; - elseif fs_ind == 3 - f_s = 96000; - end - -function set_fs(handles, f_s) - if f_s == 44100 - fs_ind = 1; - elseif f_s == 48000 - fs_ind = 2; - elseif f_s == 88200 - fs_ind = 3; - elseif f_s == 96000 - fs_ind = 4; - elseif f_s == 192000 - fs_ind = 5; - end - set(handles.f_s,'Value',fs_ind); - -function voices_out = get_voices_out(handles) - vo_ind = get(handles.voices_out,'Value'); - if vo_ind == 1 - voices_out = [1]; - elseif vo_ind == 2 - voices_out = [1,2]; - elseif vo_ind == 3 - voices_out = [1,2,3]; - elseif vo_ind == 4 - voices_out = [1,2,3,4]; - end - -function voices_in = get_voices_in(handles) - vi_ind = get(handles.voices_in,'Value'); - if vi_ind == 1 - voices_in = [1]; - elseif vi_ind == 2 - voices_in = [1 2]; - elseif vi_ind == 3 - voices_in = [1 2 3]; - elseif vi_ind == 4 - voices_in = [1 2 3 4]; - end - -function nbits = get_nbits(handles) - nb_ind = get(handles.nbits,'Value'); - if nb_ind == 1 - nbits = 16; - elseif nb_ind == 2 - nbits = 24; - end - -function set_nbits(handles, nbits) - if nbits == 16 - nb_ind = 1; - elseif nbits == 24 - nb_ind = 2; - end - set(handles.nbits,'Value', nb_ind); %============================================ % DATA @@ -316,45 +228,7 @@ function get_home_dir_Callback(hObject, eventdata, handles) %============================================ function in_on_off_Callback(hObject, eventdata, handles) - device = get(handles.in_on_off,'UserData'); - buffer = 8192; - window = hanning(buffer); - f_s = get_fs(handles); - time = buffer/f_s; - t = [0:1/f_s:time-1/f_s]; - - f_min = str2double(get(handles.f_gen_min,'String')); - f_max = str2double(get(handles.f_gen_max,'String')); - freq = 2*(f_max-f_min)/buffer; - f = [0:f_s/buffer:f_s/2]; - f = f(1:length(f)-1); - voices_in = get_voices_in(handles); - voice_first = voices_in(1); - voice_last = voices_in(length(voices_in)); - - while get(handles.in_on_off,'Value') == 1 - % TIME_GEN - %sig_in = wavrecord(buffer,f_s,2); - sig_in = pa_wavrecord(voice_first, voice_last, buffer, f_s, device, 'asio'); - sig_in = sig_in(:,1); - axes(handles.plot_in_temp); - cla; - %sig = sin(2*pi*10*t); - plot(t,sig_in); - grid on; - - % FREQ - axes(handles.plot_in_freq); - cla; - fft_in = fft(sig_in.*window,buffer); - log_abs_fft_in = 20*log10(2*abs(fft_in(1:round(buffer/2)))/buffer); - semilogx(f,log_abs_fft_in); - %axis([f_min f_max min(log_abs_fft_in) max(log_abs_fft_in)]); - axis([f_min f_max -120 0]); - grid on; - drawnow; - pause(0.01); - end + monitor(handles) %============================================ @@ -467,7 +341,6 @@ function f_gen_min_CreateFcn(hObject, eventdata, handles) set(hObject,'BackgroundColor','white'); end - function f_gen_Callback(hObject, eventdata, handles) set(handles.freq_value,'String',num2str(get(handles.f_gen,'Value'))); @@ -477,64 +350,9 @@ function f_gen_CreateFcn(hObject, eventdata, handles) set(hObject,'BackgroundColor',[.9 .9 .9]); end - - function gen_on_off_Callback(hObject, eventdata, handles) % Hint: get(hObject,'Value') returns toggle state of gen_on_off - - f_min = str2double(get(handles.f_gen_min,'String')); - f_max = str2double(get(handles.f_gen_max,'String')); - sig_type = get(handles.sig_type,'Value'); - sin_freq = get(handles.f_gen,'Value'); - f_s = get_fs(handles); - time = get(handles.time_gen,'Value'); - voices_out = get_voices_out(handles); - %voice_first = voices_out(1); - %voice_last = voices_out(length(voices_out)); - gain_out = get(handles.gain_out,'Value'); - gain_out = 10^(gain_out/20); - t = [0:1/f_s:time]; - n_t = length(t); - - if sig_type == 1 - % SINUS - sig = gain_out*sin(2*pi*sin_freq*t); - elseif sig_type == 2 - % CHIRP - sig = gain_out*chirp(t,f_min,time,f_max,'logarithmic'); - elseif sig_type == 3 - % WHITE NOISE - sig = gain_out*white_noise(n_t); - elseif sig_type == 4 - % PINK NOISE - sig = gain_out*pink_noise(n_t); - end - - sig_out = []; - for i=1:length(voices_out) - sig_out(:,i) = sig'; - end - - % Matlab way (needs Data Acquisition Toolbox) -% ao = analogoutput('winsound', 0); -% addchannel(ao, voices_out); -% set(ao, 'StandardSampleRates', 'Off'); -% set(ao, 'SampleRate', f_s); -% -% if get(handles.gen_on_off,'Value') == 1 -% putdata(ao, sig_out); -% start(ao); -% set(handles.gen_on_off,'Value',0); -% end -% %delete(ao); - - % PA way but can't work with monitor !... - %pa_wavplay(sig_out',f_s,0,'asio'); - - % Winsoud way to get the scope running... - sound(sig_out',f_s); - pause(0.1); - + generator(handles) %============================================ @@ -549,86 +367,7 @@ function mes_type_CreateFcn(hObject, eventdata, handles) end function mes_on_Callback(hObject, eventdata, handles, device) -% [device, latency] = ASIO(); -% set(handles.in_on_off,'UserData',device); -% set(handles.save_button,'UserData',latency); - pause(0.2); - device = get(handles.in_on_off,'UserData'); - latency = get(handles.save_button,'UserData'); - nfft = 32768; - f_min = str2double(get(handles.f_gen_min,'String')); - f_max = str2double(get(handles.f_gen_max,'String')); - f_s = get_fs(handles); - time = get(handles.time_gen,'Value'); - voices_in = get_voices_in(handles); - voice_first = voices_in(1); - voice_last = voices_in(length(voices_in)); - gain_out = get(handles.gain_out,'Value'); - gain_out = 10^(gain_out/20); - - % Avoid Gibbs like phenomenon - f0 = 1; - f1 = f_min; - f2 = f_max; - f3 = f_s/2; - fade_in_time = time/((log(f2/f0)/log(f1/f0))-1); - fade_out_time = time*((log(f3/f1)/log(f2/f1))-1); - total_time = fade_in_time + time + fade_out_time; - t = [0:1/f_s:total_time]; - - % Remove clicks durring emission and oscillations in the spectral response - len_win_in = fade_in_time * f_s; - window = blackman(len_win_in); - len_win_in = round(len_win_in/2); - window_in = window(1:len_win_in); - - len_win_out = fade_out_time * f_s; - window = blackman (len_win_out); - len_win_out = round(len_win_out/2); - window_out = flipud(window(1:len_win_out)); - - sig_exc = gain_out*chirp_farina(t,total_time,f0,f3); - l_t = length(t); - one(1:l_t-len_win_in-len_win_out) = 1; - mask = [window_in' one window_out']; - sig_exc = sig_exc.*mask; - - % Synchronizing - zero = zeros(1,latency); - % Zeros are added before and removed after - sig_exc_z = [sig_exc zero]; - len_sig_exc = length(sig_exc); - - % Make all voices - sig_out = []; - for i=1:length(voices_in) - sig_out(:,i) = sig_exc_z'; - end - - % Measure - sig_mes = pa_wavplayrecord(sig_out, device, f_s, 0, voice_first, voice_last, device, 'asio'); - % Usage: - % inputbuffer = pa_wavplayrecord(playbuffer,[playdevice],[samplerate], - % [recnsamples], [recfirstchannel], [reclastchannel], - % [recdevice], [devicetype]) - - % Resynchro - pause(0.1); - len_sig_mes = length(sig_mes); - size_sig_mes = size(sig_mes); - n_col_sig_mes = size_sig_mes(2); - sig_mes = sig_mes(latency+1:len_sig_mes,:); - len_sig_mes = length(sig_mes); - sig_exc = sig_exc'; - f = logspace(log10(f0), log10(f3), len_sig_mes)'; - - % Save data - set(handles.ID,'UserData',sig_mes); - set(handles.id_title,'UserData',sig_exc); - set(handles.mes_on,'UserData',f); - set(handles.plot,'UserData',t); - - % Plot + measurement(handles) plot_Callback(hObject, eventdata, handles) % Close all figures @@ -637,7 +376,7 @@ function close_button_Callback(hObject, eventdata, handles) % hObject handle to close_button (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) - close all; + close all; % --- Executes on button press in plot. @@ -645,112 +384,18 @@ function plot_Callback(hObject, eventdata, handles) % hObject handle to plot (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) - - % Get data - sig_mes = get(handles.ID,'UserData'); - sig_exc = get(handles.id_title,'UserData'); - f = get(handles.mes_on,'UserData'); - t = get(handles.plot,'UserData'); - f_min = str2double(get(handles.f_gen_min,'String')); - f_max = str2double(get(handles.f_gen_max,'String')); - f_s = get_fs(handles); - - % Get infos - username = get(handles.username,'String'); - comment = get(handles.comment,'String'); - id = get(handles.ID,'String'); - - % Compute excitation spectrum - [rep_imp_exc, spec_exc] = fonc_trans(f, sig_exc, sig_exc); - len_spec_exc = length(spec_exc); - spec_exc = spec_exc(1:len_spec_exc/2); - - size_sig_mes = size(sig_mes); - n_col_sig_mes = size_sig_mes(2); - - % Compute all Ris and specs - for i=1:n_col_sig_mes - voice = num2str(i); - [rep_imp_mes, spec_mes] = fonc_trans(f, sig_exc, sig_mes(:,i)); - len_spec_mes = length(spec_mes); - spec_mes = spec_mes(1:len_spec_mes/2); - % Plot results - f_lin = [0:f_s/len_spec_mes:f_s/2]; - f_lin = f_lin(1:length(f_lin)-1); - plot_mes(t, f_lin, f_s, f_min, f_max, sig_exc, sig_mes(:,i), rep_imp_mes, spec_mes, spec_exc, id, voice, username, comment, i); - end - - set(handles.close_button,'UserData',f_lin'); - set(handles.plot,'UserData',t); + plot_main(handles) % SAVE all data in a mat file function save_button_Callback(hObject, eventdata, handles) - % Get data - id = get(handles.ID,'String'); - username = get(handles.username,'String'); - home_dir = get(handles.home_dir_box,'String'); - comment = get(handles.comment,'String'); - sig_exc = get(handles.id_title,'UserData'); - sig_mes = get(handles.ID,'UserData'); - f_log = get(handles.mes_on,'UserData'); - f_lin = get(handles.close_button,'UserData'); - f_s = get_fs(handles); - nbits = get_nbits(handles); - f = get(handles.mes_on,'UserData'); - t = get(handles.plot,'UserData'); - f_min = str2double(get(handles.f_gen_min,'String')); - f_max = str2double(get(handles.f_gen_max,'String')); - time = get(handles.time_gen,'Value'); - voices_in = get_voices_in(handles); - gain_in = get(handles.gain_in,'Value'); - voices_out = get_voices_out(handles); - gain_out = get(handles.gain_out,'Value'); - - % Save it - file = [home_dir '\' username '_' id '.mat']; - save(file); - - % Clear big data - set(handles.ID,'UserData',[]); - set(handles.id_title,'UserData',[]); - set(handles.mes_on,'UserData',[]); - - % Increment ID - increment_id(handles); + save_mes(handles) % --- Executes on button press in load. -function load_Callback(hObject, eventdata, handless) +function load_Callback(hObject, eventdata, handles) % hObject handle to load (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) + load_mes(handles) - [filename, pathname, filterindex] = uigetfile('*.mat', 'Pick a saved MAT file'); - load([pathname filename]); - - % Set data - set(handless.username,'String',username); - set(handless.home_dir_box,'String',home_dir); - set(handless.comment,'String',comment); - set(handless.id_title,'UserData',sig_exc); - set(handless.ID,'UserData',sig_mes); - set(handless.mes_on,'UserData',f_log); - set(handless.close_button,'UserData',f_lin); - set_fs(handless, f_s); - set_nbits(handless, nbits); - set(handless.mes_on,'UserData', f); - set(handless.plot,'UserData', t); - set(handless.f_gen_min,'String', num2str(f_min)); - set(handless.f_gen_max,'String', num2str(f_max)); - set(handless.f_gen,'Value', f); - set(handless.freq_value,'String',num2str(f)); - set(handless.time_gen,'Value', time); - set(handless.time_value,'String',num2str(time)); - set(handless.gain_in,'Value', gain_in); - set(handless.gain_out,'Value', gain_out); - set(handless.gain_in_value,'String',num2str(gain_in)); - set(handless.gain_out_value,'String',num2str(gain_out)); - - - \ No newline at end of file diff --git a/doc/latex/Manuel_CNAQ.pdf b/doc/latex/Manuel_CNAQ.pdf index 7aa14ee..7c85056 100644 Binary files a/doc/latex/Manuel_CNAQ.pdf and b/doc/latex/Manuel_CNAQ.pdf differ diff --git a/doc/latex/Manuel_CNAQ.tex b/doc/latex/Manuel_CNAQ.tex index d345814..4963d95 100644 --- a/doc/latex/Manuel_CNAQ.tex +++ b/doc/latex/Manuel_CNAQ.tex @@ -15,7 +15,7 @@ \vspace{4mm} \rule{17cm}{1mm}\\ \large{\today\\} - \large{Version 0.1}\\ + \large{Version 0.2}\\ \vspace{3cm} \end{flushright} \begin{figure}[h] @@ -58,7 +58,7 @@ CNAQ est un logiciel dédié à la mesure de fonctions de transfert des systèmes électriques ou électrodynamiques. Ecrit en langage Matlab, il permet d'utiliser une carte d'acquisition audio compatible avec la norme ASIO pour générer un signal de type sinus glissant (<< sweep >> ou << chirp >> en anglais), de quantifier la réponse temporelle du système puis d'en déterminer la fonction de transfert. Ce logiciel est développé dans le cadre de la rénovation des modules de travaux pratiques d'acoustique dispensés au CNAM de Paris.\\ -A l'avenir (version >= 0.2), la structure d'analyse de CNAQ utilisera la méthode d'Angelo Farina \cite{farina} qui, appliquée dans le domaine numérique, permet d'obtenir des réponses avec un grand nombre d'échantillons, même aux très basses fréquences, tout en suivant les harmoniques créés au cours du glissement en fréquence. Le calcul est en effet basé sur un produit de convolution dont la transformée de Fourier comporte le même nombre de points que le nombre d'échantillons dans le signal mesuré. Outre le fait que cette technique offre une souplesse d'utilisation supplémentaire par rapport aux autres méthodes, MLS par exemple, elle fournit des résolutions fréquentielles très élevés, notamment aux basses fréquences. Elle rend également aisée et rapide la déduction des taux de distortions du système mesuré \cite{muller}. Un test (\verb|tests\farina.m|) permet de comparer la méthode Farina à celle du rapport des transformées de Fourier. Il apparaît que la première donne de meilleurs résultats dans le domaine temporel pour évaluer la réponse impulsionnelle alors que la deuxième semble optimale pour la détermination de la réponse fréquentielle.\\ +A l'avenir (version >= 0.3), la structure d'analyse de CNAQ utilisera la méthode d'Angelo Farina \cite{farina} qui, appliquée dans le domaine numérique, permet d'obtenir des réponses avec un grand nombre d'échantillons, même aux très basses fréquences, tout en suivant les harmoniques créés au cours du glissement en fréquence. Le calcul est en effet basé sur un produit de convolution dont la transformée de Fourier comporte le même nombre de points que le nombre d'échantillons dans le signal mesuré. Outre le fait que cette technique offre une souplesse d'utilisation supplémentaire par rapport aux autres méthodes, MLS par exemple, elle fournit des résolutions fréquentielles très élevés, notamment aux basses fréquences. Elle rend également aisée et rapide la déduction des taux de distortions du système mesuré \cite{muller}. Un test (\verb|tests\farina.m|) permet de comparer la méthode Farina à celle du rapport des transformées de Fourier. Il apparaît que la première donne de meilleurs résultats dans le domaine temporel pour évaluer la réponse impulsionnelle alors que la deuxième semble optimale pour la détermination de la réponse fréquentielle.\\ Le logiciel CNAQ offre ainsi une interface interactive pour mesurer et calculer les fonctions de transfert directement dans Matlab. Il s'inspire Il s'inspire entre autres de l'excellent logiciel libre QLoud \cite{qloud} fonctionnant sur système GNU/Linux. @@ -131,7 +131,7 @@ Afin d'obtenir un signal entrant synchronis \item Définir le numéro du périphérique ASIO. Par exemple : \begin{verbatim} - >> device = 0 + >> device = 10 \end{verbatim} \item Définir le nombre de boucles de mesure. Par exemple : @@ -175,7 +175,7 @@ et remplacer les valeurs \verb|device| et \verb|latency| par celles d \end{figure} \item Remplir les champs << Nom d'utilisateur >> et << Commentaires >>. - \item Démarrer le vu-mètre stereo : \verb|C:\CNAQ\vu-meters\meterV.exe|. + \item Démarrer le vu-mètre stereo : \verb|C:\CNAQ\tools\vu-meters\meterV.exe|. \end{enumerate} @@ -184,25 +184,26 @@ et remplacer les valeurs \verb|device| et \verb|latency| par celles d L'interface graphique de CNAQ comporte 6 blocs principaux dont voici les descriptions : \begin{description} - \item[Données :] les données générales de la prochaine mesure : le nom de groupe (à remplir), les commentaires (optionnels), le dossier de travail à choisir (bouton \textbf{Browse}), la fréquence d'échantillonnage \textbf{$F_s$} en Hz et le nombre de bits \textbf{Nbits} de la quantification.\\ + \item[Metadata :] les données générales de la prochaine mesure : le nom de groupe (à remplir), les commentaires (optionnels), le dossier de travail à choisir (bouton \textbf{Browse}).\\ \item[Infos :] les informations de copyright et de version de l'application utilisée.\\ - \item[Moniteur :] les fenêtres d'affichage en temps réel des signaux entrant par la voie n°1. Au démarrage, l'affichage est désactivé. La première fenêtre est la forme d'onde temporelle du signal par blocs de 1 s et la deuxième le module de la transformée de Fourier de chaque bloc numérisé. Cette fonction est démarrée en appuyant sur le bouton \textbf{ON/OFF} et stoppée de la même manière.\\ + \item[Monitor :] les fenêtres d'affichage en temps réel des signaux entrant par la voie n°1. Au démarrage, l'affichage est désactivé. La première fenêtre est la forme d'onde temporelle du signal par blocs de 1 s et la deuxième le module de la transformée de Fourier de chaque bloc numérisé. Cette fonction est démarrée en appuyant sur le bouton \textbf{ON/OFF} et stoppée de la même manière.\\ \textbf{Remarque :} les fonctions d'affichage de Matlab imposent une priorité maximale de l'affichage de CNAQ lorsque le moniteur est enclenché. Pour pouvoir intervenir sur d'autres fenêtres dans l'environnement Windows, il est donc nécessaire de \textbf{stopper le moniteur}.\\ - \item[Voies :] les voies entrantes et sortantes utilisées de la carte d'acquisition et leurs gains associées dans l'intervalle $[0;1]$.\\ + \item[Voices :] la fréquence d'échantillonnage \textbf{$F_s$} en Hz, le nombre de bits \textbf{Nbits} de la quantification ainsi que les voies entrantes et sortantes utilisées de la carte d'acquisition et leurs gains associées dans l'intervalle $[0;1]$.\\ - \item[Générateur : ] les fonctions permettant de générer un signal et de le jouer à travers les voies choisies.\\ - Si le type de signal est un \textbf{sinus}, sa fréquence est déterminé par la valeur du curseur \textbf{Fréquence} et sa durée par la valeur du curseur \textbf{Durée}. Les bornes de chaque curseur sont déterminées par les valeurs indiquées dans les champs latéraux.\\ + \item[Generator : ] les fonctions permettant de générer un signal et de le jouer à travers les voies choisies.\\ + Si le type de signal est un \textbf{sinus}, sa fréquence est déterminé par la valeur du curseur \textbf{Frequency} et sa durée par la valeur du curseur \textbf{Time}. Les bornes de chaque curseur sont déterminées par les valeurs indiquées dans les champs latéraux.\\ Si le type de signal est un \textbf{chirp}, un sinus à fréquence glissante logarithmique est généré. Ses bornes sont celles du curseur de fréquence.\\ L'émission du signal déterminé est effectuée en cliquant sur le bouton \textbf{TRIG}. Noter qu'il est possible d'émettre un signal tout en visualisant la réponse du système étudié sur le moniteur.\\ - \item[Mesure :] les fonctions de mesure de fonctions de transfert selon la méthode de Farina.\\ + \item[Measurement :] les fonctions de mesure de fonctions de transfert selon la méthode de Farina.\\ Les valeurs des bornes fréquentielles pour la génération du chirp ainsi que sa durée sont issues de celles du bloc Générateur.\\ Le bouton \textbf{TRIG} lance la mesure et affiche les résultats temporels (réponse temporelle et réponse impulsionnelle) et fréquentiels (module et phase) dans de nouvelles fenêtres pour chaque voie.\\ - Le bouton \textbf{Sauver} sauvegarde l'ensemble des paramètres de la fenêtre, le signal émis ainsi que tous les signaux temporels mesurés dans un fichier de type MAT dans le dossier de travail. Le nom de ce fichier comporte le nom du groupe et l'\textbf{ID} de la mesure. Cette valeur s'incrémente automatiquement après chaque sauvegarde.\\ - Le bouton \textbf{Plot last} trace la dernière mesure effectuée. + Le bouton \textbf{Save} sauvegarde l'ensemble des paramètres de la fenêtre, le signal émis ainsi que tous les signaux temporels mesurés dans un fichier de type MAT dans le dossier de travail. Le nom de ce fichier comporte le nom du groupe et l'\textbf{ID} de la mesure. Cette valeur s'incrémente automatiquement après chaque sauvegarde.\\ + Le bouton \textbf{Load} charge un fichier de sauvegarde au format .MAT préalablement sauvé. On récupère alors tous les réglages de la mesure correspondante.\\ + Le bouton \textbf{Plot} trace la dernière mesure effectuée ou chargée. \end{description} @@ -220,7 +221,7 @@ Voici une chronologie des \item Régler les paramètres du générateur qui détermineront ceux de la mesure (intervalles, durée, etc...). \item Régler les appareils intermédiaires (amplis, filtres) en utilisant le générateur et le moniteur. Ne pas dépasser 0 dB au vu-mètre. \item Effectuer la mesure à l'aide du bouton \textbf{TRIG} du bloc Mesure. - \item Sauvegarder éventuellement la mesure en cliquant sur le bouton \textbf{Sauver}. + \item Sauvegarder éventuellement la mesure en cliquant sur le bouton \textbf{Save}. \end{enumerate} @@ -233,7 +234,7 @@ Outre les r load(D:\Durand\Durand_89.mat); \end{verbatim} -Toutes les variables ainsi que les signaux temporels mesurés sont alors disponibles en mémoire pour être traîtés (voir la fenêtre \textbf{Workspace}). Voici une liste non-exhaustive des paramètres et des signaux récupérés : +Toutes les variables ainsi que les signaux temporels mesurés sont alors disponibles en mémoire pour être traîtés (voir l'onglet \textbf{Workspace} dans la fenêtre principale de MATLAB). Voici une liste non-exhaustive des paramètres et des signaux récupérés : \begin{description} \item[\texttt{comment} :] le commentaire textuel associé à la mesure.