WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Plotverschiebung - denselben Zeitpunkt bei allen Verläufen

 

mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2017, 18:14     Titel:
  Antworten mit Zitat      
Hey Harald,

das dachte ich auch, allerdings ist die Situation doch anders oder irre ich mich?
Das sind die 4 Arrays, die gemittelt werden.

Die Variablen heißen diesmal jedoch anders: O25P1_ave, O50P1_ave, V25P1_ave, V50P1_ave


Code:
O25P1_ave = mean(accO25P1_,2);
O50P1_ave = mean(accO50P1_,2);
V25P1_ave = mean(accV25P1_,2);
V50P1_ave = mean(accV50P1_,2);


Hier weiß ich nicht, wie ich mit dem Code vom 14.45 Uhr Beitrag arbeiten muss.

Anabelle
Private Nachricht senden Benutzer-Profile anzeigen


mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2017, 18:16     Titel:
  Antworten mit Zitat      
O25P1_ave hat 145251 Zeilen
O50P1_ave hat 147174 Zeilen
...

so, aber ich glaube, du weißt, was ich meine
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.11.2017, 18:57     Titel:
  Antworten mit Zitat      
Hallo,

die Art, wie die Variablen vorliegen, ist etwas anderes, d.h. du musst den Code etwas anpassen. Ich würde sagen, dass du das von einem schwierigeren auf den leichteren Fall anpassen musst. Da kannst du dich ja selbst daran versuchen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2017, 19:17     Titel:
  Antworten mit Zitat      
Puh, ich bin ratlos.

Embarassed
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2017, 19:39     Titel:
  Antworten mit Zitat      
Oh Mein Gott, Harald

ich habs geschafft Wink

Code:
O25P1_ave = mean(accO25P1_,2);
O50P1_ave = mean(accO50P1_,2);
V25P1_ave = mean(accV25P1_,2);
V50P1_ave = mean(accV50P1_,2);

all{1, 1}=O25P1_ave;
all{1, 2}=O50P1_ave;
all{1, 3}=V25P1_ave;
all{1, 4}=V50P1_ave;

laengen_all = cellfun(@length, all);
minLaenge_all = min(laengen_all);
P1_all = cellfun(@(x) x(1:minLaenge_all), all, 'UniformOutput', false);

P1_all_=cell2mat(P1_all);

P1_ave = mean(P1_all_,2);
 


So habe ich es jetzt realisiert.

Das passt vom Ergebnis. Wäre das auch deine Herangehensweise gewesen?

Gruß Anabelle
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.11.2017, 20:08     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wäre das auch deine Herangehensweise gewesen?

Nicht unbedingt, aber es sieht auch so stimmig aus :)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2017, 02:01     Titel:
  Antworten mit Zitat      
Vielen lieben Dank für die tolle Hilfe!

Dieses Forum ist großartig Embarassed

Eine kurze Frage sei noch gestattet. Ich möchte dieses gemittelte Signal jetzt noch glätten. Das funktioniert auch soweit. Hier mal der Code:

Code:
x_P1 = length(P1_ave);

time = linspace(1, 15, x_P1)';pointsPerSecond = round(x_P1/15);
coeffPpS = ones(1, pointsPerSecond)/pointsPerSecond;
avg = filter(coeffPpS, 0.56, P1_ave);
fDelay = (length(coeffPpS)-1)/2;
plot(time,[P1_ave avg])        %Plot ohne Delay
figure;
plot(time,P1_ave, ...
     time-fDelay/pointsPerSecond,avg);
grid;
axis tight;
legend('Input Data','Filtered Data','location','best');
ylabel('Acceleration (m/s²)');
xlabel('Elapsed Time (s)');
title('Acceleration respectively 40 Attempts');


Nun frage ich mich, warum die Glättung mittels der Filterfunktion bei

Code:
avg = filter(coeffPpS, 1, P1_ave);


so ungenau ausfällt, siehe glaet1 im Anhang.

Erst wenn ich den Faktor korrigiere, wird die Glättung genauer, siehe glaet075 und glaet053

Code:
avg = filter(coeffPpS, 0.75, P1_ave);


Code:
avg = filter(coeffPpS, 0.53, P1_ave);


Der Verlauf mit dem Glättungsfaktor 0,53 kommt den tatsächlichen Werten am Nächsten.

Wofür steht dieser Faktor eigentlich? Was heißt diese Zeile 'übersetzt'? Ist dies tatsächlich eine Art 'Glättungsfaktor'?

