दृष्टिकोण
Deconvolution के लिए कई तरीके हैं (अर्थात् गिरावट संचालक रैखिक है और समय / अंतरिक्ष आक्रमणकारी) वहाँ से बाहर है।
वे सभी इस तथ्य से निपटने की कोशिश करते हैं कि समस्या कई मामलों में बीमार है।
बेहतर तरीके वे हैं जो डेटा के मॉडल को बहाल करने के लिए कुछ नियमितीकरण जोड़ते हैं।
यह सांख्यिकीय मॉडल (Priors) या कोई ज्ञान हो सकता है।
छवियों के लिए, एक अच्छा मॉडल टुकड़ा बुद्धिमान या ग्रेडिएंट की सुस्पष्टता है।
लेकिन उत्तर के लिए एक साधारण पैरामीट्रिक दृष्टिकोण लिया जाएगा - माप में मॉडल में बहाल डेटा के बीच कम से कम वर्ग त्रुटि को कम करना।
नमूना
सबसे कम वर्ग मॉडल सरल है।
डेटा के एक फ़ंक्शन के रूप में उद्देश्य फ़ंक्शन द्वारा दिया गया है:
f(x)=12∥h∗x−y∥22
अनुकूलन समस्या निम्न द्वारा दी गई है:
argminxf(x)=argminx12∥h∗x−y∥22
जहाँ डेटा को पुनर्स्थापित किया जाना है, ब्लरिंग कर्नेल (इस मामले में गाऊसी) है और दिए गए मापों का समूह है।
मॉडल मानता है कि माप केवल दीक्षांत के वैध भाग के लिए दिए गए हैं। अर्थात् यदि और तो जहां ।xhy
x∈Rnh∈Rky∈Rmm=n−k+1
यह परिमित स्थान में एक रैखिक ऑपरेशन है, इसलिए इसे मैट्रिक्स फॉर्म का उपयोग करके लिखा जा सकता है:
argminxf(x)=argminx12∥Hx−y∥22
जहां कनवल्शन मैट्रिक्स है।H∈Rm×n
समाधान
निम्न वर्ग समाधान द्वारा दिया गया है:
x^=(HTH)−1HTy
जैसा कि देखा जा सकता है कि इसके लिए मैट्रिक्स व्युत्क्रम की आवश्यकता होती है।
इसे पर्याप्त रूप से हल करने की क्षमता ऑपरेटर की स्थिति संख्या पर निर्भर करती है, जो । HTHcond(H)=cond(HTH)−−−−−−−−−−√
हालत संख्या विश्लेषण
इस शर्त संख्या के पीछे क्या है?
कोई इसका उत्तर रैखिक बीजगणित का उपयोग करके दे सकता है।
लेकिन मेरी राय में, एक अधिक सहज, आवृत्ति डोमेन में इसके बारे में सोच रही होगी।
मूल रूप से गिरावट ऑपरेटर आम तौर पर उच्च आवृत्ति की ऊर्जा को दर्शाता है।
अब, चूंकि आवृत्ति में यह मूल रूप से एक तत्व वार गुणन है, तो कोई उलटा फिल्टर द्वारा तत्व वार विभाजन को उलटने का आसान तरीका कहेगा।
खैर, यह वही है जो ऊपर किया गया है।
समस्या उन मामलों के साथ उत्पन्न होती है, जो फिल्टर को व्यावहारिक रूप से शून्य में ऊर्जा में बदल देता है। फिर हमें वास्तविक समस्याएं हैं ...
यह मूल रूप से वही है जो हालत संख्या हमें बताती है, दूसरों के सापेक्ष कुछ आवृत्तियों को कितना कठिन माना गया था।
ऊपर एक गॉसियन फ़िल्टर एसटीडी पैरामीटर के एक फ़ंक्शन के रूप में स्थिति संख्या ([डीबी] इकाइयों का उपयोग करके) देख सकता है।
जैसा कि उम्मीद की गई थी, एसटीडी बदतर स्थिति संख्या जितनी उच्च एसटीडी का मतलब है मजबूत एलपीएफ (अंत में नीचे जाने वाले मूल्य संख्यात्मक मुद्दे हैं)।
संख्यात्मक समाधान
गॉसियन ब्लर कर्नेल का पहनावा बनाया गया था।
पैरामीटर , और ।
डेटा यादृच्छिक है और कोई शोर नहीं जोड़ा गया था।n=300k=31m=270
MATLAB में रैखिक प्रणाली का उपयोग करके हल किया गया था pinv()
जो SVD आधारित छद्म व्युत्क्रम और \
ऑपरेटर का उपयोग करता है ।
जैसा कि कोई देख सकता है, एसवीडी समाधान का उपयोग करना अपेक्षा के अनुरूप बहुत कम संवेदनशील है।
कोई त्रुटि क्यों है?
एक समाधान देख रहे हैं (उच्चतम STD के लिए):
जैसा कि कोई देख सकता है कि सिग्नल को शुरुआत और अंत को छोड़कर बहुत अच्छी तरह से बहाल किया गया है।
यह मान्य रूपांतरण के उपयोग के कारण है जो हमें उन नमूनों पर बहुत कम बताता है।
शोर
अगर हम शोर मचाते, तो चीजें अलग होतीं!
कारण परिणाम पहले अच्छे थे क्योंकि MATLAB डेटा की DR को संभाल सकता था और समीकरणों को हल कर सकता था, भले ही उनके पास कोई उच्च संख्या थी।
लेकिन बड़ी स्थिति संख्या का अर्थ है उलटा फ़िल्टर जोरदार (मजबूत क्षीणन को उलटने के लिए) कुछ आवृत्तियों को बढ़ाता है।
जब उन में शोर होता है तो इसका मतलब है कि शोर बढ़ जाएगा और बहाली खराब हो जाएगी।
जैसा कि ऊपर देखा जा सकता है, अब पुनर्निर्माण काम नहीं करेगा।
सारांश
यदि कोई डिग्रेडेशन ऑपरेटर को जानता है और एसएनआर बहुत अच्छा है, तो सरल डीकोवेंशन तरीके काम करेंगे।
डीऑनवोल्यूशन का मुख्य मुद्दा यह है कि डिग्रेडेशन ऑपरेटर कितनी बार फ्रीक्वेंसीज में आ जाता है।
इसे पुनर्स्थापित करने के लिए जितना अधिक एसएनआर की आवश्यकता होती है उतनी ही अधिक होती है (यह मूल रूप से वीनर फिल्टर के पीछे का विचार है )।
फ़्रीक्वेंसी जो शून्य पर सेट की गई थी, उसे बहाल नहीं किया जा सकता है!
व्यवहार में, कुछ पुजारियों को जोड़ने के लिए स्थिर परिणाम होना चाहिए।
कोड मेरे StackExchange सिग्नल प्रोसेसिंग Q2969 GitHub रिपॉजिटरी में उपलब्ध है ।