<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.204.153.229</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.204.153.229"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/89.204.153.229"/>
	<updated>2026-04-10T23:40:06Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Entwurf:_Spektralanalyse_mit_der_FFT&amp;diff=61008</id>
		<title>Entwurf: Spektralanalyse mit der FFT</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Entwurf:_Spektralanalyse_mit_der_FFT&amp;diff=61008"/>
		<updated>2011-10-08T22:01:17Z</updated>

		<summary type="html">&lt;p&gt;89.204.153.229: /* Was macht eine FFT? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Oft findet man im [http://www.mikrocontroller.net/forum/dsp DSP-Forum] Fragen wie: &amp;quot;Ich habe 1024 Signalpunkte gespeichert und darauf eine FFT ausgeführt, was mache ich mit dem Ergebnis?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da muss man zuerst mal die Gegenfrage stellen: was willst du überhaupt mit dem Ergebnis machen?&lt;br /&gt;
&lt;br /&gt;
In der Regel geht es dem Frager darum, ein Leistungsdichtespektrum darzustellen, also einen Plot von der Signalleistung über der Frequenz, ähnlich wie es eine Audio-Spektrumanalysator anzeigt.&lt;br /&gt;
&lt;br /&gt;
== Was macht eine FFT? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FFT&#039;&#039;&#039; (Fast Fourier Transform) ist eigentlich nur eine Bezeichnung für einen Algorithmus zur schnellen Berechnung der &#039;&#039;&#039;DFT&#039;&#039;&#039; (Discrete Fourier Transform) mit bestimmten Randbedingungen. Da die DFT sehr oft mit dem FFT-Algorithmus berechnet wird, verwenden viele beide Begriffe gleichwertig.&lt;br /&gt;
&lt;br /&gt;
Die DFT/FFT berechnet, vereinfacht ausgedrückt, welche Frequenzen im Originalsignal enthalten sind, welche Sinusschwingungen also mit welcher Phase addiert werden müssten, um auf das ursprüngliche Signal zu kommen. Konkret bekommt man für jeden Frequenzpunkt (0 bis Abtastfrequenz/2) eine komplexe Zahl, die Amplitude und Phase der entsprechenden Sinusschwingung repräsentiert.&lt;br /&gt;
&lt;br /&gt;
Grafisch lässt sich die FFT so interpretieren, dass ein orthogonales Koordinatensystem bestehend aus Sin/Cos auf das Signal angewendet wird, um dessen Vektoranteile in diesem Koordinatensystem zu bestimmen, die dann zu Betrag (Länge) und Phase (Winkel) umgerechnet werden.&lt;br /&gt;
 &lt;br /&gt;
Eine FFT arbeitet daher grundsätzlich mit komplexen Signalen, das heißt man gibt ein Signal mit einem Real- und Imaginärteil herein, und heraus kommt ein Spektrum mit einem Real- und Imaginärteil. Arbeitet man mit rein reellen Signalen (der Normalfall), dann setzt man den Imaginärteil des Eingangssignals einfach auf 0. Ansonsten gibt es auch spezielle FFT-Implementierungen für rein reelle Signale, und auch ein paar Tricks um die Transformation von rein reellen Signalen mit komplexen FFTs beschleunigen kann. Darauf soll hier aber erst mal nicht eingegangen werden.&lt;br /&gt;
&lt;br /&gt;
== Leistungsdichte ==&lt;br /&gt;
&lt;br /&gt;
Oft interessiert man sich nicht für die Phasen der Sinuskomponenten des Signals, sondern nur für die Beträge, bzw. nach Quadrierung die Leistung. Wenn man die Beträge der komplexen Zahlen quadriert erhält man das sogenannte Leistungsdichtespektrum des Signals, kurz &#039;&#039;&#039;PSD&#039;&#039;&#039; (Power Spectral Density).&lt;br /&gt;
&lt;br /&gt;
(Plot Zeitsignal -&amp;gt; PSD)&lt;br /&gt;
&lt;br /&gt;
== Fensterung ==&lt;br /&gt;
&lt;br /&gt;
(Plot 1. abgeschnittener Sinus, 2. mit Fensterung)&lt;br /&gt;
&lt;br /&gt;
== Realität: stochastische Signale ==&lt;br /&gt;
&lt;br /&gt;
In realen Anwendungen hat man meist kein Signal mit einer definierten Form wie einen Sinus, sondern Signale von denen man nicht wissen wie sie aussehen, die sich ständig ändern, und von denen man nur Erwartungswerte kennt, z.&amp;amp;nbsp;B. den Mittelwert oder die Leistung. Solche Signale nennt man Zufallssignale oder &#039;&#039;&#039;stochastische Signale&#039;&#039;&#039;. Wenn wir ein Stück aus so einem Signal, hier als Beispiel ein Sprachsignal, ausschneiden, fenstern, FFT-transformieren, den Betrag bilden und quadrieren, dann sieht das Ergebnis zum Beispiel so aus:&lt;br /&gt;
&lt;br /&gt;
(Plot gefenstertes Sprachsignal, Spektrum)&lt;br /&gt;
&lt;br /&gt;
== Mittelung: Die Welch-Methode ==&lt;br /&gt;
&lt;br /&gt;
Diese Varianz zu reduzieren geht glücklicherweise sehr einfach: man bildet einen Mittelwert über die FFTs von mehreren Blöcken. Wie viele Blöcke man verwendet bestimmt die Reaktionszeit des Spektrums auf Änderungen. Ein weiterer Faktor ist die Überlappung zwischen den Blöcken, hierfür wird meistens 50% gewählt.&lt;br /&gt;
&lt;br /&gt;
(Plot gemitteltes Spektrum)&lt;br /&gt;
&lt;br /&gt;
== Mittelung: Rekursiv ==&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil bei der Welch-Methode ist der hohe Speicherbedarf, da die Ergebnisse aller Blöcke über die gemittelt werden soll ja irgendwo gespeichert werden müssen. Alternativ kann man daher eine rekursive Mittelung verwenden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S_{neu} = S_{alt} \cdot \lambda + \mathrm{FFT}(aktueller Block) \cdot (1 - \lambda)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S_{neu} = S_{alt} \cdot 0.99 + \mathrm{FFT}(aktueller Block) \cdot 0.01&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt ist neben dem Speicher für das FFT-Ergebnis und das Spektrum kein zusätzlicher Speicher mehr nötig.&lt;br /&gt;
&lt;br /&gt;
Auch hier stellt sich wieder die Frage welche Fensterung verwendet wird, und ob aufeinanderfolgende Datenblöcke überlappen sollen oder nicht. Hierfür gelten die selben Überlegungen wie für die Welch-Methode.&lt;br /&gt;
&lt;br /&gt;
Außerdem gilt es natürlich den Parameter &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; zu wählen. In der Praxis ist i.d.R. Ausprobieren angesagt. Wenn man schon eine Mittelungslänge für die Welch-Methode gefunden hat, dann lässt sich mit folgender Faustregel ein äquivalenter Lambda-Faktor für die rekursive Mittelung berechnen&amp;lt;ref&amp;gt;Porat, B.: Second-order equivalence of rectangular and exponential windows in least-squares estimation of Gaussian autoregressive processes&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R = (1 + \lambda)/(1 - \lambda)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Plot gefiltertes Spektrum)&lt;br /&gt;
&lt;br /&gt;
=== Effiziente Implementierung ===&lt;br /&gt;
&lt;br /&gt;
Da Multiplikationen auf vielen Mikrocontrollern aufwändig sind, ist es sinnvoll sich auf einen Faktor &amp;lt;math&amp;gt;\lambda = 1 - 2^{-x}&amp;lt;/math&amp;gt; zu beschränken und die Berechnung mit Schiebeoperationen durchzuführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S_{neu} = S_{alt} \cdot (1 - 2^{-x}) + \mathrm{FFT}(aktueller Block) \cdot 2^{-x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit ein bisschen Umstellen und Ersetzen der Multiplikation mit &amp;lt;math&amp;gt;2^{-x}&amp;lt;/math&amp;gt; durch x-faches Rechtsschieben kommt man auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Differenz = \mathrm{FFT}(aktueller Block) - S_{alt}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Aenderung = Differenz &amp;gt;&amp;gt; x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S_{neu} = S_{alt} + Aenderung&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil der rekursiven Mittelung ist, dass Lambda-Werte sehr nahe bei 1 (bzw. ein großer Wert x) dazu führen können, dass &amp;quot;Aenderung&amp;quot; durch die begrenzte Genauigkeit immer 0 ist, und sich &amp;lt;math&amp;gt;S_{neu}&amp;lt;/math&amp;gt; deshalb nicht ändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:DSP]]&lt;/div&gt;</summary>
		<author><name>89.204.153.229</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=61006</id>
		<title>Abtasttheorem</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=61006"/>
		<updated>2011-10-08T21:55:59Z</updated>

		<summary type="html">&lt;p&gt;89.204.153.229: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das sogenannte &#039;Abtasttheorem&#039; von Nyquist und Shannon beschreibt die Tatsache, dass sich ein beliebig geformtes analoges Signal immer dann exakt wiederherstellen lässt, wenn die Abtastrate beim Digitalisieren und damit die Dichte der Stützpunkte größer ist, als die höchste im Signal enthaltene Oberwelle.&lt;br /&gt;
&lt;br /&gt;
Dies erklart sich dadurch, dass beim späteren Rekonstruieren ein ideales Tiefpassfilter theoretisch wieder einen oberwellenfreien Sinus zwischen den Stützstellen generieren kann, mit dem es möglich ist, die maximale Krümmung im Ursignal, die ein Mass für die maximale Änderungsgeschwindigkeit darstellt, abzubilden.&lt;br /&gt;
&lt;br /&gt;
Höhere Frequenzen, die im Ursignal enthalten waren, können nicht wieder hergestellt werden. Im Gegenteil: Sie verursachen beim Digitalisieren sogenannte aliasing Fehler, die dazu führen, dass falsche Amplitudenwerte erfasst werden, die bei der Rekonstruktion zu ebenfalls falschen Amplitudenverläufen des erzeugten Signals führen.&lt;br /&gt;
&lt;br /&gt;
Ebenso ist festzustellen, dass aufgrund der Unzulänglichkeiten realer Filter die theoretisch exakt mögliche Rekonstruktion des Signals in der Praxis nicht gelingt. Bei der künstlichen Erzeugung von Sinuswellen z.B., wie bei der [[DDS]], liegen mathematisch exakte Amplitudenwerte vor, dennoch kommt man mit den generierten Sinuswellen praktisch nur bis an 70%-80% der halben Abtastfrequenz heran.&lt;br /&gt;
&lt;br /&gt;
Daher muss je nach Qualitätsanspruch sowohl bei der Digitalsierung als auch der Rekonstruktion des Signals mit deutlich höheren Abtastfrequenzen gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Signalgeneratoren]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Datenübertragung]]&lt;br /&gt;
[[Kategorie:Signalverarbeitung]]&lt;/div&gt;</summary>
		<author><name>89.204.153.229</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=61005</id>
		<title>Abtasttheorem</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=61005"/>
		<updated>2011-10-08T21:53:27Z</updated>

		<summary type="html">&lt;p&gt;89.204.153.229: kat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das sogenannte &#039;Abtasttheorem&#039; von Nyquist und Shannon beschreibt die Tatsache, dass sich ein beliebig geformtes analoges Signal immer dann exakt wiederherstellen lässt, wenn die Abtastrate beim Digitalisieren und damit die Dichte der Stützpunkte größer ist, als die höchste im Signal enthaltene Oberwelle.&lt;br /&gt;
&lt;br /&gt;
Dies erklart sich dadurch, dass beim späteren Rekonstruieren ein ideales Tiefpassfilter theoretisch wieder einen oberwellenfreien Sinus zwischen den Stützstellen generieren kann, mit dem es möglich ist, die maximale Krümmung im Ursignal, die ein Mass für die maximale Änderungsgeschwindigkeit darstellt, abzubilden.&lt;br /&gt;
&lt;br /&gt;
Höhere Frequenzen, die im Ursignal enthalten waren, können nicht wieder hergestellt werden. Im Gegenteil: Sie verursachen beim Digitalisieren sogenannte aliasing Fehler, die dazu führen, dass falsche Amplitudenwerte erfasst werden, die bei der Rekonstruktion zu ebenfalls falschen Amplitudenverläufen des erzeugten Signals führen.&lt;br /&gt;
&lt;br /&gt;
Ebenso ist festzustellen, dass aufgrund der Unzulänglichkeiten realer Filter die theoretisch exakt mögliche Rekonstruktion des Signals in der Praxis nicht gelingt. Bei der künstlichen Erzeugung von Sinuswellen z.B., wie bei der [[DDS]], liegen mathematisch exakte Amplitudenwerte vor, dennoch kommt man mit den generierten Sinuswellen praktisch nur bis an 70%-80% der halben Abtastfrequenz heran.&lt;br /&gt;
&lt;br /&gt;
Daher muss je nach Qualitätsanspruch sowohl bei der Digitalsierung als auch der Rekonstruktion des Signals mit deutlich höheren Abtastfrequenzen gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Signalgeneratoren, Grundlagen, Datenübertragung]]&lt;/div&gt;</summary>
		<author><name>89.204.153.229</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=61004</id>
		<title>Abtasttheorem</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=61004"/>
		<updated>2011-10-08T21:50:27Z</updated>

		<summary type="html">&lt;p&gt;89.204.153.229: neu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das sogenannte &#039;Abtasttheorem&#039; von Nyquist und Shannon beschreibt die Tatsache, dass sich ein beliebig geformtes analoges Signal immer dann exakt wiederherstellen lässt, wenn die Abtastrate beim Digitalisieren und damit die Dichte der Stützpunkte größer ist, als die höchste im Signal enthaltene Oberwelle.&lt;br /&gt;
&lt;br /&gt;
Dies erklart sich dadurch, dass beim späteren Rekonstruieren ein ideales Tiefpassfilter theoretisch wieder einen oberwellenfreien Sinus zwischen den Stützstellen generieren kann, mit dem es möglich ist, die maximale Krümmung im Ursignal, die ein Mass für die maximale Änderungsgeschwindigkeit darstellt, abzubilden.&lt;br /&gt;
&lt;br /&gt;
Höhere Frequenzen, die im Ursignal enthalten waren, können nicht wieder hergestellt werden. Im Gegenteil: Sie verursachen beim Digitalisieren sogenannte aliasing Fehler, die dazu führen, dass falsche Amplitudenwerte erfasst werden, die bei der Rekonstruktion zu ebenfalls falschen Amplitudenverläufen des erzeugten Signals führen.&lt;br /&gt;
&lt;br /&gt;
Ebenso ist festzustellen, dass aufgrund der Unzulänglichkeiten realer Filter die theoretisch exakt mögliche Rekonstruktion des Signals in der Praxis nicht gelingt. Bei der künstlichen Erzeugung von Sinuswellen z.B., wie bei der [[DDS]], liegen mathematisch exakte Amplitudenwerte vor, dennoch kommt man mit den generierten Sinuswellen praktisch nur bis an 70%-80% der halben Abtastfrequenz heran.&lt;br /&gt;
&lt;br /&gt;
Daher muss je nach Qualitätsanspruch sowohl bei der Digitalsierung als auch der Rekonstruktion des Signals mit deutlich höheren Abtastfrequenzen gearbeitet werden.&lt;/div&gt;</summary>
		<author><name>89.204.153.229</name></author>
	</entry>
</feed>