Hallo Leute, ich hab' mal eine Frage, vielleicht könnt ihr etwas Licht ins Dunkle bringen. Angenommen ich habe ein beliebiges Signal im Zeitbereich. Dieses möchte ich an diskreten Zeitpunkten abtasten. Zum Beispiel habe ich einen Sinus mit einer bestimmten Frequenz f0. Dann muss ich mein Signal mit einer Frequenz f > 2*f0 (manchmal auch >=, aber das ist blöd, wenn ich z.B. genau die Nulldurchgänge treffe) abtasten. Will ich dieses nun als diskrete Wertepaare vorliegendes Signal rekonstruieren (z.B. über einen DA Wandler, oder auch nur zum Plotten in matlab), müsste ich einen sinc Interpolator verwenden. Das ist mir klar und ich verstehe über die Fourier Trafo auch, warum (Rechteckfenster im Frequenzbereich ist nunmal in sinc im Zeitbereich), siehe z.B. http://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem . Möchte ich etwas komplizierteres, als einen Sinus rekonstruieren, müsste ich das Signal per Fourier Analyse (Reihe oder Trafo) zerlegen und gucken, bis zu welcher Frequenz ich maximal gehen möchte. Dann begrenze ich das Signal per Tiefpass darauf und gut is. Diese Filterung müsste jedoch analog, vor der Digitalisierung stattfinden. Das obige macht Sinn für mich; ich kann es aber nicht auf meine Anwendung transferieren. Ich habe zum Beispiel einen Sensor, z.B. ein Gyro, das meine Winkelgeschwindigkeit (deg/sec) misst. Der Chip wird intern mit meinetwegen 10 kHz gesampelt. Damit könnte ich also Frequenzen, also Veränderungen meiner Winkelgeschwindigkeit (also Winkelbeschleunigung, deg/sec/sec ???) von bis zu 5e3 deg/sec^2 messen, stimmt das? Natürlich nur, wenn die Winkelbeschleunigung sich sinusförmig verändert, sonst entsprechend geringer. Wenn ich aber dieses Signal nun viel langsamer, z.B. mit 100 Hz über SPI abrufe, bekomme ich nur jedes 100. sample ab. Was hat das für Konsequenzen? Kann ich damit auch nur Bewegungen bis 5e3/100 deg/s^2 = 50 deg/s^2 detektieren? Wenn ja warum? Im Prinzip will ich das Signal ja gar nicht rekonstruieren, also das Ursprungssignal wieder vollständig darstellen, z.B. durch einen DA Wandler. Vielleicht ein anderes Beispiel: Ich habe einen Beschleunigungssensor, der in einer vibrierenden Umgebung eingebaut ist. Wenn ich den mit 100 Hz abtaste, kann ich nur Vibrationen bis max 50 Hz erkennen. Es kann aber (wird auch) sein, dass deutlich höhere Frequenzen auftreten. Wenn man es so will, betreibe ich ja eine Unterabtastung dann. Wie wirkt sich das aus? Erhalte ich dann Alias Effekte, wenn ich einfach die Samples gegen die Zeit plotte (ist ja im Prinzip auch eine Rekonstruktion, nur ohne sinc Interpolation)? Ich bin mir einfach nicht sicher, wie gut ich die ermittelten Daten verwenden kann, um Rückschlüsse auf die Umgebung zu ziehen. Vielleicht versteht ja jemand mein Problem und kann mir helfen :) Vielen Dank im Voraus, db
Du wirst auch die Signale mit höherer Frequenz erkennen, d.h. sie hinterlassen eine Spur in deinen Daten. Nur eben mit einer anderen Frequenz. Ein Signal mit dem doppelten oder mehrfachem deiner Abtastfrequenz wirst du z.B. als DC-artiges Signal in deinen abgetasteten Werten vorfinden, da du ja immer an der gleichen Phase des Signals abtastest. Manchmal macht man das sogar absichtlich um ein Signal auf diese Weise "runterzumischen".
db schrieb: > Erhalte ich dann Alias Effekte, wenn ich einfach die Samples > gegen die Zeit plotte Ja, wenn du in deinen Samples eine Frequenz f' siehst, weißt du nicht, bei welcher der Ursprungsfrequenz
1 | f = n * fa +/- f' |
die Quelle lag.
db schrieb: > Will ich dieses nun als diskrete Wertepaare vorliegendes Signal > rekonstruieren (z.B. über einen DA Wandler, oder auch nur zum Plotten in > matlab), müsste ich einen sinc Interpolator verwenden. Das ist mir klar > und ich verstehe über die Fourier Trafo auch, warum (Rechteckfenster im > Frequenzbereich ist nunmal in sinc im Zeitbereich Aber nur wenn Du das Signal mit einer anderen 'Taktrate' ausgeben willst. Ansonsten plottest Du einfach die Werte, oder schickst sie direkt an den DA Wandler. db schrieb: > Möchte ich etwas komplizierteres, als einen Sinus rekonstruieren, müsste > ich das Signal per Fourier Analyse (Reihe oder Trafo) zerlegen und > gucken, bis zu welcher Frequenz ich maximal gehen möchte. Dann begrenze > ich das Signal per Tiefpass darauf und gut is. Diese Filterung müsste > jedoch analog, vor der Digitalisierung stattfinden. Was meinst Du mit rekonstruieren? Du misst das Signal. Und ja, richtig erkannt, an dem Eingang solltest Du einen guten Tiefpassfilter betreiben. Ja, Du erhältst Aliasing Effekte. Simulier das am besten mal, ist sehr instruktiv. Mit dem Daten lässt sich dann i.A. leider nichts mehr anfangen.
Ersteinmal vielen Dank für die Antworten. Bin gerade unterwegs, werde später ausführlicher antworten, eine Frage habe ich aber bereits. Die meisten gyros, accs, Magnetometer etc spreche ich doch digital an. Die werden intern mit ad Wandlern gesampelt. Da KANN ich gar nicht mehr analog filtern. Die Sensoren haben zwar noch einen konfigurierbaren Tiefpass eingebaut, aber der ist doch garantiert digital. Wie passt das zusammen mit der Aussage, dass die Daten eigentlich vorher gefiltert werden mussten (was ja Sinn macht), diese Dinger werden doch millionenfach eingesetzt.. Danke!
db schrieb: > Wie passt das zusammen mit der Aussage, dass die Daten eigentlich vorher > gefiltert werden mussten (was ja Sinn macht), diese Dinger werden doch > millionenfach eingesetzt.. Das ist auch eigentlich gar kein Problem, wenn dein Messobjekt sich was sein Spektrum betrifft an die Spielregeln hält. Die Sensoren liefern immer brav wenn du abfragst (im Rahmen des Datenblattes) einen Wert. Enthält das was du misst zu hohe Frequenzen, dann kommt es zu den oben beschriebenen Effekten, die du berücksichtigen musst. Bei einem "einfachen" ADC musst du eben analog Filtern. Wenn du ein zeitlich veränderliches Magnetfeld oder eine mechanische Schwingung misst, das du nicht beeinflussen kannst, dann musst du dein Messsystem bzgl Sensorik und Abtastung so auslegen, dass du Nyquist einhältst oder mit den Aliasen leben. Grüße
Moin, der Sensor wird intern einen analogen Tiefpass besitzen. Vielleicht steht dazu was im Datenblatt(?). Bei manchen Sensoren kann man an eine Kapazität anschließen und so den Pol des Filters verschieben für andere Abtastraten.
Also beim Accelerometer ist tatsächlich ein fester Tiefpass mit 1kHz, danach wird gesampelt. Aber guckt mal beim Gyro: http://www.invensense.com/mems/gyro/documents/PS-MPU-3300-00.pdf Da ist die interne Abtastfrequenz variabel, der Tiefpass ebenfalls. Wie kann das funktionieren?
Nur weil ein Filter "programmierbar" ist, heisst es nicht das es digital sein muss. Z. B. SC-Filter, oder Filterbänke wo entsprechend der eingestellte Filter durchgeschaltet wird. Oder es wird immer mit der höchsten Frequenz mit festen TP davor abgetastet, dann digitaler Tiefpass und dezimierung der Abtastrate.
Okay, sehe ich ein. Vielen dank erstmal. Macht es überhaupt Sinn, den Gyro z.B. mit 1 kHz zu sampeln (intern), dann aber nur mit 100 Hz Daten abzufragen? Ich verstehe leider noch nicht genau, warum Alias auftreten kann, wenn ich das trotzdem mache. Erfasse ich dann maximal Frequenzen von 100 Hz, obwohl die Daten schneller gesampelt wurden? Unter was fällt das hier? Ist das eine Dezimierung oder Undersampling? Wonach könnte ich suchen (Stichwörter) Schöne Grüße und danke
db schrieb: > Macht es überhaupt Sinn, den Gyro z.B. mit 1 kHz zu sampeln (intern), > dann aber nur mit 100 Hz Daten abzufragen? Ja wenn du durch Mittelwertbildung Auflösung erhöhen oder (weißes) Rauschen eliminieren willst. Dann musst du aber auch genau das mit den Werten machen. Wenn du einfach nur jeden 10. Wert benutzt dann kannst du auch 10 mal niedriger sampeln. Nachtrag: Dann aber auch den Antialiasing Filter entsprechend der Samplerate anpassen.
:
Bearbeitet durch User
Okay, ich könnte z.B. 10 Werte per eingebautem FIFO im burst mode abholen und dann mitteln. Abtastrate weiterhin auf 1 kHz, den internen Tiefpass auf 500 Hz oder 50 Hz? Weil durch die Mittelung (zumindest ein einfacher ungewichteter MW Filter) werden ja nicht zwangsläufig alle hohen Signalanteile gedämpft (oszillierendes Verhalten im Frequenzbereich).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.