MATLAB et bruit sur un spectre +aide

Fermé
lala003 Messages postés 4 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 7 mars 2010 - 7 avril 2009 à 15:10
lala003 Messages postés 4 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 7 mars 2010 - 15 juil. 2009 à 16:32
Bonjour,
j'ai besoin d 'un peu d'aide au sujet de matlab. Voilà, je voudrais traiter un ensemble de points expérimentaux (700 environ, abscisse X, ordonnée Y ) sous matlab pour enlever le bruit dû à ma mesure. J'ai déjà essayé de lisser mes données expérimentales avec la fonction polyfit mais le résultat n'est pas génial car je n'ai utilisé qu'un polynôme de degré 10( au delà de ce degré il parait que c est un peu ingérable pour matlab). En gros pour avoir un ordre d idée sur les données que j ai , l'ensemble de mes points correspond à une superposition de gaussiennes avec des hauteurs et des écart types différents et certains points sortent un peu de la tendance générale de ma courbe. et vu qu'ensuite j'essaie de déterminer des points d'inflexion, mon bruit perturbe beaucoup cette détermination. Est ce que quelqu un connaît une méthode ou fonction de matlab qui pourrait me permettre de supprimer le bruit ?

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
7 avril 2009 à 15:47
Salut.
Tu as déjà posté ce message non ?
Je ne sais pas quoi te dire d'autre que de regarder les différents filtres et de les appliqués.
Tu peux aussi faire ton propre filtre (filtre moyen, filtre gaussien etc.) Tu peux aussi faire un filtre spectral dans certains cas.
En général, si tu as des valeurs abérantes ponctuelles, un filtre médian fait bien l'affaire. Mais il ne faut pas croire que ça va fonctionné du premier coup, un filtre demande de rechercher le paramètre optimum.
function y=figauss(t,x,n,s)
%% filtre gaussien d'un signal inegalement espacé.
%% t le temps, x les resultats, n le nombre de point, s l ecart type.
y=zeros(1,length(x));
n2=floor(n/2);
for i=n2+1:length(t)-n2-1
       coef=[];
       for j=i-n2:i+n2
              coef=[coef exp(-(t(j)-t(i))^2/s^2) ];
       end
       tmp=coef/sum(coef);
       yt=0;
       for j=i-n2:i+n2
              yt=yt+tmp(j-i+n2+1)*x(j);
       end
       y(i)=yt;
end;
0
lala003 Messages postés 4 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 7 mars 2010
15 juil. 2009 à 16:32
Bonjour,
je souhaiterais récupérer les données numériques d'un fichier avec une extension en .txt.
Ce fichier contient des données de mesures d'un appareil.au tout début du fichier, il ya des données alpahbétiques et numériques qui correspondent à des réglages de l'appareil , toutes les données sont séparées par le signe #. ensuite , il y a 6 colonnes qui correspondent aux 6 types ed données qui sont mesurées et qui sont séparées par un espace(tabulation). Pour chaque colonne de données numériques il y a un "titre" pour la colonnne qui correspond au nom du type données mesurées.
A terme je voudrais récupérer les données dans les colonnes 1 et 3 du document pour ensuite les utiliser sous matlab sous forme de vecteur sans transformer mon format de fichier. (je dois faire cette manipulation pour 50000 fichiers donc modifier le format du fchier et ensuite utiliser excel ça me parait un peu long)
est ce que vous connaissez une commande matlab qui pourrait m'aider ou avez vous une idée du type de manipulations que je pourrais faire?
(j ai essayé plusieurs commandes textread, textscan , fopen, ...et je n'arrive pas à faire ce que je souhaite(j ai peut être mal programmé mes commandes ))


merci pour votre aide
0