कैसे एक विरूपण मुआवजा फिल्टर बनाने के लिए


11

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

मेरा सवाल यह है कि मैं एक फ़िल्टर कैसे डिज़ाइन करूं जो कि CIC फ़िल्टर की बहुत ही गैर-फ़्रीक्वेंसी प्रतिक्रिया के लिए क्षतिपूर्ति करता है? क्या आप उस आवृत्ति प्रतिक्रिया को बनाते हैं जो आप CIC की प्रतिक्रिया के पारस्परिक की गणना करके चाहते हैं और फिर आवेग प्रतिक्रिया प्राप्त करने के लिए एक व्युत्क्रम FFT के माध्यम से इसे चलाते हैं?

जैसा कि आप देख सकते हैं, हालांकि मेरी विशेष समस्या सीआईसी फिल्टर से संबंधित है, मेरा प्रश्न वास्तव में इस बारे में है कि आप किसी भी प्रकार के विरूपण क्षतिपूर्ति फ़िल्टर कैसे बनाते हैं।

आपके समय के लिए धन्यवाद।


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

@JasonR मैं MMSE एडेप्टिव इक्वलाइज़र्स से परिचित हूं जो चैनल द्वारा निर्णय-निर्देशित बराबरी की क्षतिपूर्ति के संदर्भ में है, लेकिन मुझे संदेह है कि आपका क्या मतलब है। क्या आप इक्विलाइज़र को किसी तरह प्रशिक्षित करेंगे? मुझे लगता है कि क्रूक्स यह है कि आप कैसे निर्धारित करते हैं कि त्रुटि क्या है।
जिम क्ले

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

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

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

जवाबों:


9

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

आम तौर पर, CIC फ़िल्टर की भरपाई करने के लिए CIC फ़िल्टर प्रतिक्रिया के व्युत्क्रम का उपयोग क्षतिपूर्ति फ़िल्टर उत्पन्न करने के लिए किया जा सकता है। CIC की प्रतिक्रिया है (देखें संदर्भ [r2] या [r3])

H(ω)=|sin(ωD/2)sin(ωM/2)|N

जहां D, डिफरेंशियल डिले है, M, डिसिमिनेशन रेट है, और N फ़िल्टर ऑर्डर (कैस्केड फ़िल्टर की संख्या) है। व्युत्क्रम के रूप में निर्दिष्ट किया जा सकता है

H(ω)=|sin(ωM/2)sin(ωD/2)|N

एक बार जब हमारे पास क्षतिपूर्ति फ़िल्टर की आवृत्ति प्रतिक्रिया होती है, तो हम केवल एफआईआर फ़िल्टर की लंबाई चुन सकते हैं जो हम चाहते हैं। एफआईआर की लंबाई आवेदन विशिष्ट है। जाहिर है कि एफआईआर बेहतर मुआवजे को फ़िल्टर करती है।

निम्नलिखित इस सीधे आगे मुआवजे के भूखंड हैं।

आवृत्ति प्रतिक्रियाओं और भूखंडों को बनाने के लिए पायथन कोड निम्नलिखित है।

import numpy as np
from numpy import sin, abs, pi
import pylab

D = 1; M = 7; N = 3

Hfunc = lambda w : abs( (sin((w*M)/2)) / (sin((w*D)/2.)) )**N
HfuncC = lambda w : abs( (sin((w*D)/2.)) / (sin((w*M)/2.)) )**N

w = np.arange(1024) * pi/1024

G = (M*D)**N
H = np.array(map(Hfunc, w))
Hc = np.array(map(HfuncC, w))
# only use the inverse (compensation) roughly to the first null.
Hc[int(1024*pi/M/2):] = 1e-8
plot(w, 20*log10(H/G))
plot(w, 20*log10(Hc*G))
grid('on')

sinc1

[r1] अल्टेरा, "CIC मुआवजा फ़िल्टर को समझना"

[r2] आर। ल्योंस, "अंडरस्टैंडिंग डिजिटल सिग्नल प्रोसेसिंग", दूसरा संस्करण।, अप्रेंटिस हॉल, अपर सैडल रिवर, न्यू जर्सी, २००४

[r3] आर। ल्योंस, "अंडरस्टैंडिंग कैस्केड इंटीग्रेटर कॉम्ब फिल्टर"


