+++ /dev/null
-function [Out_Freq,Out_dB] = Lissage_Spl (In_Freq ,In_dB)\r
-load Parametres_Affichages\r
-load Parametres_Mesures\r
-Nb_dB = Para_Affi.RF.Nb_dB;\r
-Nb_dB_Affiche = 48;\r
-dbmin = -500;\r
-% Diminution du nbs de point avant le lissage pour eviter \r
-rapport = round(Nb_dB_Affiche*10/Para_Affi.RF.Nb_dB);\r
-liste_f_log = freqoctav(Para_Affi.RF.Fmin*0.3,Para_Mesu.Fs/1.5,Nb_dB_Affiche*10);\r
-liste_db_log = interp1 (In_Freq ,In_dB, liste_f_log,'cubic',dbmin);\r
-\r
-db_log_smooth = smooth(liste_db_log,rapport);\r
-\r
-db_ok2 = db_log_smooth(2 : length(db_log_smooth)-1); %elim ination du 1° et dermier point\r
-f_ok2 = liste_f_log (2 : length(liste_f_log)-1);\r
-\r
-Out_Freq = freqoctav(Para_Mesu.Fmin,Para_Mesu.Fmax,Nb_dB_Affiche);\r
-\r
-Out_dB = interp1(f_ok2,db_ok2,Out_Freq,'cubic',dbmin);\r
-\r
-function [valf]=freqoctav(fmin,fmax,db)\r
-syms nx; nf=floor(log(fmax/fmin)*db/log(2))+2; for i = 1:nf; valf(i) = fmin*2^((i-1)/db); end\r
+++ /dev/null
-%Fréquences de résonance issues de la mesure\r
-frhp=20; % fréquence de résonance du Hp seul\r
-frb=35; % fréquence de résonance du Hp sur caisson clos\r
-frhpm=14; % fréquence de résonance du Hp + masse ajoutée\r
-frbm=23.12; %fréquence de résonance du Hp sur caisson clos + masse ajoutée\r
-\r
-%Pulsations correspondantes\r
-omrhp=2*pi*frhp;\r
-omrb=2*pi*frb;\r
-omrhpm=2*pi*frhpm;\r
-omrbm=2*pi*frbm;\r
-\r
-%Données Physiques\r
-sd=352e-4; %Surface de la membrane m2\r
-V=0.037%(0.395-0.06)^3-0.001; % Volume du caisson clos m3\r
-Ma=0.181 %masse ajoutée kg\r
-\r
-kb=1.4*1.0135e5/V*sd^2; %Raideur du caison clos N/m\r
-\r
-disp('Détermination HP seul et caisson clos')\r
-Cms1=1/kb*(omrb^2/omrhp^2-1)\r
-%mms1=1/omr^2/Cms\r
-Mms1=1/omrb^2*(1/Cms1+kb)\r
-% frth=1/2/pi/sqrt(0.1353*0.52e-3)\r
-% frm=1/2/pi/sqrt(Cms*mms1)\r
-\r
-disp ('Détermination HP seul et HP + masse')\r
-Mms2=Ma/(omrhp^2/omrhpm^2-1)\r
-Cms2=1/(Mms2+Ma)/omrhpm^2\r
-\r
-disp('Détermination HP + masse et Hp clos')\r
-Mms3=(kb+Ma*omrhpm^2)/(omrb^2-omrhpm^2)\r
-Cms3=1/(Mms3+Ma)/omrhpm^2
\ No newline at end of file
+++ /dev/null
-function [RI,spec] = fonctrans_recup(filename);\r
-%calcul d'une fonction de tranfert mesurée par l'interface CNACQ\r
-%Sorties : fonction de transfert et réponse impulsionnelle \r
-load (filename);\r
-\r
-% soustraction de la composante continue\r
-DC=mean(sig_mes,1);\r
-sig_mes=sig_mes-DC;\r
-S=size(sig_mes);\r
-NT=S(1);\r
-Freq =logspace(log10(f_min), log10(f_max), NT)';\r
-excinv=sig_exc(NT:-1:1).*f_min./Freq;\r
-[RI,spec] = fconv(sig_mes,excinv);\r
-plot(sig_mes,'k');\r
-hold on\r
-plot(sig_exc,'r')\r
-angleexc=unwrap(angle(fft(sig_exc)));\r
-anglemes=unwrap(angle(fft(sig_mes)));\r
-ang=anglemes-angleexc + 2*pi;\r
-figure\r
-plot(ang)\r
-\r
-\r
+++ /dev/null
-function gene_chirp\r
-\r
-load Parametres_Mesures\r
-\r
-Size = 2^Para_Mesu.Prec ; \r
-Para_Mesu.Tps = (Size/Para_Mesu.Fs) % Tps de Mesure \r
-Time = [0:Size-1]./Para_Mesu.Fs ; % Decalage de la Data.Fmini \r
-Freq = logspace(log10(Para_Mesu.Fmin), log10(Para_Mesu.Fmax), Size) ; \r
-w1 = 2*pi*Para_Mesu.Fmin;\r
-w2 = 2*pi*Para_Mesu.Fmax; \r
-Stimulus = .9 *sin((w1*Para_Mesu.Tps)/log(w2/w1) * (exp(Time'/Para_Mesu.Tps*log(w2/w1))-1)) ; \r
-L = floor(Size/100)*2 ;\r
-Window = flattop(L) ; \r
-Calc_Theo.Stimulus = [Window(1:L/2); ones(Size-L,1); Window(L/2+1:L)].*Stimulus; \r
-Calc_Theo.St_inv = Stimulus([Size:-1:1]) .* (Para_Mesu.Fmin./Freq') ; \r
-Calc_Theo.Freq = Freq';\r
-wavwrite(Calc_Theo.Stimulus,Para_Mesu.Fs ,16,'chirplog')\r
-% Application du niveau de Mesure\r
-% Calc_Theo.Stimulus = Calc_Theo.Stimulus * 10^(Para_Mesu.Nive/20) ;\r
-\r
-% Calcul de la reponse Impulse Theorique\r
-% Calc_Theo.Parfait.IR = fconv(Calc_Theo.Stimulus, Calc_Theo.St_inv) ; \r
-\r
-% Calcul de la FFT\r
-% Calc_Theo.Parfait.FFT = 20*log10(abs(fft(Calc_Theo.Parfait.IR))) ;\r
-\r
-% Calcul de l'échelle des fréquences\r
-% Calc_Theo.Parfait.Fr = Para_Mesu.Fs/(length(Calc_Theo.Parfait.FFT)) ;\r
-% Calc_Theo.Parfait.Freq = 0:Calc_Theo.Parfait.Fr:Para_Mesu.Fs-Calc_Theo.Parfait.Fr ;\r
-\r
-% Calcul de courbe de reponse avec Fenetrage Tempo\r
-% [Val,Num_Max_Par] = max(abs(Calc_Theo.Parfait.IR)) ;\r
-% Nombres_Ech = round(Para_Mesu.Tps_Fen/1000*Para_Mesu.Fs) ;\r
-% Ech_Min_Par = round(Num_Max_Par-Nombres_Ech) ;\r
-% Ech_Max_Par = round(Ech_Min_Par+2*Para_Mesu.Tps_Fen/1000*Para_Mesu.Fs) ;\r
-% IR_Par_Fen = Calc_Theo.Parfait.IR(Ech_Min_Par:Ech_Max_Par) ;\r
-% Calc_Theo.Parfait.FFT_Fen = 20*log10(abs(fft(IR_Par_Fen))) ;\r
-\r
-% Calcul de l'échelle des fréquences\r
-% Calc_Theo.Parfait.Fr_Fen = Para_Mesu.Fs/(length(Calc_Theo.Parfait.FFT_Fen)) ;\r
-% Calc_Theo.Parfait.Freq_Fen = 0:Calc_Theo.Parfait.Fr_Fen:Para_Mesu.Fs-Calc_Theo.Parfait.Fr_Fen ;\r
-\r
-% Fenetrage tempo des THD\r
-% IR = Calc_Theo.Parfait.IR;\r
-% Decal = round((length(IR)/(2^15*2)*(32610-29865))/1.3);% 30% de marge\r
-% [a,Num_Max] = max(abs(IR));\r
-% Fen = blackman(Decal*2); Demi_Fen = Fen(1:Decal)'; Num_Debut = Num_Max-Decal;\r
-% Debut = zeros(1,Num_Debut); Nbs_Ones = length(IR)-length(Debut)-length(Demi_Fen); Fin = ones(1,Nbs_Ones);\r
-% Fenetre = [Debut Demi_Fen Fin]';\r
-% IR_Sans_THD = Fenetre.*IR;\r
-% Calc_Theo.Parfait.IR_Sans_THD = IR_Sans_THD;\r
-\r
-% Calcul de la FFT\r
-% Calc_Theo.Parfait.FFT_Sans_THD = 20*log10(abs(fft(Calc_Theo.Parfait.IR_Sans_THD))) ;\r
-\r
-\r
-save Calculs_Theoriques Calc_Theo \r
-\r
-\r
-\r
-\r
-function [window] = flattop(N)\r
-a1 = -1.93; a2 = 1.29; a3 = -0.388; a4 = 0.028; temp = [1:N]'/N; window = 1 + a1*cos(2*pi*temp) + a2*cos(4*pi*temp) + a3*cos(6*pi*temp) + a4*cos(8*pi*temp); window = window/max(window);\r
-\r
-function [New_sign, Fs] = fconv(Old_sign, Cvfilter, Fs)\r
-X = fft([Old_sign; zeros(length(Cvfilter)-1, 1)]); Y = fft([Cvfilter; zeros(length(Old_sign)-1, 1)]); New_sign = real(ifft(X.*Y));\r
--- /dev/null
+function [Out_Freq,Out_dB] = Lissage_Spl (In_Freq ,In_dB)\r
+load Parametres_Affichages\r
+load Parametres_Mesures\r
+Nb_dB = Para_Affi.RF.Nb_dB;\r
+Nb_dB_Affiche = 48;\r
+dbmin = -500;\r
+% Diminution du nbs de point avant le lissage pour eviter \r
+rapport = round(Nb_dB_Affiche*10/Para_Affi.RF.Nb_dB);\r
+liste_f_log = freqoctav(Para_Affi.RF.Fmin*0.3,Para_Mesu.Fs/1.5,Nb_dB_Affiche*10);\r
+liste_db_log = interp1 (In_Freq ,In_dB, liste_f_log,'cubic',dbmin);\r
+\r
+db_log_smooth = smooth(liste_db_log,rapport);\r
+\r
+db_ok2 = db_log_smooth(2 : length(db_log_smooth)-1); %elim ination du 1° et dermier point\r
+f_ok2 = liste_f_log (2 : length(liste_f_log)-1);\r
+\r
+Out_Freq = freqoctav(Para_Mesu.Fmin,Para_Mesu.Fmax,Nb_dB_Affiche);\r
+\r
+Out_dB = interp1(f_ok2,db_ok2,Out_Freq,'cubic',dbmin);\r
+\r
+function [valf]=freqoctav(fmin,fmax,db)\r
+syms nx; nf=floor(log(fmax/fmin)*db/log(2))+2; for i = 1:nf; valf(i) = fmin*2^((i-1)/db); end\r
--- /dev/null
+%Fréquences de résonance issues de la mesure\r
+frhp=20; % fréquence de résonance du Hp seul\r
+frb=35; % fréquence de résonance du Hp sur caisson clos\r
+frhpm=14; % fréquence de résonance du Hp + masse ajoutée\r
+frbm=23.12; %fréquence de résonance du Hp sur caisson clos + masse ajoutée\r
+\r
+%Pulsations correspondantes\r
+omrhp=2*pi*frhp;\r
+omrb=2*pi*frb;\r
+omrhpm=2*pi*frhpm;\r
+omrbm=2*pi*frbm;\r
+\r
+%Données Physiques\r
+sd=352e-4; %Surface de la membrane m2\r
+V=0.037%(0.395-0.06)^3-0.001; % Volume du caisson clos m3\r
+Ma=0.181 %masse ajoutée kg\r
+\r
+kb=1.4*1.0135e5/V*sd^2; %Raideur du caison clos N/m\r
+\r
+disp('Détermination HP seul et caisson clos')\r
+Cms1=1/kb*(omrb^2/omrhp^2-1)\r
+%mms1=1/omr^2/Cms\r
+Mms1=1/omrb^2*(1/Cms1+kb)\r
+% frth=1/2/pi/sqrt(0.1353*0.52e-3)\r
+% frm=1/2/pi/sqrt(Cms*mms1)\r
+\r
+disp ('Détermination HP seul et HP + masse')\r
+Mms2=Ma/(omrhp^2/omrhpm^2-1)\r
+Cms2=1/(Mms2+Ma)/omrhpm^2\r
+\r
+disp('Détermination HP + masse et Hp clos')\r
+Mms3=(kb+Ma*omrhpm^2)/(omrb^2-omrhpm^2)\r
+Cms3=1/(Mms3+Ma)/omrhpm^2
\ No newline at end of file
--- /dev/null
+function [RI,spec] = fonctrans_recup(filename);\r
+%calcul d'une fonction de tranfert mesurée par l'interface CNACQ\r
+%Sorties : fonction de transfert et réponse impulsionnelle \r
+load (filename);\r
+\r
+% soustraction de la composante continue\r
+DC=mean(sig_mes,1);\r
+sig_mes=sig_mes-DC;\r
+S=size(sig_mes);\r
+NT=S(1);\r
+Freq =logspace(log10(f_min), log10(f_max), NT)';\r
+excinv=sig_exc(NT:-1:1).*f_min./Freq;\r
+[RI,spec] = fconv(sig_mes,excinv);\r
+plot(sig_mes,'k');\r
+hold on\r
+plot(sig_exc,'r')\r
+angleexc=unwrap(angle(fft(sig_exc)));\r
+anglemes=unwrap(angle(fft(sig_mes)));\r
+ang=anglemes-angleexc + 2*pi;\r
+figure\r
+plot(ang)\r
+\r
+\r
--- /dev/null
+function gene_chirp\r
+\r
+load Parametres_Mesures\r
+\r
+Size = 2^Para_Mesu.Prec ; \r
+Para_Mesu.Tps = (Size/Para_Mesu.Fs) % Tps de Mesure \r
+Time = [0:Size-1]./Para_Mesu.Fs ; % Decalage de la Data.Fmini \r
+Freq = logspace(log10(Para_Mesu.Fmin), log10(Para_Mesu.Fmax), Size) ; \r
+w1 = 2*pi*Para_Mesu.Fmin;\r
+w2 = 2*pi*Para_Mesu.Fmax; \r
+Stimulus = .9 *sin((w1*Para_Mesu.Tps)/log(w2/w1) * (exp(Time'/Para_Mesu.Tps*log(w2/w1))-1)) ; \r
+L = floor(Size/100)*2 ;\r
+Window = flattop(L) ; \r
+Calc_Theo.Stimulus = [Window(1:L/2); ones(Size-L,1); Window(L/2+1:L)].*Stimulus; \r
+Calc_Theo.St_inv = Stimulus([Size:-1:1]) .* (Para_Mesu.Fmin./Freq') ; \r
+Calc_Theo.Freq = Freq';\r
+wavwrite(Calc_Theo.Stimulus,Para_Mesu.Fs ,16,'chirplog')\r
+% Application du niveau de Mesure\r
+% Calc_Theo.Stimulus = Calc_Theo.Stimulus * 10^(Para_Mesu.Nive/20) ;\r
+\r
+% Calcul de la reponse Impulse Theorique\r
+% Calc_Theo.Parfait.IR = fconv(Calc_Theo.Stimulus, Calc_Theo.St_inv) ; \r
+\r
+% Calcul de la FFT\r
+% Calc_Theo.Parfait.FFT = 20*log10(abs(fft(Calc_Theo.Parfait.IR))) ;\r
+\r
+% Calcul de l'échelle des fréquences\r
+% Calc_Theo.Parfait.Fr = Para_Mesu.Fs/(length(Calc_Theo.Parfait.FFT)) ;\r
+% Calc_Theo.Parfait.Freq = 0:Calc_Theo.Parfait.Fr:Para_Mesu.Fs-Calc_Theo.Parfait.Fr ;\r
+\r
+% Calcul de courbe de reponse avec Fenetrage Tempo\r
+% [Val,Num_Max_Par] = max(abs(Calc_Theo.Parfait.IR)) ;\r
+% Nombres_Ech = round(Para_Mesu.Tps_Fen/1000*Para_Mesu.Fs) ;\r
+% Ech_Min_Par = round(Num_Max_Par-Nombres_Ech) ;\r
+% Ech_Max_Par = round(Ech_Min_Par+2*Para_Mesu.Tps_Fen/1000*Para_Mesu.Fs) ;\r
+% IR_Par_Fen = Calc_Theo.Parfait.IR(Ech_Min_Par:Ech_Max_Par) ;\r
+% Calc_Theo.Parfait.FFT_Fen = 20*log10(abs(fft(IR_Par_Fen))) ;\r
+\r
+% Calcul de l'échelle des fréquences\r
+% Calc_Theo.Parfait.Fr_Fen = Para_Mesu.Fs/(length(Calc_Theo.Parfait.FFT_Fen)) ;\r
+% Calc_Theo.Parfait.Freq_Fen = 0:Calc_Theo.Parfait.Fr_Fen:Para_Mesu.Fs-Calc_Theo.Parfait.Fr_Fen ;\r
+\r
+% Fenetrage tempo des THD\r
+% IR = Calc_Theo.Parfait.IR;\r
+% Decal = round((length(IR)/(2^15*2)*(32610-29865))/1.3);% 30% de marge\r
+% [a,Num_Max] = max(abs(IR));\r
+% Fen = blackman(Decal*2); Demi_Fen = Fen(1:Decal)'; Num_Debut = Num_Max-Decal;\r
+% Debut = zeros(1,Num_Debut); Nbs_Ones = length(IR)-length(Debut)-length(Demi_Fen); Fin = ones(1,Nbs_Ones);\r
+% Fenetre = [Debut Demi_Fen Fin]';\r
+% IR_Sans_THD = Fenetre.*IR;\r
+% Calc_Theo.Parfait.IR_Sans_THD = IR_Sans_THD;\r
+\r
+% Calcul de la FFT\r
+% Calc_Theo.Parfait.FFT_Sans_THD = 20*log10(abs(fft(Calc_Theo.Parfait.IR_Sans_THD))) ;\r
+\r
+\r
+save Calculs_Theoriques Calc_Theo \r
+\r
+\r
+\r
+\r
+function [window] = flattop(N)\r
+a1 = -1.93; a2 = 1.29; a3 = -0.388; a4 = 0.028; temp = [1:N]'/N; window = 1 + a1*cos(2*pi*temp) + a2*cos(4*pi*temp) + a3*cos(6*pi*temp) + a4*cos(8*pi*temp); window = window/max(window);\r
+\r
+function [New_sign, Fs] = fconv(Old_sign, Cvfilter, Fs)\r
+X = fft([Old_sign; zeros(length(Cvfilter)-1, 1)]); Y = fft([Cvfilter; zeros(length(Old_sign)-1, 1)]); New_sign = real(ifft(X.*Y));\r