Test data interpoleren in Excel 2010

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 301225

Topicstarter
Goedenmiddag,

Ik ben hier op het werk bezig met het analyzeren van gemeten test data. Alleen is de test data niet handig gemeten...

Een signaal (Engine_cycle_speed) is gemeten in stapjes van 10ms.
Een ander signaal (DPF_temperature) is gemeten in stapjes van 100ms.

Voor mijn volgende tests heb ik de calibratie aangepast waardoor alles nu netjes op 10ms wordt gemeten, maar voor de test data die ik al had verkregen kan ik dat niet met terugwerkende kracht doen natuurlijk.

Wat ik dus wil is dat de 100ms data wordt ge interpoleerd naar 10ms data, zodat ze gelijke arrays krijgen.

In Matlab heb ik wel een scriptje gevonden, maar diegene die het ooit geschreven heeft werkt hier niet meer, en niemand blijkt het te weten...

Kan iemand mij vertellen hoe ik dit in Excel 2010 (of wellicht Matlab) zou kunnen doen?

Bedankt.

Gr.
Erik

Acties:
  • 0 Henk 'm!

  • LiquidT_NL
  • Registratie: September 2003
  • Laatst online: 13-05-2021
Je wil de data interpoleren? Als in:
t (ms)DPF temperature (degr. C)
0200
100250


En dan zou op t = 50 de temperatuur 125 moeten zijn? Als in linerair interpoleren, dus als je het zou plotten krijg je lijnen met hoeken op de meetpunten? Of wil je een interpolatie methode waarin de plot meer ronding heeft?

Explorers in the further regions of experience...demons to some, angels to others.


Acties:
  • 0 Henk 'm!

Anoniem: 301225

Topicstarter
De data tussen de meetpunten moet inderdaad lineair geinterpoleerd worden. De data zelf is natuurlijk verre van lineair.

Wat je inderdaad zegt is dat het gewoon 9 punten tussen t=0.1 en t=0.2 moet genereren.

De plot mag rondingen hebben als het makkelijker is, maar hoekig is verder geen probleem. Het belangrijkste is dat ik de twee verschillende test data synchroon heb.

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Weet je zeker dat dit een goede methode is? Stel dat je buitentemperatuur per 100 uur hebt gemeten, en zonlicht per 10 uur. Zou het dan correct zijn om de data die per 100 uur is gemeten aan te vullen met interpolatie? Of zou het toch beter zijn om alleen de data te gebruiken waarbij je beide metingen hebt? :p

Kortom, alleen weggooien lijkt me een correcte methode, het bij elkaar zoeken van de data kan met iets als INDEX of een andere lookup-functie. ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Je moet inderdaad goed kijken of het zinvol/juist is om te interpoleren, lineair interpoleren als de reële gegevens vermoedelijk verre van lineair zijn kan wat vertekening opleveren.

In R kan je makkelijk lineair interpoleren, het programma is vrij beschikbaar.

[ Voor 6% gewijzigd door begintmeta op 26-09-2012 00:59 ]


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ik zou gewoon zeggen niet interpoleren maar enkel de 100ms gebruiken waar je de data van hebt.

In theorie kan je uit de huidige data (die steeds meer wordt en dus beter te gebruiken) een interpolatie-functie kunnen berekenen en die functie kan je steeds bijschaven hoe meer data je krijgt.
Maar in de praktijk heb je simpelweg die data niet en komt het eigenlijk neer op gokwerk (hoe beter je gaat interpoleren hoe meer educated gokwerk het wordt, maar het blijft in wezen gokwerk).

Er is geen magic fomula die even je stapgrootte 10x zo groot maakt ongeacht de situatie. Het is altijd situatie afhankelijk.
Als jij bij punt 0 200 hebt en bij punt 100 heb je 250 dan kan het best zo blijken uit je huidige data dat je altijd constant op 50 -1000 hebt, maar dat gaat geen magic formula je voorschotelen zonder naar de data te kijken..

Wat je zou kunnen proberen is om in je formula een stapgrootte 1000 te pakken, daarmee interpoleren en dan kijken of alles met een stapgrootte 100 goed (genoeg) gaat. Dan diezelfde formula pakken over alle 100's en dan checken of het nog steeds goed (genoeg) gaat met de 10's die je wel hebt.

  • LiquidT_NL
  • Registratie: September 2003
  • Laatst online: 13-05-2021
Zoals hierboven al aangegeven is het niet onverstandig even te verdiepen of je die data precies zo nodig hebt. Hoe dan ook, wil je lineair interpoleren, kan je dat niet gewoon heel makkelijk zelf berekenen?

Even van wikipedia:
Afbeeldingslocatie: http://upload.wikimedia.org/math/9/e/e/9ee1ce260549a0e711ca343dd6c46550.png

Hoewel je met wat logisch nadenken ook zelf wel iets in elkaar kan klussen als dat te wiskundig is.

Explorers in the further regions of experience...demons to some, angels to others.


Anoniem: 301225

Topicstarter
In een meting van 700 seconden waar dus 7000 (100ms) of 70.000 (10ms) meetpunten zijn, is het acceptabel om lineair te interpoleren tussen de punten. Bijvoorbeeld bij de temperatuur zal de stapgrootte niet groter dan 0.2gr/0.1s zijn.

Uiteindelijk zal ik niet enorm veel met die waarden gaan doen, maar voor enkele programma's is het handiger om arrays van gelijke lengte te hebben. Voor andere variabelen (injectijden e.d.) is het niet echt mogelijk om de data 'langzamer' te maken naar 100ms. Dan lever je te veel precisie in.

@LiquidT_NL
Ik zal eens gaan spelen met die formule en wat andere dingen.

@beginmeta
Ik zal thuis een kijken naar dat programma. Zoals altijd bij grote bedrijven heb ik hier geen enkele rechten om iets te installeren op mijn PC.
Pagina: 1