Forum: Digitale Signalverarbeitung / DSP / Machine Learning Downsampling Verständnis


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Reno R. (reno_rat)


Lesenswert?

Hallo,

ich habe einen Datensatz mit 20.000 Signalwerten in 0.2 Sekunden. Damit 
meine ML Algorithmen besser funktionieren, möchte ich die Dimension 
reduzieren - zunächst mittels downsampling (ich weiß, es gibt viele 
andere Möglichkeiten, aber das möchte ich hier nicht diskutieren). Es 
hat sich gezeigt, dass ich ohne Probleme jeden 50., 100. oder sogar 200. 
Wert nehmen kann. Tatsächlich eignet sich jeder 200. Wert am besten. Ich 
habe vorher ein lowpass Filter angewandt (ua um aliasing zu verhindern).

Nehmen wir also an, ich möchte jeden 200. Wert nehmen.

Ich habe keine Ahnung von der Signaltheorie. Daher ein paar vermutlich 
triviale Fragen:

-Wie kann man Aliasing für nicht-Elektrotechniker einfach erklären? 
Gerne an meinem Beispiel. Das kleinste technische Detail ist unwichtig, 
die grobe Idee muss rüber kommen.

-Wenn ich das richtig lese, sollte meine Abtastfrequenz  mindestens 
doppelt so groß sein wie die Maximalfrequenz des Originalsignals um 
Aliasing zu vermeiden. Was ist das (Abtastfrequenz, Maximalfrequenz) bei 
mir und wie finde ich das heraus? Und ganz konkret: Ich würde gerne 
angeben können, dass ich theoretisch jeden n-ten Wert nehmen könnte, in 
welchem Intervall liegt n?

-->Ich sehe ein, dass wenn ich die hohen Frequenzen mittels lowpass 
Filter vorher nicht abgeschnitten hätte, könnte ich beim downsampling 
Probleme bekommmen, wenn ausgerechnet nur die 'zu hohen' Signalwerte 
ausgewählt werden (Form des Signals verändert sich, dass soll ja gerade 
nicht passieren beim downsampling). Aber was hat das mit der 
Abtastfrequenz zu tun?

Ich weiß, hier fehlen definitiv die Grundlagen... Würde mich über eure 
Hilfe daher sehr freuen!

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Reno R. schrieb:
> ich habe einen Datensatz mit 20.000 Signalwerten in 0.2 Sekunden.

Also wuerdest du wahrscheinlich 100000 Signalwerte kriegen, wenn du 1 
Sek. abtastest. Also ist deine Abtastfrequenz 100kHz.

Wenn du da jetzt einen Sinus mit 1kHz einspeist, dann wirst du den auch 
in deinen Signalwerten sehen koennen.
Aber wenn du einen Sinus mit 99kHz oder 101kHz oder 199kHz oder ... 
einspeist, werden deine Signalwerte immer genauso aussehen, wie bei 
1kHz. Du kannst also nicht sicher sagen, welche Frequenz da an deinem 
Eingang anliegt.
Das kannst du nur sicher sagen, wenn du davor einen (analogen) Tiefpass 
mit z.b. 50kHz Grenzfrequenz haengst. Dann ist sicher, dass wenn du 
Samples mit 1kHz rauskriegst, das auch von 1kHz am Eingang stammt (Weil 
der Tiefpass verhindert, dass eben 99kHz,101kHz, ...) am Eingang des 
ADCs auftauchen koennen.
Den selben Zirkus hast du dann beim Downsampling. Wenn du einfach nur 
Samples weglaesst, kannst du danach nicht mehr sicher sagen, was das 
Original fuer eine Frequenz war. Also baust du vorher einen 
entsprechenden Tiefpass ein, dann ist klar, was da vorher war, denn wenn 
da was ist, muss es durch den Tiefpass durchgekommen sein.
(((Findige Leute koennen statt Tiefpassen auch jeweils Bandpaesse 
hernehmen und dann gezielt eines der oberen Aliasspektren auswerten)))

Der Faktor um wieviel du downsamplen kannst, haengt halt davon ab, was 
du noch als hoechste Frequenz in deinem Signal haben willst/musst.


