<?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=92.74.95.249</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=92.74.95.249"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/92.74.95.249"/>
	<updated>2026-04-10T13:04:25Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=62666</id>
		<title>Abtasttheorem</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Abtasttheorem&amp;diff=62666"/>
		<updated>2011-12-22T21:01:37Z</updated>

		<summary type="html">&lt;p&gt;92.74.95.249: &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 Abtastfrequenz beim Digitalisieren und damit die Dichte der Stützpunkte mehr als doppelt so hoch ist, wie die höchste, im Signal enthaltene Oberwelle.&lt;br /&gt;
&lt;br /&gt;
Dies erklärt 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>92.74.95.249</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Filter&amp;diff=62664</id>
		<title>Filter</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Filter&amp;diff=62664"/>
		<updated>2011-12-22T20:54:41Z</updated>

		<summary type="html">&lt;p&gt;92.74.95.249: /* Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Als Filter bezeichnet man in der Elektronik eine Schaltung, die die Frequenzanteile eines Signals unterschiedlich stark abschwächt oder betont. Im Bereich der Signalverarbeitung mit Software werden Filter mathematisch nachgebildet.&lt;br /&gt;
&lt;br /&gt;
=== Tiefpass ===&lt;br /&gt;
&lt;br /&gt;
Ein TP filtert Frequenzen oberhalb der Grenzfrequenz weg. Der einfachste passive Tiefpass besteht aus einer R/C-Kombination.&lt;br /&gt;
&lt;br /&gt;
         R&lt;br /&gt;
        ___&lt;br /&gt;
 o-----|___|----+----o&lt;br /&gt;
                |&lt;br /&gt;
                |&lt;br /&gt;
               ---&lt;br /&gt;
               --- C&lt;br /&gt;
                |&lt;br /&gt;
                |&lt;br /&gt;
                |&lt;br /&gt;
               GND&lt;br /&gt;
&lt;br /&gt;
==== Grenzfrequenz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_g = \frac{1}{2 \pi \cdot R \cdot C}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Grenzfrequenz &amp;lt;math&amp;gt;f_g&amp;lt;/math&amp;gt; besteht zwischen Eingangssignal und Ausgangssignal eine Phasenverschiebung von 45&amp;amp;deg;.&lt;br /&gt;
&lt;br /&gt;
=== Hochpass ===&lt;br /&gt;
&lt;br /&gt;
Ein HP filtert Frequenzen unterhalb seiner Grenzfrequenz weg, d.h. er lässt Frequenzen oberhalb passieren.&lt;br /&gt;
&lt;br /&gt;
=== Bandpass ===&lt;br /&gt;
&lt;br /&gt;
Ein BP lässt sich als Kombination von HP und TP auffassen. Er lässt Frequenzen zwischen zwei Grenzwerten durch.&lt;br /&gt;
&lt;br /&gt;
=== Notch-Filter ===&lt;br /&gt;
Das notch Filter nimmt eine bestimmte Frequenz aus dem Spektrum heraus.&lt;br /&gt;
&lt;br /&gt;
== Realisierung ==&lt;br /&gt;
&lt;br /&gt;
=== Analog ===&lt;br /&gt;
&lt;br /&gt;
Analoge Filter werden aus elektronischen oder mechanischen Bauteilen aufgebaut. In der Elektronik dienen sie der analogen Signalbearbeitung, in der Mechanik der Beeinflussung von Schwingungen. Beispielsweise werden durch Verkettung von schwingenden Feder-Masse-Systemen akustische Dämpfer ausgebildet.&lt;br /&gt;
&lt;br /&gt;
Analoge Filter haben bis auf eine systembedingte Anstiegszeit keine Reaktionsverzögerung bzw Latenz.&lt;br /&gt;
&lt;br /&gt;
=== Digital ===&lt;br /&gt;
Hier unterscheiden wir im Wesentlichen zwischen IIR- und FIR-Filtern. Der Algorithmus und der Rechenaufwand ist - wie die Effizienz - sehr verschieden. Speziell beim IIR muss man aufpassen, dass die Filterstufen nicht übersteuern, da IIR-Filter grundsätzlich instabil sein können.&lt;br /&gt;
&lt;br /&gt;
Digitale Filter haben neben einer Anstiegszeit eine rechenzeitbedingte Latenz.&lt;br /&gt;
&lt;br /&gt;
==== Aufbau der Digitalfilter ====&lt;br /&gt;
Ein digitales Filter besteht aus einem Speicher, in den nacheinander die einzelnen Daten eines Datenstromes hineingeladen und mit Koeffizienten multipliziert werden. Die Summe über einen definierten Bereich, der Zahl der sog. Taps, ist der Filterwert, der gfs noch durch die Zahl der Taps dividiert wird. Die Zahl der Taps ist massgeblich für die Güte und den Frequenzgang des Filters.&lt;br /&gt;
&lt;br /&gt;
Die Filterkoeffizienten rühren aus der Überlagerung mit Schwingungen genau der Frequenzen, die man herausselektieren möchte. Im einfachsten Fall multipliziert man einen eingehenden Datenstrom mit einer COS-Schwingung (im komplexen Fall auch mit der Sinus-Schwingung) und erhält eine Resonanz: Frequenzen im Datenstrom, die genau der Filterfrequenz entsprechen, werden logischerweise komplett durchgelassen. Frequenzen links und rechts davon mit zunehmender Abweichung der Filterfrequenz immer schlechter. Durch Überlagerung mehrerer solcher Frequenzen erhält man eine Addiotion der COS-Funktionen und immer mehr Frequenzen werden durch das Filter durchgelassen. Mathematisch kann man dies allgemein formulieren und z.B. für alle Frequenzen abwärts gegen Null integrieren, wodurch man einen Tiefpass erhält.&lt;br /&gt;
&lt;br /&gt;
Die Filterkoeffizienten sind selbst überlagerbar, d.h. wenn man von einem Koeffizientensatz eines Tiefpasses, der auf 100kHz ausgelegt wurde, einen TP-Koeffizientensatz, welcher auf 1kHz ausgelegt wurde, abzieht, erhält man automatisch ein Bandpassfilter 1kHz-100kHz.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel ====&lt;br /&gt;
&lt;br /&gt;
Zuerst berechnen wir die Filterkoeffizienten mithilfe folgender Daten:&lt;br /&gt;
&lt;br /&gt;
# Filterart&lt;br /&gt;
# Ordnung&lt;br /&gt;
# Sample-Frequenz&lt;br /&gt;
# Grenzfrequenz.&lt;br /&gt;
&lt;br /&gt;
Für die &amp;quot;analogen Koeffizienten&amp;quot; findet man z.&amp;amp;nbsp;B. im Tietze-Schenk  Tabellen (nach Art und Ordnung sortiert). Diese rechnet man in &amp;quot;digitale Koeffizienten&amp;quot; um (Verhältnis Sample-Frequenz / Grenzfrequenz geht mit ein). Die Eingangsdaten werden mit diesen Koeffizienten im eigentlichen Filteralgorithmus verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Gleich mal ein Beispiel: krit.Filter, 2.Ordnung, Samplefreq 100Hz, Grenzfreq 2Hz (Verhältnis 50:1)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float afc[] = {&lt;br /&gt;
 /* analoge Filterkoeff.                                          Art     Ordnung */&lt;br /&gt;
    1.287188506, 0.414213562, 0.0,                             /* Krit.   2.      */&lt;br /&gt;
    0.869958884, 0.189207115, 0.0,                             /* Krit.   4.      */&lt;br /&gt;
    0.699891558, 0.122462048, 0.0,                             /* Krit.   6.      */&lt;br /&gt;
    0.601690062, 0.090507733, 0.0,                             /* Krit.   6.      */&lt;br /&gt;
    1.3617,      0.6180,      0.0,                             /* Bessel  2.      */&lt;br /&gt;
    1.3397,      0.4889, 0.7743, 0.3890, 0.0,                  /* Bessel  4.      */&lt;br /&gt;
    1.2217,      0.3887, 0.9686, 0.3505, 0.5131, 0.2756, 0.0,  /* Bessel  6.      */&lt;br /&gt;
    0.0&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
