|
Tobi92 |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 04.12.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.02.2020, 00:22
Titel: Rauschen nach Ableitung
|
|
Hallo,
ich habe ein digitales Signal und brauche davon die zweite Ableitung. Dafür habe ich zweimal die Funktion
gradient
benutzt. Hier mein Code dazu:
Wie auf dem Bild zu sehen, ist die zweite Ableitung nicht zu gebrauchen. Ich habe mit smooth rumgespielt und viel getestet, aber es wurde leider nicht viel besser. Hat jemand von euch ein paar Tipps für mich?
Viele Grüße
Tobi
Beschreibung: |
|
Download |
Dateiname: |
test.png |
Dateigröße: |
50.54 KB |
Heruntergeladen: |
273 mal |
|
|
|
|
|
Tobi92 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 04.12.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.02.2020, 08:03
Titel:
|
|
Kann mir keiner helfen? Ich könnte auch eine Messdatei hochladen oder mehr Informationen geben, falls dies erwünscht ist.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.02.2020, 09:42
Titel:
|
|
Hallo,
ich würde die Frage im Bereich Signalverarbeitung ansiedeln, und da kenne ich mich leider nicht wirklich aus.
Helfen könnte
movmean
oder
movmedian
oder auch ein Median Filter (
medfilt1
).
Datenbeispiele sind immer hilfreich, da man dann seine Vorschläge gleich ausprobieren kann.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Busmaster |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.08.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: Matlab2014, Matlab Online, Octave
|
|
|
|
|
|
Verfasst am: 05.02.2020, 16:40
Titel:
|
|
|
|
Tobi92 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 04.12.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2020, 15:23
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
ich würde die Frage im Bereich Signalverarbeitung ansiedeln, und da kenne ich mich leider nicht wirklich aus.
Helfen könnte
movmean
oder
movmedian
oder auch ein Median Filter (
medfilt1
).
Datenbeispiele sind immer hilfreich, da man dann seine Vorschläge gleich ausprobieren kann.
Grüße,
Harald |
Danke für deine Antwort.
Hab mal jetzt eine Datei hochgeladen. Ich möchte den y-wert zweimal ableiten. Passend dazu habe ich eben den Zeitvektor.
Deine Vorschläge habe ich alle getestet, aber sie bringen leider nicht den gewünschten Erfolg.
Danke für deine Antwort.
Hast du das Skript selbst schon mal benutzt? Ich habe die Anleitung gelesen, aber habe ehrlich gesagt noch nicht ganz verstanden, wie ich meine Daten da implementieren kann.
Beschreibung: |
|
Download |
Dateiname: |
datei_1.mat |
Dateigröße: |
92.49 KB |
Heruntergeladen: |
245 mal |
|
|
|
Busmaster |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.08.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: Matlab2014, Matlab Online, Octave
|
|
|
|
|
|
Verfasst am: 07.02.2020, 15:23
Titel: nochmal Savitzky-Golay
|
|
|
|
|
Nochmal Hallo,
zur Glättung nach Savitzky-Golay:
Zur Berechnung habe ich habe eigene Scripts benutzt, abgeleitet aus [1].
[1] W. Gander, J. HREBICEK: Solving Problems in Scientific Computing using Maple and Matlab, 2nd Ed. (Chapter 9), Springer Heidelberg 1995
Prinzip:
Durch N Datenpunkte (ungerades N = 2*k+1, width) wird ein Polynom (Grad m, degree) gelegt, dass die Messwerte ausgleicht.
Die Koeffizienten des Polynoms werden durch linear least squares fit bestimmt.
Für ein kubisches Polynom
P3(x) = a*x^3 + b*x^2 + c*x + d, mit x = -k....0....k
werden so die Koeffizienten a, b, c, d bestimmt.
Der geglättete Wert an der Stelle x=0 ist: d
Der Wert der 1. Ableitung an der Stelle x=0 ist: c
Der Wert der 2. Ableitung an der Stelle x=0 ist: 2*b
Das wird für jeden Datenpunkt gemacht; die Randpunkte müssen gesondert behandelt werden.
Man muss den Grad des Polynoms, die Intervallbreite und Glättung + Differentiation oder nur Differentiation ausprobieren.
Beispiel: Polynom vom Grad 5 durch 21 Punkte (mit Octave)
Für Zeitvektor = 0...20 und Differentiation der Originaldaten sieht es ganz vernünftig aus.
(Die gewählte Glättung beseitigt nur Spitzen)
Jeder Sprung in den Daten (Digitalisierung) erzeugt natürlich einen großen Anstieg (1. Ableitung).
Ob die Bildung der 2. Ableitung beim gegebenen Signal sinnvoll ist kann ich nicht beurteilen.
Gruss Busmaster
Beschreibung: |
rot: Originaldaten, grün: 1. Ableitung, blau: 2. Ableitung berechnet durch ein Polynom 5. Grades über ein gleitendes 21-Punkte-Intervall |
|
Download |
Dateiname: |
SG_demo_N5_W21_ovl_1.png |
Dateigröße: |
93.23 KB |
Heruntergeladen: |
255 mal |
|
|
|
Busmaster |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.08.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: Matlab2014, Matlab Online, Octave
|
|
|
|
|
|
Verfasst am: 09.02.2020, 10:38
Titel: Savitzky-Golay Scripts
|
|
|
|
|
Die Funktionen realisieren die Glättung bzw. Differentiation nach SAVITZKY-GOLAY.
Geschrieben und getestet vor vielen Jahren mit Matlab 4 & 5, läuft aber offenbar auch unter Octave 5.
smo_sg.m %SMO_SG Glättung der Datenmatrix yin durch Anwendung von SAVITZKY-GOLAY auf die Spektren
erfragt Parameter
sg_difn.m %SG_DIFN Differentiation von äquidistanten Datensätzen nach SAVITZKY-GOLAY
Funktion, erfordert difc.
sg_smon.m %SG_SMON Funktion zur Glättung von äquidistanten Datensätzen nach SAVITZKY-GOLAY
Funktion, erfordert smoc.m
dat_dif.m %DAT_DIF Differentiation der Datenmatrix yin durch spaltenweise Anwendung von SAVITZKY-GOLAY
erfragt Parameter
difc.m %DIFC berechnet die Koeffizienten für Differentiation nach SAVITZKY-GOLAY
smoc.m %SMOC berechnet die Koeffizienten für Glättung nach SAVITZKY-GOLAY
Wichtig:
Meine Erfahrungen sind die Glättung und Differentiation langsam veränderlicher Signale (Spektren).
Es gibt aine Randpunkbehandlung; das Intervall wird an den Rändern automatisch schmaler.
Ob es für Signale mit sehr schnellen Anstiegen (Sprünge) sinnvolle Ergebisse liefert kann ich nicht beurteilen.
Evtl. müssen die Signale erst gelättet werden um den langsamen Signalverlauf von schnellen (Digitaliserung, Rauschen) Änderungen zu trennen.
Das ist hier ja erklärt:
https://www.cbcity.de/differenziere.....mittelwert-savitzky-golay
Viel Erfolg
Keine Garantie
Beschreibung: |
Skripte für Savitzky-Golay |
|
Download |
Dateiname: |
SavGol.zip |
Dateigröße: |
6.45 KB |
Heruntergeladen: |
212 mal |
|
|
|
Tobi92 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 04.12.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.02.2020, 13:20
Titel:
|
|
Vielen Dank. Ich schaue es mir an.
|
|
|
|
|
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 - 2025
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.
|
|