Difference between revisions of "गोएर्टज़ेल एल्गोरिदम"

From alpha
Jump to navigation Jump to search
Line 10: Line 10:
== एल्गोरिथ्म ==
== एल्गोरिथ्म ==
{{cleanup|section|reason=inconsistent styles between equations and labels|date=February 2014}}
{{cleanup|section|reason=inconsistent styles between equations and labels|date=February 2014}}
मुख्य गोर्ट्जेल एल्गोरिथ्म में का मुख्य गणना एक [[डिजिटल फ़िल्टर|अंकीय निस्यंदन]]  के रूप में होती है, और इस कारण इसे अधिकतर एक गोर्ट्जेल निस्यंदन के रूप में कहा जाता है। निस्यंदन द्विमत्रीय में एक इनपुट अनुक्रम पर प्रवृत्ति करता है  <math>x[n]</math> एक प्राचल के द्वारा <math>\omega_0</math>, जो विश्लेषण की जाने वाली आवृत्ति देता है, प्रति नमूने धनात्मकरण किया जाता है।
मुख्य गोर्ट्जेल एल्गोरिथ्म में का मुख्य गणना एक [[डिजिटल फ़िल्टर|अंकीय फ़िल्टर]]  के रूप में होती है, और इस कारण इसे अधिकतर एक गोर्ट्जेल फ़िल्टर के रूप में कहा जाता है। फ़िल्टर द्विमत्रीय में एक इनपुट अनुक्रम पर प्रवृत्ति करता है  <math>x[n]</math> एक प्राचल के द्वारा <math>\omega_0</math>, जो विश्लेषण की जाने वाली आवृत्ति देता है, प्रति नमूने धनात्मकरण किया जाता है।


पहले स्तर पर एक आवर्ती अनुक्रम की गणना करता है, <math>s[n]</math>:
पहले स्तर पर एक आवर्ती अनुक्रम की गणना करता है, <math>s[n]</math>:
{{NumBlk|:|<math> s[n] = x[n] + 2 \cos(\omega_0) s[n-1] - s[n-2]. </math>|1}}
{{NumBlk|:|<math> s[n] = x[n] + 2 \cos(\omega_0) s[n-1] - s[n-2]. </math>|1}}
दूसरे स्तर पर, निम्नलिखित निस्यंदन को <math>s[n]</math>, पर लागू किया जाता है, जिससे आउटपुट अनुक्रम उत्पन्न होता है <math>y[n]</math>:
दूसरे स्तर पर, निम्नलिखित फ़िल्टर को <math>s[n]</math>, पर लागू किया जाता है, जिससे आउटपुट अनुक्रम उत्पन्न होता है <math>y[n]</math>:
{{NumBlk|:|<math>y[n] = s[n] - e^{-j \omega_0} s[n-1].</math>|2}}
{{NumBlk|:|<math>y[n] = s[n] - e^{-j \omega_0} s[n-1].</math>|2}}


पहले निस्यंदन स्तर को देखा जा सकता है कि यह एक द्वितीय-क्रम IIR निस्यंदन है जिसमें एक प्रत्यक्ष-रूप संरचना है। इस विशेष संरचना का यह गुण होता है कि इसके आंतरिक स्थिति परिवर्तनीय चरण से पिछले आउटपुट मानों के समान होते हैं। आवश्यकता होने पर, इनपुट मानों <math>x[n]</math> के लिए <math>n < 0</math>, सभी को समान 0 माना जाता है। प्रारंभिक निस्यंदन स्थिति स्थापित करने के लिए ताकि मूल्यांकन नमूने <math>x[0]</math> पर आरंभ हो सके, निस्यंदन स्थितियों को प्रारंभिक मान दिए जाते हैं <math>s[-2] = s[-1] = 0</math>. अलाभकारी जोखिम से बचने के लिए, आवृत्ति <math>\omega_0</math> अधिकतर सीमित की जाती है 0 से π तक क्योंकि (न्यूक्विस्ट-शैनन नमूना दिया गया है); इस श्रेणी के बाहर की मान उपयोग में बिना मतलब नहीं है, लेकिन यह इस श्रेणी के अंदर उपनाम आवृत्ति का उपयोग करने के समान है, क्योंकि घातीय कार्य का एक आवधि होती है 2π में <math>\omega_0</math>में।
पहले फ़िल्टर स्तर को देखा जा सकता है कि यह एक द्वितीय-क्रम IIR फ़िल्टर है जिसमें एक प्रत्यक्ष-रूप संरचना है। इस विशेष संरचना का यह गुण होता है कि इसके आंतरिक स्थिति परिवर्तनीय चरण से पिछले आउटपुट मानों के समान होते हैं। आवश्यकता होने पर, इनपुट मानों <math>x[n]</math> के लिए <math>n < 0</math>, सभी को समान 0 माना जाता है। प्रारंभिक फ़िल्टर स्थिति स्थापित करने के लिए ताकि मूल्यांकन नमूने <math>x[0]</math> पर आरंभ हो सके, फ़िल्टर स्थितियों को प्रारंभिक मान दिए जाते हैं <math>s[-2] = s[-1] = 0</math>. अलाभकारी जोखिम से बचने के लिए, आवृत्ति <math>\omega_0</math> अधिकतर सीमित की जाती है 0 से π तक क्योंकि (न्यूक्विस्ट-शैनन नमूना दिया गया है); इस श्रेणी के बाहर की मान उपयोग में बिना मतलब नहीं है, लेकिन यह इस श्रेणी के अंदर उपनाम आवृत्ति का उपयोग करने के समान है, क्योंकि घातीय कार्य का एक आवधि होती है 2π में <math>\omega_0</math>में।


दूसरे चरण के फ़िल्टर को एक [[परिमित आवेग प्रतिक्रिया]] के रूप में देखा जा सकता है, क्योंकि इसकी गणनाएँ इसके पिछले आउटपुट में से किसी भी का उपयोग नहीं करती हैं।
दूसरे चरण के निस्पंदनको एक [[परिमित आवेग प्रतिक्रिया]] के रूप में देखा जा सकता है, क्योंकि इसकी गणनाएँ इसके पिछले आउटपुट में से किसी भी का उपयोग नहीं करती हैं।