Gruss
WK

von Michael R. (fisa)


Lesenswert?

Such mal nach "Dezimationsfilter", das macht genau das was du brauchst

von Dussel (Gast)


Lesenswert?

Reno R. schrieb:
> -Wie kann man Aliasing für nicht-Elektrotechniker einfach erklären?
> Gerne an meinem Beispiel. Das kleinste technische Detail ist unwichtig,
> die grobe Idee muss rüber kommen.
Ich finde es am Bid am Besten. Bei Wikipedia gibt es eins: 
https://de.wikipedia.org/wiki/Alias-Effekt#/media/Datei:Aliasing_mrtz.svg
Wenn du die Möglichkeit hast, könntest du zuerst die Signale ausblenden 
und fragen, welches Signal wohl durch die Abtastpunkte repräsentiert 
wird. Die meisten werden wohl das rote Signal einzeichnen (oder 
erklären). Wenn man dann das graue Signal sieht, sollte klar sein, was 
Aliasing ist.

von Egon D. (egon_d)


Lesenswert?

Reno R. schrieb:

> Ich habe keine Ahnung von der Signaltheorie.

Das könnte hinderlich sein, wenn man Signalverarbeitung
machen möchte :)


> -Wie kann man Aliasing für nicht-Elektrotechniker
> einfach erklären?

Hast Du verstanden, wie man mit einem Stroboskop
schnelle periodische Bewegungen scheinbar stark
verlangsamen und so beobachtbar machen kann?

Der Stroboskop-Effekt beruht auf Aliasing.

(Man könnte das auch einen Abwärtsmischer nennen,
denn Mischung [im Sinne der HF-Technik] beruht
auch auf "Aliasing".)


> Und ganz konkret: Ich würde gerne angeben können,
> dass ich theoretisch jeden n-ten Wert nehmen könnte,
> in welchem Intervall liegt n?

Verdrehte Fragestellung.

Besser: Wie hoch liegt die höchste Spektralkomponente,
die in Deinem Signal auftreten kann und noch Relevanz
für Deine Untersuchung hat? Danach richtet sich die
notwendige Grenzfrequenz Deines Messsystems und auch
die notwendige Abtastrate.

Möglichkeiten zur Ermittlung:
1. Theoretische Abschätzung,
2. Simulation,
3. Messung.

Beispiel: Wenn eine Voruntersuchung ergibt, dass z.B.
oberhalb von 2kHz keine für Deine Untersuchung
relevanten Spektralanteile in den Messwerten vorhanden
sind, dann musst Du nicht in der gesamten Auswertung
mit 100kHz Abtastfrequenz arbeiten -- Downsampling auf
10kHz oder 20kHz tut es auch.


> -->Ich sehe ein, dass wenn ich die hohen Frequenzen
> mittels lowpass Filter vorher nicht abgeschnitten
> hätte, könnte ich beim downsampling Probleme bekommmen,
> wenn ausgerechnet nur die 'zu hohen' Signalwerte
> ausgewählt werden (Form des Signals verändert sich,
> dass soll ja gerade nicht passieren beim downsampling).

Korrekt.


> Aber was hat das mit der Abtastfrequenz zu tun?

Alle Spektralanteile, die im realen Signal (deutlich)
unterhalb der halben Abtastfrequenz liegen, sind vom
Aliasing GARANTIERT nicht betroffen.

Bedeutet praktisch:

a) Eine zu HOHE Abtastrate zusammen mit einer der
   Abtastrate angemessenen, aber für den Anwendungsfall
   zu HOHEN Grenzfrequenz des Tiefpasses vergrößert nur
   die Datenflut, hat aber keine Fehlmessungen zur Folge.
   Nachträgliches Downsampling ist ohne Schaden anwendbar.

b) Eine zu GERINGE Abtastrate zusammen mit einer der
   Abtastrate angemessenen, aber für den Anwendungsfall
   zu GERINGEN Grenzfrequenz des Tiefpasses verfälscht
   das Messsignal, führt aber nicht zur Entstehung von
   "Geistersignalen". Welche Verfälschung tolerabel ist,
   hängt vom Einzelfall ab. Nachträgliches Downsampling
   verbietet sich in der Regel.

