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

Zeitnormierung, Mittelwert

 

omchik
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.15
Wohnort: Porto Alegre
Version: 2015a
     Beitrag Verfasst am: 13.04.2016, 13:40     Titel: Zeitnormierung, Mittelwert
  Antworten mit Zitat      
Hallo Leute,

ich habe folgendes Problem und hoffe, dass ihr mir helfen könnt:

ich habe mehrere Signale (Vektoren), alle haben verschiedene Längen.

diese müssen aber vergleichbar gemacht werden, indem jedes Signal in 100 Intervalle aufgeteilt wird und die Werte innerhalb jedes Intervalls gemittelt werden (Zeitnormierung).

Das Problem liegt aber darin, dass die Intervalllängen selten ganze Zahlen darstellen.
z.B. bei der Länge eines Vektors von 140 Samples beträgt das Intervall gerade 1,4

Da dachte ich mir, ich sollte interpolieren:

Code:

n = 200;          % Länge des Vektors mit samples
y = rand(n,1);
x = 1:n;

parts = 100;          % Vektor soll in 100 Intervalle aufgeteilt werden
lengpart = n/parts;% Länge des Intervalls
xq = lengpart:lengpart:n;

yq = interp1(x,y,xq,'spline');
figure,plot(x,y)
hold on
plot(xq,yq,'r')
hold off
 



Das scheint aber nicht das zu sein, was ich anstrebe.

Hat jemand vielleicht eine Idee?

Danke im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.04.2016, 15:42     Titel: Re: Zeitnormierung, Mittelwert
  Antworten mit Zitat      
Hallo omchik,

Zitat:
Das scheint aber nicht das zu sein, was ich anstrebe.

Das ist eine sehr kryptische Aussage. "Scheint nicht zu sein" bedeutet ja, dass sie es in Wirklichkeit doch ist, oder?
Was gefällt Dir an der Lösung nicht?

Ich wäre bei Splines eher vorsichtig, denn dabei können große Überschwinger auftreten. Eine lineare Interpolation ist immer konservativer.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
omchik
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.15
Wohnort: Porto Alegre
Version: 2015a
     Beitrag Verfasst am: 13.04.2016, 20:05     Titel:
  Antworten mit Zitat      
Es ist nur so, dass in den Plots, speziell wenn die Länge des Vektors groß ist (z.B. 357),
es für mich nicht nach den Mittelwerten ausschaut

Oder liege ich da falsch?

Danke für deine Zeit.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2016, 21:51     Titel:
  Antworten mit Zitat      
Hallo,

eine Interpolation ist ja eben auch keine Mittelwertbildung.

Wenn du wirklich Mittelwerte bilden willst, würde ich per logischer Indizierung die in jedem Intervall liegenden Werte bestimmen und dann eben den Mittelwert davon.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.15
Wohnort: Porto Alegre
Version: 2015a
     Beitrag Verfasst am: 14.04.2016, 11:45     Titel:
  Antworten mit Zitat      
Hallo,

so cool,

ich hatte zuerst nicht verstanden, was Harald meint, aber hier die Lösung:

Code:

n = 140;
y = rand(n,1);
x = 1:n;

parts = 100;
lengInterv = n/parts;
xq = 1:lengInterv:n;

if xq(end) < x(end)
    xq = [xq, x(end)];
end

% Lösung:

% Positionen der Samples zwischen den neuen Intervallgrenzen
x_newpos = cell(1,parts);
for i = 2:parts
    x_newpos{i} = (x(x>xq(i-1) & x<xq(i)));
end

% Die gesuchten Mittelwerte
yq = zeros(1,parts);
for i = 1:parts
    yq(i) = mean(y(x_newpos{i}));
end
 


eigentlich relativ einfach.

Danke schön, Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.04.2016, 13:41     Titel:
  Antworten mit Zitat      
Hallo omchik
Hast Du es man mit der linearen statt der Spline-Interpolation versucht?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
omchik
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.15
Wohnort: Porto Alegre
Version: 2015a
     Beitrag Verfasst am: 14.04.2016, 14:04     Titel:
  Antworten mit Zitat      
Hallo Jan,

das hatte ich auch erst.

Wie du aber im Bild erkennen kannst,
gibt das "Mitteln" vom Signal mehr wieder
als die Interpolation.

Was meinst du dazu?

Grüße,
Omchik

to compare.jpg
 Beschreibung:

Download
 Dateiname:  to compare.jpg
 Dateigröße:  61.47 KB
 Heruntergeladen:  414 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.04.2016, 17:26     Titel:
  Antworten mit Zitat      
Hallo omchik,

Stimmt, beides gibt etwas anderes wieder. Das Mittelwertbilden verkleinert auf jeden Fall den Range, also die Amplitude des Signals. Es kommt immer auf den Einsatzzweck an, ob das hilfreich ist oder nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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 - 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.