2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 NumPy: Обратное преобразование Фурье
Сообщение17.03.2022, 23:23 
Здравствуйте!

Дана кусочно-заданная функция: $u(x) = \left\{
\begin{array}{rcl}
 1, |x| \leqslant a \\
 0, |x| > a \\
\end{array}
\right.$, где $a$ - произвольный коэффициент.

Для нее необходимо найти преобразование Фурье. В результате нехитрых выкладок получается: $\hat{u}(\omega) = \cfrac{2\sin(a\omega)}{\omega\sqrt{2\pi}}$

Задача - с помощью numpy.fft.ifft произвести обращение преобразования Фурье и, построив два графика: исходной и полученной в результате преобразования функции, убедиться в правильности преобразования. Найденное вручную преобразование верно. Проверено с помощью различных онлайн-калькуляторов, ручного обратного преобразования и т.д. Уже несколько часов пытаюсь понять какие данные надо подать на вход ifft, чтобы получить значения исходной функции на оси, но выходит все не то и не так. Чувствую, что решается все двумя строчками кода, но не могу сообразить. Вот преобразование Фурье в виде функции на Python:

Код:
def fourier_u(w, c):
    return 2*(np.sin(c*w))/(w*np.sqrt(2*np.pi))+0.j


Не могли бы подсказать, как осуществить задуманное? Как мне сформировать массив на основе значений fourier_u для передачи в ifft на дальнейшую обработку?

 
 
 
 Re: NumPy: Обратное преобразование Фурье
Сообщение18.03.2022, 15:16 
akusoff,
Я правильно понимаю, что от вас требуется для начала именно посчитать теоретическое значение непрерывного преобразования Фурье данной функции?
И нельзя просто сделать вот так:
Код:
fft = np.fft.fft(u)
ifft = np.fft.ifft(fft)
plt.plot(x, ifft.real)
print(np.allclose(u, ifft))

Просто если вы считаете значение непрерывного преобразования Фурье, то почему находите обратное к нему с помощью обратного дискретного преобразования, а не с помощью обратного непрерывного преобразования?
Может, в задании требуется написать дискретное преобразование Фурье и проверить, правильно ли вы его написали, с помощью встроенного обратного?

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group