mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP digitaler Filter für AD Wandler


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem 8bit-Mikrocontroller lese ich eine Spannung vom 
10bit-AD-Wandler ein. Jetzt möchte ich mit Hilfe eines digitalen Filters 
in Software das Rauschen des AD-Signals minimieren.
Welcher Filter ist da geeignet? Woher bekomme ich die Grenzfrequenz?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Digitalwert (AD-Wandler) --> Mikrocontroller --> Softwarefilter

Wie könnte man dies realisieren?

Autor: pumpkin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es macht keinen Sinn! Antialiasingfilter davor, dann wird rauschen 
ohnehin unterdrückt. Es sei denn dein Antialaisingfilter hat eine so 
hohe Grenzfrequenz (weil sehr schneller AD Wandler) und dein Signal ist 
weit überabgetastet, dann kann man noch ein digitales Filter ansetzen. 
Aber um das zu beantworten fehlen, wie so oft, wichtige Informationen 
deinerseits. Zum Beispiel:

- Wie hoch ist die Abtastrate?
- Wie groß ist deine höchste Signalfrequenz?

pumpkin

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm einen Exponentialaverage :
http://www.ibrtses.com/embedded/exponential.html
Es ist faktisch dasselbe wie ein RC-Tiefpass.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Wie hoch ist die Abtastrate?

Ich lese im Hauptprogramm in der while(1) Schleife den AD Wert aus.
Wahrscheinlich müsste ich mit dem Oszi mal messen.

>>Wie groß ist deine höchste Signalfrequenz?

Wie könnte ich diese ermitteln?

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"das Rauschen des AD-Signals minimieren"

Rauschen bringst du meiner Meinung nach mit Filtern nicht weg, da 
Rauschen halt zufällig ist. Ich würde von mehreren Samples den 
Mittelwert bilden oder das Layout optimieren.

Autor: Hmmm... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Filtern ist ja auch zufällig und ein Mittelwert ist kein Filter sondern 
eine Abfolge von arithmetischen Operationen.
Das Layout ist sowieso immer schuld.

Frei nach Herrn N**r: Wenn man keine Ahnung hat, einfach mal die Fresse 
halten.

Autor: pumpkin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich lese im Hauptprogramm in der while(1) Schleife den AD Wert aus.
> Wahrscheinlich müsste ich mit dem Oszi mal messen.

Mach das.

> Wie könnte ich diese ermitteln?

Du wirst doch wissen, wie hoch die maximale von dir gemessene Frequenz 
sein soll?!?


pumpkin

Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Filtern ist ja auch zufällig

das wäre sehr schlecht!

>>  und ein Mittelwert ist kein Filter sondern
>> eine Abfolge von arithmetischen Operationen.
>> Das Layout ist sowieso immer schuld.

Was ist den ein Filter? Keine "Abfolge von arithmetischen 
Operationen"??? Über ein geeignetes Filter kann man sehr schön "mitteln"

>> Frei nach Herrn N**r: Wenn man keine Ahnung hat, einfach mal die Fresse
>> halten.

Merkst Du selbst, oder?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau zuerst einmal ins Datenblatt des µC´s bis zu welcher 
Sample-Frequenz der µC "rauscharm" arbeitet. Diese darfst Du auf gar 
keinen Fall überschreiten. Dann mache Dir klar, ob du 10Bit Auflösung 
überhaupt brauchst, wenn NEIN, dann benutze einen der oben genannten 
Filter (mit 10Bit berechnung!) und verwende vom Filterergebnis nur 8Bit. 
Dann solltest Du ein schön sauberes Signal erhalten.

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hmmm....

Du hast ja von Tuten und Blasen keine Ahnung, zwar von Blasen vielleicht 
schon...

"Filtern ist ja auch zufällig und ein Mittelwert ist kein Filter sondern
eine Abfolge von arithmetischen Operationen.
Das Layout ist sowieso immer schuld."

1. Filtern ist definitiv nicht zufällig!
2. Weisst du überhaupt was Rauschen ist und wie es zu stande kommt?
   nicht...
3. Rauschen bringt man mit Abstand am einfachsten mittels optimieren des 
Layouts hin.

Autor: Klöte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachdem die Frage nur unzureichend beantwortet wurde und ich das selbe 
Problem hab noch ne Frage von mir:

Möchte mit Controller der 12Bit und 1MSPS ADC macht immer so vieleicht 
aus 100 oder 1000 Werten n Mittelwert bilden um ein gewisses Rauschen 
bzw. eventuelle Spitzen rauszubekommen.
Bei der normalen Mittelwertbildung bekomm ich vieleicht n klareren Wert, 
aber ne Fehlmessung mit enormer Spitze kann sich da schon ganz gut auf 
das Ergebnis auswirken und verfälschen (zumindest bei nur 100Werten).

Was für ne Mittelwertsbildung oder Filter empfehlt ihr mir?
Wär da n PT1-Filter angebracht?

Schöne Grüße

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einzelne Fehlmessungen entfernt ein Medianfilter:
http://de.wikipedia.org/wiki/Medianfilter

Cheers
Detlef

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme an, die Frage bezieht sich auf Dithering
http://de.wikipedia.org/wiki/Dithering_%28Audiotechnik%29
"Anstatt die "überflüssigen" Bits einfach abzuschneiden 
("Truncation"),...sollte Dither hinzugefügt werden..."

Autor: Klöte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Medianfilter klingt schon mal gar nicht so schlecht. Aber da wirds 
Programmtechnisch n bischen schwierig, wenn ich nicht unbedingt n Array 
mit 1000 Werten anlegen will. Oder hat da jemand n code dafür?

Hab ja hier im Forum schon von einigen Filtern gelesen, aber welcher ist 
für so ne Anwendung auch am Besten???

Autor: 2921 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, ein Medianfilter ist nicht geeignet fuer einen ADC. Ein Median ist 
ein Bildverarbeitungsfilter, um einzelne, isolierte Ausreisser 
wegzumachen. Wenn man vor derm ADC das uebliche Antialiasing RC hat, 
bringt ein Median gar nichts, da keinerlei isolierten Ausreisser 
vorkommen.

Autor: hal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gar nicht. Filter sind dazu da, Signalrequenzen in einem oder mehreren 
Frequenzbändern zu unterdrücken. Wenn dich Signal-Rauschen-Abstand 
interessiert, dann musst du die Signalleistung erhöhen, Leitungslänge 
verkürzen, Leitung mit niedrigerem Dämpfungswert wählen.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Spektrum von Nutz- und Rauschanteil unterschiedlich ist kann 
man das SNR durch ein Filter schon verbessern.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moving Average Filter ist ausch immer ganz gut und vor allem einfach zu 
implementieren

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.