2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 NumPy: Обратное преобразование Фурье
Сообщение17.03.2022, 23:23 


17/03/22
2
Здравствуйте!

Дана кусочно-заданная функция: $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 


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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group