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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 (सिग्नल पावर कार्यान्वयन के समान आईआईआर फ़िल्टर गणना) 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