एफआईआर फिल्टर को कितने नल की आवश्यकता होती है?


20

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

मुझे पता है कि अधिक टैप से आवृत्ति और बेहतर स्टॉप बैंड रिजेक्शन आदि का एक तेज कटऑफ हो सकता है, हालांकि मैं जिस चीज में दिलचस्पी रखता हूं, वह अधिक मौलिक है - अगर मैं कटऑफ के साथ कहना है कि इसका मतलब यह है कि मुझे कम आवृत्ति के संकेतों को देखने के लिए कम से कम 100 नलों की आवश्यकता है? या क्या मैं कम नल से दूर हो सकता हूं और यदि ऐसा है तो कुछ सैद्धांतिक कम सीमा है?रों100

जवाबों:


24

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

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

एन23लॉग10[110δ1δ2]रोंΔ

साथ में

रों नमूना दरΔ संक्रमण चौड़ाई, अर्थात। पास बैंड के अंत और स्टॉप बैंड की शुरुआत के बीच का अंतरδ1 पासबैंड में लहर, अर्थात। "मूल आयाम का कितना आप भिन्न हो सकते हैं"δ2 स्टॉप बैंड में सप्रेसन

चलो कुछ नंबरों में प्लग करें! आपने कट-ऑफ आवृत्ति निर्दिष्ट की है , इसलिए मैं अभी आगे जाऊंगा और दावा करूंगा कि आपकी संक्रमण चौड़ाई आधे से अधिक नहीं होगी, इसलिए ।रों100Δ=रों200

एसडीआर / आरएफ प्रौद्योगिकी से आ रहा है, दमन के 60 डीबी आमतौर पर पूरी तरह से पर्याप्त है - हार्डवेयर, पागल लागत के बिना, अपने इनपुट से अवांछित संकेतों को रखने में बेहतर नहीं होगा , इसलिए, आइए, एक शानदार फिल्टर होने पर सीपीयू को बर्बाद न करें जो बेहतर है आपका हार्डवेयर क्या कर सकता है। इसलिए, ।δ2=-60 डीबी=10-3

मान लें कि आप पासबैंड में 0.1% के आयाम भिन्नता के साथ रह सकते हैं (यदि आप अधिक के साथ रह सकते हैं, तो दमन की आवश्यकता को कम सख्त बनाने पर भी विचार करें)। यह ।δ1=10-4

इसलिए, इसमें प्लगिंग करें:

एनटॉमी का फिल्टर23लॉग10[110δ1δ2]रोंΔ=23लॉग10[11010-410-3]रोंरों200=23लॉग10[11010-7]200=23लॉग10[110-6]200=23(लॉग10106)200=236200=800 ।

तो अपने 200 नल के साथ, आप बहुत दूर हैं, यदि आप अपने फ़िल्टर में एक अत्यंत संकीर्ण पास बैंड का उपयोग करते हैं जैसे कि मैंने मान लिया था।

