गोएर्टज़ेल एल्गोरिदम

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

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

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

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

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

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

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

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

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

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

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

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

संख्यात्मक स्थिरता
यह देखा जा सकता है कि फ़िल्टर के Z परिवर्तन का ध्रुव (जटिल विश्लेषण) निम्नलिखित स्थित है: $$e^{+j \omega_0}$$ और $$e^{-j \omega_0}$$, जो एक इकाई त्रिज्या के मूल पर केंद्रित विकल्प त्रिज्या के वृत्तीय परिप्रेक्ष्य पर स्थित हैं। यह गुणवत्ता सुनिश्चित करती है कि फ़िल्टर प्रक्रिया मामूली रूप से स्थिर है और संख्यात्मक त्रुटि एकत्रित होने की संभावना होती है जब कम-गुणस्तर अंकगणित और लंबे इनपुट अनुक्रमों का उपयोग करके गणना की जाती है। एक संख्यात्मक रूप से स्थिर संस्करण क्रिश्चियन रीन्स्च द्वारा प्रस्तावित किया गया था।

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


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

इन प्रतिस्थापनों को समीकरण (6) में बनाना और उस पद का अवलोकन करना $$e^{+j 2 \pi k} = 1$$, समीकरण (6) फिर निम्नलिखित रूप लेता है:

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

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

इस प्रकार, एल्गोरिथ्म निम्नलिखित रूप में पूरा किया जा सकता है:
 * इस प्रकार, आईआईआर फ़िल्टर को इनपुट पद $$x[N-1]$$ की प्रसंस्करण के बाद समाप्त करें।
 * समीकरण (10) का उपयोग करके पिछले आउटपुट $$s[N]$$ और $$s[N-1]$$ से$$s[N-2]$$ को निर्मित करें।
 * समीकरण (2) का उपयोग कीजिए जिसमें परिकलित $$s[N]$$ मान और फ़िल्टर की अंतिम सीधी गणना द्वारा प्राप्त $$s[N-1]$$ के साथ करें।

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

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

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

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

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

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

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)

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

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

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

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

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

XKreal = sprev * cr - sprev2; XKimag = sprev * ci; 

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

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

वास्तविक अंकगणित में जटिल संकेत
चूंकि जटिल सिग्नल वास्तविक और काल्पनिक भागों में रूपांतरित होते हैं, इसलिए गोएर्टज़ेल एल्गोरिथ्म को वास्तविक अंकगणित में रूपांतरित किया जा सकता है, वास्तविक भागों के क्रम के ऊपर अलग से गणना करने से $$y_\text{r}[n]$$, प्राप्त होता है, और काल्पनिक भागों के क्रम के ऊपर अलग से गणना करने से $$y_\text{i}[n]$$ प्राप्त होता है। इसके बाद, दो जटिल मूल्य वाले आंशिक परिणामों को पुनर्संयोजित किया जा सकता है:

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

 * कम्प्यूटेशनल जटिलता सिद्धांत के अनुसार, एक सेट की गणना करना $$M$$ डीएफटी शर्तों का उपयोग $$M$$ डेटा सेट पर गोएर्टज़ेल एल्गोरिथम के अनुप्रयोग $$N$$ प्रति ऑपरेशन लागत वाले मान $$K$$ बड़ा O अंकन है $$O(KNM)$$.


 * एकल असतत फूरियर ट्रांसफॉर्म बिन की गणना करने के लिए $$X(f)$$ लंबाई के एक जटिल इनपुट अनुक्रम के लिए $$N$$, गोएर्टज़ेल एल्गोरिदम की आवश्यकता है $$2 N$$ गुणा और $$4\ N$$ लूप के भीतर जोड़/घटाव, साथ ही कुल मिलाकर 4 गुणा और 4 अंतिम जोड़/घटाव $$2 N + 4$$ गुणा और $$4 N + 4$$ जोड़/घटाव. यह प्रत्येक के लिए दोहराया जाता है $$M$$ आवृत्तियाँ।


 * इसके विपरीत, डेटा सेट पर फास्ट फूरियर ट्रांसफॉर्म का उपयोग करना $$N$$ मूल्यों में जटिलता है $$O(KN\log_2(N))$$.


 * इसे सीधे लागू करना कठिन है क्योंकि यह उपयोग किए गए एफएफटी एल्गोरिदम पर निर्भर करता है, लेकिन एक विशिष्ट उदाहरण रेडिक्स -2 एफएफटी है, जिसकी आवश्यकता होती है $$2 \log_2(N)$$ गुणा और $$3 \log_2(N)$$ प्रत्येक के लिए असतत फूरियर ट्रांसफॉर्म बिन में जोड़/घटाव $$N$$ डिब्बे.

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

यह निर्धारित करने के लिए एक नियम के रूप में कि क्या रेडिक्स-2 एफएफटी या गोएर्टज़ेल एल्गोरिदम अधिक कुशल है, शब्दों की संख्या को समायोजित करें $$N$$ डेटा को 2 की निकटतम सटीक शक्ति तक सेट करें, इसे कॉल करें $$N_2$$, और गोएर्टज़ेल एल्गोरिदम तेज़ होने की संभावना है यदि
 * $$M \le \frac{5 N_2}{6 N} \log_2(N_2)$$

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

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

यह भी देखें

 * ब्लूस्टीन का एफएफटी एल्गोरिदम (चिर्प-जेड)
 * आवृत्ति पारी कुंजीयन (एफएसके)
 * चरण-शिफ्ट कुंजीयन (पीएसके)

बाहरी संबंध

 * A DSP algorithm for frequency analysis
 * The Goertzel Algorithm by Kevin Banks
 * The Goertzel Algorithm by Kevin Banks