IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement du signal Discussion :

transformée ondelette et calcul de similarité


Sujet :

Traitement du signal

  1. #21
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    oui oui oui ! allez reteste !

    mais dans le code denomX et denomY on peut pas les sortir non ? ça depend des XValue et YValue ?

  2. #22
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    mais dans le code denomX et denomY on peut pas les sortir non ? ça depend des XValue et YValue ?
    Oui mais XValue c'est X, donc pas de probleme pour le sortir

    et YValue c'est Y "décalé"... et comme on fait la somme sur tout l'echantillon, le décalage n'a pas d'importance. Ca change juste l'ordre des termes dans la somme, et comme l'addition est commutative, c'est reglé.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #23
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    est ce que c'est trop demandé de réediter le ptit code
    je dois lire des choses sur cette histoire de decalage ça a du mal a rentrer ds ma ptite tete de biologiste mais j'y arrive
    merci pour l'aide

    c'est fait ! je teste ça a l'aire de tourner plus vite en effet

  4. #24
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    je dois lire des choses sur cette histoire de decalage ça a du mal a rentrer ds ma ptite tete de biologiste mais j'y arrive
    Cette histoire de décalage c'est la difference entre "similarité" et "égalité.

    Si on fait seulement une comparaison valeur/valeur de chaque echantillon, on va mesurer l'égalité. En faisant intervenir la notion de "décalage" on permet que deux echantillons soient "egaux" s'ils contiennent les memes valeurs dans le meme ordre.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #25
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    Un autre probleme : le coefficient de cross correlation n'est pas sensé etre entre -1 et 1 ? j'ai des valeurs de l'ordre de 100 des 20 ... !

    Y aurait il un probleme quelque part ?

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    double crosscorrelation (cwt_t xa, cwt_t xb,double Xmoy,double Ymoy,int n,int d){
     
      double result ;
      //double Xmoy = xrsa(xa,n);
      //double Ymoy = xrsa(xb,n);
      int j,start = 0;
      int end = n;
      double numerateur = 0,denomX =0, denomY = 0;
     
      for(j=start;j<end;j++){
        double XValue = xa.cwt[0][j];
        int yindex = (j-d)%n;
        if(yindex<0) yindex+=xb.cwt[0][yindex];
        double YValue = xb.cwt[0][yindex];
        numerateur += (XValue - Xmoy)*(YValue - Ymoy);
        denomX = pow((XValue-Xmoy),2);
        denomY = pow((YValue-Ymoy),2);
     
    }
      //  printf("%f \n",numerateur/sqrt(denomX*denomY));
     
      result = numerateur / sqrt(denomX*denomY);
      return result;
     
    }
    y aurait il un prob kke part ?

  6. #26
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    double crosscorrelation (cwt_t xa, cwt_t xb,double Xmoy,double Ymoy,int n,int d){
    
      double result ;
      //double Xmoy = xrsa(xa,n);
      //double Ymoy = xrsa(xb,n);
      int j,start = 0;
      int end = n;
      double numerateur = 0,denomX =0, denomY = 0;
    
      for(j=start;j<end;j++){
        double XValue = xa.cwt[0][j];
        int yindex = (j-d)%n;
        if(yindex<0) yindex+=n;  // <--------- CORRECTION 
        double YValue = xb.cwt[0][yindex];
        numerateur += (XValue - Xmoy)*(YValue - Ymoy);
        denomX = pow((XValue-Xmoy),2);
        denomY = pow((YValue-Ymoy),2);
      
    }
      //  printf("%f \n",numerateur/sqrt(denomX*denomY));
     
      result = numerateur / sqrt(denomX*denomY);
      return result;
     
    }
    y aurait il un prob kke part ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #27
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    merci pour la correction. j'ai corrigé mais toujours pareil les valeus ne sont pas entre [-1,1] ??

  8. #28
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    double crosscorrelation (cwt_t xa, cwt_t xb,double Xmoy,double Ymoy,int n,int d){
    
      double result ;
      int j,start = 0;
      int end = n;
      double numerateur = 0,denomX =0, denomY = 0;
    
      for(j=start;j<end;j++){
        double XValue = xa.cwt[0][j];
        int yindex = (j-d)%n;
        if(yindex<0) yindex+=n;  // <--------- CORRECTION 
        double YValue = xb.cwt[0][yindex];
        numerateur += (XValue - Xmoy)*(YValue - Ymoy);
        denomX += pow((XValue-Xmoy),2);  // <--------- CORRECTION 
        denomY += pow((YValue-Ymoy),2);  // <--------- CORRECTION 
      
    }
      //  printf("%f \n",numerateur/sqrt(denomX*denomY));
     
      result = numerateur / sqrt(denomX*denomY);
      return result;
     
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #29
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut, moi je me suis servi de ce code pour faire des filtres et autres spectrogrammes sur du son

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    typedef real double;
    void iwt97(real* x,int n);
    void fwt97(real* x,int n);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
     
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    real *tempbank=0;
     
    /**
     *  fwt97 - Forward biorthogonal 9/7 wavelet transform (lifting implementation)
     *
     *  x is an input signal, which will be replaced by its output transform.
     *  n is the length of the signal, and must be a power of 2.
     *
     *  The first half part of the output signal contains the approximation coefficients.
     *  The second half part contains the detail coefficients (aka. the wavelets coefficients).
     *
     *  See also iwt97.
     */
    void fwt97(real* x,int n) {
      real a;
      int i;
     
      // Predict 1
      a=-1.586134342;
      for (i=1;i<n-2;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[n-1]+=2*a*x[n-2];
     
      // Update 1
      a=-0.05298011854;
      for (i=2;i<n;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[0]+=2*a*x[1];
     
      // Predict 2
      a=0.8829110762;
      for (i=1;i<n-2;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[n-1]+=2*a*x[n-2];
     
      // Update 2
      a=0.4435068522;
      for (i=2;i<n;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[0]+=2*a*x[1];
     
      // Scale
      a=1/1.149604398;
      for (i=0;i<n;i++) {
        if (i%2) x[i]*=a;
        else x[i]/=a;
      }
     
      // Pack
      if (tempbank==0) tempbank=(real *)malloc(n*sizeof(real));
      for (i=0;i<n;i++) {
        if (i%2==0) tempbank[i/2]=x[i];
        else tempbank[n/2+i/2]=x[i];
      }
      for (i=0;i<n;i++) x[i]=tempbank[i];
    }
     
    /**
     *  iwt97 - Inverse biorthogonal 9/7 wavelet transform
     *
     *  This is the inverse of fwt97 so that iwt97(fwt97(x,n),n)=x for every signal x of length n.
     *
     *  See also fwt97.
     */
    void iwt97(real* x,int n) {
      real a;
      int i;
     
      // Unpack
      if (tempbank==0) tempbank=(real *)malloc(n*sizeof(real));
      for (i=0;i<n/2;i++) {
        tempbank[i*2]=x[i];
        tempbank[i*2+1]=x[i+n/2];
      }
      for (i=0;i<n;i++) x[i]=tempbank[i];
     
      // Undo scale
      a=1.149604398;
      for (i=0;i<n;i++) {
        if (i%2) x[i]*=a;
        else x[i]/=a;
      }
     
      // Undo update 2
      a=-0.4435068522;
      for (i=2;i<n;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[0]+=2*a*x[1];
     
      // Undo predict 2
      a=-0.8829110762;
      for (i=1;i<n-2;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[n-1]+=2*a*x[n-2];
     
      // Undo update 1
      a=0.05298011854;
      for (i=2;i<n;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[0]+=2*a*x[1];
     
      // Undo predict 1
      a=1.586134342;
      for (i=1;i<n-2;i+=2) {
        x[i]+=a*(x[i-1]+x[i+1]);
      }
      x[n-1]+=2*a*x[n-2];
    }
     
    int main97() {
      real x[32];
      int i;
     
      // Makes a fancy cubic signal
      for (i=0;i<32;i++) x[i]=5+i+0.4*i*i-0.02*i*i*i;
     
      // Prints original sigal x
      printf("Original signal:\n");
      for (i=0;i<32;i++) printf("x[%d]=%f\n",i,x[i]);
      printf("\n");
     
      // Do the forward 9/7 transform
      fwt97(x,32);
     
      // Prints the wavelet coefficients
      printf("Wavelets coefficients:\n");
      for (i=0;i<32;i++) printf("wc[%d]=%f\n",i,x[i]);
      printf("\n");
     
      // Do the inverse 9/7 transform
      iwt97(x,32);
     
      // Prints the reconstructed signal
      printf("Reconstructed signal:\n");
      for (i=0;i<32;i++) printf("xx[%d]=%f\n",i,x[i]);
    }

  10. #30
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    merci pour les corrections c'est beaucoup mieux en effet

    Ok, la cross correlation c'est fait ça marche tres bien.
    j'aurais une autre question. Imaginons la matrice de transformée suivante :

    |a b c|
    |d e f|
    |g h i |

    ou abc, def, ghi, correspondent à des spectres de wavelet.

    Comment faire pour detecter des regions communes entre les trois vecteurs en les analysant tous ensemble, pas par pair, pour reprendre le meme exemple imaginons que la region delimitée par la colonne 1 et 2 se comporte de la meme manière, dois je faire une cross correlation 2 à 2 entre les 3 vecteurs ou existe il un moyen de dire voila cette region est conservée entre les 3 signaux.

  11. #31
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    Ok, la cross correlation c'est fait ça marche tres bien.
    Bien. c'est deja ca.

    Comment faire pour detecter des regions communes entre les trois vecteurs en les analysant tous ensemble, pas par pair, pour reprendre le meme exemple imaginons que la region delimitée par la colonne 1 et 2 se comporte de la meme manière, dois je faire une cross correlation 2 à 2 entre les 3 vecteurs ou existe il un moyen de dire voila cette region est conservée entre les 3 signaux.
    Oui, si tu comptes utiliser la cross-correlation comme mesure de similarité, tu dois calculer les cross-correlation entre TOUS les vecteurs 2 a 2 (car la mesure de similarité n'est pas transitive: V1~=V2 et V2~=V3 n'implique pas forcement que V1~=V3)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #32
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    autrement di j'utilise une fenetre qui se deplace le long des colonnes en calculant la crosscorrelation entre les lignes par paire ! mais pour affirmer que deux fenetres sont pareilles ou similaires je dois fixer un seuil ou une chose dans ce genre ? par exp pour une crosscorrelation > 0.5 on dit que c'est similaire ?

  13. #33
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    autrement di j'utilise une fenetre qui se deplace le long des colonnes en calculant la crosscorrelation entre les lignes par paire !
    Heu... je ne sais pas trop ce que tu cherches a mesurer comme similarité. Si chaque ligne représente les coefficients des frequences de wavelet, je ne vois pas trop a quoi sert la fenetre par "colonnes".



    mais pour affirmer que deux fenetres sont pareilles ou similaires je dois fixer un seuil ou une chose dans ce genre ? par exp pour une crosscorrelation > 0.5 on dit que c'est similaire ?
    Oui. Il faut que tu trouves un seuil acceptable. Tu peux faire ca empiriquement a partir de données de test dont tu sais si elles sont similaires ou pas.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #34
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    ce que je voulais dire c'est peut on mesurer une similarité locale par exemple entre la position 0 et N je dis qu'à la position P ; 0<P<N les 4 vecteurs sont similaires donc c'est une region conservée entre les 4

    J'ai l'impression que la crossimilarité entre les vecteur c'est une mesure de similarité globale.

    je me trompe peut etre ?

    question idiote :

    vecteur V1 = [1,1,1,1]
    vecteur V2 = [1,1,1,1]

    crosscorrelation 0 ?

  15. #35
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    ce que je voulais dire c'est peut on mesurer une similarité locale par exemple entre la position 0 et N je dis qu'à la position P ; 0<P<N les 4 vecteurs sont similaires donc c'est une region conservée entre les 4
    Ah ok. Effectivement on peut faire ca.

    Citation Envoyé par anibal Voir le message
    question idiote :
    vecteur V1 = [1,1,1,1]
    vecteur V2 = [1,1,1,1]

    crosscorrelation 0 ?
    non. plutot "1". C'est quand meme tres corrélé.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  16. #36
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    Ah ok. Effectivement on peut faire ca
    Comment ?

  17. #37
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    Comment ?
    Bah comme tu l'as dit. Tu fais une fenetre que tu deplace le long de tes vecteurs.

    Un moyen de faire ca c'est d'extraire un sous-vecteur de taille WINDOW dans chaque vecteur et de calculer leur cross-correlation. Ensuite il faut memoriser la position ou on a obtenu la meilleure cross-correlation.

    Quelquechose de ce genre la:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    int WINDOW=4;
    double bestcorrelation=-1;
    int bestposition=-1;
     
    for(int p=0;p<=X1.length-WINDOW;p++) {
    	// sous echantillons
    	double[] SubX1 = Arrays.copyOfRange(X1, p, p+WINDOW);
    	double[] SubX2 = Arrays.copyOfRange(X2, p, p+WINDOW);
     
    	// correlation des sous-echantillon
    	double subcorrelation=-1;
    	for(int k=0;k<WINDOW;k++) {
    		double c = crosscorrelation(SubX1,SubX2,k);
    		subcorrelation = Math.max(subcorrelation, c );
    	}
     
    	// conserve la meilleure correlation
    	if (subcorrelation>bestcorrelation) {
    		bestcorrelation=subcorrelation;
    		bestposition=p;
    	}
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  18. #38
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    Peut on comparer des vecteurs de transformées d'ondelette de tailles différentes ?

  19. #39
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par anibal Voir le message
    Peut on comparer des vecteurs de transformées d'ondelette de tailles différentes ?
    oui, bien sur. Mathematiquement on peut tout faire (ou presque). Maintenant il faut voir si ca a un sens "physique"
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #40
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    parceque le probleme c'est que quand je fait ma transformée sur un vecteur V1 et une autre sur V2, après si V1=V2 en longueure ya pas de problemes pour tout ce qui est correlation et autres calcul seulement si les vecteurs sont de tailles differentes length(V1)>length(V2) ça pose un probleme parceque on peut pas prendre le min ça na pas de sens on perd de l'information.
    Comment faire ?

    si V1= a b c d e
    et V2 = a2 b2 c2 d2 e2 f2 g2 h2

    Si on se base sur la fonction de crosscorrelation qui limite la fin de la boucle interne (end) à min(V1.length,V2.length) on perd de l'information, non ? on mesure la crosscorrelation que sur une partie de V2 et non sur la totalité.

    y a t il un moyen de calculer une crosscorrelation en tenant compte de la totalité des deux vecteurs ?

Discussions similaires

  1. Calcul de similarité
    Par gemini6621 dans le forum Frameworks
    Réponses: 1
    Dernier message: 05/09/2013, 12h39
  2. [XL-2003] Transformation de mon calcul en une fonction
    Par hobine dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/03/2011, 14h47
  3. Exploration tableau et calcul de similarité
    Par shelko dans le forum Langage
    Réponses: 1
    Dernier message: 11/08/2010, 21h56
  4. Réponses: 2
    Dernier message: 13/04/2010, 07h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo