मेरे पास एक वास्तविक वेक्टर टाइम सीरीज़ एक्स लम्बाई टी है और लम्बाई टी < < का फ़िल्टर एच है। टी एच चौकोर स्पेस, असली और सममित में एक फ़िल्टर है। यह लगभग 1/एफ है।फूरियर स्पेस फ़िल्टरिंग
मैं y प्राप्त करने के लिए x के साथ x फ़िल्टर करना चाहता हूं।
मान लीजिए कि टी == टी और एफएफटी की लंबाई टी स्मृति में फिट हो सकती है (इनमें से कोई भी सत्य नहीं है)। अजगर में मेरी फ़िल्टर किए गए एक्स पाने के लिए, मुझे क्या करना होगा:
import numpy as np
from scipy.signal import fft, ifft
y = np.real(np.ifft(np.fft(x) * h)))
की स्थिति के बाद से पकड़ नहीं है, मैं करने की कोशिश की निम्नलिखित हैक:
- एक गद्दी आकार पी < टी/2 का चयन करें, का चयन एक ब्लॉक आकार बी ऐसी है कि बी + 2P एक अच्छा FFT आकार है पट्टी प्रक्षेप के माध्यम से
- स्केल ज आकार बी के होने के लिए + 2 पी> टी (h_scaled)
- y = []; लूप: लंबाई बी के
- लें ब्लॉक + x से 2P (बुलाया x_b)
- प्रदर्शन करना y_b = IFFT (fft (x_b) * h_scaled)
- ड्रॉप गद्दी पी y_b के दोनों तरफ और y के साथ जोड़ से
- का चयन अगले x_b पी द्वारा पिछले के साथ अतिव्यापी
यह एक अच्छी रणनीति है? मैं पैडिंग पी को एक अच्छे तरीके से कैसे चुनूं? ऐसा करने का सही तरीका क्या है? मुझे बहुत सिग्नल प्रोसेसिंग नहीं पता है। यह सीखने का एक अच्छा मौका है।
मैं चीजों को गति देने के लिए क्यूएफएफटी का उपयोग कर रहा हूं, इसलिए यह बहुत अच्छा होगा अगर ऑपरेशन का बड़ा हिस्सा एफएफटी है। वास्तविक समस्या 3 डी है। इसके अलावा, मैं एक आकस्मिक फ़िल्टर से कलाकृतियों के बारे में चिंतित नहीं हूं।
धन्यवाद, पॉल।
ओवरलैप-सेव संदर्भ के लिए धन्यवाद। मैंने समय डोमेन फ़िल्टरिंग के संबंध में प्रेस एट अल।, न्यूमेरिकल व्यंजनों में इसके बारे में पढ़ा था और मुझे यह सुनिश्चित नहीं था कि आवृत्ति डोमेन पर इसे कैसे मैप किया जाए। मुझे छोड़ने के बारे में निश्चित नहीं है: 1) क्यों दूसरे छोर के बजाय y_b का दूसरा आधा, 2) आपके अन्य एसओ पोस्ट में, आप पहली छमाही छोड़ देते हैं। – Paul
मेरा फ़िल्टर एच कच्चे डेटा से औसत से लिया गया है, एच (एफ) ~ 1/एफ और चरणों को 0 पर सेट किया गया है। मैं इस फ़िल्टर के साथ एक सिंथेटिक सिग्नल फ़िल्टर कर रहा हूं ताकि इसे मेरे कच्चे डेटा की तरह स्पेक्ट्रम दिया जा सके। मुझे यकीन नहीं है कि इस फ़िल्टर को समय डोमेन में कैसे डिज़ाइन किया जाए। एक बात जो आपने इंगित की है वह यह है कि रिंगिंग कलाकृतियों से बचने के लिए ifft (h) एक छोर पर शून्य होना बेहतर है। मैं इसे जांचूंगा क्योंकि यह बहुत संभावना नहीं है। क्या समय डोमेन में आवृत्ति डोमेन में कुछ विंडो विधि (आपके अन्य एसओ पोस्ट में आपका पहला उदाहरण) में हैमिंग विंडो लगाने के लिए कोई एनालॉग है? – Paul
येश - पहली छमाही/दूसरी छमाही समस्या को खराब करने के बारे में खेद है। मैंने उस सुधार के साथ अद्यतन किया, और एक अच्छी तरह से व्यवहार 'एच' उत्पन्न करने के बारे में कुछ विचार। – mtrw