<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Goertzel-Algorithmus</id>
	<title>Goertzel-Algorithmus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Goertzel-Algorithmus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Goertzel-Algorithmus&amp;action=history"/>
	<updated>2026-05-22T10:59:35Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Goertzel-Algorithmus&amp;diff=789639&amp;oldid=prev</id>
		<title>imported&gt;Hybridrix: /* Aufwandsabschätzung */Tippfehler korrigiert, Link zu Kammeyer</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Goertzel-Algorithmus&amp;diff=789639&amp;oldid=prev"/>
		<updated>2025-08-22T16:01:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Aufwandsabschätzung: &lt;/span&gt;Tippfehler korrigiert, Link zu Kammeyer&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Goertzel-Algorithmus&amp;#039;&amp;#039;&amp;#039; ist ein Verfahren aus der [[digitale Signalverarbeitung|digitalen Signalverarbeitung]] und stellt eine besondere Form der [[Diskrete Fourier-Transformation|diskreten Fourier-Transformation]] (DFT) dar. Im Gegensatz zu den verschiedenen schnellen Berechnungsmethoden bei der diskreten schnellen Fourier-Transformation [[Schnelle_Fourier-Transformation|(FFT)]], die immer alle diskreten [[Frequenzspektrum|Spektral]]&amp;lt;nowiki/&amp;gt;komponenten in einem Block berechnen, ist es mit dem Goertzel-Algorithmus möglich, nur einzelne diskrete Spektralanteile zu berechnen. Entwickelt wurde der Algorithmus 1958 von [[Gerald Goertzel]] (1919–2002).&lt;br /&gt;
