एफएफटी स्पेक्ट्रम को संशोधित करने और एफएफटी के बजाय हम टाइम डोमेन में विंडो का उपयोग क्यों करते हैं


16

मैंने सोचा था कि डीएसपी एक सिग्नल के भागों के एफएफटी का उपयोग करके किया जाएगा, एफएफटी के परिणामस्वरूप होने वाले नमूनों को संशोधित करें (क्योंकि वे हमारे सिग्नल + शोर के स्पेक्ट्रम का प्रतिनिधित्व करते हैं) और किसी भी अवांछित संकेतों को हटाने और एक समय प्राप्त करने के लिए उलटा एफएफटी की तुलना में करते हैं। फ़िल्टर्ड सिग्नल का डोमेन प्रतिनिधित्व (शोर अब हटा दिया गया है)। यह हालांकि नहीं किया गया है, इसके बजाय हम विंडो फ़ंक्शंस का उपयोग करके समय डोमेन में सभी काम करते हैं। क्यों?

यदि हम विंडो फ़ंक्शन को विंडो डोमेन में गुणा करते हैं, तो हम आवृत्ति डोमेन में हमारे सिग्नल के स्पेक्ट्रम के साथ विंडो फ़ंक्शन की आवृत्ति प्रतिक्रिया का समाधान कर रहे हैं, यह कैसे काम करता है? मेरा मतलब है कि अगर हम फिल्टर के आवृत्ति प्रतिक्रिया के साथ हमारे सिग्नल को गुणा करके आवृत्ति डोमेन में सभी काम करते हैं, तो क्या यह फ़िल्टरिंग अधिकार की तरह होगा? लेकिन यहां हम विंडो का उपयोग करने के बजाय सभी सामान समय डोमेन में करते हैं।

-> आइए देखें कि मेरा भ्रम कहां से आता है। एनालॉग फिल्टर जैसे कम पास फिल्टर के लिए, हमारे पास आवृत्ति प्रतिक्रिया की तरह यह नाड़ी है। जब हम किसी सिग्नल को फिल्टर करते हैं, तो हम फिल्टर के फ्रिक्वेंसी रिस्पॉन्स की तरह पल्स के साथ अपने सिग्नल के स्पेक्ट्रम को प्रभावी ढंग से गुणा कर रहे हैं। यह कट-ऑफ से ऊपर हमारे सिग्नल की सभी आवृत्तियों को 0. कम कर देगा। यह इसी तरह से एक कम पास फिल्टर काम करता है। डिजिटल फिल्टर के साथ भी ऐसा ही क्यों नहीं?


जवाबों:


7

घुमावदार होने से वर्णक्रमीय रिसाव कम हो जाता है।

कहते हैं कि आप एक । अवधि स्पष्ट रूप से । पाप(y)=क्योंकि(ω0टी)2π/ω0

लेकिन अगर किसी ने आपको यह नहीं बताया कि यह अवधि और आप आँख बंद करके इस सीमा को चुनते हैं और इस छंटनी वाली तरंग के FFT को लें, आप अन्य आवृत्तियों में सभी घटकों का निरीक्षण करेंगे जो सभी हैं नकली क्योंकि आवधिकता के लिए छंटनी की गई तरंग को कॉपी-पेस्ट करके बनाए गए जंप वास्तव में मूल सिग्नल में मौजूद नहीं हैं - यह एक अशुभ ट्रंकेशन की एक कलाकृति है जो कि पीरियड के बीच संक्रमण को सुचारू रूप से नहीं पकड़ती है। आदर्श रूप में पर केवल एक वर्णक्रमीय घटक । 2π/ω[0,1.8π/ω0]ω=ω0

समय डोमेन में विंडोिंग का उद्देश्य इन सभी काल्पनिक वर्णक्रमीय घटकों को कम करना है।


12

