www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP antialiasing filter


Autor: schnudl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte mit einem dsPIC ein Audiosignal verarbeiten. Dazu denke ich, 
dass eine Bandbreite von 10kHz und somit 20kHz Abtastrate ausreicht. Nun 
müsste ich dazu ein Antialising Filter bauen, da im Audiosignal 
vermutlich Frequenzen bis etwa 20KHz drin sind. Reicht für meine 
Bastelei nun ein einfaches Filter erster Ordnung? Oder sollte das schon 
eines mit höherer Flankensteilheit sein? Wie kann ich praktisch 
abschäzen, wie sich eine unzureichende Flankensteilheit auf meine 
Abtastwerte auswirkt. Gibt es hier eine "Fausregel" ? Oder brauceh ich 
vielleicht gar kein Filter, da die Anteile im Audiosignal ohnehin gering 
sind?

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

das kommt darauf an, was du mit dem digitalisierten Signal anfangen 
willst. Wenn daraus eine FFT werden soll, gibts halt "falsche" 
Informationen in deiner FFT. Was willst du denn mit den Daten anfangen ?

Gerhard

Autor: schnudl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte die Funktionen zur digitalen Filterung ausprobieren, aber 
auch hören, wie es akkustisch wirkt.

Es ist nur Spielerei um den dsPIC kennenzulernen. Das digitale Signal 
möchte ich dann über I²S rückwandeln.

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle Signalanteile, die nach der Filterung noch oberhalb der halben 
Abtastfrequenz drin sind, spiegeln sich um die halbe Abtastfrequenz nach 
unten. In deinem Beispiel werden 12kHz zu 8kHz, 15 kHz zu 5 kHz. Lästig 
sind z.B. Reste des Stereo-Pilottones (19kHz), der dann auf 1kHz 
gespiegelt wird.

Richtigerweise sollten alle Signale oberhalb der halben Abtastfrequenz 
mindestens um soviel gedämpft sein, wie du mit dem AD-Wandler an S/N 
schaffst. S/N ist ca. 6dB/Bit.
Also: bei 10 Bit Wandler sollten die Frequenzen um ca. 60 dB gedämpft 
sein. Man kann natürlich auch berücksichtigen, dass die Pegel im 
Audiobereich bei natürlichen Signalen (nicht Synthesizer) schon deutlich 
kleinere Pegel als im Bassbereich haben.
Für deine Spielerein kannst du natürlich großzügig sein und ev. eine 
Signalquelle nehmen, die schon vorfiltert, wie z.B. den 
Höhen-Klangregler am Audioverstärker.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich täte mal ohne Filter anfangen, um zu "sehen" wie Aliasingeffekt 
klingen. Tatsächlich sind ja die hochfrequenten Anteile in Deinem Signal 
nicht so stark vertreten, wie die niederfrequenten.

Ja nach Wortbreite Deines ADC muss der Tiefpass unterschiedlich steil 
ausgelegt werden. Ich sage jetzt mal vorsichtig, das verhält sich 
proportional zur Wortbreite. Rein theoretisch muss bei Abtastfrequenz/2 
das Signal auf Bitzahl x 6dB abgeschwächt werden. Man braucht also sehr 
schnell sehr steile Filter. Je nach Auslegung wird auch mehr oder 
weniger der Nutzbandbreite beschnitten.

Für "ernsthafte Spielerei" würde ich zumindest ein aktives Filter 2. 
Ordnung vorsehen, das mit Tschebyscheff-Characteristik dimensioniert 
ist: Etwas Welligkeit im Durchlassbreich, aber steiler Abfall im 
Sperrbereich.

Wie ein Filter 1. Ordnung klingen wird, kann ich nicht sagen. Probier's 
einfach aus.

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie ein Filter 1. Ordnung klingen wird, kann ich nicht sagen. Probier's
>einfach aus.
Der Unterschied zu gar keinem Filter dürfte minimal sein ... :-)

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo. Ungefähr so wie ein Höhenregler :) Trotzdem kann man sich ja mit der 
Eckfrequenz spielen. In der Tat wäre ich auch zu faul, nur zum Probieren 
hier gross nen Filter zu dimensionieren. Man ist ja kompromissfähig.

Autor: schnudl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, ich kenn mich nun aus.

Ich werde einfach einen SC Filter von Maxim nehmen, die sind zwar nicht 
ganz billig, aber haben den Vorteil, dass sie mit der Clock 
durchstimmbar sind. Würdet ihr sowas empfehlen? Ich nehme mal an, dass 
ich die Reste der Clock am Ausgang nicht mehr spüren werde.

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

Bewertung
0 lesenswert
nicht lesenswert
Das Filter muss nicht besonders steil sein wenn du die Abtastfrequenz 
großzügiger dimensionierst. Zum Beispiel 40 kHz statt 20 kHz. Das 
reduziert die Anforderungen an das Filter enorm, und um dann die 
Abtastrate zur einfacheren Weiterverarbeitung wieder zu reduzieren 
reicht ein relativ einfaches Digitalfilter.

Autor: Mike C. (Firma: Arbeitslos) (mikecontroller)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich löse es derzeit so das ich ein digitales Signal filtere für eine 
Unterabtastung. Dadurch erhalte z.B. ein Signal mit 48k Messwerten das 
keine Frequenzen größer als meine halbe Unterabtastfrequenz hat.

Weil das Signal aber beschleunigt ist, setze ich jetzt die Abtastwerte 
um!!!! Als hätte ich äquidistant zum beschleunigten Signal 
digitalisiert. Stellt euch eine Welle vor die sich beschleunigt dreht. 
Jeder Messwert ist jetzt auf den Winkel der Welle definiert. Also eine 
gleiche Abtastung pro Winkel, statt wie üblich über die Zeit.

Ich habe genausoviele Stützstellen wie ich das gefilterte Zeitsignal 
hätte unterabtasten können (hab ich ja nicht).

Das Abtasttheorem geht davon aus das man konstant abtastet. Der Filter 
geht auch davon aus das ich konstant abtaste. Das signal war aber nicht 
konstant!!! Durch die Verschiebung habe ich es erst konstant gemacht.

Hab ich gegen das Abtasttheorem verstoßen? Warum funktioniert das? (Das 
ganze heißt nämlich Ordertracking.)


PS: Hier ist das Abtasttheorem definiert:
http://mfb.informatik.uni-tuebingen.de/book/node182.html
den Beweis hab ich verstanden (einigermaßen). Aber wie kann ich beweisen 
das das auch geht in meinem Fall.

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.