c) Eine zu GERINGE Abtastrate zusammen mit einer der
   Abtastrate NICHT angemessenen zu HOHEN Grenzfrequenz
   des Tiefpasses kann zur Entstehung von "Geister-
   signalen" führen. Diese können durch reine Datenanalyse
   von keiner Macht der Welt nachträglich von realen
   Signalen unterschieden werden! Downsampling ist
   nutzlos, denn der Fehler ist dadurch nicht reparierbar.
   Dieser Fall sollte dringend vermieden werden.


HTH

von W.S. (Gast)


Lesenswert?

Michael R. schrieb:
> Such mal nach "Dezimationsfilter", das macht genau das was du brauchst

Lieber nicht, denn das führt unweigerlich auf Hogenauers CIC - und schon 
Hogenauer hatte heftige Probleme, seinen Fachkollegen diesen Dezimator 
zu erklären. Und die waren Fachleute!

Reno R. schrieb:
> Wie kann man Aliasing für nicht-Elektrotechniker einfach erklären?

Ganz einfach: mal einen alten Stummfilm angucken. Interessant sind dort 
vorbeifahrende Autos, wo sich scheinbar die Räder rückwärts drehen.

Stell dir also ein Auto vor.
Fall 1: es steht, also stehen auch die Räder.
Fall 2: es fährt langsam, also drehen sich die Räder von einem Bild zum 
nächsten um - sagen wir mal - 10 Grad. Man sieht die Räder vorwärts 
drehen.
Fall 3: es fährt schnell, die Räder drehen von einem Bild zum nächsten 
um 350 Grad. Die Räder scheinen rückwärts zu drehen
Fall 4: noch schneller: 360 Grad /Bild --> Räder stehen still
Fall 5: noch schneller: 370 Grad /Bild --> wie Fall 2
und so weiter.

Nochmal zum Hogenauer:
jeder kennt das übliche Bild des CIC: links Summator, rechts 
Differentiator, Mitte ein Schalter !! Hab mich schon EWIG dran 
gestört, daß da ein SCHALTER gemalt ist. Im Digitalen gibt es zwar 
AND,OR,FF usw. aber keinen Schalter!

W.S.

von bubu (Gast)


Lesenswert?

die allernaivste erklärung für einen antialiasing filter ist, dass das 
eine art lowpassfilter ist.

gleichzeitig stellt ein lowpassfilter auch die allernaivste 
implementierung dar.

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

W.S. schrieb:
> Nochmal zum Hogenauer:
> jeder kennt das übliche Bild des CIC: links Summator, rechts
> Differentiator, Mitte ein Schalter !! Hab mich schon EWIG dran
> gestört, daß da ein SCHALTER gemalt ist. Im Digitalen gibt es zwar
> AND,OR,FF usw. aber keinen Schalter!

Einfachste Lösung Deines Problems: ein AND mit 2 Eingängen, den einen 
mit einem Rechtecksignal ansteuern, den anderen mit dem zu schaltenden 
Signal.

von Markus W. (elektrowagi78) Benutzerseite


Lesenswert?

Reno R. schrieb:
> -Wie kann man Aliasing für nicht-Elektrotechniker einfach erklären?

Indem du dir die Corona-Inzidenzen ansiehst, die täglich publiziert 
werden und dann einfach mal die vom Montag nimmst und diese mit denen 
vom Donnerstag vergleichst. Die haben einen anderen Offset. Und wenn du 
einfach wöchentliche Werte nimmst, kann es dir passieren, dass ein 
zwischenzeitliches Hoch von 125 in Thüringen völlig unter den Teppich 
gekehrt wird, weil die Werte davor 117 und 112 waren und nun niemand 
etwas von der Überschreitung von 120 wissen will.

Der einzig richtige Weg wäre, Daten über ein Intervall von 2 Wochen 
(Zwei Wochen!) zu mitteln und zu glätten und dann erst 6 Werte 
wegzulassen und einen zu behalten.

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]
  • [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.

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