https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Goertzel_algorithm Goertzel algorithm - Revision history 2025-06-12T12:55:36Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.4 https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1290039430&oldid=prev 188.255.182.246: /* External links */ 2025-05-12T12:24:38Z <p><span class="autocomment">External links</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:24, 12 May 2025</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 163:</td> <td colspan="2" class="diff-lineno">Line 163:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel Algorithm by Uwe Beis] in which he compares it to analog 2nd order Chebyshev <del style="font-weight: bold; text-decoration: none;">lowpass</del> filter</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel Algorithm by Uwe Beis] in which he compares it to analog 2nd order<ins style="font-weight: bold; text-decoration: none;"> [[Chebyshev_filter|</ins> Chebyshev <ins style="font-weight: bold; text-decoration: none;">low pass</ins> filter<ins style="font-weight: bold; text-decoration: none;">]]</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> </tr> </table> 188.255.182.246 https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1290039286&oldid=prev 188.255.182.246: /* External links */ 2025-05-12T12:22:51Z <p><span class="autocomment">External links</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:22, 12 May 2025</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 163:</td> <td colspan="2" class="diff-lineno">Line 163:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel Algorithm by Uwe Beis] in which he compares it to analog 2nd order <del style="font-weight: bold; text-decoration: none;">Chebycheff</del> lowpass filter</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel Algorithm by Uwe Beis] in which he compares it to analog 2nd order <ins style="font-weight: bold; text-decoration: none;">Chebyshev</ins> lowpass filter</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> </tr> </table> 188.255.182.246 https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1290039136&oldid=prev 188.255.182.246: /* External links */ 2025-05-12T12:21:21Z <p><span class="autocomment">External links</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:21, 12 May 2025</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 163:</td> <td colspan="2" class="diff-lineno">Line 163:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel Algorithm by Uwe Beis] in which he compares <del style="font-weight: bold; text-decoration: none;">Goertzel's algorithm</del> to analog 2nd order Chebycheff lowpass filter</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel Algorithm by Uwe Beis] in which he compares <ins style="font-weight: bold; text-decoration: none;">it</ins> to analog 2nd order Chebycheff lowpass filter</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> </tr> </table> 188.255.182.246 https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1290039035&oldid=prev 188.255.182.246: /* External links */ 2025-05-12T12:20:17Z <p><span class="autocomment">External links</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:20, 12 May 2025</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 163:</td> <td colspan="2" class="diff-lineno">Line 163:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel <del style="font-weight: bold; text-decoration: none;">algorithm</del> by Uwe Beis] in which he compares Goertzel's algorithm to analog 2nd order Chebycheff lowpass filter</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel <ins style="font-weight: bold; text-decoration: none;">Algorithm</ins> by Uwe Beis] in which he compares Goertzel's algorithm to analog 2nd order Chebycheff lowpass filter</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> </tr> </table> 188.255.182.246 https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1290039001&oldid=prev 188.255.182.246: /* External links */ 2025-05-12T12:19:53Z <p><span class="autocomment">External links</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:19, 12 May 2025</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 163:</td> <td colspan="2" class="diff-lineno">Line 163:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.embedded.com/design/configurable-systems/4006427/A-DSP-algorithm-for-frequency-analysis A DSP algorithm for frequency analysis]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.embedded.com/the-goertzel-algorithm The Goertzel Algorithm by Kevin Banks]</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.beis.de/Elektronik/Filter/Goertzel/Goertzel_en.html Analysis of the Goertzel algorithm by Uwe Beis] in which he compares Goertzel's algorithm to analog 2nd order Chebycheff lowpass filter</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:FFT algorithms]]</div></td> </tr> </table> 188.255.182.246 https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1255522775&oldid=prev ThinkEmi at 10:32, 5 November 2024 2024-11-05T10:32:45Z <p></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 10:32, 5 November 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 71:</td> <td colspan="2" class="diff-lineno">Line 71:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The particular filtering structure chosen for the Goertzel algorithm is the key to its efficient DFT calculations. We can observe that only one output value &lt;math&gt;y[N]&lt;/math&gt; is used for calculating the DFT, so calculations for all the other output terms are omitted. Since the FIR filter is not calculated, the IIR stage calculations &lt;math&gt;s[0], s[1]&lt;/math&gt;, etc. can be discarded immediately after updating the first stage's internal state.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The particular filtering structure chosen for the Goertzel algorithm is the key to its efficient DFT calculations. We can observe that only one output value &lt;math&gt;y[N]&lt;/math&gt; is used for calculating the DFT, so calculations for all the other output terms are omitted. Since the FIR filter is not calculated, the IIR stage calculations &lt;math&gt;s[0], s[1]&lt;/math&gt;, etc. can be discarded immediately after updating the first stage's internal state.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>This seems to leave a paradox: to complete the algorithm, the FIR filter stage must be evaluated once using the final two outputs from the IIR filter stage, while for computational efficiency the IIR filter iteration discards its output values. This is where the properties of the direct-form filter structure are applied. The two internal state variables of the IIR filter provide the last two values of the IIR filter output, which are the terms required to evaluate the FIR filter stage.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>This seems to leave a paradox:<ins style="font-weight: bold; text-decoration: none;"> </ins> to complete the algorithm, the FIR filter stage must be evaluated once using the final two outputs from the IIR filter stage, while for computational efficiency the IIR filter iteration discards its output values. This is where the properties of the direct-form filter structure are applied. The two internal state variables of the IIR filter provide the last two values of the IIR filter output, which are the terms required to evaluate the FIR filter stage.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Applications ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Applications ==</div></td> </tr> </table> ThinkEmi https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1249365554&oldid=prev EldritchMoth: Removing cleanup tag; formatting seems consistent with the example at WP:DISPLAYTAG 2024-10-04T15:02:24Z <p>Removing cleanup tag; formatting seems consistent with the example at WP:DISPLAYTAG</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:02, 4 October 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 7:</td> <td colspan="2" class="diff-lineno">Line 7:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== The algorithm ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== The algorithm ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{cleanup|section|reason=inconsistent styles between equations and labels|date=February 2014}}</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The main calculation in the Goertzel algorithm has the form of a [[digital filter]], and for this reason the algorithm is often called a ''Goertzel filter''. The filter operates on an input sequence &lt;math&gt;x[n]&lt;/math&gt; in a cascade of two stages with a parameter &lt;math&gt;\omega_0&lt;/math&gt;, giving the frequency to be analysed, normalised to [[radian]]s per sample.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The main calculation in the Goertzel algorithm has the form of a [[digital filter]], and for this reason the algorithm is often called a ''Goertzel filter''. The filter operates on an input sequence &lt;math&gt;x[n]&lt;/math&gt; in a cascade of two stages with a parameter &lt;math&gt;\omega_0&lt;/math&gt;, giving the frequency to be analysed, normalised to [[radian]]s per sample.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> EldritchMoth https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1211384489&oldid=prev David Eppstein: Christian Reinsch 2024-03-02T07:42:54Z <p><a href="/wiki/Christian_Reinsch" title="Christian Reinsch">Christian Reinsch </a></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 07:42, 2 March 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 39:</td> <td colspan="2" class="diff-lineno">Line 39:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Numerical stability ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Numerical stability ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>It can be observed that the [[Pole (complex analysis)|poles]] of the filter's [[Z transform]] are located at &lt;math&gt;e^{+j \omega_0}&lt;/math&gt; and &lt;math&gt;e^{-j \omega_0}&lt;/math&gt;, on a circle of unit radius centered on the origin of the complex Z-transform plane. This property indicates that the filter process is [[Marginal stability|marginally stable]] and vulnerable to [[Numerical stability|numerical-error accumulation]] when computed using low-precision arithmetic and long input sequences.&lt;ref&gt;{{cite journal|last1=Gentleman|first1=W. M.|title=An error analysis of Goertzel's (Watt's) method for computing Fourier coefficients|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}}&lt;/ref&gt; A numerically stable version was proposed by Christian Reinsch.&lt;ref&gt;{{Citation |first1=J. |last1=Stoer |first2=R. |last2=Bulirsch |date=2002 |title= Introduction to Numerical Analysis |publisher= Springer |isbn=9780387954523}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>It can be observed that the [[Pole (complex analysis)|poles]] of the filter's [[Z transform]] are located at &lt;math&gt;e^{+j \omega_0}&lt;/math&gt; and &lt;math&gt;e^{-j \omega_0}&lt;/math&gt;, on a circle of unit radius centered on the origin of the complex Z-transform plane. This property indicates that the filter process is [[Marginal stability|marginally stable]] and vulnerable to [[Numerical stability|numerical-error accumulation]] when computed using low-precision arithmetic and long input sequences.&lt;ref&gt;{{cite journal|last1=Gentleman|first1=W. M.|title=An error analysis of Goertzel's (Watt's) method for computing Fourier coefficients|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}}&lt;/ref&gt; A numerically stable version was proposed by <ins style="font-weight: bold; text-decoration: none;">[[</ins>Christian Reinsch<ins style="font-weight: bold; text-decoration: none;">]]</ins>.&lt;ref&gt;{{Citation |first1=J. |last1=Stoer |first2=R. |last2=Bulirsch |date=2002 |title= Introduction to Numerical Analysis |publisher= Springer |isbn=9780387954523}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== DFT computations ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== DFT computations ==</div></td> </tr> </table> David Eppstein https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1162628769&oldid=prev Ulfran: /* Computational complexity */ made clearer that log2 is used in the complexity of an FFT 2023-06-30T08:00:21Z <p><span class="autocomment">Computational complexity: </span> made clearer that log2 is used in the complexity of an FFT</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:00, 30 June 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 135:</td> <td colspan="2" class="diff-lineno">Line 135:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>: To compute a single [[Discrete Fourier transform|DFT]] bin &lt;math&gt;X(f)&lt;/math&gt; for a complex input sequence of length &lt;math&gt;N&lt;/math&gt;, the Goertzel algorithm requires &lt;math&gt;2 N&lt;/math&gt; multiplications and &lt;math&gt;4\ N&lt;/math&gt; additions/subtractions within the loop, as well as 4 multiplications and 4 final additions/subtractions, for a total of &lt;math&gt;2 N + 4&lt;/math&gt; multiplications and &lt;math&gt;4 N + 4&lt;/math&gt; additions/subtractions. This is repeated for each of the &lt;math&gt;M&lt;/math&gt; frequencies.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>: To compute a single [[Discrete Fourier transform|DFT]] bin &lt;math&gt;X(f)&lt;/math&gt; for a complex input sequence of length &lt;math&gt;N&lt;/math&gt;, the Goertzel algorithm requires &lt;math&gt;2 N&lt;/math&gt; multiplications and &lt;math&gt;4\ N&lt;/math&gt; additions/subtractions within the loop, as well as 4 multiplications and 4 final additions/subtractions, for a total of &lt;math&gt;2 N + 4&lt;/math&gt; multiplications and &lt;math&gt;4 N + 4&lt;/math&gt; additions/subtractions. This is repeated for each of the &lt;math&gt;M&lt;/math&gt; frequencies.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* In contrast, using an [[Fast Fourier transform|FFT]] on a data set with &lt;math&gt;N&lt;/math&gt; values has complexity &lt;math&gt;O(KN\<del style="font-weight: bold; text-decoration: none;">log </del>N)&lt;/math&gt;.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* In contrast, using an [[Fast Fourier transform|FFT]] on a data set with &lt;math&gt;N&lt;/math&gt; values has complexity &lt;math&gt;O(KN\<ins style="font-weight: bold; text-decoration: none;">log_2(</ins>N<ins style="font-weight: bold; text-decoration: none;">)</ins>)&lt;/math&gt;.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>: This is harder to apply directly because it depends on the FFT algorithm used, but a typical example is a radix-2 FFT, which requires &lt;math&gt;2 \log_2(N)&lt;/math&gt; multiplications and &lt;math&gt;3 \log_2(N)&lt;/math&gt; additions/subtractions per [[Discrete Fourier transform|DFT]] bin, for each of the &lt;math&gt;N&lt;/math&gt; bins.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>: This is harder to apply directly because it depends on the FFT algorithm used, but a typical example is a radix-2 FFT, which requires &lt;math&gt;2 \log_2(N)&lt;/math&gt; multiplications and &lt;math&gt;3 \log_2(N)&lt;/math&gt; additions/subtractions per [[Discrete Fourier transform|DFT]] bin, for each of the &lt;math&gt;N&lt;/math&gt; bins.</div></td> </tr> </table> Ulfran https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&diff=1157913385&oldid=prev Alexf: Reverted edit by Csvidyalay (talk) to last version by 81.215.12.55 2023-05-31T19:29:53Z <p>Reverted edit by <a href="/wiki/Special:Contributions/Csvidyalay" title="Special:Contributions/Csvidyalay">Csvidyalay</a> (<a href="/wiki/User_talk:Csvidyalay" title="User talk:Csvidyalay">talk</a>) to last version by 81.215.12.55</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:29, 31 May 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 3:</td> <td colspan="2" class="diff-lineno">Line 3:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Like the DFT, the Goertzel algorithm analyses one selectable frequency component from a [[discrete signal]].&lt;ref&gt;{{Citation |last=Mock |first=P. |url=http://focus.ti.com/lit/an/spra168/spra168.pdf |title=Add DTMF Generation and Decoding to DSP-μP Designs |journal=EDN |date=March 21, 1985 |issn=0012-7515 }}; also found in DSP Applications with the TMS320 Family, Vol. 1, Texas Instruments, 1989.&lt;/ref&gt;&lt;ref&gt;{{Citation |first=Chiouguey J. |last=Chen |url=http://focus.ti.com/lit/an/spra066/spra066.pdf |title=Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80 DSP| publisher=Texas Instruments |series=Application Report |id=SPRA066 |date=June 1996 }}&lt;/ref&gt;&lt;ref&gt;{{Citation |last=Schmer |first=Gunter |url=http://focus.ti.com/lit/an/spra096a/spra096a.pdf |title=DTMF Tone Generation and Detection: An Implementation Using the TMS320C54x |publisher=Texas Instruments |series=Application Report |id=SPRA096a |date= May 2000 }}&lt;/ref&gt; Unlike direct DFT calculations, the Goertzel algorithm applies a single [[Real number|real-valued]] coefficient at each iteration, using real-valued arithmetic for real-valued input sequences. For covering a full spectrum (except when using for continuous stream of data where coefficients are reused for subsequent calculations, which has computational complexity equivalent of [[sliding DFT]]), the Goertzel algorithm has a [[Computational complexity theory|higher order of complexity]] than [[fast Fourier transform]] (FFT) algorithms, but for computing a small number of selected frequency components, it is more numerically efficient. The simple structure of the Goertzel algorithm makes it well suited to small processors and embedded applications.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Like the DFT, the Goertzel algorithm analyses one selectable frequency component from a [[discrete signal]].&lt;ref&gt;{{Citation |last=Mock |first=P. |url=http://focus.ti.com/lit/an/spra168/spra168.pdf |title=Add DTMF Generation and Decoding to DSP-μP Designs |journal=EDN |date=March 21, 1985 |issn=0012-7515 }}; also found in DSP Applications with the TMS320 Family, Vol. 1, Texas Instruments, 1989.&lt;/ref&gt;&lt;ref&gt;{{Citation |first=Chiouguey J. |last=Chen |url=http://focus.ti.com/lit/an/spra066/spra066.pdf |title=Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80 DSP| publisher=Texas Instruments |series=Application Report |id=SPRA066 |date=June 1996 }}&lt;/ref&gt;&lt;ref&gt;{{Citation |last=Schmer |first=Gunter |url=http://focus.ti.com/lit/an/spra096a/spra096a.pdf |title=DTMF Tone Generation and Detection: An Implementation Using the TMS320C54x |publisher=Texas Instruments |series=Application Report |id=SPRA096a |date= May 2000 }}&lt;/ref&gt; Unlike direct DFT calculations, the Goertzel algorithm applies a single [[Real number|real-valued]] coefficient at each iteration, using real-valued arithmetic for real-valued input sequences. For covering a full spectrum (except when using for continuous stream of data where coefficients are reused for subsequent calculations, which has computational complexity equivalent of [[sliding DFT]]), the Goertzel algorithm has a [[Computational complexity theory|higher order of complexity]] than [[fast Fourier transform]] (FFT) algorithms, but for computing a small number of selected frequency components, it is more numerically efficient. The simple structure of the Goertzel algorithm makes it well suited to small processors and embedded applications.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The Goertzel algorithm is a simple and efficient way to compute the DFT of a signal at a single frequency. It is often used in applications where only a few frequency components are of interest, such as DTMF tone recognition and spectrum analysis.&lt;ref&gt;{{Cite web |last= |first= |date=2023-05-31 |title=Explain About The Goertzel Algorithm In Digital Signal Processing. |url=https://csvidyalay.in/explain-about-the-goertzel-algorithm/ |url-status=live |access-date=2023-05-31 |website=Csvidyalay |language=en-US}}&lt;/ref&gt;</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The Goertzel algorithm can also be used "in reverse" as a sinusoid synthesis function, which requires only 1 multiplication and 1 subtraction per generated sample.&lt;ref&gt;{{Citation |last1=Cheng |first1=Eric |last2=Hudak |first2=Paul |url=http://haskell.cs.yale.edu/wp-content/uploads/2011/01/AudioProc-TR.pdf |archive-url=https://web.archive.org/web/20170328022024/http://haskell.cs.yale.edu/wp-content/uploads/2011/01/AudioProc-TR.pdf |url-status=dead |archive-date=2017-03-28 |title=Audio Processing and Sound Synthesis in Haskell |date=January 2009 }}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The Goertzel algorithm can also be used "in reverse" as a sinusoid synthesis function, which requires only 1 multiplication and 1 subtraction per generated sample.&lt;ref&gt;{{Citation |last1=Cheng |first1=Eric |last2=Hudak |first2=Paul |url=http://haskell.cs.yale.edu/wp-content/uploads/2011/01/AudioProc-TR.pdf |archive-url=https://web.archive.org/web/20170328022024/http://haskell.cs.yale.edu/wp-content/uploads/2011/01/AudioProc-TR.pdf |url-status=dead |archive-date=2017-03-28 |title=Audio Processing and Sound Synthesis in Haskell |date=January 2009 }}&lt;/ref&gt;</div></td> </tr> </table> Alexf