ध्यान दें कि यह नहीं करता है एक समस्या होने के लिए - सब से पहले, एक 800-नल फिल्टर है डरावना है, लेकिन स्पष्ट रूप से, केवल पहली नजर में:

  • जैसा कि मैंने StackOverflow में इस उत्तर पर परीक्षण किया है : CPU का आजकल तेजी से चल रहा है , यदि आप किसी के सीपीयू-अनुकूलित एफआईआर कार्यान्वयन का उपयोग करते हैं। उदाहरण के लिए, मैंने GNU रेडियो के एफएफटी-एफआईआर कार्यान्वयन का उपयोग किया, जो ऊपर दिए गए फिल्टर विनिर्देश की रूपरेखा के साथ है। मुझे प्रति सेकंड 141 मिलियन नमूनों का प्रदर्शन मिला - जो आपके लिए पर्याप्त हो सकता है या नहीं। तो यहां हमारा प्रश्न-विशिष्ट परीक्षण मामला है (जिसके निर्माण में मुझे कुछ सेकंड लगे):जीएनयू रेडियो आधारित एफएफटी एफआईआर फ़िल्टरिंगदर परिणाम: rate_avg = 1.40982e + 08
  • दशमलव: यदि आप केवल इनपुट बैंडविड्थ का एक अंश रखने के लिए जा रहे हैं, तो आपके फ़िल्टर का आउटपुट अत्यधिक ओवरसमॉप हो जाएगा। डिसिमिनेशन का परिचय देने का मतलब है कि आपका फ़िल्टर आपको हर आउटपुट सैंपल नहीं देता है, लेकिन हर थ केवल एक - जो सामान्य रूप से बहुत सारे और बहुत से अलियासिंग को जन्म देगा, लेकिन जब से आप उन सभी सिग्नल को मिटा रहे हैं जो आपको उर्फ ​​कर सकते हैं, आप कर सकते हैं ऐसा करने के लिए। चतुर फ़िल्टर कार्यान्वयन (पॉलीपेज़ डिकिमेटर) एम द्वारा कम्प्यूटेशनल प्रयास को कम कर सकते हैं, इस तरह से। आपके मामले में, आप से आसानी से समझ सकते हैं , और फिर, आपके कंप्यूटर को केवल गणना करनी होगी=50120050=24इनपुट नमूना प्रति गुणन / संचय - बहुत आसान है। जीएनयू रेडियो के फिल्टर में आमतौर पर वह क्षमता होती है। और इस तरह, एफएफटी एफआईआर से भी बाहर (जो खुद को एक पॉलीपसिंग डेमिनेटर कार्यान्वयन के लिए बहुत अच्छी तरह से उधार नहीं देता है), मैं प्रदर्शन में 2 के एक और कारक को निचोड़ सकता हूं। ज्यादा नहीं कर सकते। मेरे सिस्टम पर, मेरे अनुभव में, राम बैंडविड्थ के बहुत करीब है। के लिये
  • विलंबता: इसके बारे में परवाह मत करो। जब तक आपको जरूरत नहीं है, वास्तव में, नहीं। आप विशिष्ट ऑडियो सैंपलिंग दरों के साथ ऐसा कर रहे हैं? याद रखें, ऊपर बताया गया है। इसलिए फ़िल्टर आउटपुट की गणना करने में लगने वाला समय केवल MS / s लाइव सिग्नल स्ट्रीमिंग के लिए प्रासंगिक होगा। ऑफ़लाइन डेटा वाले डीएसपी के लिए: ठीक है, क्षतिपूर्ति करने के लिए अपने फ़िल्टर के समानांतर आपके पास जो भी संकेत हैं, उसमें देरी करें। (यदि आपका फ़िल्टर लीनियर चरण है, तो विलंब की अवधि फ़िल्टर की आधी हो जाएगी।) FIR फ़िल्टर के हार्डवेयर कार्यान्वयन में यह प्रासंगिक हो सकता है।96केएसरों«हास्यास्पद141सुश्रीरों
  • हार्डवेयर कार्यान्वयन: तो शायद आपके पीसी या एम्बेडेड डिवाइस के सीपीयू और ओएस वास्तव में आपको अपने विलंबता बाधाओं को पूरा करने की अनुमति नहीं देते हैं, और इसलिए आप एफपीजीए-कार्यान्वित एफआईआर में देख रहे हैं। पहली बात जो आप देखेंगे, वह यह है कि हार्डवेयर के लिए, अलग-अलग डिज़ाइन के प्रतिमान हैं - "मैं सब कुछ दबाता हूँ, लेकिन1100मेरे इनपुट दर "फ़िल्टर को हार्डवेयर में आपके द्वारा तय किए गए निश्चित बिंदु संख्याओं के लिए एक बड़ी चौड़ाई की आवश्यकता होती है (जैसा कि CPU पर फ़्लोटिंग पॉइंट संख्याओं पर लागू होता है)। तो यह पहला कारण है कि आप आमतौर पर उस फ़िल्टर को कई में विभाजित करते हैं। , कैस्केड, छोटा, एफआईआर फिल्टर को कम करना। एक और कारण यह है कि आप हर कैस्केड "स्टेप" के साथ, अपने मल्टीप्लायरों (आमतौर पर, "डीएसपी स्लाइस") को कम दर पर चला सकते हैं, और इसलिए, उन्हें मल्टीप्लेक्स करें (डीएसपी स्लाइसों की संख्या) आमतौर पर बहुत सीमित होता है), कई नल के लिए एक गुणक का उपयोग करना। फिर भी एक और कारण यह है कि विशेष रूप से आधा-बैंड फिल्टर, यानी यह कम है कि आधे इनपुट बैंड को दबाते हैं और आधे इनपुट दर को वितरित करते हैं, बहुत कुशलता से हार्डवेयर में लागू होते हैं (क्योंकि वे आधे हैं) नल शून्य हो रहे हैं, कुछ ऐसा जो सीपीयू / SIMD कार्यान्वयन में शोषण करना कठिन है)।

3
लेक डीएसपी 1990 के दशक के मध्य में वास्तविक समय में 256,000 टैप एफआईआर फिल्टर कर रहे थे। 1200 नल? Phfffft! ;-)
पीटर के.एच.

