Forum: Digitale Signalverarbeitung / DSP / Machine Learning SampleFrequenz ändern


von Mumba S. (mumba)


Lesenswert?

Hallo zusammen,

ich bräuchte nochmal ein bisschen Hilfe. Es ist wahrscheinlich mehr ein 
Verständnisproblem.
Ich bekomme alle 10us ein Signal und das entspricht ja somit einer 
SampleFrequenz von 100kHz.
Jetzt will ich damit aber zu einer SampleFrequenz von 10kHz und nur alle 
100us ein Signal bekommen, alles was darüber liegt brauch ich nicht.

Kann ich dafür einfach einen Tiefpassfilter nehmen? Und beeinflusst der 
dann das Signal so, dass ich meine Werte nur noch alle 100us bekomme? In 
meiner Vorstellung nimmt der Tiefpass zwar die hohen Frequenzen raus, 
aber ich versteh nicht, wie damit auch die Zeitschritte beeinflusst 
werden, in denen ich mein gefiltertes Signal erhalte.

Vielleicht kann mir jemand helfen?!
Danke schon mal für jeden Versuch.
Mumba

von pedro (Gast)


Lesenswert?

was du suchst ist downsampling (und dort brauchts auch ein 
tiefpassfilter, anti aliasing)

von Christoph G. (christoph_gradl)


Lesenswert?

Hallo,
in Matlab gibt es den Befehl DOWNSAMPLE(X,N), der nimmt aber z.B. dann 
einfach nur jeden zehnten Wert heraus.

Weiteres gibt es in Matlab noch DECIMATE(), hier wird das Signal noch 
geeignet gefiltert (Tschebyscheff Filter 8. Ordnung).

mfg

von Mumba (Gast)


Lesenswert?

Hallo,

Danke erstmal für die Antworten. Zum Vorschlag mit Matlab zu arbeiten:
Das mach ich momentan auch, allerdings ist das nur der Testlauf, ich 
brauche also Funktionen die auch außerhalb von Matlab berechenbar sind. 
Deswegen bastel ich mir aus Filterkoeffizienten Differenzgleichungen, 
die ich dann problemlos übernehmen kann.

Den Begriff Downsampling habe ich inzwischen auch gefunden, aber mein 
Problem ist immer noch die Vorstellung von den Zeitschritten der 
Ausgabe.
Wenn ich den Tiefpass über meine Werte laufen lasse, bekomme ich dann 
automatisch die Werte in neuen Zeitabständen? Oder muss ich dann einfach 
alle Werte dazwischen rausschmeißen, quasi nur jeden zehnten Wert 
verwenden??

Würde mich freuen, wenn mir jemand zu mehr Verständnis verhelfen kann.
Liebe Grüße
Mumba

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ein Tiefpass ändert nichts an der Samplingfrequenz, du musst die 
benötigten Samples danach selbst auswählen.

Grüße,

Peter

von pedro (Gast)


Lesenswert?

wenn du in deinem fall von 100kHz auf 10kHz reduzieren willst, beachtest 
du nur jeden 10. wert.

mit dem downsampeln reduzierst du die abtastfrequenz, nach abtasttheorem 
hast du aber auch eine geringere bandbreite des signals. damit sich 
spektren nicht überschneiden, musst du einen tiefpass haben (vor 
downsampling), der dementsprechend filtert (angepasst auf die neue 
abtastfrequenz).

von Mumba S. (Gast)


Lesenswert?

Okay,

ich denke, dass sollte ich hinkriegen.
Erst den Tiefpass und dann jeden 10ten Wert.
Wenn ich zu den 10kHZ SamplingFrequenz will, muss mein Tiefpass dann 
quasi alles unter 5kHz rausschmeißen, richtig? Weiß jemand wie steil die 
Flanke von dem Filter sein muss? Sind ein paar wenige Werte über den 
5kHz tragisch oder geh ich lieber runter auf 4kHz als Grenzfrequenz für 
meinen Filter.
Danke für all eure Antworten und Hilfe.
Liebe Grüße
Mumba

von Mumba S. (Gast)


Lesenswert?

Hallo nochmal,

Downsamplen klappt inzwischen ganz gut, aber eine Frage hätte ich noch:
Und zwar gehts um den AmplitudenVerlauf, der ist in meinen Augen ne 
Größenordnung zu klein.
Irgendwie macht dieses Verhalten keinen Sinn für mich, vor allem wenn 
ich mein System zerlege: Der Tiefpass prägt zwar seine 
Filtercharakteristik auf, ändert aber nichts an der Größenordnung.
Und die Auswahl jedes zehnten Wertes sollte doch auch nichts an der 
generellen Amplitude ändern, oder doch?
Ich kann nirgendwo was dazu finden...kann mir jemand helfen?
Danke schonmal

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.