<?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=Segmentierte_Faltung</id>
	<title>Segmentierte Faltung - 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=Segmentierte_Faltung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Segmentierte_Faltung&amp;action=history"/>
	<updated>2026-06-05T10:02:57Z</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=Segmentierte_Faltung&amp;diff=778456&amp;oldid=prev</id>
		<title>imported&gt;Hybridrix: /* Literatur */Link zu Kammeyer</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Segmentierte_Faltung&amp;diff=778456&amp;oldid=prev"/>
		<updated>2025-08-22T16:46:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Literatur: &lt;/span&gt;Link zu Kammeyer&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;segmentierte Faltung&amp;#039;&amp;#039;&amp;#039; (englisch &amp;#039;&amp;#039;&amp;#039;overlap add&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;OA&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;OLA&amp;#039;&amp;#039;&amp;#039;) ist ein Verfahren zur [[Schnelle Faltung|Schnellen Faltung]] und wird in der [[digitale Signalverarbeitung|digitalen Signalverarbeitung]] eingesetzt. Dabei wird eine Eingangsfolge in einander nicht überlappende Teilfolgen zerlegt. Diese Segmente werden mit Nullen aufgefüllt, von denen dann die [[Diskrete_Fourier-Transformation|DFT]] (bzw. [[Schnelle_Fourier-Transformation|FFT]]) gebildet wird. Das Ergebnis bildet einen Teil der Ausgangsfolge, bei deren Zusammensetzung die Überlappungsbereiche – im Gegensatz zum [[Overlap-Save-Verfahren]] – addiert werden. Das Ziel dieses Verfahrens ist es, die [[zyklische Faltung]]soperation der zur schnellen Faltung eingesetzten [[schnelle Fourier-Transformation|schnellen Fourier-Transformation]] in die aperiodische Faltungsoperation zu überführen. Bei der segmentierten Faltung können, im Gegensatz zu dem Overlap-Save-Verfahren, prinzipbedingte [[Laufzeit (Elektrotechnik)|Signallaufzeiten]] auftreten, welche im Bereich der Dauer eines Blockes zur schnellen Fourier-Transformation liegen.&lt;br /&gt;
&lt;br /&gt;
In den Anwendungen wird die segmentierte Faltung zur effizienten Implementierung von [[FIR-Filter]]n höherer Ordnung verwendet. Die segmentierte Faltung hat dabei im Gegensatz zur direkten Implementierung der aperiodischen Faltungsoperation in [[digitaler Signalprozessor|digitalen Signalprozessoren]] (DSP) den Vorteil, Ressourcen wie Speicher oder Rechenzeit zu sparen.&lt;br /&gt;
&lt;br /&gt;
== Verfahren ==&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
[[Datei:Depiction of overlap-add algorithm.png|rechts|miniatur|Grafische Darstellung der schnellen Faltung mittels segmentierter Faltung]]&lt;br /&gt;
Die direkte Ausführung der aperiodischen Faltungsoperation zwischen einer beliebig langen Eingangsfolge &amp;#039;&amp;#039;x&amp;#039;&amp;#039;[n] und der [[Impulsantwort]] &amp;#039;&amp;#039;h&amp;#039;&amp;#039;[n] der Länge &amp;#039;&amp;#039;M&amp;#039;&amp;#039; ergibt die Ausgangsfolge &amp;#039;&amp;#039;y&amp;#039;&amp;#039;[n]:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; y[n] = x[n] * h[n] \ \stackrel{\mathrm{def}}{=} \ \sum_{m=-\infty}^{\infty} h[m] \cdot x[n-m]&lt;br /&gt;
= \sum_{m=1}^{M} h[m] \cdot x[n-m]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wobei &amp;#039;&amp;#039;h&amp;#039;&amp;#039;[m] außerhalb des Intervalls [1, M] gleich 0 gesetzt ist. Dieses Verfahren zur [[schnelle Faltung|schnellen Faltung]] beruht auf der folgenden Idee:&lt;br /&gt;
* Das unendlich lange Eingangssignal wird in kurze Abschnitte der Länge &amp;#039;&amp;#039;L&amp;#039;&amp;#039; aufgeteilt, welche im Folgenden mit dem Index &amp;#039;&amp;#039;k&amp;#039;&amp;#039; zur Unterscheidung versehen sind.&lt;br /&gt;
* Da das Ergebnis der Faltung eines Abschnittes der Länge &amp;#039;&amp;#039;L&amp;#039;&amp;#039; mit einer Funktion der Länge &amp;#039;&amp;#039;M&amp;#039;&amp;#039; &amp;#039;&amp;#039;L+M&amp;#039;&amp;#039; Werte lang ungleich 0 sein kann und keine Information vom Ergebnis verlorengehen soll, wird jeder der Abschnitte &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; mit &amp;#039;&amp;#039;M&amp;#039;&amp;#039; Nullen aufgefüllt (dies wird auch als &amp;#039;&amp;#039;Zero-Padding&amp;#039;&amp;#039; bezeichnet), um das Ergebnis der Faltungsoperation auf die Länge &amp;#039;&amp;#039;L+M&amp;#039;&amp;#039; zu bringen:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_k[n]  \ \stackrel{\mathrm{def}}{=}&lt;br /&gt;
\begin{cases}&lt;br /&gt;
x[n+kL] &amp;amp; n=1,2,\ldots,L\\0&lt;br /&gt;
 &amp;amp; \textrm{ansonsten}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