2
@PeterK। ये हुई ना बात! उस 256kT प्राथमिकी के लिए गहरा सम्मान - उन्होंने जो संख्यात्मक सटीकता का निर्माण किया है, वह डिजाइन के विशाल आकार के रूप में लुभावनी रही होगी। तकनीकी रूप से खुद का आनंद लेने के लिए बहुत युवा होने के नाते, 90 के दशक की शुरुआत एक दिलचस्प समय रहा होगा। कुछ समय पहले एक इंजीनियर से बात की थी, जो उन दिनों डीएफटी आईसीएस में वापस आया था; आवेदन-विशिष्ट डीएसपी एएसआईसी की आवश्यकता सिर्फ इसलिए अधिक प्रतीत हो रही थी क्योंकि लोगों को एहसास हुआ कि कंप्यूटिंग प्लेटफॉर्म के साथ डीएसपी-वार जो संभव था, वास्तव में डेटा की परिणामी धाराओं को संभालना था, लेकिन आज (इसके विपरीत) चारों ओर कोई "बहुउद्देश्यीय" एक्सीलरेटर नहीं है।
मार्कस मुलर

@PeterK।, हाँ, लेकिन उन्हें ऑस्ट्रेलियाई हमेशा हमारे पैर खींच रहे हैं।
रोबर्ट ब्रिस्टो-जॉनसन

@ robertbristow-johnson oy matey, क्या एक अंदरूनी सूत्र मजाक यहाँ चल रहा है: डी?
मार्कस मूलर

2
@ MarcusMüller, यद्यपि वहाँ दिखाई दिया ASICs वापस तो अब की तुलना की एक वृद्धि की लोकप्रियता होने के लिए (और मुझे लगता है कि क्योंकि हर कोई है कि एक ASIC कल्पना / डिजाइनर था तो अब बस FPGAs का उपयोग करता है यह है) वहाँ थे "बहुउद्देश्यीय" DSPs जल्दी में वापस 90 के दशक। उस लेकडीएसपी चीज़ को 6 डीएसपी 56001 से बनाया गया था।
रॉबर्ट ब्रिस्टो-जॉनसन

14

एक त्वरित और बहुत व्यावहारिक अनुमान के लिए, मुझे फ्रेड हैरिस के नियम-अंगूठे की तरह पसंद है:

एनटीपीरों=टीटीn22*बीटी

कहाँ पे:

Atten dB में वांछित क्षीणन है,

बीटी सामान्यीकृत संक्रमण बैंड है ,बीटी=एफरोंटीपी-एफपीरोंरोंएफरों

एफरोंटीपी और स्टॉप बैंड हैं और Hz और में बैंड आवृत्तियों को पास करते हैंएफपीरोंरों

एफरों Hz में सैंपलिंग फ्रीक्वेंसी है।

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

यह भी ध्यान दें: यह नियम-अंगूठा वास्तव में नल की संख्या को ड्राइव करने के लिए महान अंतर्दृष्टि प्रदान करता है: बैंड क्षीणन और संक्रमण बैंड की गति और (passband तरंग, लेकिन आमतौर पर- कम से कम फिल्टर के लिए मुझे डिजाइन करना पड़ा है) वायरलेस कॉम अनुप्रयोगों - क्षीणन आवश्यकता तरंग पर हावी होगी)। तो Fs / 100 पर कटऑफ बताने में आपका प्रश्न गायब है कि आपको स्टॉप बैंड में संक्रमण करने की कितनी जल्दी जरूरत है।

उदाहरण: 60 डीबी क्षीणन, = 100KHz, = 1KHz, = 3KHzएफरोंएफपीरोंरोंएफरोंटीपी

एनटीपीरों=6022*2/100=137 टैप (राउंड अप)

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


7

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

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

कई अन्य सूत्र फ़िनाइट इम्पल्स रिस्पांस फ़िल्टर डिज़ाइन , हैंडबुक फॉर डिजिटल सिग्नल प्रोसेसिंग, 1993, टी। समामाकी में एकत्रित किए गए हैं।

अभी हाल ही में, आप इष्टतम एफआईआर डिजिटल फिल्टर , 2000, के। इजीगेट एट अल के लिए न्यूनतम फ़िल्टर लंबाई का सटीक अनुमान पढ़ सकते हैं

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


4

मुझे नहीं लगता कि वास्तव में नल की कुछ निश्चित न्यूनतम संख्या है। उत्तल अनुकूलन द्वारा एफआईआर फिल्टर उत्पन्न करना बहुत आम बात है, उदाहरण के लिए

छोटा करना अधिकतम(|एच(ω)|)सबके लिए ω स्टॉपबैंड में
का विषय है1δ|एच(ω)|δ सबके लिए ω पासबंद में

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

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