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

C Discussion :

Convolution en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut Convolution en C
    Bonsoir à tous!
    Je suis actuellement en train de travailler avec LabWindow. Mon problemes est le suivant:
    J'ai implementer une fonction qui me genère une sequence (Array) selon le cas ( nombre d'elements. En fait il s'agit de l'algorithme "Maximal Lenth Sequence", qui pour un array T de N elements, me genere un Array ( Sequence ) de
    M = 2^N - 1 elements.
    Maintenant je veux faire la convolution de deux sequence. Quelqu'un peut-il m'aider avec un code C me permettant d'arriver a convolutioner mes sequence. J'ai essayé et suis à bout.

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Par défaut
    Bonjour,
    On peut calculer la convolution de deux tableaux d'entiers de cette facon :
    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    /*
    Il faut convoluer seq1 de longueur l1 avec seq2 de longueur l2.
    Il faut liberer le pointeur retourné.
    */
    int *convoluer(int *seq1, int l1, int *seq2, int l2){
    	int i,j;
    	//on alloue un tableau qui va recevoir la convo :
    	int *res=malloc( (l1+l2-1)*sizeof(int) );
    	if (res==NULL) exit(EXIT_FAILURE);
    	//initialisation du tableau avec des 0 :
    	for (i=0; i<l1+l2-1; i++) res[i]=0;
    	//c'est parti :
    	for (i=0; i<l1; i++)
    		for (j=0; j<l2; j++) res[i+j]+=seq1[i]*seq2[j];
    	return res;
    }
     
     
     
    int main(void){
    	int i;
    	int tab1[]={1,1,1,1};
    	int tab2[]={0,1,2,3,4,5,4,3,2,1,0,0,0,0};
     
    	int *res=convoluer(tab1, 4, tab2, 14);
     
    	for (i=0; i<4+14-1; i++) printf("%i ",res[i]);
    	printf("\n");
     
    	free(res);
    	return EXIT_SUCCESS;
    }

Discussions similaires

  1. Masque de convolution
    Par el toro diablo dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 09/05/2007, 15h06
  2. Algos pour Convolution et FFT
    Par mensouille dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 17/08/2005, 18h18
  3. convolution d'image
    Par blue dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 10/04/2005, 23h22
  4. Filtres et noyau de convolution
    Par nicolas66 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 08/04/2005, 14h54
  5. convolution et altivec
    Par ronan99999 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 31/07/2003, 15h08

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