<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=13372&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-28T20:16:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13372&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T20:16:41+01:00</updated>
<published>2015-10-28T20:16:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143570#p143570</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143570#p143570"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143570#p143570"><![CDATA[
Jak masz losowe odstępy to już zostaje przeszukiwanie tablicy. Przy małej ilości wartości x w tablicy możesz lecieć po kolei od pierwszego o ostatniego i sprawdzać czy akurat nie trafiłeś na przekraczanie mniejszej na większą wartość w porównaniu z twoją próbką. Ale przy dużej tablicy to zrób raczej &quot;inteligentne&quot; wyszukiwanie, np. metodą połówkową (dzielisz tablicę na pół i sprawdzasz czy środkowy element jest w większy czy mniejszy (w górnej czy dolnej połowie) od twojej wartości, następnie dzielisz wybraną połowę na pół i znowu sprawdzasz, itd ..).<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 20:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tec-dive]]></name></author>
<updated>2015-10-28T15:43:24+01:00</updated>
<published>2015-10-28T15:43:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143548#p143548</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143548#p143548"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143548#p143548"><![CDATA[
No niestety próbki to różnie mogą wyglądać. Np co 20, 50, 200 itp. Ale ułożą się w kolejności od najmniejszej do największej i tak będą zapisane do tablicy więc będę operował na elementach tablicy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4916">tec-dive</a> — 28 paź 2015, o 15:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T12:24:38+01:00</updated>
<published>2015-10-28T12:24:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143542#p143542</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143542#p143542"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143542#p143542"><![CDATA[
Jak będziesz miał próbki x co 4, 8 , 16, ... to będzie ci bardzo łatwo.<br />Jak na przykład zrobisz próbki co 8 to wystarczy:<div class="codetitle"><b>Code:</b></div><div class="codecontent">xp &gt;&gt; 3</div>i masz wskazany index próbki  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 12:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tec-dive]]></name></author>
<updated>2015-10-28T11:27:54+01:00</updated>
<published>2015-10-28T11:27:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143541#p143541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143541#p143541"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143541#p143541"><![CDATA[
Dokładnie tak myślałem jak Nefarious19 i rskup pisali wyżej. Tylko muszę pomyśleć jak badać pomiędzy którymi dwoma punktami leży moja zmierzona wartość. Punkty każdej funkcji są równo rozłożone więc obliczenia będą troszeczkę prostsze.<br />Czyli mogę się wziąć za kod <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4916">tec-dive</a> — 28 paź 2015, o 11:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T09:22:11+01:00</updated>
<published>2015-10-28T09:22:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143535#p143535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143535#p143535"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143535#p143535"><![CDATA[
Dokładnie tak jak napisał <em>Nefarious19</em>, który mnie ubiegł.<br />Zakładasz, że funkcja jest liniowa (lub inna jak chcesz komplikować obliczenia) między dostępnymi punktami które wyszły z pomiaru. Czyli masz funkcję skwantowaną na odcinki łamane:<br />1: x0 - x1 <br />2: x1 - x2<br />...<br />n: xn-1 - xn<br />I na podstawie potrzebnego Ci xp i dostępnego opisu funkcji (masz dane najbliższych punktów (xp-1, yp-1) (xp+1, yp+1), więc masz wzór funkcji) wyliczysz yp.<br />Tylko pamiętaj stosuj / przechowuj dane jako wielokrotność np. 1000, dzięki czemu będziesz miał liczby całkowite a przy okazji zachowasz dokładność przy wyliczaniu.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 09:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-10-28T09:09:40+01:00</updated>
<published>2015-10-28T09:09:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143534#p143534</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143534#p143534"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143534#p143534"><![CDATA[
1. Kalibracja, zbieranie wyników do tablicy<br />2. Chcesz z wartości X wyliczać Y. Twoja funkcja jest stablicowana czyli jest dyskretna a nie ciągła.<br />3. Powiedzmy że chcesz mieć wartość Y dla X który nie był stablicowany<br />4. Patrzysz w jakim przedziale jest Twój X, przedział aproksymujesz funkcją liniową, i wyliczasz swój Y.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 28 paź 2015, o 09:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2015-10-28T09:02:52+01:00</updated>
<published>2015-10-28T09:02:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143532#p143532</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143532#p143532"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143532#p143532"><![CDATA[
No inaczej (chyba ) tego nie zrobisz.<br />Tzn tak, jeśli chcesz szybko  i niedokładnie to robisz f.liniową<br />Jeśli chcesz w miarę szybko i w miarę dokładnie to aproksymujesz i lecisz f.kwadratową.<br />Jeśli chcesz wolno i dokładnie to lecisz wielomianem wyższego rzędu. <br />Inaczej się nie da <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Ewentualnie możesz sobie podzielić tę funkcję na kilkanaście przedziałów.<br />Np co 1000<br />od 2k do 3k<br />od 3k do 4k<br />...<br />do 6k do 7k<br /><br />I w każdym z tych przedziałów sotosować inny wzór f.liniowej (to znacznie uprości)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 28 paź 2015, o 09:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tec-dive]]></name></author>
<updated>2015-10-28T08:49:34+01:00</updated>
<published>2015-10-28T08:49:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143531#p143531</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143531#p143531"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143531#p143531"><![CDATA[
Już tak próbowałem robić i nawet to przynosi spodziewane efekty ale tak się chyba nie robi, a poza tym docelowo chciałbym aby cała taka procedura odbywała się w locie, tzn: urządzenie na etapie - nazwijmy to - kalibracji zbiera takich kilkadziesiąt punktów, zapisuje je sobie. Od tego momentu zaczyna działać normalnie czyli wykonuje pomiar i odczytaną wartość ma przeliczyć zgodnie z taka funkcją. Chodzi o to, że to nie wiadomo z góry jakie to będą przebiegi czyli odpada przeliczanie tego na piechotę i kompilacja z gotowym wzorem. Oczywiście do testów dokładnie tak to robiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4916">tec-dive</a> — 28 paź 2015, o 08:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-10-28T08:42:14+01:00</updated>
<published>2015-10-28T08:42:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143530#p143530</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143530#p143530"/>
<title type="html"><![CDATA[Re: Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143530#p143530"><![CDATA[
Wrzuć te dane do excela, aproksymuj wielomianem, później otrzymany wzór przepisz na język C tylko tak żeby nie używać floatów i już.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 28 paź 2015, o 08:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tec-dive]]></name></author>
<updated>2015-10-28T08:37:52+01:00</updated>
<published>2015-10-28T08:37:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143529#p143529</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143529#p143529"/>
<title type="html"><![CDATA[Funkcja nieliniowa - tablice]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13372&amp;p=143529#p143529"><![CDATA[
Witam szanownych Forumowiczów,<br /><br />nie do końca wiedziałem gdzie wstawić ten wątek, bo trąca troszkę działem rybnym ale mimo wszystko bardziej chodzi mi o nauczenie się rozwiązywania podobnych zagadnień niż o gotowca.<br /><br />Mianowicie posiadam wykres funkcji pewnej wielkości fizycznej zmierzonej przetwornikiem ADC. Jest to kilkadziesiąt punktów, które jak widać &quot;słabo&quot; dopasowują się do funkcji liniowej. Teraz to co chciałbym zrobić to wyliczać wartość &quot;Y&quot; dla dowolnej wartości &quot;X&quot; (odczyt z ADC). <br />Nie bardzo wiem jak się za to zabrać. Domyślam się, że dane, które już posiadam (punkty z wykresu) wrzucam sobie do tablicy. Tylko teraz nie wiem jak obliczać wartości, wypadające pomiędzy tymi punktami. <br /><br /><br /><br /><a href="https://obrazkiforum.atnel.pl/4916/940648760349c5e42bd419c6e7ebcfbd.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4916/940648760349c5e42bd419c6e7ebcfbd.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4916">tec-dive</a> — 28 paź 2015, o 08:37</p><hr />
]]></content>
</entry>
</feed>