वाइंडिंग का उपयोग किया जाता है क्योंकि डीएफटी गणना इनपुट सिग्नल के अनंत आवधिक विस्तार पर काम करती है। चूँकि कई वास्तविक संकेत या तो आवधिक नहीं होते हैं, या उनकी वास्तविक अवधि से अलग अंतराल पर नमूने लिए जाते हैं, यह बार-बार अंतराल के बीच कृत्रिम 'बढ़त' में झूठी आवृत्ति घटकों का उत्पादन कर सकता है, जिसे रिसाव कहा जाता है । पहले समय-डोमेन सिग्नल को एक विंडोिंग फ़ंक्शन द्वारा गुणा करना जो दोनों सिरों पर शून्य हो जाता है, आप अनंत आवधिक विस्तार में दोहराया अंतराल के बीच एक चिकनी संक्रमण बनाते हैं, इस प्रकार इन कृत्रिम आवृत्ति घटकों के निर्माण को कम करते हैं जब हम फिर डीएफटी लेते हैं।

यह पेपर इस घटना को गहराई से देखता है, साथ ही साथ विभिन्न विंडोिंग कार्यों के प्रभावों के बारे में कुछ जानकारी देता है।


11

मुझे लगता है कि आप दो अलग-अलग ऑपरेशनों को भ्रमित कर रहे हैं।

टाइम डोमेन में वाइंडिंग @sam द्वारा बताई गई है, इसलिए मैं इसे नहीं दोहराऊंगा। लेकिन फ़िल्टरिंग करने के लिए विंडोिंग नहीं की जाती है। फ़िल्टर आवृत्ति प्रतिक्रिया द्वारा एक सिग्नल के FFT को गुणा करके फ़िल्टर करना कई स्थितियों में पूरी तरह से उचित है, और वास्तव में किया जाता है। फ़िल्टरिंग का विकल्प टाइम-डोमेन कनवल्शन है (जो विंडोिंग के लिए अलग है)। इसके अपने फायदे हैं, जैसे कि 'वास्तविक समय' में एक सिग्नल पर काम करना क्योंकि यह पूरी चीज को संग्रहीत किए जाने की प्रतीक्षा किए बिना मापा जाता है - रूपांतरित।

तो आपके प्रश्न के लिए 'डिजिटल फ़िल्टर के साथ भी ऐसा ही क्यों न हो?', इसका उत्तर बस 'हम करते हैं, जब यह सूट करता है।'


मुझे यह भी आभास होता है, कि सवाल में कनवल्शन और विन्डोंग मिला हुआ है। अच्छा आप इसे बाहर बताया!
देवेग

11

इस प्रश्न के कई अच्छे उत्तर हैं। हालांकि, मुझे लगता है कि एक महत्वपूर्ण बिंदु पूरी तरह से स्पष्ट नहीं किया गया है। प्रश्न का एक हिस्सा यह था कि हम केवल वांछित फिल्टर प्रतिक्रिया के साथ सिग्नल के FFT को गुणा क्यों नहीं करते हैं। उदाहरण के लिए, यदि हम अपने सिग्नल को कम करना चाहते हैं, तो हम वांछित कट-ऑफ आवृत्ति की तुलना में सभी आवृत्ति घटकों को शून्य कर सकते हैं। यह वास्तव में एफआईआर फिल्टर डिजाइन करने के लिए प्रसिद्ध आवृत्ति नमूना विधि का एक सरल अनुप्रयोग है। समस्या यह है कि हम एफएफटी द्वारा गणना किए गए असतत आवृत्ति घटकों को शून्य कर सकते हैं। इन असतत आवृत्तियों के बीच क्या होता है, इस पर हमारा कोई नियंत्रण नहीं है। यह पता चला है कि फ़िल्टरिंग का ऐसा सरल संस्करण केवल एक खराब स्टॉपबैंड क्षीणन (एफएफटी लंबाई की परवाह किए बिना) देगा। यदि आपके पास माटलैब या सप्तक तक पहुंच है, तो यह '

