ifft в Matlab и NumPy дают разные результаты - PullRequest
0 голосов
/ 03 января 2012

У меня есть еще один вопрос. Очень похоже на другое, что я уже просил (и получил большую помощь - еще раз спасибо). К сожалению, решение из другого потока не работает здесь: (http://stackoverflow.com/questions/8680909/fft-in-matlab-and-numpy-scipy-give-different-results)

Теперь речь идет о ifft:

  # i have an array 'aaa' of shape (6,) such as:
  for i in aaa:  print i
  ...

 (1.22474487139+0j)
 (-0.612372435696-1.06066017178j)
 (-0.612372435696+1.06066017178j)
 (1.22474487139+0j)
 (-0.612372435696-1.06066017178j)
 (-0.612372435696+1.06066017178j)

  #when i perform np.ifft the result is:
 np.fft.ifft(aaa)

 array([  1.48029737e-16 +1.48029737e-16j,
    -8.26024733e-17 -1.72464044e-16j,
     1.22474487e+00 -3.94508649e-16j,
     3.70074342e-17 -2.96059473e-16j,
    -2.22044605e-16 +2.46478913e-16j,   4.55950391e-17 +4.68523518e-16j])

  ###################################################################
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % BUT IN MATLAB 
  % the same array...

  aaa =

  1.2247          
 -0.6124 - 1.0607i
 -0.6124 + 1.0607i
  1.2247          
 -0.6124 - 1.0607i
 -0.6124 + 1.0607i

 % ...gives the result:
 ifft(aaa)

 ans =

  -0.0000
        0
   1.2247
        0
        0
        0

я проводил эксперименты с действительными числами, такими как диапазон (1,6). тогда результаты совпадают. Может ли это быть проблемой точности? Но тогда - почему результаты так сильно отличаются? может у кого-то есть идеи как решить проблему?

Ответы [ 2 ]

6 голосов
/ 03 января 2012

Если вы посмотрите на ваши значения, полученные из вашей оценки, они очень маленькие (менее 10 ^ -15)Я бы предположил, что это проблема точности, и ваши результаты не так различны, как кажутся на первый взгляд.

3 голосов
/ 03 января 2012

X.XXe-16 практически равен нулю по сравнению с 1.2247. Оператор печати, скорее всего, округляет все числа на гораздо большую величину.

Таким образом, ваши результаты не отличаются для всех практических целей.

...