डिजिटल फ़िल्टर डिज़ाइन मूल सिद्धांत (IIR / FIR)


15

हालाँकि मुझे ऑडियो इंजनों को डिजाइन करने का एक ठोस अनुभव है और इस तरह, मैं डिजिटल फ़िल्टर डिज़ाइन, विशेष रूप से IIR और FIR फ़िल्टर के दायरे में काफी नया हूँ। दूसरे शब्दों में, मैं उतना ही सीखने की कोशिश कर रहा हूं, जितना मैं फिल्टर डिजाइन करने और उनके अंतर समीकरणों को प्राप्त करने के लिए कर सकता हूं। मैं मूल से शुरू कर रहा हूं, इसलिए कृपया मेरे साथ रहें, जैसे मैंने कहा, मैं सीखने की कोशिश कर रहा हूं।

यहाँ मेरा सवाल है:

कहो कि मैं एक विशेष कटऑफ के साथ एक कम-पास फिल्टर डिजाइन करना चाहता हूं - 300 हर्ट्ज कहो। ट्रांसफर फ़ंक्शन को गणितीय रूप से प्राप्त करने और फिर डायरेक्ट फॉर्म I और डायरेक्ट फॉर्म II (या अब के लिए केवल DF-1) में फ़िल्टर को लागू करने के लिए विशेष रूप से अंतर समीकरण प्राप्त करने का गणितीय रूप से सबसे अच्छा तरीका क्या होगा?

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

इसलिए मैं मूल रूप से अंतर समीकरण को प्राप्त करने के लिए कटऑफ आवृत्ति को चुनने से शुरू होने वाली प्रक्रिया के टूटने के साथ मदद की तलाश कर रहा हूं।

किसी भी प्रकार के मदद की बहुत सराहना की जाएगी। मैं बहुत सारी अवधारणाओं से परिचित हूं - आवेग प्रतिक्रिया, डीएफटी, इसके पीछे का गणित, मुझे लगता है कि मुझे जिस चीज की अधिक मदद की जरूरत है वह है जेड-ट्रांसफॉर्म की अवधारणा और फिल्टर के ट्रांसफर फ़ंक्शन को डिजाइन करने के लिए पोल / शून्य का उपयोग। कटऑफ फ्रीक कैसे होता है। अंत में अंतर समीकरण प्राप्त करने के लिए यह सब खेलते हैं।

चूंकि मैं उदाहरण से सर्वश्रेष्ठ सीखना चाहता हूं, मैंने सोचा कि मैं यहां पूछूंगा। किसी को भी धन्यवाद, जो मुझे मदद करने के लिए समय पाता है।


2
कई फ़िल्टर डिज़ाइन विधियाँ हैं। यहां आपको आरंभ करने के लिए कुछ शर्तें दी गई हैं: विंडो डिज़ाइन विधि, कम से कम-वर्ग फ़िल्टर डिज़ाइन और समान फ़िल्टर डिज़ाइन (आमतौर पर पार्क्स-मैकलेलन एल्गोरिथम का उपयोग करके)। ये ज्यादातर एफआईआर फिल्टर डिजाइन तक सीमित हैं। IIR फ़िल्टर को डिजाइन करने का एक सामान्य तरीका एक अनुरूप प्रोटोटाइप (जैसे बटरवर्थ फ़िल्टर) को एक समान डिजिटल फ़िल्टर सन्निकटन में मैप करना है। यह उदाहरण के लिए, बिलिनियर ट्रांसफॉर्म या आवेगहीन आवेग विधियों का उपयोग करके किया जा सकता है।
— जेसन आर

जवाबों:


20

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

एक गैर-पुनरावर्ती रैखिक समय-अपरिवर्तनीय (LTI) फ़िल्टर को निम्नलिखित अंतर समीकरण द्वारा वर्णित किया जा सकता है