Gruß und gute Nacht Wink
Anabelle

glaet053.jpg
 Beschreibung:
Glättung mit Faktor 0,53

Download
 Dateiname:  glaet053.jpg
 Dateigröße:  109.51 KB
 Heruntergeladen:  259 mal
glaet075.jpg
 Beschreibung:
Glättung mit Faktor 0,75

Download
 Dateiname:  glaet075.jpg
 Dateigröße:  107.42 KB
 Heruntergeladen:  289 mal
glaet1.jpg
 Beschreibung:
Glättung mit Faktor 1

Download
 Dateiname:  glaet1.jpg
 Dateigröße:  106.2 KB
 Heruntergeladen:  285 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.11.2017, 10:04     Titel:
  Antworten mit Zitat      
Hallo,

ich würde vermuten, dass die Glättung nicht ungenau ist, sondern einfach das Glättungsfenster zu breit. Versuch's z.B. mal mit
Code:
coeffPpS = ones(1, pointsPerSecond/10)/(pointsPerSecond/10);


Die Formel, mit der filter arbeitet, kannst du im "More About"-Bereich der Doku nachlesen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2017, 15:53     Titel:
  Antworten mit Zitat      
Hallo Harald,

dabei verhaut es mir die Kurve, siehe Screenshot Smile

Ich mach einfach aus:

Code:
avg = filter(coeffPpS, 1, P1_ave);


folgenden Code:

Code:
avg = filter(coeffPpS, 0.56, P1_ave);


leider weiß ich nicht, weshalb dadurch die geglättete Kurve 'besser' wird? Eine Idee?

Und vielleicht folgende Problematik, siehe Screenshot glaet1.

Wie verschiebe ich beide Verläufe so, dass ich quasi den ersten 'Schlenker' ins Negative ignoriere? Die Kurve soll möglichst gleich mit der Steigung beginnen?

Da habe ich keine Idee.

Gruß Anabelle

glaet1.JPG
 Beschreibung:
Glättung verschieben

Download
 Dateiname:  glaet1.JPG
 Dateigröße:  120.37 KB
 Heruntergeladen:  310 mal
glaet056.jpg
 Beschreibung:
Glättung 0,56

Download
 Dateiname:  glaet056.jpg
 Dateigröße:  110.85 KB
 Heruntergeladen:  320 mal
glaet.jpg
 Beschreibung:
Glättung /10

Download
 Dateiname:  glaet.jpg
 Dateigröße:  103.06 KB
 Heruntergeladen:  321 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.11.2017, 17:15     Titel:
  Antworten mit Zitat      
Hallo,

ein Beispieldatensatz wäre hilfreich, um das Problem nachvollziehen zu können.

Bei der "verhauenen" Kurve ist wohl beim Plotten etwas schiefgegangen. Was, kann ich nicht sagen, ohne die Befehle zu sehen.

In vielen Fällen ist übrigens movmean einfacher in der Bedienung als filter.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2017, 17:22     Titel:
  Antworten mit Zitat      
movemean?! ok, vielleicht ist das wirklich eine Alternative.

ich lade mal ein Datensatz hoch, wenn ich daheim bin. Danke

Anabelle
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2017, 20:16     Titel:
  Antworten mit Zitat      
Hallo Harald,

also anbei der Datensatz für das gemittelte Signal "P1_ave".

Ebenso mein Testprogramm.

Wenn du mir da noch helfen könntest, wäre das super klasse Embarassed

Das gemittelte Signal ist halt ziemlich verrauscht, daher soll es schön geglättet werden. Am Ende darf dann dieser 'Schlenker' ins Negative nicht sein. Da kann man vllt. irgendwie die Kurve so verschieben, dass es mit positiver Beschleunigung beginnt? So müsste quasi dann auch der Vektor gespeichert werden.

Ich danke dir vorab.

Gruß
Anabelle

test.m
 Beschreibung:
Testprogramm

Download
 Dateiname:  test.m
 Dateigröße:  16.47 KB
 Heruntergeladen:  260 mal
P1_ave.mat
 Beschreibung:
P1 gemittelt

Download
 Dateiname:  P1_ave.mat
 Dateigröße:  1.84 MB
 Heruntergeladen:  292 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
mk443
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 01.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2017, 16:02     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich habe es jetzt hinbekommen. Wink

Vielen lieben Dank für deine tatkräftige Unterstützung.

Viele liebe Grüße
Anabelle
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.