x=2*rand(1024,1)-1;
X=fft(x);
Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter
y=real(ifft(Y)); % real() just to remove numerical errors
Y=fft(y,4096);
plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50])

6

यदि आप एक गैर-आयताकार खिड़की का उपयोग नहीं करते हैं, तो एफएफटी परिणाम किसी भी आवृत्ति डोमेन फ़िल्टरिंग करने से पहले एक डिफ़ॉल्ट आयताकार खिड़की (एक आवधिक एसआईएनसी) के परिवर्तन के साथ पहले से ही दोषी होंगे। उदाहरण के लिए, आपको दो फ़िल्टर लागू होंगे, जिनमें से एक आप नहीं चाहते हैं।

एफएफटी और फ़्रीक्वेंसी डोमेन फ़िल्टरिंग से पहले टाइम डोमेन में विंडोिंग करके, आप आयताकार विंडोिंग द्वारा किए गए किसी भी फ़िल्टरिंग (तथाकथित "लीकेज") को बदल देते हैं, और इस तरह एक अतिरिक्त अवांछित फ़िल्टर कनवल्शन नहीं मिलता है।

ऐसा करने का दूसरा तरीका लगातार खिड़कियों पर ओवरलैप-ऐड या ओवरलैप बचाने के तरीकों का उपयोग करना है, जहां एक आयताकार खिड़की के प्रभाव आसन्न खिड़कियों से समान प्रभाव से रद्द हो जाते हैं।


5

समय डोमेन में विंडो क्योंकि

  • हम खिड़की के किनारों पर शून्य की गारंटी दे सकते हैं
  • स्थानिक डोमेन में विंडो फ़ंक्शंस की एक अच्छी विश्लेषणात्मक अभिव्यक्ति है
  • कई विंडो फ़ंक्शंस में एक अजीब आकार का स्पेक्ट्रम होता है जो अनुमानित रूप से कठिन होगा
  • नमूनों की केवल एक सीमित संख्या की आवश्यकता होती है (संकेत धाराओं के रूप में विंडोिंग की जा सकती है)

जैसे विकिपीडिया से

यहाँ छवि विवरण दर्ज करें

विंडोिंग फ़ंक्शंस के ज़ीरो में जाने की हार्ड कट का मतलब होता है स्पेक्ट्रल डोमेन में उनके साइड साइड लॉब्स जो बहुत धीरे-धीरे ज़ीरो पर जाते हैं। यदि हम इस बाधा से छुटकारा पा लेते हैं तो हमारे पास ऐसे कार्य हो सकते हैं जो गौसियन फ़िल्टर की तरह स्थानिक और वर्णक्रमीय दोनों डोमेन में कॉम्पैक्ट हैं। इसका मतलब है कि आप वर्णक्रमीय डोमेन के माध्यम से फ़िल्टर कर सकते हैं लेकिन इसके लिए पूरे सिग्नल की आवश्यकता होती है।

यदि आपके पास पूरा संकेत पहले से ही है तो तरंगों का उपयोग करने का एक और विकल्प होगा


2

मेरा भी यही सवाल था।

एक दृढ़ संकल्प खिड़की के साथ गुणा समय डोमेन सिग्नल का अभिन्न / संचयी योग है। यह "विंडो" टाइम डोमेन सिग्नल के साथ भ्रमित नहीं होना चाहिए।

इस लेख के अंत ने मुझे बहुत मदद की।

मूल रूप से यह कहता है कि वास्तविक सिग्नल परिमित होते हैं और आवृत्ति डोमेन में बहुत सी अवांछित आवृत्तियों / कलाकृतियों के वास्तविक सिग्नल परिणाम को काट देते हैं।

