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

गर्ट्जेल एल्गोरिथ्म एक तकनीक है जिसका उपयोग अंकीय संकेत संसाधन(डीएसपी) में असतत फूरियर परिवर्तन(डीएफटी) के व्यक्त शब्दों की कुशल मूल्यांकन के लिए किया जाता है। यह कुछ व्यावसायिक अनुप्रयोगों में उपयुक्त होता है, जैसे कि पारंपरिक अनुरूप टेलीफोन के कुंजीपटल के पुश बटन द्वारा उत्पन्न द्वितोन बहु-आवृत्ति संकेतन(डीटीएमएफ़) टोन की पहचान में। यह एल्गोरिथ्म पहली बार 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]$$ संक्षेप से, इस प्रकार इच्छित डीएफटी मूल्य प्रदान किया जाता है।

हालाँकि, एक अधिक सुंदर दृष्टिकोण है जो अतिरिक्त फ़िल्टर पास से बचाता है। समीकरण (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