* Nun werden die Ergebnisse der einzelnen Faltungen dort addiert, wo sich die einzelnen Faltungsprodukte überlappen, und das Ergebnis dieser Operation entspricht der Faltung der unendlich langen Eingangsfolge.&lt;br /&gt;
&lt;br /&gt;
=== Mathematische Beschreibung ===&lt;br /&gt;
Die Eingangsfolge &amp;#039;&amp;#039;x&amp;#039;&amp;#039;[n] besteht aus der Summe der Teilfolgen &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;[n]&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;x[n] = \sum_{k} x_k[n-kL]&amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
womit die Ausgangsfolge &amp;#039;&amp;#039;y&amp;#039;&amp;#039;[n] als Summe einzelner Faltungen dargestellt werden kann:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
y[n] = \left(\sum_{k} x_k[n-kL]\right) * h[n] &amp;amp;= \sum_{k} \left(x_k[n-kL]* h[n]\right)\\&lt;br /&gt;
&amp;amp;= \sum_{k} y_k[n-kL]&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ausgangsteilfolgen&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;y_k[n] \ \stackrel{\mathrm{def}}{=} \ x_k[n]*h[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sind außerhalb des Intervalls [1,L+M-1] Null. Für jeden Wert des Parameters &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, der größer-gleich als &amp;#039;&amp;#039;L&amp;#039;&amp;#039;+&amp;#039;&amp;#039;M&amp;#039;&amp;#039;-1 gewählt sein muss, ergibt sich die zirkulare Faltungsoperation der Ausgangsfolge. Die einzelnen Ausgabefolgen &amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;[k] überlappten sich in den Intervallen [k(L+1),k(L+M)], und durch die Summierung wird die Ausgabefolge &amp;#039;&amp;#039;y&amp;#039;&amp;#039;[k] gebildet.&lt;br /&gt;
&lt;br /&gt;
=== Vorteile dieses Verfahrens ===&lt;br /&gt;
Der Vorteil besteht darin, dass die zirkulare Faltungsoperation zur Bildung der Teilfolgen &amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt; effizient in Form der [[schnelle Fourier-Transformation|schnellen Fourier-Transformation]] (FFT) beziehungsweise der inversen schnellen Fourier-Transformation (IFFT) nach folgender Form implementiert werden kann:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;y_k[n] = \textrm{IFFT}\left(\textrm{FFT}\left(x_k[n]\right)\cdot\textrm{FFT}\left(h[n]\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je nach verwendeten FFT-Algorithmus ist es sinnvoll, die konkrete Blocklänge &amp;#039;&amp;#039;N&amp;#039;&amp;#039; zur Berechnung der zirkularen Teilfaltungen abzustimmen. Bei Verwendung des FFT-Algorithmus nach &amp;#039;&amp;#039;Cooley&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Tukey&amp;#039;&amp;#039; ([[Radix-2-Algorithmus]]) ist es günstig, die Blocklänge als Zweierpotenz zu wählen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;N = L + M = 2^p, \quad  p \in \N&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pseudocode ===&lt;br /&gt;
In Abhängigkeit vom FFT-Algorithmus &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; wählen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
H = FFT(h,N)&lt;br /&gt;
i = 1&lt;br /&gt;
while i &amp;lt;= Nx&lt;br /&gt;
    il = min(i+L-1,Nx)&lt;br /&gt;
    yt = IFFT( FFT(x(i:il),N) * H, N)&lt;br /&gt;
    k  = min(i+N-1,Nx)&lt;br /&gt;
    y(i:k) = y(i:k) + yt    (die überlappenden Bereiche addieren)&lt;br /&gt;
    i = i+L&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=[[Karl-Dirk Kammeyer]], Kristian Kroschel&lt;br /&gt;
   |Titel=Digitale Signalverarbeitung&lt;br /&gt;
   |Auflage=6.&lt;br /&gt;
   |Verlag=Teubner&lt;br /&gt;
   |Datum=2006&lt;br /&gt;
   |ISBN=3-8351-0072-6}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Alan V. Oppenheim, Ronald W. Schafer&lt;br /&gt;
   |Titel=Zeitdiskrete Signalverarbeitung&lt;br /&gt;
   |Auflage=3.&lt;br /&gt;
   |Verlag=R.Oldenbourg&lt;br /&gt;
   |Datum=1999&lt;br /&gt;
   |ISBN=3-486-24145-1}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Steven W. Smith&lt;br /&gt;
   |Titel=The Scientist and Engineer&amp;#039;s Guide to Digital Signal Processing&lt;br /&gt;
   |Auflage=&lt;br /&gt;
   |Verlag=Elsevier Ltd.&lt;br /&gt;
   |Ort=Oxford&lt;br /&gt;
   |Datum=2002&lt;br /&gt;
   |ISBN=978-0-7506-7444-7&lt;br /&gt;
   |Kapitel=18&lt;br /&gt;
   |Sprache=en&lt;br /&gt;
   |Online=http://www.dspguide.com/}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.dspguide.com/ch18/2.htm www.dspguide.com/ch18/2.htm]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitale Signalverarbeitung]]&lt;br /&gt;
[[Kategorie:Algorithmus]]&lt;br /&gt;
[[Kategorie:Filter (Elektrotechnik)|!]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Hybridrix</name></author>
	</entry>
</feed>