मैं वर्तमान में fpy-function को numpy से समझने की कोशिश कर रहा हूं। इसके लिए मैंने निम्नलिखित धारणा का परीक्षण किया:
मेरे पास दो कार्य हैं, f(x) = x^2
और g(x) = f'(x) = 2*x
। चौकोर परिवर्तन कानूनों और wolfram अल्फा के अनुसार यह G(w) = 2pi*i*F(w)
होना चाहिए (prefactors भिन्न हो सकते हैं, लेकिन केवल एक स्थिर कारक होना चाहिए)। जब लागू करने अजगर में, मैं लिखने किnumpy.fft.fft कैसे काम करता है?
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
अब मैं c
के लिए एक लगभग स्थिर मूल्य की उम्मीद कर रहा हूँ, लेकिन मैं
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 ])
मिल कहाँ मेरी गलती है, और मैं fft उपयोग करने के लिए क्या कर सकते हैं जैसा सोचा वैसा?
यहाँ गलत हिस्सा 'है जी (डब्ल्यू) = 2:
यहाँ कुछ कोड है कि FFT के माध्यम से संबंध में आपकी रुचि है की पुष्टि करता है, एक उचित रूप से नमूना बैंड-सीमित समारोह का उपयोग कर पीआई आई एफ (डब्ल्यू) '। 'जी (डब्ल्यू) = 2 पीआई मैं डब्ल्यू एफ (डब्ल्यू) होना चाहिए। –
@DietrichEpp: उन सरणी में डब्ल्यू क्या है, और यह भी काल्पनिक है? –
@arc_lupus 'w' आवृत्ति-स्थान' x' के बराबर है। इस मामले में, आपके पास मूल स्थान में 'x^2' है, जिसमें कोई आवृत्ति नहीं है, प्रति से कम (कम से कम समझ में नहीं आता है), इसलिए आपको' x 'का प्रतिनिधित्व करने के लिए विभिन्न चोटियों की भीड़ मिल जाएगी^2'। उदाहरण के लिए, यदि 'f (x) = sin (x)', तो आपके पास 'पाप (x)' में सरल आवृत्ति को कैप्चर करने के लिए 1 पर एक अच्छा, सरल डेल्टा func होगा। –