&lt;br /&gt;
 AFC: A0= 0.870000   A1= 0.189200&lt;br /&gt;
 DFC: C1=-1.494553   C0= 0.558423  D0= 0.015967   D1= 0.031934  D2= 0.015967&lt;br /&gt;
 (das sind die gesuchten fünf Werte)&lt;br /&gt;
 &lt;br /&gt;
 DFC: 0x5fa7  0x8ef4  0x0416  0x82d  0x0416 (skaliert mit -16384 bzw. +65536)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für höhere Ordnungen speisen wir das Ergebnis wiederholt (Ordnung / 2 mal) durch den Filter, allerdings (außer beim krit. Filter) jede Stufe mit anderen Koeffizienten.&lt;br /&gt;
&lt;br /&gt;
==== Fensterung ====&lt;br /&gt;
Da die einkommenden Daten nicht immer ganzzahlig in die Tap-Zahl sowie die einzelnen selekttierten Frequenzen passen, ergeben sich Verzerrungen, die man lindern kann, wenn man den Datenstrom mit einer [[Fensterfunktion]] weich ein- und aublendet. Beispiele dafür sind die COS-basierten Funktionen &amp;quot;Hamming&amp;quot;, &amp;quot;von Hann&amp;quot; und &amp;quot;Blackman-Harris&amp;quot; sowie das weit gebräuchliche Kaiser-Fenster, das auf Besselfunktionen beruht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== geeignete Literatur ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.digitalfilter.com www.digitalfilter.com]&lt;br /&gt;
&lt;br /&gt;
Dough Coulter: Digital Audio Processing&lt;br /&gt;
&lt;br /&gt;
Tietze / Schenk: Schaltungstechnik&lt;br /&gt;
&lt;br /&gt;
Fortsetzung / Erweiterung folgt...&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
* Entfernen von Störsignalen aus einem Nutzsignal (z.&amp;amp;nbsp;B. bei einem Funkempfänger)&lt;br /&gt;
* Unterdrückung eines Wechselpannungsanteils&lt;br /&gt;
* Anti-Aliasing -&amp;gt; siehe [[Abtasttheorem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Datenübertragung]]&lt;br /&gt;
[[Kategorie:Signalverarbeitung]]&lt;/div&gt;</summary>
		<author><name>92.74.95.249</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Filter&amp;diff=62663</id>
		<title>Filter</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Filter&amp;diff=62663"/>
		<updated>2011-12-22T20:50:37Z</updated>

		<summary type="html">&lt;p&gt;92.74.95.249: /* Anwendungen */ kat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Als Filter bezeichnet man in der Elektronik eine Schaltung, die die Frequenzanteile eines Signals unterschiedlich stark abschwächt oder betont. Im Bereich der Signalverarbeitung mit Software werden Filter mathematisch nachgebildet.&lt;br /&gt;
&lt;br /&gt;
=== Tiefpass ===&lt;br /&gt;
&lt;br /&gt;
Ein TP filtert Frequenzen oberhalb der Grenzfrequenz weg. Der einfachste passive Tiefpass besteht aus einer R/C-Kombination.&lt;br /&gt;
&lt;br /&gt;
         R&lt;br /&gt;
        ___&lt;br /&gt;
 o-----|___|----+----o&lt;br /&gt;
                |&lt;br /&gt;
                |&lt;br /&gt;
               ---&lt;br /&gt;
               --- C&lt;br /&gt;
                |&lt;br /&gt;
                |&lt;br /&gt;
                |&lt;br /&gt;
               GND&lt;br /&gt;