Z-परिवर्तन विधियों का प्रयोग निस्यंदन सोपानी की गुणविशेषताओं का अध्ययन करने के लिए किया जा सकता है। पहले निस्यंदन चरण के Z परिवर्तन, जो समीकरण (1) में दिया गया है, का है:
Z-परिवर्तन विधियों का प्रयोग फ़िल्टर सोपानी की गुणविशेषताओं का अध्ययन करने के लिए किया जा सकता है। पहले फ़िल्टर चरण के Z परिवर्तन, जो समीकरण (1) में दिया गया है, का है:
{{NumBlk|:|<math>\begin{align}
{{NumBlk|:|<math>\begin{align}
  \frac{S(z)}{X(z)} &= \frac{1}{1 - 2 \cos(\omega_0) z^{-1} + z^{-2}} \\
  \frac{S(z)}{X(z)} &= \frac{1}{1 - 2 \cos(\omega_0) z^{-1} + z^{-2}} \\
   & = \frac{1}{(1 - e^{+j \omega_0} z^{-1})(1 - e^{-j \omega_0} z^{-1})}.
   & = \frac{1}{(1 - e^{+j \omega_0} z^{-1})(1 - e^{-j \omega_0} z^{-1})}.
\end{align}</math>|3}}
\end{align}</math>|3}}
समीकरण (2) में दिए गए दूसरे निस्यंदन चरण का Z परिवर्तन है
समीकरण (2) में दिए गए दूसरे फ़िल्टर चरण का Z परिवर्तन है
{{NumBlk|:|<math>\frac{Y(z)}{S(z)} = 1 - e^{-j \omega_0}z^{-1}.</math>|4}}
{{NumBlk|:|<math>\frac{Y(z)}{S(z)} = 1 - e^{-j \omega_0}z^{-1}.</math>|4}}
दो निस्यंदन चरणों के सोपानी का संयुक्त स्थानांतरण फ़ंक्शन तब होता है
दो फ़िल्टर चरणों के सोपानी का संयुक्त स्थानांतरण फ़ंक्शन तब होता है
{{NumBlk|:|<math>\begin{align}  
{{NumBlk|:|<math>\begin{align}  
  \frac{S(z)}{X(z)} \frac{Y(z)}{S(z)} = \frac{Y(z)}{X(z)} &= \frac{(1 - e^{-j \omega_0}z^{-1})}{(1 - e^{+j \omega_0} z^{-1})(1 - e^{-j \omega_0} z^{-1})} \\
  \frac{S(z)}{X(z)} \frac{Y(z)}{S(z)} = \frac{Y(z)}{X(z)} &= \frac{(1 - e^{-j \omega_0}z^{-1})}{(1 - e^{+j \omega_0} z^{-1})(1 - e^{-j \omega_0} z^{-1})} \\
Line 41: Line 41:


== संख्यात्मक स्थिरता ==
== संख्यात्मक स्थिरता ==
यह देखा जा सकता है कि निस्यंदन के [[Z परिवर्तन]] का [[ध्रुव (जटिल विश्लेषण)]] निम्नलिखित स्थित है: <math>e^{+j \omega_0}</math> और <math>e^{-j \omega_0}</math>, जो एक इकाई त्रिज्या के मूल पर केंद्रित विकल्प त्रिज्या के वृत्तीय परिप्रेक्ष्य पर स्थित हैं। यह गुणवत्ता सुनिश्चित करती है कि निस्यंदन प्रक्रिया मामूली रूप से स्थिर है और [[संख्यात्मक त्रुटि]] एकत्रित होने की संभावना होती है जब कम-गुणस्तर अंकगणित और लंबे इनपुट अनुक्रमों का उपयोग करके गणना की जाती है।<ref>{{cite journal|last1=Gentleman|first1=W. M.|title=फूरियर गुणांक की गणना के लिए गोएर्टज़ेल (वाट) विधि का एक त्रुटि विश्लेषण|journal=The Computer Journal|date=1 February 1969|volume=12|issue=2|pages=160–164|doi=10.1093/comjnl/12.2.160|doi-access=free}}</ref> एक संख्यात्मक रूप से स्थिर संस्करण क्रिश्चियन रीन्स्च द्वारा प्रस्तावित किया गया था।<ref>{{Citation |first1=J. |last1=Stoer |first2=R. |last2=Bulirsch |date=2002 |title= Introduction to Numerical Analysis |publisher= Springer |isbn=9780387954523}}</ref>
यह देखा जा सकता है कि फ़िल्टर के [[Z परिवर्तन]] का [[ध्रुव (जटिल विश्लेषण)]] निम्नलिखित स्थित है: <math>e^{+j \omega_0}</math> और <math>e^{-j \omega_0}</math>, जो एक इकाई त्रिज्या के मूल पर केंद्रित विकल्प त्रिज्या के वृत्तीय परिप्रेक्ष्य पर स्थित हैं। यह गुणवत्ता सुनिश्चित करती है कि फ़िल्टर प्रक्रिया मामूली रूप से स्थिर है और [[संख्यात्मक त्रुटि]] एकत्रित होने की संभावना होती है जब कम-गुणस्तर अंकगणित और लंबे इनपुट अनुक्रमों का उपयोग करके गणना की जाती है।<ref>{{cite journal|last1=Gentleman|first1=W. M.|title=फूरियर गुणांक की गणना के लिए गोएर्टज़ेल (वाट) विधि का एक त्रुटि विश्लेषण|journal=The Computer Journal|date=1 February 1969|volume=12|issue=2|pages=160–164|doi=10.1093/comjnl/12.2.160|doi-access=free}}</ref> एक संख्यात्मक रूप से स्थिर संस्करण क्रिश्चियन रीन्स्च द्वारा प्रस्तावित किया गया था।<ref>{{Citation |first1=J. |last1=Stoer |first2=R. |last2=Bulirsch |date=2002 |title= Introduction to Numerical Analysis |publisher= Springer |isbn=9780387954523}}</ref>




== डीएफटी गणना ==
== डीएफटी गणना ==
महत्वपूर्ण स्थिति में, एक डीएफटी शब्द की गणना के लिए निम्नलिखित विशेष प्रतिबंधन लागू होते हैं।
महत्वपूर्ण स्थिति में, एक डीएफटी शब्द की गणना के लिए निम्नलिखित विशेष प्रतिबंधन लागू होते हैं।
* निस्पंदन उस सूचकांक पर समाप्त होती  है <math>n = N</math>, जहाँ <math>N</math> डीएफटी के इनपुट अनुक्रम की मात्राओं की संख्या है।
* फ़िल्टरउस सूचकांक पर समाप्त होती  है <math>n = N</math>, जहाँ <math>N</math> डीएफटी के इनपुट अनुक्रम की मात्राओं की संख्या है।
* गोएर्टज़ेल विश्लेषण के लिए चुनी गई आवृत्तियाँ विशेष रूप में प्रतिबंधित होती हैं।
* गोएर्टज़ेल विश्लेषण के लिए चुनी गई आवृत्तियाँ विशेष रूप में प्रतिबंधित होती हैं।
{{NumBlk|::|<math>\omega_0 = 2 \pi \frac{k}{N}.</math>|7}}
{{NumBlk|::|<math>\omega_0 = 2 \pi \frac{k}{N}.</math>|7}}
Line 57: Line 57:
हम देख सकते हैं कि समीकरण (9) का दाहिना पक्ष डीएफटी शब्द <math>X[k]</math> के परिभाषित सूत्र के बहुत ही समान है, लेकिन बिल्कुल वैसा नहीं है जैसा कि डीएफटी के सूचकांक संख्या <math>k</math>के लिए होता है। समीकरण (9) में दिखाए गए योग के लिए <math>N+1</math> इनपुट शब्द की आवश्यकता होती है, लेकिन एक DFT का मूल्यांकन करते समय केवल <math>N</math> इनपुट शब्द उपलब्ध होते हैं।एक सरल लेकिन सुरुचिपूर्ण समीचीन है कि इनपुट अनुक्रम <math>x[n]</math> को एक और कृत्रिम मूल्य के साथ <math>x[N] = 0</math> के साथ विस्तारित किया जाए।<ref>{{cite web|url=http://cnx.org/content/m12024/latest/ |title=गोएर्टज़ेल का एल्गोरिदम|publisher=Cnx.org |date=2006-09-12 |access-date=2014-02-03}}</ref> हम समीकरण (9) से देख सकते हैं कि अंतिम परिणाम पर गणना से मानवीय प्रभाव वही है जैसे कि <math>x[N]</math> शब्दक निकालना, इस प्रकार उचित DFT मूल्य प्राप्त होता है।
हम देख सकते हैं कि समीकरण (9) का दाहिना पक्ष डीएफटी शब्द <math>X[k]</math> के परिभाषित सूत्र के बहुत ही समान है, लेकिन बिल्कुल वैसा नहीं है जैसा कि डीएफटी के सूचकांक संख्या <math>k</math>के लिए होता है। समीकरण (9) में दिखाए गए योग के लिए <math>N+1</math> इनपुट शब्द की आवश्यकता होती है, लेकिन एक DFT का मूल्यांकन करते समय केवल <math>N</math> इनपुट शब्द उपलब्ध होते हैं।एक सरल लेकिन सुरुचिपूर्ण समीचीन है कि इनपुट अनुक्रम <math>x[n]</math> को एक और कृत्रिम मूल्य के साथ <math>x[N] = 0</math> के साथ विस्तारित किया जाए।<ref>{{cite web|url=http://cnx.org/content/m12024/latest/ |title=गोएर्टज़ेल का एल्गोरिदम|publisher=Cnx.org |date=2006-09-12 |access-date=2014-02-03}}</ref> हम समीकरण (9) से देख सकते हैं कि अंतिम परिणाम पर गणना से मानवीय प्रभाव वही है जैसे कि <math>x[N]</math> शब्दक निकालना, इस प्रकार उचित DFT मूल्य प्राप्त होता है।


हालाँकि, एक और उत्कृष्ट दृष्टिकोण है जिससे अतिरिक्त निस्पंदन उत्तीर्ण बचाया जा सकता है। समीकरण (1) से, हम यह देख सकते हैं कि जब विस्तारित इनपुट मान <math>x[N] = 0</math> अंतिम चरण में प्रयुक्त होता है,
हालाँकि, एक और उत्कृष्ट दृष्टिकोण है जिससे अतिरिक्त फ़िल्टर उत्तीर्ण बचाया जा सकता है। समीकरण (1) से, हम यह देख सकते हैं कि जब विस्तारित इनपुट मान <math>x[N] = 0</math> अंतिम चरण में प्रयुक्त होता है,
{{NumBlk|:|<math>s[N] =  2 \cos(\omega_0) s[N-1] - s[N-2].</math>|10}}
{{NumBlk|:|<math>s[N] =  2 \cos(\omega_0) s[N-1] - s[N-2].</math>|10}}
इस प्रकार, एल्गोरिथ्म निम्नलिखित रूप में पूरा किया जा सकता है:
इस प्रकार, एल्गोरिथ्म निम्नलिखित रूप में पूरा किया जा सकता है:
* इस प्रकार, आईआईआर निस्पंदन को इनपुट पद <math>x[N-1]</math> की प्रोसेसिंग के बाद समाप्त करें।
* इस प्रकार, आईआईआर फ़िल्टर को इनपुट पद <math>x[N-1]</math> की प्रसंस्करण के बाद समाप्त करें।
* समीकरण (10) का उपयोग करके पिछले आउटपुट <math>s[N]</math> और <math>s[N-1]</math> से<math>s[N-2]</math> को निर्मित करें।
* समीकरण (10) का उपयोग करके पिछले आउटपुट <math>s[N]</math> और <math>s[N-1]</math> से<math>s[N-2]</math> को निर्मित करें।
* समीकरण (2) का उपयोग कीजिए जिसमें परिकलित <math>s[N]</math> मान और निस्पंदन की अंतिम सीधी गणना द्वारा प्राप्त <math>s[N-1]</math> के साथ करें।
* समीकरण (2) का उपयोग कीजिए जिसमें परिकलित <math>s[N]</math> मान और फ़िल्टर की अंतिम सीधी गणना द्वारा प्राप्त <math>s[N-1]</math> के साथ करें।


अंतिम दो गणितीय क्रियाएँ बीजगणितीय रूप से संयोजित करके सरलित की जाती हैं:
अंतिम दो गणितीय क्रियाएँ बीजगणितीय रूप से संयोजित करके सरलित की जाती हैं:
Line 71: Line 71:
\end{align}</math>|11}}
\end{align}</math>|11}}


ध्यान दें कि निस्पंदन अपडेट्स को शब्द <math>N-1</math> पर रोकना और समीकरण (11) की बजाय सीधे समीकरण (2) का लागू करना, अंतिम निस्पंदन स्थिति अपडेट्स को छोड़ देता है, जिससे गलत चर के साथ परिणाम मिलता है।<ref>{{cite web|url=http://www.eetimes.com/design/signal-processing-dsp/4024443/The-Goertzel-Algorithm |title=Electronic Engineering Times &#124; Connecting the Global Electronics Community |publisher=EE Times |access-date=2014-02-03}}</ref>
ध्यान दें कि फ़िल्टर अद्यतनीकरण को शब्द <math>N-1</math> पर रोकना और समीकरण (11) की बजाय सीधे समीकरण (2) का लागू करना, अंतिम फ़िल्टर स्थिति अद्यतनीकरण को छोड़ देता है, जिससे गलत चर के साथ परिणाम मिलता है।<ref>{{cite web|url=http://www.eetimes.com/design/signal-processing-dsp/4024443/The-Goertzel-Algorithm |title=Electronic Engineering Times &#124; Connecting the Global Electronics Community |publisher=EE Times |access-date=2014-02-03}}</ref>


'''गोएर्टज़ेल''' एल्गोरिदम के लिए चुनी गई विशेष फ़िल्टरिंग संरचना इसकी कुशल डीएफटी गणना की कुंजी है। हम देख सकते हैं कि केवल एक आउटपुट मान है <math>y[N]</math> डीएफटी की गणना के लिए उपयोग किया जाता है, इसलिए अन्य सभी आउटपुट शर्तों की गणना छोड़ दी जाती है। चूँकि FIR फ़िल्टर की गणना नहीं की जाती है, IIR चरण की गणना <math>s[0], s[1]</math>, आदि को पहले चरण की आंतरिक स्थिति को अद्यतन करने के तुरंत बाद छोड़ा जा सकता है।
गोएर्टज़ेल एल्गोरिदम के लिए चुनी गई विशेष फ़िल्टर संरचना उसके निपुण डीएफटी(DFT) गणना की कुंजी है। हम देख सकते हैं कि केवल एक आउटपुट मान है <math>y[N]</math> का उपयोग डीएफटी(DFT)  की गणना के लिए किया जाता है, इसलिए अन्य सभी आउटपुट मानों की गणनाओं को छोड़ दिया जाता है। चूँकि एफआईआर फ़िल्टर की गणना नहीं की जाती है, इसलिए आईआईआर चरण की गणनाएँ <math>s[0], s[1]</math>, आदि की जाती हैं। पहले चरण के आंतरिक स्थिति को अद्यतन करने के बाद, उन्हें तुरंत छोड़ दिया जा सकता है।


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


== अनुप्रयोग ==
== अनुप्रयोग ==


=== पावर-स्पेक्ट्रम शर्तें ===
=== शक्ति-स्पेक्ट्रम मान ===
समीकरण (6) की जांच करना, पद की गणना करने के लिए एक अंतिम आईआईआर फ़िल्टर पास <math> y[N]</math> पूरक इनपुट मान का उपयोग करना <math> x[N]=0 </math> पिछले पद पर परिमाण 1 का एक जटिल गुणक लागू करता है <math>y[N-1]</math>. फलस्वरूप, <math>y[N]</math> और <math>y[N-1]</math> समतुल्य सिग्नल शक्ति का प्रतिनिधित्व करें। समीकरण (11) लागू करना और टर्म से सिग्नल पावर की गणना करना भी समान रूप से मान्य है <math>y[N]</math> या समीकरण (2) लागू करें और टर्म से सिग्नल पावर की गणना करें <math>y[N-1]</math>. दोनों मामले डीएफटी शब्द द्वारा दर्शाई गई सिग्नल शक्ति के लिए निम्नलिखित अभिव्यक्ति की ओर ले जाते हैं <math>X[k]</math>:
समीकरण (6) की जाँच करते हुए, एक अंतिम आईआईआर फ़िल्टर पास के माध्यम से मान <math> y[N]</math> की गणना के लिए एक सहायक इनपुट मान <math> x[N]=0 </math> का उपयोग करके पिछले मान <math>y[N-1]</math>पर 1 के परिमाण के एक संज्ञाक गुणक का लागू होता है। इस परिणामस्वरूप, <math>y[N]</math> और <math>y[N-1]</math> समतुल्य सिग्नल शक्ति का प्रतिनिधित्व करते हैं। समीकरण (11) को लागू करके मान <math>y[N]</math> से सिग्नल शक्ति की गणना करना या समीकरण (2) को लागू करके मान <math>y[N-1]</math>से सिग्नल शक्ति की गणना करना एक समान रूप से मान्य है। दोनों मामलों में निम्नलिखित अभिव्यक्ति से निर्देशित होते हैं जिनका DFT मान <math>X[k]</math>द्वारा प्रतिनिधित किया जाता है:
{{NumBlk|:|<math>\begin{align}
{{NumBlk|:|<math>\begin{align}
   X[k] \, X'[k] & = y[N] \, y'[N] = y[N-1] \, y'[N-1] \\
   X[k] \, X'[k] & = y[N] \, y'[N] = y[N-1] \, y'[N-1] \\
Line 86: Line 86:
\end{align} </math>|12}}
\end{align} </math>|12}}


नीचे दिए गए [[छद्मकोड]] में, वास्तविक-मूल्यवान इनपुट डेटा को [[सरणी डेटा प्रकार]] में संग्रहीत किया जाता है <code>x</code> और चर <code>sprev</code> और <code>sprev2</code> IIR फ़िल्टर से आउटपुट इतिहास को अस्थायी रूप से संग्रहीत करें। <code>Nterms</code> सरणी में नमूनों की संख्या है, और <code>Kterm</code> नमूनाकरण अवधि से गुणा की गई रुचि की आवृत्ति से मेल खाती है।
नीचे दिए गए [[छद्मकोड]] में, वास्तविक-मूल्य वाले इनपुट आँकड़े को मूल<code>x</code> में संग्रह किया जाता है और चरणशील फ़िल्टर से आउटपुट इतिहास को अस्थायी रूप से <code>sprev</code> और <code>sprev2</code> में संग्रह किया जाता है। <code>Nterms</code> सरणी में नमूनों की संख्या है, और <code>Kterm</code> रुचि की आवृत्ति का प्रतिनिधित्व करता है, जिसे नमूना अवधि से गुणा किया जाता है।


  एनटर्म यहां परिभाषित हैं
  Nterms यहां परिभाषित हैं
  यहां केटरम का चयन किया गया
  यहां Kterm का चयन किया गया
  ω = 2 × π × Kterm / Nterms;
  ω = 2 × π × Kterm / Nterms;
  गुणांक := 2 × cos(ω)
  गुणांक�:= 2 × cos(ω)
   
   
  स्प्रेव := 0
  स्प्रेव�:= 0
  स्प्रेव2 := 0
  स्प्रेव2�:= 0
  0 से Nterms-1 की सीमा में प्रत्येक सूचकांक ''n'' के लिए करें
  0 से Nterms-1 की सीमा में प्रत्येक सूचकांक ''n'' के लिए करें
     s := x[n] + गुणांक × स्प्रेव - स्प्रेव2
     ss:= x[n] + गुणांक × स्प्रेव - स्प्रेव2
     sprev2 := sprev
     sprev2v:= sprev
     स्प्रेव := एस
     स्प्रेव�:= एस
  अंत
  अंत
   
   
  शक्ति := स्प्रेव<sup>2</sup>+sprev2<sup>2</sup> - (coeff × sprev × sprev2)
  शक्ति�:= स्प्रेव<sup>2</sup>+sprev2<sup>2</sup> - (coeff × sprev × sprev2)


यह संभव है<ref>{{cite web |date=August 25, 2011 |first=Wilfried |last=Elmenreich |title=गोएर्टज़ेल फ़िल्टर का उपयोग करके आवृत्ति का कुशलतापूर्वक पता लगाना|url=http://netwerkt.wordpress.com/2011/08/25/goertzel-filter/ |access-date=16 September 2014}}</ref> गणनाओं को व्यवस्थित करने के लिए ताकि आने वाले नमूनों को [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]] में अकेले वितरित किया जा सके जो अपडेट के बीच फ़िल्टर स्थिति को बनाए रखता है, अन्य प्रसंस्करण के बाद अंतिम पावर परिणाम तक पहुंच प्राप्त होती है।
यह संभव है<ref>{{cite web |date=August 25, 2011 |first=Wilfried |last=Elmenreich |title=गोएर्टज़ेल फ़िल्टर का उपयोग करके आवृत्ति का कुशलतापूर्वक पता लगाना|url=http://netwerkt.wordpress.com/2011/08/25/goertzel-filter/ |access-date=16 September 2014}}</ref> गणनाओं को ऐसे संगठित करने के लिए कि आने वाले नमूनों को एकल रूप से एक [[सॉफ़्टवेयर ऑब्जेक्ट]] को प्रस्तुत किया जाता है जो अपडेट के बीच फ़िल्टर स्थिति को बनाए रखता है, और अन्य प्रसंस्करण पूरी होने के बाद अंतिम शक्ति परिणाम तक पहुँचा जा सकता है।


=== वास्तविक-मूल्यवान अंकगणित के साथ एकल डीएफटी शब्द ===
=== वास्तविक-मूल्यवान अंकगणित के साथ एकल डीएफटी शब्द ===
वास्तविक-मूल्यवान इनपुट डेटा का मामला अक्सर उठता है, विशेष रूप से एम्बेडेड सिस्टम में जहां इनपुट स्ट्रीम भौतिक प्रक्रियाओं के प्रत्यक्ष माप के परिणामस्वरूप होती हैं। जब इनपुट डेटा वास्तविक-मूल्यवान होता है, तो आंतरिक स्थिति चर को फ़िल्टर करें <code>sprev</code> और <code>sprev2</code> इसे वास्तविक-मूल्यवान भी माना जा सकता है, परिणामस्वरूप, पहले आईआईआर चरण में किसी जटिल अंकगणित की आवश्यकता नहीं होती है। वास्तविक-मूल्यवान अंकगणित के लिए अनुकूलन आमतौर पर चर के लिए उपयुक्त वास्तविक-मूल्यवान डेटा प्रकारों को लागू करने जितना सरल है।
वास्तविक-मूल्य वाले इनपुट डेटा का मामला अधिकतर उत्पन्न होता है, विशेष रूप से अंतर्निहित प्रणाली में जहां इनपुट धाराओं भौतिक प्रक्रियाओं के सीधे मापों से परिणत होती हैं। जब इनपुट आँकड़े वास्तविक-मूल्य वाले होते है, तो फ़िल्टर की आंतरिक स्थिति चरण <code>sprev</code> और <code>sprev2</code> को भी वास्तविक मूल्य वाले होने के कारण, पहले IIR चरण में कोई भी जटिल अंकगणित की आवश्यकता नहीं होती है। वास्तविक-मूल्य अंकगणित के लिए अनुकूलित करने के लिए सामान्यत: उपयुक्त वास्तविक मूल्य आँकड़े प्रकारों को चरणों के लिए लागू करना बहुत सरल होता है।


इनपुट टर्म का उपयोग करके गणना के बाद <math>x[N-1]</math>, और फ़िल्टर पुनरावृत्तियों को समाप्त कर दिया गया है, डीएफटी शब्द का मूल्यांकन करने के लिए समीकरण (11) को लागू किया जाना चाहिए। अंतिम गणना जटिल-मूल्य अंकगणित का उपयोग करती है, लेकिन इसे वास्तविक और काल्पनिक शब्दों को अलग करके वास्तविक-मूल्य अंकगणित में परिवर्तित किया जा सकता है:
इनपुट मान <math>x[N-1]</math>, का उपयोग करके गणनाएँ करने के बाद और फ़िल्टर परिणामों को समाप्त करने के बाद, समीकरण (11) को लागू करके DFT मान का मूल्यांकन किया जाना आवश्यक होता है। अंतिम गणना जटिल-मूल्य अंकगणित का उपयोग करती है, लेकिन इसे वास्तविक मूल्य अंकगणित में बदला जा सकता है, वास्तविक और काल्पनिक शब्दों को अलग करके:
{{NumBlk|:|<math>\begin{align}  
{{NumBlk|:|<math>\begin{align}  
   c_r  &= \cos(2 \pi \tfrac{k}{N}), \\
   c_r  &= \cos(2 \pi \tfrac{k}{N}), \\
Line 116: Line 116:
</math>|13}}
</math>|13}}


पावर-स्पेक्ट्रम एप्लिकेशन की तुलना में, एकमात्र अंतर समाप्त करने के लिए उपयोग की जाने वाली गणना है:
शक्ति-स्पेक्ट्रम आवेदन के साथ तुलना करते समय, यह एकमात्र अंतर है कि समापन के लिए उपयुक्त गणना होती है:
 
(सिग्नल शक्ति कार्यान्वयन में जैसे आईआईआर फ़िल्टर गणनाएँ की गई हैं, वैसे ही यहाँ भी आईआईआर फ़िल्टर गणनाएँ की जाती हैं)


<पूर्व>
(सिग्नल पावर कार्यान्वयन के समान आईआईआर फ़िल्टर गणना)
XKreal = sprev * cr - sprev2;
XKreal = sprev * cr - sprev2;
XKimag = sprev * ci;
XKimag = sprev * ci;
Line 125: Line 125:


=== चरण का पता लगाना ===
=== चरण का पता लगाना ===
इस एप्लिकेशन को डीएफटी अवधि के समान मूल्यांकन की आवश्यकता है <math>X[k]</math>, जैसा कि पिछले अनुभाग में चर्चा की गई है, वास्तविक-मूल्यवान या जटिल-मूल्यवान इनपुट स्ट्रीम का उपयोग करना। तब सिग्नल चरण का मूल्यांकन इस प्रकार किया जा सकता है
यह आवेदन एक ही डीएफटी मान <math>X[k]</math>, की मूल्यांकन की आवश्यकता है, जैसा कि पिछले खंड में चर्चित किया गया था, वास्तविक मूल्य वाले या जटिल मूल्य वाले इनपुट  
{{NumBlk|:|<math> \phi = \tan^{-1}\frac{\Im(X[k])}{ \Re(X[k])}, </math>|14}}
 
व्युत्क्रम स्पर्शज्या फलन की गणना करते समय विलक्षणताओं, चतुर्थांश आदि के लिए उचित सावधानी बरतें।
धारा का उपयोग करके। फिर सिग्नल चरण का मूल्यांकन किया जा सकता है, जैसे कि:{{NumBlk|:|<math> \phi = \tan^{-1}\frac{\Im(X[k])}{ \Re(X[k])}, </math>|14}}
व्युत्क्रम स्पर्शज्या फलन की गणना करते समय अपशिष्टताओं, चतुर्थांश, और इसी प्रकार की स्थितियों के लिए उपयुक्त सावधानियाँ लेना महत्वपूर्ण है।


=== वास्तविक अंकगणित में जटिल संकेत ===
=== वास्तविक अंकगणित में जटिल संकेत ===
चूंकि जटिल सिग्नल वास्तविक और काल्पनिक भागों में रैखिक रूप से विघटित होते हैं, इसलिए गोएर्टज़ेल एल्गोरिथ्म की गणना वास्तविक भागों के अनुक्रम पर अलग से वास्तविक अंकगणित में की जा सकती है, जिससे परिणाम मिलता है <math>y_\text{r}[n]</math>, और काल्पनिक भागों के अनुक्रम पर, उपज <math>y_\text{i}[n]</math>. उसके बाद, दो जटिल-मूल्य वाले आंशिक परिणामों को पुनः संयोजित किया जा सकता है:
चूंकि जटिल सिग्नल वास्तविक और काल्पनिक भागों में रूपांतरित होते हैं, इसलिए गोएर्टज़ेल एल्गोरिथ्म को वास्तविक अंकगणित में रूपांतरित किया जा सकता है, वास्तविक भागों के क्रम के ऊपर अलग से गणना करने से <math>y_\text{r}[n]</math>, प्राप्त होता है, और काल्पनिक भागों के क्रम के ऊपर अलग से गणना करने से <math>y_\text{i}[n]</math> प्राप्त होता है। इसके बाद, दो जटिल मूल्य वाले आंशिक परिणामों को पुनर्संयोजित किया जा सकता है:
{{NumBlk|:|<math>y[n] = y_\text{r}[n] + j y_\text{i}[n].</math>|15}}
{{NumBlk|:|<math>y[n] = y_\text{r}[n] + j y_\text{i}[n].</math>|15}}


== कम्प्यूटेशनल जटिलता ==
== अभिकलनात्मक जटिलता ==
{{Refimprove section|date=February 2014}}
{{Refimprove section|date=February 2014}}
* कम्प्यूटेशनल जटिलता सिद्धांत के अनुसार, एक सेट की गणना करना <math>M</math> डीएफटी शर्तों का उपयोग <math>M</math> डेटा सेट पर गोएर्टज़ेल एल्गोरिथम के अनुप्रयोग <math>N</math> प्रति ऑपरेशन लागत वाले मान <math>K</math> बड़ा O अंकन है <math>O(KNM)</math>.
* कम्प्यूटेशनल जटिलता सिद्धांत के अनुसार, एक सेट की गणना करना <math>M</math> डीएफटी शर्तों का उपयोग <math>M</math> डेटा सेट पर गोएर्टज़ेल एल्गोरिथम के अनुप्रयोग <math>N</math> प्रति ऑपरेशन लागत वाले मान <math>K</math> बड़ा O अंकन है <math>O(KNM)</math>.

Revision as of 12:07, 17 August 2023

गर्ट्जेल एल्गोरिथ्म एक तकनीक है जिसका उपयोग अंकीय संकेत संसाधन(डीएसपी) में असतत फूरियर परिवर्तन(डीएफटी) के व्यक्त शब्दों की कुशल मूल्यांकन के लिए किया जाता है। यह कुछ व्यावसायिक अनुप्रयोगों में उपयुक्त होता है, जैसे कि पारंपरिक अनुरूप टेलीफोन के कुंजीपटल के पुश बटन द्वारा उत्पन्न द्वितोन बहु-आवृत्ति संकेतन(डीटीएमएफ़) टोन की पहचान में। यह एल्गोरिथ्म पहली बार 1958 में जेराल्ड गोर्ट्जेल द्वारा वर्णित किया गया था।[1]

डीएफटी की तरह, गोएर्टज़ेल एल्गोरिदम एक पृथक संकेत से एक चयनित आवृत्ति घटक का विश्लेषण करता है।[2][3][4]सीधे डीएफटी की गणनाओं के विपरीत, गोर्ट्जेल एल्गोरिथ्म प्रत्येक परिस्थिति में एक एकल वास्तविक मूल्य वाला समक लागू करता है, जिसे वास्तविक मूल्य वाले अंकगणित का उपयोग वास्तविक मूल्य वाले इनपुट अनुक्रमों के लिए किया जाता है। पूर्ण वर्णक्रम को आवरण करने के लिए (बिना कोई एक नए आँकड़े धारा के लिए जहां समक पुनर्गणन के लिए पूनः प्रयुक्त किए जाते हैं, जिसका गणनात्मक संकट अस्थिर डीएफटी के समक प्रायोजन होता है), गोर्ट्जेल एल्गोरिथ्म तेज फूरियर परिवर्तन(एफएफटी) एल्गोरिथ्मों की तुलना में अधिक संकट का क्रम होता है, लेकिन एक छोटी संख्या के चयनित आवृत्ति घटकों की गणना के लिए, यह संख्यात्मक रूप से अधिक कुशल है। गोएर्टज़ेल एल्गोरिदम की सरल संरचना इसे छोटे संसाधित और अंतर्निहित अनुप्रयोगों के लिए उपयुक्त बनाती है।

गोर्ट्जेल एल्गोरिथम को "उलटे रूप में" एक ज्यावक्रीय संश्लेषण कार्य के रूप में भी उपयोग किया जा सकता है, जिसमें प्रति उत्पन्न नमूने के लिए केवल 1 गुणा और 1 घटाना की आवश्यकता होती है।[5]


एल्गोरिथ्म

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

पहले स्तर पर एक आवर्ती अनुक्रम की गणना करता है, :

 

 

 

 

(1)

दूसरे स्तर पर, निम्नलिखित फ़िल्टर को , पर लागू किया जाता है, जिससे आउटपुट अनुक्रम उत्पन्न होता है :

 

 

 

 

(2)

पहले फ़िल्टर स्तर को देखा जा सकता है कि यह एक द्वितीय-क्रम IIR फ़िल्टर है जिसमें एक प्रत्यक्ष-रूप संरचना है। इस विशेष संरचना का यह गुण होता है कि इसके आंतरिक स्थिति परिवर्तनीय चरण से पिछले आउटपुट मानों के समान होते हैं। आवश्यकता होने पर, इनपुट मानों के लिए , सभी को समान 0 माना जाता है। प्रारंभिक फ़िल्टर स्थिति स्थापित करने के लिए ताकि मूल्यांकन नमूने पर आरंभ हो सके, फ़िल्टर स्थितियों को प्रारंभिक मान दिए जाते हैं . अलाभकारी जोखिम से बचने के लिए, आवृत्ति अधिकतर सीमित की जाती है 0 से π तक क्योंकि (न्यूक्विस्ट-शैनन नमूना दिया गया है); इस श्रेणी के बाहर की मान उपयोग में बिना मतलब नहीं है, लेकिन यह इस श्रेणी के अंदर उपनाम आवृत्ति का उपयोग करने के समान है, क्योंकि घातीय कार्य का एक आवधि होती है 2π में में।

दूसरे चरण के निस्पंदनको एक परिमित आवेग प्रतिक्रिया के रूप में देखा जा सकता है, क्योंकि इसकी गणनाएँ इसके पिछले आउटपुट में से किसी भी का उपयोग नहीं करती हैं।

Z-परिवर्तन विधियों का प्रयोग फ़िल्टर सोपानी की गुणविशेषताओं का अध्ययन करने के लिए किया जा सकता है। पहले फ़िल्टर चरण के Z परिवर्तन, जो समीकरण (1) में दिया गया है, का है:

 

 

 

 

(3)

समीकरण (2) में दिए गए दूसरे फ़िल्टर चरण का Z परिवर्तन है

 

 

 

 

(4)

दो फ़िल्टर चरणों के सोपानी का संयुक्त स्थानांतरण फ़ंक्शन तब होता है

 

 

 

 

(5)

यह वापस एक समकालिक समय-डोमेन अनुक्रम में परिवर्तित किया जा सकता है, और शब्दों को वापस लाए जा सकते हैं पहले इनपुट शब्द के सूचकांक पर :[citation needed]

 

 

 

 

(6)

संख्यात्मक स्थिरता

यह देखा जा सकता है कि फ़िल्टर के Z परिवर्तन का ध्रुव (जटिल विश्लेषण) निम्नलिखित स्थित है: और , जो एक इकाई त्रिज्या के मूल पर केंद्रित विकल्प त्रिज्या के वृत्तीय परिप्रेक्ष्य पर स्थित हैं। यह गुणवत्ता सुनिश्चित करती है कि फ़िल्टर प्रक्रिया मामूली रूप से स्थिर है और संख्यात्मक त्रुटि एकत्रित होने की संभावना होती है जब कम-गुणस्तर अंकगणित और लंबे इनपुट अनुक्रमों का उपयोग करके गणना की जाती है।[6] एक संख्यात्मक रूप से स्थिर संस्करण क्रिश्चियन रीन्स्च द्वारा प्रस्तावित किया गया था।[7]


डीएफटी गणना

महत्वपूर्ण स्थिति में, एक डीएफटी शब्द की गणना के लिए निम्नलिखित विशेष प्रतिबंधन लागू होते हैं।

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

 

 

 

 

(7)

  • सूचकांक संख्या यह दर्शाता है कि डीएफटी की "आवृत्ति बिन" सूचकांक संख्याओं के समुच्चय से चुना गया है

 

 

 

 

(8)

इन प्रतिस्थापनों को समीकरण (6) में बनाना और उस पद का अवलोकन करना , समीकरण (6) फिर निम्नलिखित रूप लेता है:

 

 

 

 

(9)

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

हालाँकि, एक और उत्कृष्ट दृष्टिकोण है जिससे अतिरिक्त फ़िल्टर उत्तीर्ण बचाया जा सकता है। समीकरण (1) से, हम यह देख सकते हैं कि जब विस्तारित इनपुट मान अंतिम चरण में प्रयुक्त होता है,

 

 

 

 

(10)

इस प्रकार, एल्गोरिथ्म निम्नलिखित रूप में पूरा किया जा सकता है:

  • इस प्रकार, आईआईआर फ़िल्टर को इनपुट पद की प्रसंस्करण के बाद समाप्त करें।
  • समीकरण (10) का उपयोग करके पिछले आउटपुट और से को निर्मित करें।
  • समीकरण (2) का उपयोग कीजिए जिसमें परिकलित मान और फ़िल्टर की अंतिम सीधी गणना द्वारा प्राप्त के साथ करें।

अंतिम दो गणितीय क्रियाएँ बीजगणितीय रूप से संयोजित करके सरलित की जाती हैं:

 

 

 

 

(11)

ध्यान दें कि फ़िल्टर अद्यतनीकरण को शब्द पर रोकना और समीकरण (11) की बजाय सीधे समीकरण (2) का लागू करना, अंतिम फ़िल्टर स्थिति अद्यतनीकरण को छोड़ देता है, जिससे गलत चर के साथ परिणाम मिलता है।[9]

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

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

अनुप्रयोग

शक्ति-स्पेक्ट्रम मान

समीकरण (6) की जाँच करते हुए, एक अंतिम आईआईआर फ़िल्टर पास के माध्यम से मान की गणना के लिए एक सहायक इनपुट मान का उपयोग करके पिछले मान पर 1 के परिमाण के एक संज्ञाक गुणक का लागू होता है। इस परिणामस्वरूप, और समतुल्य सिग्नल शक्ति का प्रतिनिधित्व करते हैं। समीकरण (11) को लागू करके मान से सिग्नल शक्ति की गणना करना या समीकरण (2) को लागू करके मान से सिग्नल शक्ति की गणना करना एक समान रूप से मान्य है। दोनों मामलों में निम्नलिखित अभिव्यक्ति से निर्देशित होते हैं जिनका DFT मान द्वारा प्रतिनिधित किया जाता है:

 

 

 

 

(12)

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

Nterms यहां परिभाषित हैं
यहां Kterm का चयन किया गया
ω = 2 × π × Kterm / Nterms;
गुणांक�:= 2 × cos(ω)

स्प्रेव�:= 0
स्प्रेव2�:= 0
0 से Nterms-1 की सीमा में प्रत्येक सूचकांक n के लिए करें
    ss:= x[n] + गुणांक × स्प्रेव - स्प्रेव2
    sprev2v:= sprev
    स्प्रेव�:= एस
अंत

शक्ति�:= स्प्रेव2+sprev22 - (coeff × sprev × sprev2)

यह संभव है[10] गणनाओं को ऐसे संगठित करने के लिए कि आने वाले नमूनों को एकल रूप से एक सॉफ़्टवेयर ऑब्जेक्ट को प्रस्तुत किया जाता है जो अपडेट के बीच फ़िल्टर स्थिति को बनाए रखता है, और अन्य प्रसंस्करण पूरी होने के बाद अंतिम शक्ति परिणाम तक पहुँचा जा सकता है।

वास्तविक-मूल्यवान अंकगणित के साथ एकल डीएफटी शब्द

वास्तविक-मूल्य वाले इनपुट डेटा का मामला अधिकतर उत्पन्न होता है, विशेष रूप से अंतर्निहित प्रणाली में जहां इनपुट धाराओं भौतिक प्रक्रियाओं के सीधे मापों से परिणत होती हैं। जब इनपुट आँकड़े वास्तविक-मूल्य वाले होते है, तो फ़िल्टर की आंतरिक स्थिति चरण sprev और sprev2 को भी वास्तविक मूल्य वाले होने के कारण, पहले IIR चरण में कोई भी जटिल अंकगणित की आवश्यकता नहीं होती है। वास्तविक-मूल्य अंकगणित के लिए अनुकूलित करने के लिए सामान्यत: उपयुक्त वास्तविक मूल्य आँकड़े प्रकारों को चरणों के लिए लागू करना बहुत सरल होता है।

इनपुट मान , का उपयोग करके गणनाएँ करने के बाद और फ़िल्टर परिणामों को समाप्त करने के बाद, समीकरण (11) को लागू करके DFT मान का मूल्यांकन किया जाना आवश्यक होता है। अंतिम गणना जटिल-मूल्य अंकगणित का उपयोग करती है, लेकिन इसे वास्तविक मूल्य अंकगणित में बदला जा सकता है, वास्तविक और काल्पनिक शब्दों को अलग करके:

 

 

 

 

(13)

शक्ति-स्पेक्ट्रम आवेदन के साथ तुलना करते समय, यह एकमात्र अंतर है कि समापन के लिए उपयुक्त गणना होती है:

(सिग्नल शक्ति कार्यान्वयन में जैसे आईआईआर फ़िल्टर गणनाएँ की गई हैं, वैसे ही यहाँ भी आईआईआर फ़िल्टर गणनाएँ की जाती हैं)

XKreal = sprev * cr - sprev2; XKimag = sprev * ci; </पूर्व>

चरण का पता लगाना

यह आवेदन एक ही डीएफटी मान , की मूल्यांकन की आवश्यकता है, जैसा कि पिछले खंड में चर्चित किया गया था, वास्तविक मूल्य वाले या जटिल मूल्य वाले इनपुट

धारा का उपयोग करके। फिर सिग्नल चरण का मूल्यांकन किया जा सकता है, जैसे कि:

 

 

 

 

(14)

व्युत्क्रम स्पर्शज्या फलन की गणना करते समय अपशिष्टताओं, चतुर्थांश, और इसी प्रकार की स्थितियों के लिए उपयुक्त सावधानियाँ लेना महत्वपूर्ण है।

वास्तविक अंकगणित में जटिल संकेत

चूंकि जटिल सिग्नल वास्तविक और काल्पनिक भागों में रूपांतरित होते हैं, इसलिए गोएर्टज़ेल एल्गोरिथ्म को वास्तविक अंकगणित में रूपांतरित किया जा सकता है, वास्तविक भागों के क्रम के ऊपर अलग से गणना करने से , प्राप्त होता है, और काल्पनिक भागों के क्रम के ऊपर अलग से गणना करने से प्राप्त होता है। इसके बाद, दो जटिल मूल्य वाले आंशिक परिणामों को पुनर्संयोजित किया जा सकता है:

 

 

 

 

(15)

अभिकलनात्मक जटिलता

  • कम्प्यूटेशनल जटिलता सिद्धांत के अनुसार, एक सेट की गणना करना डीएफटी शर्तों का उपयोग डेटा सेट पर गोएर्टज़ेल एल्गोरिथम के अनुप्रयोग प्रति ऑपरेशन लागत वाले मान बड़ा O अंकन है .
एकल असतत फूरियर ट्रांसफॉर्म बिन की गणना करने के लिए लंबाई के एक जटिल इनपुट अनुक्रम के लिए , गोएर्टज़ेल एल्गोरिदम की आवश्यकता है गुणा और लूप के भीतर जोड़/घटाव, साथ ही कुल मिलाकर 4 गुणा और 4 अंतिम जोड़/घटाव गुणा और जोड़/घटाव. यह प्रत्येक के लिए दोहराया जाता है आवृत्तियाँ।
  • इसके विपरीत, डेटा सेट पर फास्ट फूरियर ट्रांसफॉर्म का उपयोग करना मूल्यों में जटिलता है .
इसे सीधे लागू करना कठिन है क्योंकि यह उपयोग किए गए एफएफटी एल्गोरिदम पर निर्भर करता है, लेकिन एक विशिष्ट उदाहरण रेडिक्स -2 एफएफटी है, जिसकी आवश्यकता होती है गुणा और प्रत्येक के लिए असतत फूरियर ट्रांसफॉर्म बिन में जोड़/घटाव डिब्बे.

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

यह निर्धारित करने के लिए एक नियम के रूप में कि क्या रेडिक्स-2 एफएफटी या गोएर्टज़ेल एल्गोरिदम अधिक कुशल है, शब्दों की संख्या को समायोजित करें डेटा को 2 की निकटतम सटीक शक्ति तक सेट करें, इसे कॉल करें , और गोएर्टज़ेल एल्गोरिदम तेज़ होने की संभावना है यदि

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

जटिल-मूल्य वाले इनपुट डेटा के बजाय वास्तविक-मूल्य का उपयोग करने पर दोनों एल्गोरिदम लगभग 2 दक्षता का कारक प्राप्त करते हैं। हालाँकि, ये लाभ गोएर्टज़ेल एल्गोरिदम के लिए स्वाभाविक हैं लेकिन कुछ एल्गोरिदम वेरिएंट का उपयोग किए बिना एफएफटी के लिए हासिल नहीं किया जाएगा[which?] फास्ट फूरियर ट्रांसफ़ॉर्म|वास्तविक-मूल्यवान डेटा को बदलने के लिए विशेषीकृत।

यह भी देखें

संदर्भ

  1. Goertzel, G. (January 1958), "An Algorithm for the Evaluation of Finite Trigonometric Series", American Mathematical Monthly, 65 (1): 34–35, doi:10.2307/2310304, JSTOR 2310304
  2. Mock, P. (March 21, 1985), "Add DTMF Generation and Decoding to DSP-μP Designs" (PDF), EDN, ISSN 0012-7515; also found in DSP Applications with the TMS320 Family, Vol. 1, Texas Instruments, 1989.
  3. Chen, Chiouguey J. (June 1996), Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80 DSP (PDF), Application Report, Texas Instruments, SPRA066
  4. Schmer, Gunter (May 2000), DTMF Tone Generation and Detection: An Implementation Using the TMS320C54x (PDF), Application Report, Texas Instruments, SPRA096a
  5. Cheng, Eric; Hudak, Paul (January 2009), Audio Processing and Sound Synthesis in Haskell (PDF), archived from the original (PDF) on 2017-03-28
  6. Gentleman, W. M. (1 February 1969). "फूरियर गुणांक की गणना के लिए गोएर्टज़ेल (वाट) विधि का एक त्रुटि विश्लेषण". The Computer Journal. 12 (2): 160–164. doi:10.1093/comjnl/12.2.160.
  7. Stoer, J.; Bulirsch, R. (2002), Introduction to Numerical Analysis, Springer, ISBN 9780387954523
  8. "गोएर्टज़ेल का एल्गोरिदम". Cnx.org. 2006-09-12. Retrieved 2014-02-03.
  9. "Electronic Engineering Times | Connecting the Global Electronics Community". EE Times. Retrieved 2014-02-03.
  10. Elmenreich, Wilfried (August 25, 2011). "गोएर्टज़ेल फ़िल्टर का उपयोग करके आवृत्ति का कुशलतापूर्वक पता लगाना". Retrieved 16 September 2014.
  11. Press; Flannery; Teukolsky; Vetterling (2007), "Chapter 12", Numerical Recipes, The Art of Scientific Computing, Cambridge University Press


अग्रिम पठन

  • Proakis, J. G.; Manolakis, D. G. (1996), Digital Signal Processing: Principles, Algorithms, and Applications, Upper Saddle River, NJ: Prentice Hall, pp. 480–481, Bibcode:1996dspp.book.....P


बाहरी संबंध