|
|
zeitdiskrete Signale ableiten nahe fs/2 |
|
HauNei |
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.04.2013, 09:11
Titel: zeitdiskrete Signale ableiten nahe fs/2
|
|
Hallo zusammen,
ich bin gerade dabei verschiedene Ableitungsmöglichkeiten zu suchen um Geschwindigkeitssignale in Beschleunigungssignale umzuwandeln.
Wichtig wäre hier, eine möglichst Recheneffiziente Methode zu finden.
Kann mir da jemand helfen?
Eine nummerische Ableitung wäre mir am liebsten,
Ableitung im Frequenzbereich kommt aufgrund der sehr hohen Frequenzen und damit verbunden hohen Multiplikationen nicht in frage.
Vielen Danke
HauNei
|
|
|
|
|
Benjamin Frank |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.04.2013, 12:44
Titel:
|
|
|
|
|
Grüß Gott,
Ich würde an deiner Stelle einfach eine simple Faltung über einen Ableitungskern machen. Je nachdem wie sehr deine Signale verrauscht sind größer oder kleiner.
Nehmen wir z.B. eine Größe des Ableitungskerns von 7 an, so müsstest du deine Daten einfach über [-1 -1 -1 0 1 1 1] falten et voila, fertig.
Da mir das auf dem Microkontroller jedoch auch viel zu lang gedauert hat, hab ich den Rechenweg ein wenig modifiziert (was sich gerade bei größeren Kernen lohnt).
Es ändern sich von Signalwert zu Signalwert ja jeweils bloß 4 Koeffizienten (egal wie groß der Kernel ist), am Besten ich skizzier das kurz:
Wie man jetzt (hoffentlich) sieht, ändern sich bei der Berechnung des nächsten Wertes x+1 nur die Terme von Index 3,6,7 & 10.
Also kann man die Faltung mit Hilfe des letzten Wertes auch als Summe ausdrücken:
Faltung(x+1) = Faltung(x) + Signal(3) - Signal(6) - Signal(7) + Signal(10)
Das ging auf dem µC geschätzt fast 10 Mal schneller als die Faltung.
Schönen Gruß
|
|
|
HauNei |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.04.2013, 09:33
Titel:
|
|
Danke für die Antwort,
ich hab des jetzt mal anhand dreier übereinander gelagerten Sinussignalen probiert, bin da aber leider auf keine schlüssige Lösung gekommen.
Da mir immer die höchste Frequenz in meiner anschließenden FFT gefehlt hab.
Wenn ich dann als Kernel [-1,0,1] verwendet habe ging es und meine FFT hat mit meiner erwarteten gut übereingestimmt.
Hier mal mein Programmausschnitt, vielleicht hilft es dann weiter:
Viele Grüße
|
|
|
Benjamin Frank |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2013, 08:45
Titel:
|
|
Gerne.
Dass das Signal durch die Faltung auch geglättet wird, ist logisch & mehr oder weniger auch gewollt.
Wenn du dann natürlich ein hochfrequentes Signal hast, wird es dementsprechend gedämpft, je größer du die Ordnung des Kernels wählst.
Von daher macht es Sinn, wenn du selbige kleiner machst. Es rauscht dann u.U. halt etwas mehr.
Gruß
|
|
|
HauNei |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2013, 09:02
Titel:
|
|
Danke,
da hab ich wohl mal wieder nicht nachgedacht, was die Länge des Kernels angeht und der Glättung.
Ich werde es jetzt einfach mal an einem realen Geschwindigkeitssignal probieren und die dann miteinander vergleichen.
Viele Grüße
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|