&lt;br /&gt;
== Funktion ==&lt;br /&gt;
Der Algorithmus basiert auf einer Struktur bestehend aus einem [[digitales Filter|digitalen Filter]], das um eine Zustandssteuerung erweitert ist. Die Zustände unterteilen die Berechnung in den Rückwärtszweig, in dem die im Zeitbereich abgetasteten Eingangswerte geladen werden, und in einen Vorwärtszweig, der das Ausgangssignal liefert. Die Rückwärtsschleife wird bei jedem digitalen [[Abtastung (Signalverarbeitung)|Abtastwert]] ({{enS|sample}}) durchlaufen und ist als ein [[Filter mit unendlicher Impulsantwort|rekursives digitales Filter]] mit zwei Zustandsspeichern und einem Akkumulator aufgebaut. Der Vorwärtszweig wird erst nach &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Abtastwerten einmalig durchlaufen und liefert aus den Zustandsspeichern den berechneten [[Komplexe Zahl|komplexen]] Ausgangswert&amp;amp;nbsp;– nämlich die spektrale Komponente nach [[Betragsfunktion|Betrag]] und [[Komplexe Zahl#Darstellung von komplexen Zahlen in der komplexen Zahlenebene|Phase]].&lt;br /&gt;
&lt;br /&gt;
Durch die Wahl der dabei eingesetzten Filterkoeffizienten lässt sich die Frequenzselektivität einstellen. Durch die Wahl der Anzahl der Abtastwerte &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; lässt sich der [[Gütefaktor]] beeinflussen. &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; kann beliebige [[Natürliche Zahl|natürliche]] Werte annehmen.&lt;br /&gt;
&lt;br /&gt;
Pro Spektralkomponente ist allerdings eine eigenständige Goertzel-Struktur notwendig. Daher ist dieser Algorithmus vor allem dann vorteilhaft und mit geringerem Rechenaufwand anwendbar, wenn nicht das komplette Spektrum berechnet werden soll, sondern nur einzelne Spektralkomponenten daraus.&lt;br /&gt;
&lt;br /&gt;
Ausführliche mathematische Herleitungen des Algorithmus finden sich in den unten angegebenen Literaturquellen.&lt;br /&gt;
&lt;br /&gt;
== Algorithmus ==&lt;br /&gt;
Von einem [[Digitalsignal|diskreten Signal]] &amp;lt;math&amp;gt;s_i (i=0, ..., N)&amp;lt;/math&amp;gt; wird der Realteil &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt; und der Imaginärteil &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; einer Spektralkomponente &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; über einen [[Rekursion|rekursiven]] [[Algorithmus]] bestimmt.&amp;lt;ref&amp;gt;{{Literatur |Autor=Gerald Goertzel |Titel=An Algorithm for the Evaluation of Finite Trigonometric Series |Sammelwerk=The American Mathematical Monthly |Band=Vol. 65 |Nummer=No. 1 |Ort=Nuclear Development Corporation of Americ,White Plains, N. Y. |Datum=1958-01 |DOI=10.2307/2310304 |Seiten=34-35 |Online=https://courses.cs.washington.edu/courses/cse466/12au/calendar/Goertzel-original.pdf}}&amp;lt;/ref&amp;gt; Die Startbedingungen sind:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;U_{N+2} = U_{N+1} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;U_k = s_k + 2 \cdot U_{k+1} \cdot \cos \omega - U_{k+2}&amp;lt;/math&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;für &amp;lt;math&amp;gt;k = N, N-1, \dotsc, 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ergibt sich:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;C = s_0 + U_1 \cdot \cos \omega - U_2&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;S = U_1 \cdot \sin \omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auf die [[Trigonometrische Funktion|Winkelfunktionen]] &amp;lt;math&amp;gt;\cos \omega&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\sin\omega&amp;lt;/math&amp;gt; muss dabei nur je einmal zugegriffen werden.&lt;br /&gt;
&amp;lt;!-- Wer will, kann diese mathematische Lehrbuch-Herleitungen hier auch tätigen; mir kam es mehr auf den Überblick als auf ein wildes Formel-um-sich-Werfen an :-) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufwandsabschätzung ==&lt;br /&gt;
Pro Berechnung einer Spektralkomponente sind beim Goertzel-Algorithmus &amp;lt;math&amp;gt;2N+2&amp;lt;/math&amp;gt; Additionen/Subtraktionen und &amp;lt;math&amp;gt;N+2&amp;lt;/math&amp;gt; Multiplikationen notwendig.&amp;lt;ref&amp;gt;{{Literatur|Autor=[[Karl-Dirk Kammeyer]], Kristian Kroschel|Titel=Digitale Signalverarbeitung: Filterung und Spektralanalyse mit MATLAB-Übungen|Hrsg=|Sammelwerk=|Band=|Nummer=|Auflage=|Verlag=Springer-Verlag|Ort=|Datum=2009|Seiten=274|ISBN=9783834806109|Online=https://books.google.de/books?id=hmC20iKv8CsC&amp;amp;pg=PA272&amp;amp;dq=goertzel+algorithmus&amp;amp;hl=de&amp;amp;sa=X&amp;amp;ved=0ahUKEwjwzJK3odbUAhVJEVAKHQIwDFQQ6AEIKTAA#v=onepage&amp;amp;q=goertzel%20algorithmus&amp;amp;f=false|Abruf=2017-06-24}}&amp;lt;/ref&amp;gt; Vergleicht man diesen Aufwand mit dem Berechnungsaufwand bei der [[schnelle Fourier-Transformation|schnellen Fourier-Transformation]] (FFT), ist der Goertzel-Algorithmus immer dann effizienter, wenn weniger als &amp;lt;math&amp;gt;\tfrac{5}{6} \cdot \log_2 N&amp;lt;/math&amp;gt; Spektralkomponenten berechnet werden sollen. Denn pro Spektralkomponente (bin) ist eine weitere Goertzelstruktur notwendig, während bei der schnellen Fourier-Transformation der Berechnungsaufwand nur mit &amp;lt;math&amp;gt;N \cdot \log_2 N&amp;lt;/math&amp;gt; ansteigt.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus kann effizient in [[Digitaler Signalprozessor|digitalen Signalprozessoren]] implementiert werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
Die Anwendungen liegen in der Erkennung einzelner Frequenzen (&amp;#039;&amp;#039;Tonerkennung&amp;#039;&amp;#039;) in einem [[Signal#Signal in der Nachrichtentechnik|Signal]] wie beispielsweise bei der Erkennung der Signalisierungsfrequenzen bei dem im [[Telefon]]bereich eingesetzten [[Mehrfrequenzwahlverfahren]]. In diesem Fall muss nur der Betrag der Spektralkomponente ausgewertet werden, was weitere Vereinfachungen in der Berechnung gestattet.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Gerald Goertzel: [https://courses.cs.washington.edu/courses/cse466/12au/calendar/Goertzel-original.pdf &amp;#039;&amp;#039;An Algorithm for the Evaluation of Finite Trigonometric Series.&amp;#039;&amp;#039;] In: &amp;#039;&amp;#039;American Math. Monthly.&amp;#039;&amp;#039; Vol 65. 1958, S. 34–35.&lt;br /&gt;
* Alan V. Oppenheim: &amp;#039;&amp;#039;Zeitdiskrete Signalverarbeitung.&amp;#039;&amp;#039; Oldenbourg Verlag, München 1999, ISBN 3-486-24145-1 (deutsche Übersetzung von &amp;#039;&amp;#039;Discrete-Time Signal Processing&amp;#039;&amp;#039;, Prentice Hall Inc. 1989)&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.mathworks.com/help/toolbox/signal/ref/goertzel.html Goertzel-Algorithmus]&amp;amp;nbsp;– Funktionsaufruf in [[MATLAB]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitale Signalverarbeitung]]&lt;br /&gt;
[[Kategorie:Algorithmus]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Hybridrix</name></author>
	</entry>
</feed>