रेफ 1 महान है, लेकिन विभिन्न शब्दावली का उपयोग करता है (एम = चरण विलंब, जहां आपने डी। आर। = कमी दर का उपयोग किया, जहां आपने एम का उपयोग किया) इसलिए मुझे त्रुटि देखने में थोड़ा समय लगा: आप WM / 2 का उपयोग करते हैं, Altera pi निर्दिष्ट करता है एफ / आर। एक त्वरित एक्सेल प्लॉट के बाद, मेरा मानना ​​है कि अल्टरना संस्करण सही है।
एलन कैंपबेल

@AlanCampbell यदि आप उपरोक्त समीकरणों (जो मैंने कोड स्निपेट में किया था) को प्लॉट करते हैं, तो आप देखेंगे कि कोई त्रुटि नहीं है। क्या मैं स्पष्ट रूप से समीकरणों में बाहर फोन नहीं किया है लाभ । कोड स्निप में सूचना मैं लाभ निकालता हूं। यदि आप कोड स्निप चलाते हैं M=8और N=9इसे संशोधित करते हैं और यह संदर्भ 1 के समान प्लॉट बनाता है। मैंने संदर्भ के करीब नामकरण 2 का उपयोग किया।
क्रिस्टोफर फेल्टन ने

2

मुझे लगता है कि क्रिस्टोफर का जवाब एक अच्छा है। मैंने सोचा था कि मैं हमारे लिए आलसी / धोखेबाज़ प्रकार जोड़ूंगा।

मतलाब के fdatool (फ़िल्टर डिज़ाइन और विश्लेषण उपकरण) के आसपास खुदाई करते समय मैंने पाया कि यह CIC और व्युत्क्रम sinc फ़िल्टर दोनों को डिज़ाइन और मॉडल कर सकता है, जहाँ व्युत्क्रम sinc फ़िल्टर CIC की विरूपण क्षतिपूर्ति फ़िल्टर है।

आप सीधे "मल्टी-रेट फ़िल्टर बनाएँ" पृष्ठ (संस्करण R2011b में बाईं ओर स्थित बटन) और CIC फ़िल्टर को निर्दिष्ट करके CIC फ़िल्टर उत्पन्न करते हैं। फिर आप उन सभी मापदंडों को सेट कर सकते हैं जो आप उस पर चाहते हैं, जैसे कि प्रक्षेप / विघटन दर, कैस्केड की संख्या (मैटलैब इसे "अनुभाग" कहती है), आदि।

आप "डिज़ाइन फ़िल्टर" पृष्ठ (जिस पृष्ठ पर यह शुरू होता है उस टूल को चूकता है) पर जाकर व्युत्क्रम sinc फ़िल्टर बनाते हैं, और Lowpass ड्रॉप डाउन मेनू से "व्युत्क्रम Sinc Lowpass" निर्दिष्ट करते हैं। फिर आप इसके लिए विभिन्न पैरामीटर सेट कर सकते हैं। इसमें डायलॉग के विकल्प भाग में कुछ अनूठे पैरामीटर हैं, जिनमें "पी" भी शामिल है, जो कैस्केड्स की संख्या (सिनस एक्सपोनेंट) से मेल खाती है।

उलटा sinc फिल्टर डिजाइन पूरी तरह से संतोषजनक नहीं था, हालांकि, चूंकि यह सही हो रहा था कि मुझे गणित करने का एक उदाहरण कम लगा, जहां मेरे पास बैंड था, उस बिंदु पर CIC ड्रॉप क्या था, और फिर एक फिल्टर डिजाइन करना जो लगभग रद्द कर दिया गया था उस बंद करो। चूँकि मेरे CIC फ़िल्टर में चार कैस्केड थे, इसलिए मैंने सोचा होगा कि मुझे "p" को चार पर सेट करने की आवश्यकता होगी, लेकिन जब मैंने ऐसा किया, तो यह अधिक हो गया। मैंने 1, डिफ़ॉल्ट मान पर "p" छोड़ दिया।

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


0

यहां प्रतिक्रिया को दोहराए बिना, कृपया देखें

सीआईसी क्षतिपूर्ति फ़िल्टर कैसे बनाएं

जो सीआईसी मुआवजे के लिए एक बहुत ही सरल 3 नल समाधान दिखाता है।

यह CIC के लिए विशिष्ट है या उलटा Sinc के लिए कोई भी आवेदन आवश्यक है (जैसे D / A रूपांतरण से पहले)।

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

एक ऑडियो सिग्नल में लाउडस्पीकर आवृत्ति प्रतिक्रिया का मुआवजा

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