(1)y(n)=h0x(n)+ज1एक्स(n-1)+...+जएन-1एक्स(n-एन+1)=Σक=0एन-1जकएक्स(n-क)

जहाँ आउटपुट अनुक्रम है, x ( n ) इनपुट अनुक्रम है, n समय सूचकांक है, h k फ़िल्टर गुणांक हैं, और N फ़िल्टर लंबाई (नल की संख्या) है। फिल्टर टैप करता ज कश्मीर भी फिल्टर के आवेग प्रतिक्रिया कर रहे हैं, क्योंकि यदि इनपुट संकेत एक आवेग, यानी है एक्स ( एन ) = δ ( एन ) , तो y ( एन ) = ज ny(n)एक्स(n)nजकएनजकएक्स(n)=δ(n)y(n)=जn(यदि फिल्टर की मेमोरी को शून्य के साथ आरंभीकृत किया गया है)। समीकरण (1) एक रैखिक समय-अपरिवर्तनीय परिमित आवेग प्रतिक्रिया (एफआईआर) प्रणाली का वर्णन करता है। (1) के दाईं ओर का योग एक कनवल्शन योग है, अर्थात आवेग प्रतिक्रिया के साथ इनपुट सिग्नल को हल करके आउटपुट सिग्नल प्राप्त किया जाता है। यह हमेशा सच होता है, लेकिन IIR फ़िल्टर के लिए हम स्पष्ट रूप से दीक्षांत राशि की गणना नहीं कर सकते हैं क्योंकि आवेग प्रतिक्रिया असीम रूप से लंबी होती है, अर्थात असीम रूप से कई गुणांक जक। एफआईआर फिल्टर का एक महत्वपूर्ण लाभ यह है कि वे हमेशा स्थिर होते हैं, अर्थात एक बंधे हुए इनपुट अनुक्रम के लिए, आउटपुट अनुक्रम हमेशा बंधा होता है। एक और लाभ यह है कि एफआईआर फिल्टर हमेशा एक बिल्कुल रैखिक चरण के साथ महसूस किया जा सकता है, अर्थात वे शुद्ध देरी के अलावा किसी भी चरण विकृति को नहीं जोड़ेंगे। इसके अलावा, डिजाइन की समस्या आमतौर पर आसान होती है, जैसा कि हम बाद में देखेंगे।

एक पुनरावर्ती LTI फ़िल्टर निम्नलिखित अंतर समीकरण द्वारा वर्णित है:

(2)y(n)=ख0एक्स(n)+ख1एक्स(n-1)+...+खमएक्स(n-म)--ए1y(n-1)-...-एएनy(n-एन)

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

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

(3)एच(इजेθ)=Σक=0एन-1जकइ-जेकθ

θ

θ=2πचचरों

चचरों

(4)एच(इजेθ)=Σक=0मखकइ-जेθ1+Σक=1एनएकइ-जेθ

एक=0क=1,...,एन

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

आदर्श लोअरपास, हाईपास, बैंडपास या बैंडस्टॉप फिल्टर (और कुछ अन्य) जैसे सरल मानक फिल्टर के लिए, आप आदर्श रूप से वांछित वांछित प्रतिक्रिया के उलटा फूरियर ट्रांसफॉर्म लेकर सटीक आवेग प्रतिक्रिया की गणना कर सकते हैं:

जक=12π∫-ππएच(इजेθ)इजेकθघθ

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

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

रोंरोंz

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


वाह, मैट, विस्तृत और विचारशील जवाब के लिए बहुत बहुत धन्यवाद। मैं निश्चित रूप से इसमें तल्लीन हो जाऊंगा और वास्तव में आपके समय की सराहना करूंगा। धन्यवाद!
— बिटविन

क्या तरंग फिल्टर डिजाइन के लिए कोई अच्छी पाठ्यपुस्तक है? मैं इस तरह के विषय के बारे में उत्सुक हूं: dsp.stackexchange.com/questions/29090/… । धन्यवाद!
— LCFactorization

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