Rebonjour,
merci pour vos aide et excusez-moi pour mes questions.
J'ai fait un programme pour la transformée de Fourier discrète bidimensionnelle; j'ai eu les mêmes réponses qu'un autre logiciel (Scilab) mais bouleversées, ce qui m'étonne malgré que je sois sur de mon programme. Alors pouvez-vous me dire si le truc vient du format ou d'autre chose ?

Voilà 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
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
          program m
      integer i,j,N
      parameter(N=3)
      complex A(0:N-1,0:N-1),B(0:N-1,0:N-1),ii
      parameter(ii=(0.,1.))
      A(0,0)=ii
      A(1,0)=ii
      A(2,0)=ii
      A(0,1)=ii
      A(1,1)=-1.
      A(2,1)=ii
      A(0,2)=0.
      A(1,2)=1.
      A(2,2)=ii
      Call idft2d(N,A,B)
      print 10,((A(i,j),i=0,N-1),j=0,N-1)
10    format('A=',6(/,1X,6(F12.8,1X)))
      print 20,((B(i,j),i=0,N-1),j=0,N-1)
20    format('A=',6(/,1X,6(F12.8,1X)))
      end
 
 
 
 
 
      subroutine idft2d(N,C,D)
      integer i,j,p,q,N
      complex C(0:N-1,0:N-1),D(0:N-1,0:N-1),b
      real pi 
      parameter(pi=3.1415926535)
      parameter(b=(0.,1.))
c     b est le nombre complex i usuel
      do i=0,N-1
        do j=0,N-1
           D(i,j)=0.
             do p=0,N-1
                do q=0,N-1
                   D(i,j)=D(i,j)+C(p,q)*exp(-b*(2.*pi/real(N))
&                            *(real(p)*real(i)+real(q)*real(j)))
                 enddo
              enddo
         enddo
      enddo
      do i=0,n-1
         do j=0,n-1
             D(i,j)=(1./(real(N)**2))*D(i,j)
         enddo
      enddo
      return
      end
et voila ce que j ai eu comme matrice reponse en fortran :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
B=
   0.00000000   0.66666669  -0.19245011   0.00000004   0.19245005  -0.00000005
   0.09622505   0.35911676   0.35911673  -0.09622510  -0.16666666  -0.09622505
  -0.09622510  -0.02578341  -0.16666669   0.09622505  -0.02578341   0.09622505
Et voilà ce que j'ai eu sur Scilab :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
            column 1 to 2
 
    0.6666667i                0.1924501               
  - 0.0962250 - 0.0257834i  - 0.0257834 + 0.0962250i  
    0.0962250 + 0.3591168i  - 0.1666667 - 0.0962250i  
 
         column 3
 
  - 0.1924501               
  - 0.1666667 + 0.0962250i  
    0.3591168 - 0.0962250i
ce qui est étonnant
Merci