Tôi hiện đang cố gắng hiểu chức năng fft từ bị sần. Tôi đã thử nghiệm giả định sau:
Tôi có hai hàm, f(x) = x^2
và g(x) = f'(x) = 2*x
. Theo luật chuyển đổi fourier và alpharam alpha, nó phải là G(w) = 2pi*i*F(w)
(các bộ tiền tố có thể khác nhau, nhưng chỉ nên có một yếu tố không đổi). Khi thực hiện điều đó trong python, tôi viếtNumpy.fft.fft hoạt động như thế nào?
import numpy as np
def x2(x):
return x*x
def nx(x):
return 2*x
a = np.linspace(-3, 3, 16)
a1 = x2(a)
a2 = nx(a)
b1 = np.fft.fft(a1)
b2 = np.fft.fft(a2)
c = b1/b2
Bây giờ tôi đang mong đợi một giá trị gần như không đổi cho c
, nhưng tôi nhận
array([ 1.02081592e+16+0.j , 1.32769987e-16-1.0054679j ,
4.90653893e-17-0.48284271j, -1.28214041e-16-0.29932115j,
-1.21430643e-16-0.2j , 5.63664751e-16-0.13363573j,
-5.92271642e-17-0.08284271j, -4.21346622e-16-0.03978247j,
-5.55111512e-16-0.j , -5.04781597e-16+0.03978247j,
-6.29288619e-17+0.08284271j, 8.39500693e-16+0.13363573j,
-1.21430643e-16+0.2j , -0.00000000e+00+0.29932115j,
-0.00000000e+00+0.48284271j, 1.32769987e-16+1.0054679j ])
đâu là sai lầm của tôi, và những gì tôi có thể làm gì để sử dụng FFT như dự định?
Phần không chính xác ở đây là 'G (w) = 2 pi i F (w) '. Nên là 'G (w) = 2 pi i w F (w)'. –
@DietrichEpp: w là gì trong các mảng đó, và nó cũng là tưởng tượng? –
@arc_lupus 'w' là tần số không gian tương đương với' x'. Trong trường hợp này, bạn có 'x^2' trong không gian ban đầu, không có tần số, mỗi lần (ít nhất là không dễ hiểu), vì vậy bạn sẽ nhận được vô số các đỉnh khác nhau đại diện cho' x^2'. Ví dụ, nếu 'f (x) = sin (x)', thì bạn sẽ có một func delta đơn giản, đẹp tại 1 để nắm bắt tần số đơn giản trong 'sin (x)'. –