Bonjour, j'ai un problème au niveau de la multiplication des valeurs de 2 tableaux.

Voici le 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
void FrequencyTransposition(float *signal_reel, float tk, int taille_signal)
{
  int i;
  int N=taille_signal;               /*récupération de la taille des tableaux*/
  float fp,cosinus[N];
  float *signal_re=NULL;
  float *signal_re_transpose=NULL;
 
  FILE * FicSortie;
 
 
  signal_re=malloc(sizeof(float) * (N));
  signal_re_transpose=malloc(sizeof(float) * (N));
 
  for(i=0;i<N;i++)
  { 
	signal_re[i]=signal_reel[i];      /*Récupération du signal partie réelle*/ 
 }	
 
 
 
  printf("\n\nFréquence de la porteuse en MHz :");   
  scanf("%f",&fp);
 
  printf("\n\nSignal partie réelle transposé par une porteuse de %f MHz :",fp);       
  for(i=0;i<N;i++)
  {
    cosinus[i] = cos(2*3.1416*fp*i*tk);                      
	signal_re_transpose[i]=signal_re[i]*cosinus[i];            /*Multiplication du signal reel par cos(2*pi*fp*tk)*/
  }
 
 
FicSortie= fopen("F:/Users/garnier/Matlab/reel.txt","w");
 
 for (i=0;i<N;++i)
 {fprintf(FicSortie,"%lf\n ",signal_re_transpose[i]); 
  printf(" %f ",signal_re_transpose[i]);
 }
 fclose(FicSortie);
 
  return;
}
J'ai des erreurs du style j'obtiens:-588189646392141076285668743708672.000000.Or je multiplie un cosinus donc compris entre +1 et -1 avec des coefficients de dépassant pas 1000. DOnc cela n'est pas cohérent.

Quelqu'un peut-il m'aider? Merci.