From 607e630dd276f03bc2ce6c5635b3d9989b68e0f1 Mon Sep 17 00:00:00 2001 From: yomguy Date: Sat, 12 Jan 2008 11:42:50 +0000 Subject: [PATCH] * Add Load button and function * Fix ID detect bug * Arrange measurement window git-svn-id: http://svn.parisson.org/svn/CNAQ/trunk@144 5fc3e0e6-29bc-4d03-b52b-c088cb822bde --- CNAQ.fig | Bin 12817 -> 13651 bytes CNAQ.m | 91 ++++++++++++++++++++++++------------ doc/latex/Manuel_CNAQ.pdf | Bin 235034 -> 235042 bytes doc/latex/Manuel_CNAQ.tex | 2 +- doc/latex/img/logo_cnaq.png | Bin 5833 -> 5840 bytes 5 files changed, 63 insertions(+), 30 deletions(-) diff --git a/CNAQ.fig b/CNAQ.fig index ae846479993e5c48e0353702818e2c13d1b8764e..26618f35c9115af090a936992c4e4588c5df10ca 100644 GIT binary patch literal 13651 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 bM>_8?L|P!y`_2JFGW73L3JK?sUgZA+b=b+{ literal 12817 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 diff --git a/CNAQ.m b/CNAQ.m index bbfdf09..a7f9681 100644 --- a/CNAQ.m +++ b/CNAQ.m @@ -34,7 +34,7 @@ function varargout = CNAQ(varargin) % Author: Guillaume Pellerin -% Last Modified by GUIDE v2.5 07-Nov-2007 18:26:57 +% Last Modified by GUIDE v2.5 12-Jan-2008 11:35:34 % CNAQ, by itself, creates a new CNAQ or raises the existing % singleton*. @@ -208,6 +208,16 @@ function f_s = get_fs(handles) 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 == 96000 + fs_ind = 3; + end + set(handles.f_s,'Value',fs_ind); function voices_out = get_voices_out(handles) vo_ind = get(handles.voices_out,'Value'); @@ -241,7 +251,14 @@ function nbits = get_nbits(handles) 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); + %============================================ % DONNEES %============================================ @@ -596,32 +613,10 @@ function mes_on_Callback(hObject, eventdata, handles, device) set(handles.ID,'UserData',sig_mes); set(handles.id_title,'UserData',sig_exc); set(handles.mes_on,'UserData',f); - - % 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); - - % 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 + plot_Callback(hObject, eventdata, handles) % Close all figures % --- Executes on button press in close_button. @@ -631,7 +626,7 @@ function close_button_Callback(hObject, eventdata, handles) % handles structure with handles and user data (see GUIDATA) close all; - + % --- Executes on button press in plot. function plot_Callback(hObject, eventdata, handles) % hObject handle to plot (see GCBO) @@ -672,6 +667,9 @@ function plot_Callback(hObject, eventdata, handles) 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); + % SAVE all data in a mat file function save_button_Callback(hObject, eventdata, handles) @@ -686,6 +684,8 @@ function save_button_Callback(hObject, eventdata, handles) 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'); @@ -706,4 +706,37 @@ function save_button_Callback(hObject, eventdata, handles) % Increment ID increment_id(handles); - \ No newline at end of file +% --- Executes on button press in load. +function load_Callback(hObject, eventdata, handless) +% 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) + + [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(handles.freq_value,'String',num2str(f)); + set(handless.time_gen,'Value', time); + set(handles.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 648cd75d35fb6603b793352ef44374957113c6a1..7aa14eeaa88cef999f6d69c44334543134a679bc 100644 GIT binary patch delta 6627 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 delta 6580 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 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 optimum pour la détermination de la réponse fréquentielle.\\ +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.\\ 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. diff --git a/doc/latex/img/logo_cnaq.png b/doc/latex/img/logo_cnaq.png index 1d60cae301d995f87d4736c220661fd6908fa5d8..cc6dc815616e9d0443aa0e1b682938803791e0c5 100644 GIT binary patch literal 5840 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 literal 5833 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