Hirdetés

Új hozzászólás Aktív témák

  • master bud

    tag

    Helló mindenkinek!

    A következő problémával küzdök: egy mérési adatokat (valami vs idő) megjelenítő és azokat különböző szempontok alapján módosító (szűrés, dct, korrekció stb.) programot fejlesztek MATLAB-ban.

    Kb. úgy néz ki, hogy a GUI-n van két nagy grafikon függ. elrendezésben, a felsőre behívom az eredeti adatsort, jobb oldalt mindenféle gombokkal módosítom/korrigálom majd a módosított adatokat az alsón ábrázolom, a könnyebb összehasonlítás végett. Ez megoldottam, a MATLAB erősen megkönnyíti az ember dolgát. (nem vagyok programozó szakmám szerint)

    Aztán az jutott eszembe, hogy milyen jó lenne, ha a mérési adatokba ki/be lehetne zoomolni így megnézhetném, hogy nagy felbontásban mit csinált a szűrő stb. Na és itt mentem be az erdőbe, mert a nagyítás/kicsinyítés nyilván slide-oláshoz vezet és belebonyolódtam.

    Amit kipróbáltam (beszéljünk csak az X tengelyről): veszem az ábrázolt tartomány min/max értékének különbségét, D=Xmax-Xmin. Ezt beszorzom mondjuk 0.125-tel, d=D*0.125. Ezt aztán hozzáadom/levonom a megfelelő értékekből és ezek lesznek az új skála értékek, Xmax=Xmax-d; Xmin=Xmin+d. Ugyanezt visszafelé is (zoom out). És hasonlóan az Y tengellyel is.

    A gond az, hogy kb. 20 ilyen be és 20 vissza zoom után, értelemszerű kerekítési hibák miatt nem jutok vissza a kezdeti állapotba, mivel egy mérési adatnál nem prediktálható, hogy mi lesz a kezdeti Xmax és Xmin (lehet Xmin, 0.74176 sec pl.). Baj az is, hogy a nagyítás mértéke végig változatlan, ezért a finom felbontásnál már nagyot ugrik egy ilyen 0.125-ös szorzó. :(((

    Aztán a következő megoldás az volt, hogy bevezetek egy (állapot)számlálót és ennek értéke alapján módosítóm a skálát a következőképpen: ez a számláló legyen egy függvény független változója , és a függvényérték adjon egy egy szorzót amivel kiszámolom a 'd'-t. Magyarul legyen egy ilyen függvény: y=exp(-valami*állapotszámláló); d=D*y. Na ez már jobb volt de ez sem az igazi még. :(

    Aztán eldurrant az agyam (mert a nagyított grafikon jobbra/görgetésébe is belegondoltam, ami nyilván bonyolítja) és az jutott eszembe, hogy egy programozó biztos többet tud ennek a gondolatmenetéről és felesleges újrafeltalálni a melegvizet.

    Tehát tippekre lennék kíváncsi, kb. egy pszeudokódszerűségre, hogyan is oldják meg ezt a programozók :F

    Előre is köszi!

Új hozzászólás Aktív témák