मैं सिग्नल प्रोसेसिंग और विशेष रूप से एफएफटी के लिए नया हूं, इसलिए मुझे यकीन नहीं है कि अगर मैं यहां सही काम कर रहा हूं और मैं परिणाम से थोड़ा भ्रमित हूं।
मेरे पास एक असतत वास्तविक कार्य (माप डेटा) है और उस पर एक कम पास फ़िल्टर स्थापित करना चाहता हूं। पसंद का उपकरण खस्ता पैकेज के साथ पायथन है। मैं इस प्रक्रिया का पालन करता हूं:
- मेरे फंक्शन की गणना
- उच्च आवृत्तियों को काट दें
- उलटा प्रदर्शन करें
यहाँ वह कोड है जो मैं उपयोग कर रहा हूँ:
import numpy as np
sampling_length = 15.0*60.0 # measured every 15 minutes
Fs = 1.0/sampling_length
ls = range(len(data)) # data contains the function
freq = np.fft.fftfreq(len(data), d = sampling_length)
fft = np.fft.fft(data)
x = freq[:len(data)/2]
for i in range(len(x)):
if x[i] > 0.005: # cut off all frequencies higher than 0.005
fft[i] = 0.0
fft[len(data)/2 + i] = 0.0
inverse = np.fft.ifft(fft)
क्या यह सही प्रक्रिया है? परिणाम inverse
में जटिल मूल्य शामिल हैं, जो मुझे भ्रमित करता है।