Извлечение частот от многомерного FFT

Я написал код питона, чтобы взять 2D сигнал и FFT это, и теперь я хочу извлечь частоты, связанные с FFT. np.fft.fftfreq терпит неудачу, давая мне ошибку

File "/usr/lib64/python2.7/site-packages/numpy/fft/helper.py", line 153, in fftfreq
    assert isinstance(n,types.IntType) or isinstance(n, integer)
AssertionError

Мой код:

import numpy as np
import scipy as sp
import pylab
import sys
import math

filename = sys.argv[1]  # Get name of file to open 

ifp = open(filename, "r")
ifp.seek(0)

nrows = 0
ncols = 0

nrows = sum(1 for line in ifp) # Sum over all the lines in the file ptr

ifp.seek(0) # Set the fptr back to beginning of file
for line in ifp:
   ncols = len(line.split()) #Split and count number of words in a line
   if ncols > 0:
      break

OrigData = np.zeros([nrows, ncols], dtype=np.float32) #Allocate numpy array
FFTData = np.zeros([nrows, ncols], dtype=complex)
IFFTData = np.zeros([nrows, ncols], dtype=complex)
FreqComp = np.zeros([nrows, ncols], dtype=np.float32)

ii = 0
jj = 0
ifp.seek(0)
for line in ifp:
   linedata = line.split()
   jj = 0
   for el in linedata:
      OrigData[ii,jj] = float(el)
      jj+=1
   ii+=1
ifp.close()

FFTData = np.fft.fft2(OrigData)
FreqComp = np.fft.fftfreq(FFTData, d=2)

#--- Continue with more code ---#

Я знаю, что все остальное работает кроме np.fft.fftfreq линия, потому что я включил, это длится. Как каждый извлекает 2 размерных компонента частоты?

3
nl ja de
добавлено автор mmgp, источник

1 ответы

Вы проходите в недопустимом параметре: np.fft.fftfreq берет размер данных о сигнале так же первый параметр (целое число) и такт как второй параметр. Вы проходите во множестве как первый параметр.

Необходимо выступить np.fft.fft на сигнале сначала все же.

Ненависть, чтобы указать на очевидное, но читать np.fft.fftfreq... пример кода очень симпатичен ясный.


Выполнив 2D FFT, можно получить типовые частоты вдоль каждого измерения следующим образом:

FreqCompRows = np.fft.fftfreq(FFTData.shape[0],d=2)
FreqCompCols = np.fft.fftfreq(FFTData.shape[1],d=2)
7
добавлено
Извините, я забыл приклеивать линию, где я делаю FFT.: P, Но как это будет работать на 2-й случай? It' ll возвращаются 1d множество компонентов частоты, I' m перепутанный тем, как интерпретировать это.
добавлено автор Kitchi, источник
fft2 , they' ре все 2D множества, что I' ve определяется.
добавлено автор Kitchi, источник
Спасибо!, Но теперь I' m перепутанный тем, как интерпретировать это... Если я должен выяснить частоту пункта на 2D множестве, этот метод даст мне две различных частоты, один для ряда и один для колонки. Это будет частотой x и y компонент грех волна?
добавлено автор Kitchi, источник
Таким образом, я понял его - частота, соответствующая ряду, будет x частота грех , и частота, соответствующая колонке, будет y частота грех . Если есть два пика с той же самой величиной, it' s просто реальная и сложная часть FFT и they' ll оба соответствуют той же самой частоте.
добавлено автор Kitchi, источник
вы используете fft или fft2? ах, извините, didn' t замечают ваше обновление.
добавлено автор isedev, источник
Вы, кажется, испытываете те же самые затруднения как я визуализирующий 2D сигнал и его соответствующую 2D плотность распределения. Лучшее, которое я могу придумать в данный момент, думают о нем как о двух ортогональных волнах (как ОНИ область), таким образом, 2D FFT будет частотой dist каждой волны...
добавлено автор isedev, источник
Почему делает d=2 ?
добавлено автор Mikhail, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community