&lt;br /&gt;
==== Grenzfrequenz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_g = \frac{1}{2 \pi \cdot R \cdot C}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei der Grenzfrequenz &amp;lt;math&amp;gt;f_g&amp;lt;/math&amp;gt; besteht zwischen Eingangssignal und Ausgangssignal eine Phasenverschiebung von 45&amp;amp;deg;.&lt;br /&gt;
&lt;br /&gt;
=== Hochpass ===&lt;br /&gt;
&lt;br /&gt;
Ein HP filtert Frequenzen unterhalb seiner Grenzfrequenz weg, d.h. er lässt Frequenzen oberhalb passieren.&lt;br /&gt;
&lt;br /&gt;
=== Bandpass ===&lt;br /&gt;
&lt;br /&gt;
Ein BP lässt sich als Kombination von HP und TP auffassen. Er lässt Frequenzen zwischen zwei Grenzwerten durch.&lt;br /&gt;
&lt;br /&gt;
=== Notch-Filter ===&lt;br /&gt;
Das notch Filter nimmt eine bestimmte Frequenz aus dem Spektrum heraus.&lt;br /&gt;
&lt;br /&gt;
== Realisierung ==&lt;br /&gt;
&lt;br /&gt;
=== Analog ===&lt;br /&gt;
&lt;br /&gt;
Analoge Filter werden aus elektronischen oder mechanischen Bauteilen aufgebaut. In der Elektronik dienen sie der analogen Signalbearbeitung, in der Mechanik der Beeinflussung von Schwingungen. Beispielsweise werden durch Verkettung von schwingenden Feder-Masse-Systemen akustische Dämpfer ausgebildet.&lt;br /&gt;
&lt;br /&gt;
Analoge Filter haben bis auf eine systembedingte Anstiegszeit keine Reaktionsverzögerung bzw Latenz.&lt;br /&gt;
&lt;br /&gt;
=== Digital ===&lt;br /&gt;
Hier unterscheiden wir im Wesentlichen zwischen IIR- und FIR-Filtern. Der Algorithmus und der Rechenaufwand ist - wie die Effizienz - sehr verschieden. Speziell beim IIR muss man aufpassen, dass die Filterstufen nicht übersteuern, da IIR-Filter grundsätzlich instabil sein können.&lt;br /&gt;
&lt;br /&gt;
Digitale Filter haben neben einer Anstiegszeit eine rechenzeitbedingte Latenz.&lt;br /&gt;
&lt;br /&gt;
==== Aufbau der Digitalfilter ====&lt;br /&gt;
Ein digitales Filter besteht aus einem Speicher, in den nacheinander die einzelnen Daten eines Datenstromes hineingeladen und mit Koeffizienten multipliziert werden. Die Summe über einen definierten Bereich, der Zahl der sog. Taps, ist der Filterwert, der gfs noch durch die Zahl der Taps dividiert wird. Die Zahl der Taps ist massgeblich für die Güte und den Frequenzgang des Filters.&lt;br /&gt;
&lt;br /&gt;
Die Filterkoeffizienten rühren aus der Überlagerung mit Schwingungen genau der Frequenzen, die man herausselektieren möchte. Im einfachsten Fall multipliziert man einen eingehenden Datenstrom mit einer COS-Schwingung (im komplexen Fall auch mit der Sinus-Schwingung) und erhält eine Resonanz: Frequenzen im Datenstrom, die genau der Filterfrequenz entsprechen, werden logischerweise komplett durchgelassen. Frequenzen links und rechts davon mit zunehmender Abweichung der Filterfrequenz immer schlechter. Durch Überlagerung mehrerer solcher Frequenzen erhält man eine Addiotion der COS-Funktionen und immer mehr Frequenzen werden durch das Filter durchgelassen. Mathematisch kann man dies allgemein formulieren und z.B. für alle Frequenzen abwärts gegen Null integrieren, wodurch man einen Tiefpass erhält.&lt;br /&gt;
&lt;br /&gt;
Die Filterkoeffizienten sind selbst überlagerbar, d.h. wenn man von einem Koeffizientensatz eines Tiefpasses, der auf 100kHz ausgelegt wurde, einen TP-Koeffizientensatz, welcher auf 1kHz ausgelegt wurde, abzieht, erhält man automatisch ein Bandpassfilter 1kHz-100kHz.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel ====&lt;br /&gt;
&lt;br /&gt;
Zuerst berechnen wir die Filterkoeffizienten mithilfe folgender Daten:&lt;br /&gt;
&lt;br /&gt;
# Filterart&lt;br /&gt;
# Ordnung&lt;br /&gt;
# Sample-Frequenz&lt;br /&gt;
# Grenzfrequenz.&lt;br /&gt;
&lt;br /&gt;
Für die &amp;quot;analogen Koeffizienten&amp;quot; findet man z.&amp;amp;nbsp;B. im Tietze-Schenk  Tabellen (nach Art und Ordnung sortiert). Diese rechnet man in &amp;quot;digitale Koeffizienten&amp;quot; um (Verhältnis Sample-Frequenz / Grenzfrequenz geht mit ein). Die Eingangsdaten werden mit diesen Koeffizienten im eigentlichen Filteralgorithmus verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Gleich mal ein Beispiel: krit.Filter, 2.Ordnung, Samplefreq 100Hz, Grenzfreq 2Hz (Verhältnis 50:1)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float afc[] = {&lt;br /&gt;
 /* analoge Filterkoeff.                                          Art     Ordnung */&lt;br /&gt;
    1.287188506, 0.414213562, 0.0,                             /* Krit.   2.      */&lt;br /&gt;
    0.869958884, 0.189207115, 0.0,                             /* Krit.   4.      */&lt;br /&gt;
    0.699891558, 0.122462048, 0.0,                             /* Krit.   6.      */&lt;br /&gt;
    0.601690062, 0.090507733, 0.0,                             /* Krit.   6.      */&lt;br /&gt;
    1.3617,      0.6180,      0.0,                             /* Bessel  2.      */&lt;br /&gt;
    1.3397,      0.4889, 0.7743, 0.3890, 0.0,                  /* Bessel  4.      */&lt;br /&gt;
    1.2217,      0.3887, 0.9686, 0.3505, 0.5131, 0.2756, 0.0,  /* Bessel  6.      */&lt;br /&gt;
    0.0&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
&lt;br /&gt;
 AFC: A0= 0.870000   A1= 0.189200&lt;br /&gt;
 DFC: C1=-1.494553   C0= 0.558423  D0= 0.015967   D1= 0.031934  D2= 0.015967&lt;br /&gt;
 (das sind die gesuchten fünf Werte)&lt;br /&gt;
 &lt;br /&gt;
 DFC: 0x5fa7  0x8ef4  0x0416  0x82d  0x0416 (skaliert mit -16384 bzw. +65536)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für höhere Ordnungen speisen wir das Ergebnis wiederholt (Ordnung / 2 mal) durch den Filter, allerdings (außer beim krit. Filter) jede Stufe mit anderen Koeffizienten.&lt;br /&gt;
&lt;br /&gt;
==== Fensterung ====&lt;br /&gt;
Da die einkommenden Daten nicht immer ganzzahlig in die Tap-Zahl sowie die einzelnen selekttierten Frequenzen passen, ergeben sich Verzerrungen, die man lindern kann, wenn man den Datenstrom mit einer [[Fensterfunktion]] weich ein- und aublendet. Beispiele dafür sind die COS-basierten Funktionen &amp;quot;Hamming&amp;quot;, &amp;quot;von Hann&amp;quot; und &amp;quot;Blackman-Harris&amp;quot; sowie das weit gebräuchliche Kaiser-Fenster, das auf Besselfunktionen beruht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== geeignete Literatur ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.digitalfilter.com www.digitalfilter.com]&lt;br /&gt;
&lt;br /&gt;
Dough Coulter: Digital Audio Processing&lt;br /&gt;
&lt;br /&gt;
Tietze / Schenk: Schaltungstechnik&lt;br /&gt;
&lt;br /&gt;
Fortsetzung / Erweiterung folgt...&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
* Entfernen von Störsignalen aus einem Nutzsignal (z.&amp;amp;nbsp;B. bei einem Funkempfänger)&lt;br /&gt;
* Unterdrückung eines Wechselpannungsanteils&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Datenübertragung]]&lt;br /&gt;
[[Kategorie:Signalverarbeitung]]&lt;/div&gt;</summary>
		<author><name>92.74.95.249</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Digitale_Signalverarbeitung&amp;diff=62662</id>
		<title>Digitale Signalverarbeitung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Digitale_Signalverarbeitung&amp;diff=62662"/>
		<updated>2011-12-22T20:49:35Z</updated>

		<summary type="html">&lt;p&gt;92.74.95.249: /* FIR- und IIR-Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
* Modulation/Demodulation zur Datenübertragung (z.&amp;amp;nbsp;B. Telefonmodem, DSL, GSM) - &amp;quot;Software Defined Radio&amp;quot; (SDR)&lt;br /&gt;
* Multimediacodierung (MP3, DivX, JPEG)&lt;br /&gt;
* Bildverarbeitung (Mustererkennung)&lt;br /&gt;
* Echo- und Störgeräuschunterdrückung bei Telefonen, Sprechgarnituren (Headsets) und Hörgeräten&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
Bücher:&lt;br /&gt;
* Oppenheim, Schaefer: &amp;quot;Discrete Time Signal Processing&amp;quot;, ISBN 0131988425&lt;br /&gt;
* Proakis: &amp;quot;Digital Signal Processing&amp;quot;, ISBN 0131873741&lt;br /&gt;
* Lyons: &amp;quot;Understanding Digital Signal Processing&amp;quot;, ISBN 0131089897&lt;br /&gt;
* Smith: &amp;quot;The Scientist and Engineer&#039;s Guide to Digital Signal Processing&amp;quot;, ISBN  075067444X (unter http://dspguide.com/ als PDF verfügbar)&lt;br /&gt;
* Sanjit K. Mitra: &amp;quot;Handbook for Digital Signal Processing&amp;quot; (1993,1312 Seiten), ISBN 0471619957&lt;br /&gt;
&lt;br /&gt;
Foren:&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/list-10-1.html DSP-Forum auf mikrocontroller.net (deutsch)]&lt;br /&gt;
* [http://groups.google.de/group/comp.dsp Newsgroup comp.dsp (Englisch)]&lt;br /&gt;
* [http://www.dsprelated.com/groups.php Discussion Groups (Englisch)]&lt;br /&gt;
&lt;br /&gt;
Webseiten:&lt;br /&gt;
* http://www.dspguru.com/ - FAQs, Infos, Beispielcode, ...&lt;br /&gt;
* http://docs.google.com/View?docid=dg2hppb_4gtgk89 - evtl. interessant als Rohmaterial für diesen Artikel&lt;br /&gt;
* http://www.dsprelated.com - Blogs, Jobs, Comp.DSP, ...&lt;br /&gt;
* http://www.unidsp56.de/ Eine Entwicklungsplattform für den Amateur&lt;br /&gt;
&lt;br /&gt;
== Verfahren ==&lt;br /&gt;
&lt;br /&gt;
=== FIR- und IIR-Filter ===&lt;br /&gt;
&lt;br /&gt;
Die häufigste Aufgabe in der DSV ist das Filtern, das heißt bestimmte Frequenzanteile zu unterdrücken, in der Phase zu verschieben oder zu verstärken. Man kann grundsätzlich zwischen zwei Filterarten unterscheiden:&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;FIR-Filter&#039;&#039;&#039;n (&#039;&#039;&#039;F&#039;&#039;&#039;inite &#039;&#039;&#039;I&#039;&#039;&#039;mpulse &#039;&#039;&#039;R&#039;&#039;&#039;esponse) wird jeder Ausgangswert aus unterschiedlich gewichteten und addierten früheren Eingangswerten zusammengesetzt. Dabei bezeichnet man die maximale Anzahl an vergangenen Werten die bei der Berechnung berücksichtigt werden als &#039;&#039;&#039;Ordnung&#039;&#039;&#039;. Je höher die Ordnung, desto besser die Eigenschaften des Filters (Ripple, Steilheit, Dämpfung), desto höher aber auch der Rechenaufwand.&lt;br /&gt;
&lt;br /&gt;
Merkmale von FIR-Filtern:&lt;br /&gt;
* immer stabil&lt;br /&gt;
* linearer Phasengang -&amp;gt; keine Phasenverzerrungen&lt;br /&gt;
* Ordnungen oft im zwei- bis dreistelligen Bereich&lt;br /&gt;
* problemlos realisierbar!&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu FIR-Filtern werden bei &#039;&#039;&#039;IIR-Filter&#039;&#039;&#039;n (&#039;&#039;&#039;I&#039;&#039;&#039;nfinite &#039;&#039;&#039;I&#039;&#039;&#039;mpulse &#039;&#039;&#039;R&#039;&#039;&#039;esponse) auch frühere &#039;&#039;&#039;Ausgangs&#039;&#039;&#039;werte in die Berechnung des aktuellen Ausgangswertes mit einbezogen. Wie man sich leicht vorstellen kann, kann dadurch die Antwort auf einen Eingangsimpuls theoretisch unendlich lang werden, da jeder Ausgangswert auf den Eingang rückgekoppelt wird.&lt;br /&gt;
&lt;br /&gt;
Merkmale von IIR-Filtern:&lt;br /&gt;
* durch Rundungsfehler kann das [[Filter]] instabil werden -&amp;gt; &amp;quot;Aufschaukeln&amp;quot; durch Rückkopplung -&amp;gt; schwierigere Realisierung&lt;br /&gt;
* kein linearer Phasengang -&amp;gt; verschiedene Frequenzanteile werden durch den Filter unterschiedlich lange verzögert -&amp;gt; &amp;quot;Verzerrung&amp;quot;&lt;br /&gt;
* einziger Vorteil gegenüber FIR: Um einen gewünschten Frequenzgang zu erzielen, ist eine sehr viel niedrigere Ordnung ausreichend -&amp;gt; weniger Rechenaufwand&lt;br /&gt;
* Ordnung üblicherweise &amp;lt; 10&lt;br /&gt;
&lt;br /&gt;
Viele nützliche Informationen zur Realisierung gibt es im [http://www.dspguru.com/info/faqs/ FIR- und IIR-FAQ auf dspguru.com] (der dort erwähnte Sourcecode FirAlgs.c kann [[Media:FirAlgs.c|hier]] direkt heruntergeladen werden).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Berechnungssoftware&#039;&#039;&#039;:&lt;br /&gt;
* [http://www.filter-solutions.com/digital.html Beschreibung der Digitalfiltertypen], [http://www.nuhertz.com/download.html hier kostenlose Testversion Filter Free]&lt;br /&gt;
&lt;br /&gt;
=== FFT ===&lt;br /&gt;
&lt;br /&gt;
Die FFT (Fast Fourier Transform) ist ein schneller Algorithmus zur Berechnung der DFT (Discrete Fourier Transform). Damit bezeichnet man die Transformation eines Zeitsignals (= eine Abfolge von Samples) in den Frequenzbereich (= Frequenzbestandteile des Signals). Die Transformation kann auch ohne Verlust umgekehrt durchgeführt werden, also vom Frequenz- in den Zeitbereich (Inverse Discrete Fourier Transform, IDFT). Eine DFT wird praktisch immer mit dem FFT-Algorithmus realisiert, weshalb die Bezeichnungen FFT/DFT oft gleichwertig verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Die offensichtlichste Anwendung der FFT ist die Darstellung des Frequenzspektrums eines Signals. Aber das ist nur ein kleiner Teil der Anwendungsmöglichkeiten. Viele Verarbeitungen lassen sich im Frequenzbereich einfacher durchführen als im Zeitbereich, z.&amp;amp;nbsp;B. Korrelationen oder sehr lange FIR-Filter. Das zu verarbeitende Signal wird dazu in den Frequenzbereich transformiert, dort manipuliert, und wieder in den Zeitbereich zurücktransformiert. Das klingt vielleicht umständlich, kann aber in der Praxis sehr viel schneller sein als eine Realisierung im Zeitbereich.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/25095 Diskussion: FFT auf dem AVR]&lt;br /&gt;
* [http://sourceforge.net/projects/kissfft/ Kiss FFT] - einfache FFT-Bibliothek, in C, Floating- und Fixed Point, BSD-Lizenz, geeignet für Mikrocontroller&lt;br /&gt;
* [http://www.fftw.org/ FFTW] - &#039;&#039;&#039;die&#039;&#039;&#039; Floating Point FFT-Bibliothek für PCs, GPL-Lizenz&lt;br /&gt;
*[http://www.sprut.de/electronic/pic/16bit/dsp/fft/fft.htm FFT - verständlich auch für Nichtakademiker (Deutsch)]&lt;br /&gt;
* [http://www.science.smith.edu/departments/Physics/fstaff/gfelder/ffteasy/ ffteasy - Einfache Routinen zur FFT]&lt;br /&gt;
&lt;br /&gt;
=== Goertzel-Algorithmus ===&lt;br /&gt;
&lt;br /&gt;
Liegt das Interesse bei der Berechnung einer DFT / FFT nur bei wenigen bestimmten Frequenz-Linien, so gibt es eine weniger rechenaufwendige Alternative mit diesem Algorithmus. Die Grenze, aber der Goertzel-Algo nicht mehr effektiv genug ist liegt grob bei etwa 15% der Spektralfrequenzen.&lt;br /&gt;
&lt;br /&gt;
Das typische Anwendungsgebiet sind DTMF-Dekoder in Software.&lt;br /&gt;
Hierfür sind sogar die üblichen 8-bit-AVR-Controller ausreichend schnell.&lt;br /&gt;
&lt;br /&gt;
=== Signalerzeugung ===&lt;br /&gt;
&lt;br /&gt;
Rechteck-, Sägezahn- und Dreieckssignale lassen sich mit einfachen Zählern realisieren.&lt;br /&gt;
&lt;br /&gt;
Möchte man Sinus- oder beliebige andere Signalformen erzeugen, bietet es sich an vorausberechnete Funktionswerte im Speicher abzulegen und der Reihe nach auszugeben. Eine variable Frequenzeinstellung kann man durch die Methode der Direkten Digitalen Synthese (&#039;&#039;&#039;DDS&#039;&#039;&#039;) realisieren.&lt;br /&gt;
&lt;br /&gt;
* [[Digitaler Funktionsgenerator]] - ausführliche Erklärung des Verfahrens im PDF, Beispielcode für AVR&lt;br /&gt;
* http://www.myplace.nu/avr/minidds/ - noch ein AVR-Projekt&lt;br /&gt;
* http://www.hit.bme.hu/~papay/sci/DDS/start.htm - noch eine Erklärung&lt;br /&gt;
&lt;br /&gt;
Eine weitere Methode zur Realisierung von (mehr oder weniger beliebigen) Funktionen ist die &#039;&#039;&#039;Polynomapproximation&#039;&#039;&#039;. Dabei nähert man die zu erzeugende Funktion durch ein Polynom an und verwendet das Horner-Schema um die einzelnen Funktionswerte zu berechnen. Für ein Polynom der Ordnung N benötigt man damit pro Wert N+1 Multiplikationen (N ist üblicherweise &amp;lt;= 10).&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Zur Entwicklung von Signalverarbeitungsverfahren gibt es eine ganze Reihe von Programmen. Neben kleinen Tools für Filterdesign und spezialisierten Bibliotheken zum Einbinden in eigene Programme gibt es mehrere Mathematikprogramme, mit denen sich Signale verarbeiten und darstellen lassen. Die drei wichtigsten sind Matlab, Octave und Scilab.&lt;br /&gt;
&lt;br /&gt;
=== MATLAB ===&lt;br /&gt;
&lt;br /&gt;
MATLAB ist das Standardprogramm für numerische Mathematik. In der digitalen Signalverarbeitung wird es häufig verwendet, um einen Algorithmus vor der Umsetzung in C-Code oder auf einen DSP zu entwickeln und zu testen. Zum schon recht hohen Preis der Grundsoftware muss man noch einige hundert Euro für diverse Toolboxes einplanen (Signal Processing, Filter Design, Image Processing). Die [http://www.mikrocontroller.net/link/isbn/0979223903 Studentenversion] kostet ca. 80 Euro (die Signal Processing Toolbox und ein paar andere sind bereits enthalten).&lt;br /&gt;
&lt;br /&gt;
MATLAB ist für Windows, Linux, Mac OS X, Solaris und HP-UX erhältlich.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weblinks&#039;&#039;&#039;:&lt;br /&gt;
* http://users.ece.gatech.edu/%7Ebonnie/book/TUTORIAL/tutorial.html - Englischsprachiges MATLAB-Tutorial&lt;br /&gt;
* http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml - MATLAB-Referenz&lt;br /&gt;
* http://www.eng.auburn.edu/~sjreeves/Classes/DSP/DSP.html - MATLAB for DSP (allgemeine Tipps und Hinweise)&lt;br /&gt;
&lt;br /&gt;
=== Octave ===&lt;br /&gt;
&lt;br /&gt;
Das Open-Source-Programm Octave zeichnet sich durch einen hohen Grad an Matlab-Kompatibilität aus; das geht so weit, dass man problemlos die Matlab-Online-Hilfe und Matlab-Einführungen zum Lernen verwenden kann. In dem Zusatzpaket Octave-Forge sind auch viele Funktionen der Matlab-Toolboxes enthalten (z.&amp;amp;nbsp;B. Filterdesign, Signalverarbeitung). Octave ist ein reines Kommandozeilenprogramm, so dass man auf alle Annehmlichkeiten des Matlab-GUI verzichten muss. Zum Plotten wird gnuplot verwendet.&lt;br /&gt;
&lt;br /&gt;
Octave lässt sich auf praktisch jedem Unix kompilieren. Für Windows gibt es ein fertig kompiliertes Paket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weblinks&#039;&#039;&#039;:&lt;br /&gt;
* http://octave.sourceforge.net/ - Übersicht über alle Funktionen von Octave/Octave-Forge&lt;br /&gt;
&lt;br /&gt;
=== Scilab / Scicos ===&lt;br /&gt;
&lt;br /&gt;
Auch das Open-Source-Programmpaket Scilab / Scicos, ähnlich leistungsfähig wie Matlab und seine Zusatzmodule, ist kostenlos und im Quelltext erhältlich. Während die Grundsyntax (Kontrollstrukturen, Ausdrücke) weitgehend Matlab-kompatibel ist, gibt es bei den Funktionen z.T. deutliche Abweichungen. Dafür bietet Scilab / Scicos verglichen mit Octave umfangreichere Möglichkeiten zur grafischen Darstellung, die über das 2D- und 3D-Plotten von Funktionen weit hinausgehen, z.&amp;amp;nbsp;B. lassen sich Linien, Kreise usw. zeichnen.&lt;br /&gt;
&lt;br /&gt;
Scilab / Scicos läuft unter Windows, Linux/Unix und Mac OS X. Für die wichtigsten Linux-Distributionen sind fertige, komplette Binärpakete (RPM, ...) zur einfachen Installation frei verfügbar. Für Windows gibt es ebenfalls ein einfach zu installierendes Komplettpaket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weblinks&#039;&#039;&#039;:&lt;br /&gt;
* [http://www.scilab.org/ Scilab Homepage (Universelles Wissenschaftlich-Technisches Mathematik-Paket)]&lt;br /&gt;
* [http://www.scicos.org/ Scicos Homepage (Modellations- und Simulations-Paket für Scilab, ist im Scilab-Download enthalten)]&lt;br /&gt;
* [http://www-rocq.inria.fr/scicos/scicosmodnum.html ModNum Digital communication toolbox zu Scicos]&lt;br /&gt;
* [http://www.scilab.org/publications/index_publications.php?page=freebooks Übersicht zur Literatur: Webtexte, Bücher und Zeitschriftenartikel]&lt;br /&gt;
&#039;&#039;&#039;Bücher&#039;&#039;&#039;:&lt;br /&gt;
* [http://www.scicos.org/book.html Modeling and Simulation in Scilab/Scicos, (für Version 3.0, aktuell ist Version 4.1.2)]&lt;br /&gt;
&#039;&#039;&#039;Tutorials&#039;&#039;&#039;:&lt;br /&gt;
* [http://wiki.scilab.org/Tutorials?action=AttachFile&amp;amp;do=get&amp;amp;target=signal.pdf Signal Processing with Scilab (1998)], [http://wuarchive.wustl.edu/pub/aminet/misc/math/scilab-doc.lha Beispielfiles dazu lha-gepackt (1996)] [http://aminet.net/package/misc/math/scilab-doc oder hier], [http://viewvc.scilab.org/bin/cgi/viewvc.cgi/trunk/scilab_doc/signal/Nfigs_source/ hier auch einzeln erhältlich]&lt;br /&gt;
* [http://www.scilab.org/publications/delicado/scilab.pdf DSP-Tutorial in spanisch, teilweise aus dem englischen Tutorial entnommen]&lt;br /&gt;
* [http://www.neurotraces.com/scilab/scilab2/index.html Treatment of neurophysiological signals using Scilab, HTML-Texte mit Kapiteln zu Filtern, FFT usw.]&lt;br /&gt;
* [http://www.scilab.org/publications/TELECOM/ComNumSc.zip Digital-Kommunikation - französisches Tutorial, gezipptes Postscript]&lt;br /&gt;
* [http://www.mate.tue.nl/mate/pdfs/6827.pdf Beispielprojekt mit Vergleich SciCos und SciLab]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Ein DSP (&#039;&#039;&#039;D&#039;&#039;&#039;igital &#039;&#039;&#039;S&#039;&#039;&#039;ignal &#039;&#039;&#039;P&#039;&#039;&#039;rocessor) ist eine spezielle CPU mit einem auf die Verarbeitung von Signalen optimierten Kern und Befehlssatz. Unterschieden wird hauptsächlich zwischen Gleitkomma- und Festkomma-DSPs.&lt;br /&gt;
&lt;br /&gt;
Charakteristisches Merkmal vieler DSPs ist eine VLIW-Architektur (&#039;&#039;&#039;V&#039;&#039;&#039;ery &#039;&#039;&#039;L&#039;&#039;&#039;ong &#039;&#039;&#039;I&#039;&#039;&#039;nstruction &#039;&#039;&#039;W&#039;&#039;&#039;ord). Dabei werden Anweisungen für mehrere parallele Ausführungseinheiten (Multiplizierer/Addierer/Akkumulatoren) und mehrere Lade-/Speicherbefehle in einem einzigen, langen Befehlswort kodiert, und in einem Takt ausgeführt. Dazu kommen häufig mehrere gleichzeitig adressierbare Speicherbänke, Unterstützung für Ringpuffer, Schleifen ohne Sprung-Overhead, Bit-Reverse-Adressierung (wichtig für FFT) und Arithmetik mit Sättigungs- statt Überlaufverhalten (wichtig für die Realisierung von IIR-Filtern).&lt;br /&gt;
&lt;br /&gt;
Seit ein paar Jahren beginnen die Grenzen zwischen Mikrocontrollern und DSPs etwas zu verschwimmen. Viele Mikrocontroller werden mit zusätzlichen DSP-Funktionen ausgestattet ([[PICCOLO]], [[dsPIC]], [[ARM]]), während DSPs zunehmend in Richtung der Aufgabenbereiche eines Mikrocontrollers oder Allround-Prozessors vordringen und immer öfter um Unterstützung für Betriebssysteme (MMU) oder I/O-Funktionen wie Ethernet oder USB erweitert werden ([[Blackfin]]).&lt;br /&gt;
&lt;br /&gt;
Eine noch größere DSP-Rechenleistung kann mit programmierbaren Logikbausteinen (&#039;&#039;&#039;[[FPGA]]&#039;&#039;&#039;s) erzielt werden, da die Anzahl gleichzeitig ausführbarer Rechenoperationen nur durch die Größe des FPGAs begrenzt wird. Nachteilig sind die gegenüber DSPs um ein vielfaches höheren Kosten, höherer Stromverbrauch und höherer Entwicklungsaufwand, weshalb FPGAs für Signalverarbeitung nur in sehr speziellen Anwendungen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Aktuelle &#039;&#039;&#039;PC-Prozessoren&#039;&#039;&#039; sind sehr gut für Gleitkomma-Signalverarbeitung geeignet. Wenn keine besonderen Anforderungen an Echtzeitfähigkeit, Strom- oder Platzbedarf gestellt werden, hat ein normaler PC mit Abstand das beste Preis/Leistungsverhältnis. Der erste Schritt bei einem DSP-Projekt sollte somit eine Implementierung auf dem PC sein. Es macht wenig Sinn, ein Eval-Board für einen Signalprozessor zu kaufen und einfach loszulegen.&lt;br /&gt;
&lt;br /&gt;
=== Fest- oder Gleitkomma? ===&lt;br /&gt;
&lt;br /&gt;
Signalverarbeitung auf einem Gleitkomma- (Floating-Point-) Rechner ist grundsätzlich einfacher als auf einem Festkomma- (Fixed-Point-) Rechner. Da die Ungenauigkeiten bei der Rechnung mit Floating-Point-Zahlen in vielen Fällen vernachlässigbar sind, kann man einen Algorithmus i.d.R. 1:1 in Programmcode umsetzen. Hat man nur Festkomma-Rechenoperationen zur Verfügung wird es etwas ungemütlich. Man muss sich Gedanken um die Skalierung der Daten, die Reihenfolge von Rechenoperationen, Überläufe, Rundungsrauschen usw. machen. Da Gleitkomma-DSPs allerdings teurer sind und mehr Strom verbrauchen, werden für Massenprodukte fast ausschließlich Festkomma-DSPs bzw. ASICs mit Festkomma-Rechenwerken verwendet.&lt;br /&gt;
&lt;br /&gt;
=== TI C2000 ===&lt;br /&gt;
&lt;br /&gt;
Eine komplette 32-bit DSC Controller Familie vom low-cost ([http://www.ti.com/corp/docs/landing/f280xx-piccolo/index.htm PICCOLO]) bis high-end Controller mit FPU ([http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=mcu&amp;amp;sectionId=95&amp;amp;tabId=2108&amp;amp;familyId=1414&amp;amp;paramCriteria=no TMS320F28335]).&lt;br /&gt;
Die Peripherie umfasst Mehrkanal A/D Wandler mit 12-bit Aufloesung und bis zu 4 Megasamples Abtastrate. Die PWMs haben einen hochauflösenden Modus, der bis zu 150ps auflösen kann. Als Interface stehen CAN, I2C, schnelle generelle serielle Ports und Quadratureingänge für Drehgeber zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== TI C5000 ===&lt;br /&gt;
&lt;br /&gt;
DSP für Batterieapplikationen. Die gesamte Architektur wurde auf Stromverbrauch optimiert. Dazu werden spezielle Tools zur Verfügung gestellt, die zur Anwendung passende Optimierungslösungen generiert. [[TMS320VC5505 eZDSP USB Stick‎]] mit IDE als preisgünstiges Entwicklungssystem ( &amp;lt; 50€)&lt;br /&gt;
&lt;br /&gt;
=== TI C6000 ===&lt;br /&gt;
&lt;br /&gt;
DSP-Familie vom Marktführer Texas Instruments, enthält sowohl Fest- als auch Gleitkomma-DSPs.&lt;br /&gt;
&lt;br /&gt;
=== TI DM6400 (DaVinci) ===&lt;br /&gt;
&lt;br /&gt;
DSP für Videoanwendungen. Einige Derivate enthalten auch einen ARM9 als Co-Prozessor. Diese Familie wird unter dem Namen [http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=dsp&amp;amp;sectionId=2&amp;amp;tabId=1852&amp;amp;familyId=1300 DaVinci] vermarktet.&lt;br /&gt;
&lt;br /&gt;
=== TI OMAP ===&lt;br /&gt;
&lt;br /&gt;
Prozessor für mobile Geräte, enthält einen ARM-Kern und einen C6000-DSP. Ein interessantes und mit $149 sehr preisgünstiges Evalboard ist das [http://www.beagleboard.org Beagle Board]. Ein kostenloser Assembler für den DSP ist verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== SHARC/TigerSHARC ===&lt;br /&gt;
&lt;br /&gt;
32 Bit Gleitkomma-DSP von Analog Devices.&lt;br /&gt;
&lt;br /&gt;
=== Blackfin ===&lt;br /&gt;
&lt;br /&gt;
Der Blackfin ist ein 16/32 Bit Festkomma-DSP von Analog Devices. Im Gegensatz zu den 16-bittigen Vorgängern ADSP-21xx, die häufig als Co-Prozessoren zur Signalverarbeitung zusammen mit einem Mikrocontroller verwendet werden, geht der Blackfin schon weit in den Einsatzbereich eines Allround-Prozessors hinein. So gibt es z.&amp;amp;nbsp;B. einen Linux-Port für Blackfin, Eval-Boards mit Ethernet, CAN, USB und vielen MB SDRAM. Dank der verbesserten Stromsparfunktionen der BF52x-Reihe ist diese eher neue Architektur vermehrt in mobilen Geräten (Kameras, Mediaplayer, etc.) anzutreffen.&lt;br /&gt;
&lt;br /&gt;
Wichtig für die Entwicklung ist zu wissen:&lt;br /&gt;
&lt;br /&gt;
* Kein Fließkomma-Support in Hardware&lt;br /&gt;
* Keine MMU, keine Unterstützung für virtuelles Memory (kein Unix fork(), etc.)&lt;br /&gt;
&lt;br /&gt;
Unterstützte Entwicklungswerkzeuge:&lt;br /&gt;
&lt;br /&gt;
* Visual DSP++: Hauseigenes Entwicklungstool von Analog Devices, kommerziell&lt;br /&gt;
* GCC: Freie GNU-Umgebung mit Assembler, Compiler, Linker, Debugger&lt;br /&gt;
* Eclipse für uClinux-Entwicklung wie auch &#039;standalone&#039; ohne OS&lt;br /&gt;
&lt;br /&gt;
Aufgrund der ausgereiften GNU-Toolchain ist der Blackfin eine der kostengünstigsten Plattformen für die Entwicklung. Die Tools laufen sowohl unter Windows32 als auch Linux, bevorzugt wird jedoch Linux eingesetzt. Für die Kernel-Entwicklung ist Linux unabdingbar.&lt;br /&gt;
Dank offener JTAG-Spezifikation existieren einige Tools von Drittherstellern zum Hardware-Debugging (In Circuit Emulation) und zur Programmierung:&lt;br /&gt;
&lt;br /&gt;
* [http://www.section5.ch/icebear ICEbear] JTAG: schneller USB-&amp;gt;JTAG adapter&lt;br /&gt;
* [http://www.ronetix.at/ PEEDI] High end JTAG, Ethernet&lt;br /&gt;
* [http://www.bluetechnix.at/rainbow2006/site/blackfin_family/__dev_tools/__gnice_jtag/409/gnice_jtag.aspx gnICE von Bluetechnix]&lt;br /&gt;
* [http://www.analog.com/en/processors-dsp/blackfin/emulator-100/processors/product.html JTAG-Adapter von Analog Devices]&lt;br /&gt;
&lt;br /&gt;
Beide Tools arbeiten auch mit ARM-Prozessoren.&lt;br /&gt;
&lt;br /&gt;
Weitere Links:&lt;br /&gt;
&lt;br /&gt;
* [http://www.analog.com/blackfin Herstellerwebsite]&lt;br /&gt;
* [http://blackfin.uclinux.org/ uClinux Port und GNU toolchain]&lt;br /&gt;
&lt;br /&gt;
=== dsPIC ===&lt;br /&gt;
&lt;br /&gt;
Der [[dsPIC]] ist ein kleiner 16 Bit-Mikrocontroller mit DSP-Funktionen. Mit dem klassischen PIC hat er außer dem Namen nichts gemeinsam.&lt;br /&gt;
&lt;br /&gt;
=== TriCore ===&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;TriCore&#039;&#039;&#039; von Infineon ist ein 32-Bit-Mikrocontroller mit DSP-Funktionen, mit derzeitigem Schwerpunkt im Bereich der High Performance Embedded Real-Time Systems für Industrie-  und Automobilanwendungen (Beispiele: Motorsteuerungen, Servomotoren, Solarinverter, Multi-Axis-Conrol) &lt;br /&gt;
&lt;br /&gt;
* [http://www.infineon.com/cgi-bin/ifx/portal/ep/channelView.do?channelId=-78991&amp;amp;channelPage=%2Fep%2Fchannel%2FleafNote.jsp&amp;amp;pageTypeId=17099  Übersicht über die &#039;&#039;&#039;TriCore&#039;&#039;&#039; Produktfamilie]&lt;br /&gt;
&lt;br /&gt;
=== Bezugsquellen für Starterkits/Evalboards ===&lt;br /&gt;
&lt;br /&gt;
* http://www.spectrumdigital.com - große Auswahl an Starterkits mit TI-DSPs, ab $300&lt;br /&gt;
* http://www.bluetechnix.com - Blackfin-Module ab € 150&lt;br /&gt;
* http://www.zbrain.ch/ - Blackfin-Modul, Preis: ?&lt;br /&gt;
* http://www.danvillesignal.com/ - ADSP-218x-Boards ab $200, Sharc-Boards ab $400&lt;br /&gt;
* http://docs.blackfin.uclinux.org/doku.php?id=buy_stuff - Blackfin BF533 STAMP $170 (keine analogen Schnittstellen, aber über Pfostenstecker leicht zu erweitern)&lt;br /&gt;
* http://www.sundance.com - High-End-Module mit TI C6000&lt;br /&gt;
* http://www.spectrumsignal.com/ - TMS320 und SHARC&lt;br /&gt;
* http://www.pentek.com/dspcentral/ - TMS430 und PowerPC&lt;br /&gt;
* http://www.bittware.com/ - SHARC und TigerSHARC&lt;br /&gt;
* http://www.hunteng.co.uk/ - C6000&lt;br /&gt;
* http://www.kanecomputing.co.uk&lt;br /&gt;
* http://www.dsp-systeme.net - DSP-Module mit DSP von TI und ADI&lt;br /&gt;
* http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=de&amp;amp;site=DE&amp;amp;WT.z_homepage_link=hp_go_button&amp;amp;KeyWords=TMDX5505EZDSP&amp;amp;x=22&amp;amp;y=22  eZDSP  USB Stick , &amp;lt;50€&lt;br /&gt;
* http://www.dsp-weuffen.de  - TI C6727 Board und vielen Beispielen&lt;br /&gt;
* http://www.ehitex.de/artikel.php?xPD=131_132&amp;amp;kat_name= - Infineon TriCore Starter Kits&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie DSP ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;DSP&amp;lt;/ncl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:DSP| ]]&lt;/div&gt;</summary>
		<author><name>92.74.95.249</name></author>
	</entry>
</feed>