je suis stagiaire de niveau bac+5 et j'ai un travail à faire sous matlab qui consiste à optimiser une hyberbole bruité avec la fonction "fminseach".
voici le programme de traçage de l'hyperbole et du signal bruité:
clear all
%new programm
%définition du bruit
coul=['k ';'b ';'r ';'m ';'g ';'c '];
char_size=14;
c=3e8;
epsi=5.5;
offset0=433e-3; %distance between the 2 ports for offset 0 in EMPIRE
%offset=[-40 0 40 80]*1e-3;
%offset=-40*1e-3;
offset=0;
R=[0.5 1 2 3]*1e-2;
delta=offset0+offset;
nb_points=100;
xstart=-(700-4)*1e-3;
xstop=700*1e-3;
%apex
x0=4e-3; %position along the scan
d=60e-3; %depth
v=c/sqrt(epsi);
%etude 1: parametre offset
R0=R(2);
x=[];
tt2w=[];
%for t=1:length(offset)
[x,tt2w] = hyperbola(xstart,xstop,nb_points,delta,x0,d,R0,v);
%figure
%plot(tt2w);
%axis ij
%grid on
s= [sum(tt2w.^2)];
ss=s*(200*1e-3);
sigma=sqrt(ss./10^4);
bruit=sigma.*randn(size(tt2w));
%figure
%hold on
%plot(bruit);
%définition de la nouvelle fonction
signal=bruit + tt2w;
%plot(signal)
figure
%plot(signal);
%plot(tt2w);
hold on
plot(signal,'*');
plot(tt2w,'r-*');
axis ij
"tt2w" est l'hyperbole et "signal" est l'hyperbole bruité avec une gaussienne.
mon problème maintenant c'est l'optimisation du signal bruité avec fminsearch, je n'arrive pas à le faire.
voici ce que j'ai ezssayée comme programme:
function res = out (a,b,x0,t0)
xstep = (xstop - xstart) / nb_points;
x = xstart : xstep : xstop;
res=sum((signal-tt2w).^2);
return
global Xi Yi
nb_points=101;
xstart=-(700-4)*1e-3;
xstop=700e-3;
%out=((signal-tt2w).^2);
%x = xstart : xstep : xstop;
%outt = out(x);
%f=out(x);
a=1.12*1e-8;
b=0.71;
x0=4*1e-3;
t0=10.9*1e-9;
%x = xstart : xstep : xstop;
nvparam=fminsearch(@out,[a b x0 t0]);
mais, ça ne marche pas. je tiens à préciser ici que l'hyperbole a 4 paramètres: a,b,x0 et t0.
je voudrai que vous m'aidiez s'il vous plait. merci.