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

Quasi "upsampling" eines Abstandsvektors

 

joggel.v
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 07.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2012, 05:13     Titel: Quasi "upsampling" eines Abstandsvektors
  Antworten mit Zitat      
Hallo zusammen. Als "Matlab Gelegenheitsnutzer" stehe vor folgendem Problem. Ich habe 2 Mess Signale vorliegen. nehmen wir an Geschwindigkeit v und Abstand zum Hindernis d. während sich v jede Sekunde ändert, bleibt der abstand immer für 4 Sekunden gleich und ändert sich erst dann wieder auf einen neuen wert, welcher dann auch wieder 4s bleibt.

also z.b. so:
v=[10 12 13 14 15 16 17 18 17 16...]

d=[40 40 40 40 30 30 30 30 20 20...]

Jetzt ist mir der abstand zu ungenau und ich möchte quasi ein "upsampling" das abstands. aber nur quasi, da v und d eigentlich schon gleich lang sind.

ziel ist es die abstände über die Geschwindigkeit mit s=v*t für jeweils die 3 gleichbleibenden Abstands Indizes genauer zu berechnen.

Also quasi so:
d_neu= [40 v(2)*1s v(3)*1s v(4)*1s 30 v(6)*1s v(7)*1s v(8)*1s 20 v(10)*1s...]

Hat vielleicht Jemand einen Vorschlag? tausend dank schon mal.

Gruß joggel
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 05.06.2012, 12:07     Titel:
  Antworten mit Zitat      
Code:

v = [10 12 13 14 15 16 17 18 17 16]
d = [40 40 40 40 30 30 30 30 20 20]
all_pos    =1:length(d)
pos_4sec = 1:4:length(d)
rep_pos  = setdiff(all_pos, pos_4sec);
d(rep_pos) =v(rep_pos)*1
 
Private Nachricht senden Benutzer-Profile anzeigen
 
joggel.v
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 07.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2012, 09:18     Titel:
  Antworten mit Zitat      
Vielen Dank Denny. Das ist schon mal ein klasse Vorschlag!

Dieser Funktioniert, wenn mein Vektor d immer genau für 4 Indizes gleich bleibt.

Jetzt habe ich aber einen Abstandsvektor d als Messsignal (400ms sampletime). Diesen Vektor habe ich untersucht. Leider kommen dort die Wertesprünge nicht immer genau nach 400 indizes.

Auf unser Beispiel übetragen
Code:

d_unregelmäsig = [40 40 40 40 40 40 40 30 30 20]
v = [10 12 13 14 15 16 17 18 17 16]
 


Kann ich es schaffen immer genau den Wert beim Sprung von einem Wert im Abstandsvektor d zu behalten und die Werte dazwischen wieder über meine s=v*t Formel zu berechnen? Wichtig ist hier, dass der Wertesprung in Vektor d erkannt wird und dann dort solange die nachfolgenden indizes mit s=v*t befüllt werden bis der vektor d auf den nächsten Wert springt.

Also so:
Code:

d_unreg_neu= [40 v(2)*1s v(3)*1s v(4)*1s v(5)*1s v(6)*1s v(7)*1s 30 v(9)*1s 20...]
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 06.06.2012, 10:22     Titel:
  Antworten mit Zitat      
Hallo, mache einfach DIFF

Code:


d_unregelmaesig = [40 40 40 40 40 40 40 30 30 20]
v    = [10 12 13 14 15 16 17 18 17 16];
pos = [1,diff(d_unregelmaesig)]==0;
d_unregelmaesig(pos)= v(pos)*1
 
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.