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

Interpolation/Downsampling

 

DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 25.07.2011, 14:17     Titel:
  Antworten mit Zitat      
Dann bitte Code posten, damit man es nachvollziehen kann. In meinem Bsp ist das nicht so:

data_i(1) = 127.0055...
data_i(180000) = 226936.99...

Dies ist nun dein Bereich, der aus dg zu entnehmen wäre, wenn man es denn könnte Wink
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 26.07.2011, 07:59     Titel:
  Antworten mit Zitat      
Hast du dein Problem jetzt gelöst?

Was mir auch noch nicht klar ist, welchen Sinn die Interpolation aus den Messdaten von dataCtr hat. Wenn hier immer dieser Bereich, linspace(10,370,180000) herauskommen soll, kann ich doch auch gleich diesen Befehl benutzen, anstatt die Werte so zu manipulieren. Es muss ja irgendwie mit dem Referenzgeber zusämmenhängen...

Kannst du das bitte noch mal genauer erklären. Evtl. kann man ja auch einen anderen Weg einschlagen, um zum gewünschten Ergebnis zu gelangen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.07.2011, 10:19     Titel:
  Antworten mit Zitat      
Hallo,

ich versuche deine Fragen zu beantworten.

Hilfe
Also erst einmal Danke für all die Hilfe. Ich konnte das Problem nun selbst lösen es lag nicht am Befehl interp1() sondern an der Zuweisung von Werten, da wurde ein Feld vergessen, welches den Wert 0 enthielt.

Warum die Interpolation?:
Ich möchte das gesamte Programm so auslegen, dass es möglich ist eine Untersuchung über mehrere Zyklen durchzuführen, d.h. einen mittleren Wert zu bilden. Dazu benötige ich in jedem Zyklus einen exakten Messbereich von 360° und die dazugehörigen Indizes/Positionen. Deshalb habe ich den Bereich von 10° bis 360° über linspace() als fix festgelegt. Über die Interpolation möchte ich nun die dazugehörigen Indizes(Positionen) bestimmen. Nun habe ich ja einen genauen 360° Bereich, welcher in 180.000 Schritte unterteilt ist. Wenn ich dies nun über mehrere Zyklen mache, ist eine Mittelung möglich.

Für was die Indizes?
Habe ich einmal diese Indizes, so kann ich diese dazu Verwenden um den 360° Bereich des Sensors rauszufiltern. Dazu Verwende ich die Kommaindizes und lasse mir die entsprechenden Werte in ° aus dem Datensatz des Sensors interpolieren. Damit kann ich dann den 360° Bereich auf die x-Achse auftragen und die Indizes auf die y-Achse. Nun stelle ich den Verlauf des Sensors/Referenzgebers (CTR) dar, und kann damit Abweichungen untersuchen/feststellen.
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 26.07.2011, 11:42     Titel:
  Antworten mit Zitat      
Warum du die Indices haben wolltest, habe ich schon verstanden...sie repräsentieren ja den exakten 360 Gradbereich aus deiner Messung. Hier in meinem Bsp. einer Messung von 9.8...370.1 Grad. Ich habe jetzt die interpolierten Indices und berechne mir zu den Kommaindices die Gradwerte durch Interpolation von data_index_interp und der realen Gradwerte der Messung dg. Ich erhalte jetzt zwar wieder 227.000 Messwerte, kann aber alles über 180.000 wegwerfen. Allerdings habe ich nun erwartet, dass in grad_interp(1:180.000) Werte zwischen 10 und 370 Grad liegen. Dem ist aber nicht so (138.09... - 498.09 ... Grad). Das verstehe ich jedoch nicht. Wenn ich nun wie in meinem Bsp. angegeben, den Offset von 138.09... überall abziehe, erhalte ich aber immerhin exakt 0...360 Grad.

Code:

format long;
% Gradwerte der realen Messung
dg = linspace(9.8,370.1,227000)';
data_index = 1:1:227000;
% gewünschter Gradbereich
dgi = linspace(10,370,180000)';
% interpoliere Indices auf den Bereich von dgi
data_index_interp = interp1(dg,data_index,dgi,'linear');
% Gradwerte der interpolierten Indices aus dg interpolieren
grad_interp = interp1(data_index_interp,dg,'linear');
% Offset abziehen und Darstellung: 0 - 360 Grad
grad_interp(1:180000) = grad_interp(1:180000) - grad_interp(1);
 


Ist das dein Wunsch, oder eher 10...370 Grad? Dennoch sind die interpolierten Gradwert immer noch das gleiche wie mit dem linspace Befehl. Aus deiner Erklärung werde ich leider nicht schlauer, warum man dann so kompliziert verfahren muss. Es ist auch gut möglich das ich auf dem Schlauch stehe...ich sehe hier momentan einfach keine Sinn in der Interpolation. Ob nun von 0-360 oder 10-370 spielt da eigentlich keine Rolle. Die Schrittweite (0.002...) bleibt ja immer gleich. Beim Vergleich zwischen diesen Werten und dem Referenzsignal, willst du dann die Differenz bei kleichem Index wissen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.07.2011, 13:01     Titel:
  Antworten mit Zitat      
Da hast du recht. Es ist egal ob ich den Breich von 10° bis 370° bzw. von 0° bis 360° nehme (ich habe mich für das letztere Entschieden. Dein letzter Satz ist dem Ziel sehr nahe.

Ich möchte schließlich sagen können: z.B. ist bei 0° der Index des Referenzsignals 1,12 und der Index des Sensors bei 0° 1,14. Somit liegt eine Abweichung von 0,02 vor. Diese Aussage möchte ich nun über einen Datensatz (180.000 Werte) bzw. mehrere Zyklen durchführen.
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 26.07.2011, 13:08     Titel:
  Antworten mit Zitat      
Ok...dann musst ja aber eigentlich gar nicht von data_index_interp zu grad_interp.

Du machst die Interpolation einfach für das Referenz und das Ctr-Signal bezogen auf den Kommaindex. Aber was sagt dir dann, wie in deinem Bsp. die 0.02...wenn beides auf 0 Grad bezogen ist?
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.07.2011, 15:26     Titel:
  Antworten mit Zitat      
Eine Abweichung (bzw. Fehler) um x. Im Beispiel von Eben hat der Sensor eine Abweichung um ca. 1,8%.
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 26.07.2011, 15:43     Titel:
  Antworten mit Zitat      
Das war ja eine schwere Geburt Laughing

Ist die Abweichung überall gleich? Müsste ja bei gleicher Schrittweite so sein. Und jetzt, 1.8% Abweichung, Sensor wegschmeißen? Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 08:45     Titel:
  Antworten mit Zitat      
Sorry über den genauen Fehlerverlauf darf ich nichts sagen. Aber trotzdem Danke für all die Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 09:16     Titel:
  Antworten mit Zitat      
hihi...das sollte ja dann aber auf dem Datenblatt des Sensors nachzulesen sein. Aber auf Grund von Marketing gibt es da fast immer Möglichkeiten, die Angaben zu seinen eigenen Gunsten darzustellen Laughing
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 10:05     Titel:
  Antworten mit Zitat      
Schon aber die genannten Zahlenwerte (bzw. Beispiele) waren frei erfunden und haben mit den reálen Werten nichts zu tun.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 10:15     Titel:
  Antworten mit Zitat      
Ist doch kein Problem und auch verständlich wenn hier Stillschweigen angesagt ist. Mich hätte es einfach interessiert, ob der Fehler konstant bleibt...ob nun Fallbsp. oder reale Daten spielt da eine untergeordnete Rolle.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.