इन कलाकृतियों से बचने / कम करने के लिए आप एक चिकनी (जैसे। घंटी के आकार का) विंडो फ़ंक्शन का उपयोग कर सकते हैं जैसे कि आपका नमूना शून्य से शुरू होता है और समाप्त होता है, बजाय कुछ गैर शून्य स्केलर मान के।

चिकने कटे हुए

ऊपर खिड़की वाले नमूने में नीचे के कच्चे नमूने की तुलना में आवृत्ति डोमेन में कम कलाकृतियाँ होंगी।

अचानक कट गया


1

एक एफएफटी के साथ दो व्यापक श्रेणियां जुड़ी हुई हैं और वे हैं 1) एफआईआर फ़िल्टर को लागू करने का एक कुशल तरीका, और 2) स्पेक्ट्रल एनालिसिस।

एफआईआर फ़िल्टरिंग के लिए, कोई भी खिड़कियों के बारे में चिंता नहीं करता है और उनका उपयोग नहीं करता है, जब तक कि खिड़की एक फिल्टर से मेल नहीं खाती है, लेकिन यह एक आम बात नहीं है। रिसाव एक चिंता का विषय नहीं है।

स्पेक्ट्रल एनालिसिस वह है जहां कोई विंडोज़ का इस्तेमाल करता है। यह वह जगह है जहां आप एक बड़ी औद्योगिक मशीन से जुड़े एक सेंसर को देखते हैं और यह पता लगाने की कोशिश करते हैं कि क्या इसकी आंतों में गहरी, एक असर विफलता है। बियरिंग्स चुरा लेते हैं क्योंकि वे विफल हो जाते हैं, लेकिन आमतौर पर उनके द्वारा किए जाने वाले अन्य ध्वनियों की तुलना में शोर बहुत कम होता है। यह वह जगह है जहां रिसाव और औसत अंदर आता है। मजबूत टन को देखते हुए, रिसाव कमजोर संकेत को बाहर कर देगा जो हम कुछ समय के लिए देख रहे हैं। यह मजबूत संकेतों की उपस्थिति में कमजोर संकेतों के लिए स्पेक्ट्रल विश्लेषण की संवेदनशीलता में सुधार करता है। पृष्ठभूमि के शोर को कम करने पर एक समान प्रभाव पड़ता है। हमारे द्वारा मांगी गई जानकारी फ़्रीक्वेंसी डोमेन में है। राडार, और सोनार और भूभौतिकी में भी यही समस्या है। कमजोर सिग्नल देखना लक्ष्य है।


1

समय क्षेत्र में घुमावदार एक एकल आवृत्ति से बचने के लिए आवश्यक है जो कि पूरे स्पेक्ट्रम पर फैलने के लिए आवृत्ति बिन पर बिल्कुल नहीं है। शायद यह पृष्ठ मदद करता है: http://www.sm5bsz.com/slfft/slfft.htm लिनराड (मेरी 20 साल पुरानी परियोजना) एक विंडो एफएफटी का उपयोग करता है, फिर आवृत्ति डोमेन में एक फ़िल्टर लागू करता है (शून्य जो नहीं करना चाहता है बनाओ।) एक खिड़की लागू करें - आवृत्ति के पापों पर वीगेट 1 से वजन 0 तक अचानक न जाएं। फिर एक पीछे की ओर एफएफटी लागू करें - लेकिन अब बहुत कम अंकों पर। हम जानते हैं कि सभी आवृत्ति डिब्बे को शामिल करने की कोई आवश्यकता नहीं है !! रेसुलर के रूप में हमें बहुत छोटे आकार के साथ एक समय कार्य मिलता है - इसका मतलब है कि बहुत कम नमूना दर के साथ। प्रक्रिया एक ही चरण में फ़िल्टरिंग और डिसीमेशन करती है। यदि कोई एक ही समय में कई चैनलों को फ़िल्टर करना चाहता है, तो यह बहुत ही कुशल है। लाइनरड होम पेज यहां है: http://www.sm5bsz.com/linuxdsp/linrad.htm

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.