<?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=19382&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-10-15T20:27:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19382&amp;mode</id>
<entry>
<author><name><![CDATA[karbiuch]]></name></author>
<updated>2017-10-15T20:27:12+01:00</updated>
<published>2017-10-15T20:27:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197108#p197108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197108#p197108"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197108#p197108"><![CDATA[
Okej, teraz to sie duzo wyjasnilo. Wniosek prosty. W moim przypadku gdzie mam praktycznie staly sygnal, ktore jest zaszumiony i okazjonalnie pojawia sie pik najlepiej bedzie.<br /><br />Wykonac 8 pomiarow, usunac 2x MAX i 2 MIN, obliczyc srednia z 4 pomiarow.<br />Nastepnie 4 razy powtorzyc ta czynnosc. I ze sredniej policzyc srednia. Wtedy mam pewnosc, ze sygnal jest w miare okej. Operuje na 32 probkach, czyli wywalam 16 probek, a z 16 licze srednia.<br /><br />Jak zrobile filtr na 32 probkach to mam gorszy efekt. Dzieki za pomoc. Troche mnie to dzwilo, ale tak to wychodzi.<br /><br />Chyba, ze ktos ma lepszy pomysl ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18096">karbiuch</a> — 15 paź 2017, o 20:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-10-15T20:14:42+01:00</updated>
<published>2017-10-15T20:14:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197106#p197106</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197106#p197106"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197106#p197106"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />[syntax=c]sr = sr * dt;<br />    sr = sr + wynik;<br />            <br />    a = dt+1;<br />            <br />    sr = (sr + a*0.9) / a;[/syntax]<br /><br />ładne zaokrąglanie w górę wyniku dzielenia całkowitego<br /></div><br /><br />Zgadza się!  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Chociaż dużo lepiej będzie działało z 0.5 zamiast 0.9 no ale wiemy o co chodzi!  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Może się komuś przyda do testów. <br />[syntax=c]#include  &lt;stdio.h&gt;<br />         <br />    int main(void)<br />    {<br />        unsigned int wynik=0, sr=0;<br />        unsigned char i, dt, a;<br />       <br />        dt = 8;<br />       <br />        for(i=1; i&lt;100; i++)<br />        {<br />            if(i==1) wynik = 105;<br />            if(i==2) wynik = 110;<br />            if(i==3) wynik = 100;<br />            if(i==4) wynik = 105;<br />            if(i&gt;4) wynik = 100 + (i%10); //dla wynik od 100 do 109, no prawie losowo :)<br />           /*<br />            sr = sr * dt;<br />            sr = sr + wynik;<br />            sr = sr / (dt + 1);<br />           */<br />            sr = sr * dt;<br />            sr = sr + wynik;<br />            a = dt+1;<br />            sr = (sr + a*0.5) / a;<br /><br />            printf(&quot;i - %d\tWynik - %d\t Srednia - %d\r\n&quot;, i, wynik, sr);<br />        }<br />       <br />        return 0;<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 15 paź 2017, o 20:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-10-15T20:08:38+01:00</updated>
<published>2017-10-15T20:08:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197105#p197105</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197105#p197105"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197105#p197105"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />            sr = sr * dt;<br />            sr = sr + wynik + dt; //tutaj zaszła zmiana<br />            sr = sr / (dt + 1);<br /></div><br /><br />proponuję spojrzeć na pewien sposób uzyskiwania lepszego zaokrąglania przy dzieleniu liczb całkowitych tutaj na blogu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> też o tym było przecież<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/01/rs232-ubrr-jak-prawidowo-obliczac-trick.html" >http://mirekk36.blogspot.com/2013/01/rs ... trick.html</a><!-- m --><br /><br />i wtedy bez żadnego jak mówisz &quot;małego oszustwa&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> damy radę - zobacz o tak:<br /><br />[syntax=c]sr = sr * dt;<br />    sr = sr + wynik;<br />            <br />    a = dt+1;<br />            <br />    sr = (sr + a*0.9) / a;[/syntax]<br /><br />ładne zaokrąglanie w górę wyniku dzielenia całkowitego<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2017, o 20:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[abel11]]></name></author>
<updated>2017-10-15T20:02:41+01:00</updated>
<published>2017-10-15T20:02:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197104#p197104</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197104#p197104"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197104#p197104"><![CDATA[
Cyfrowa filtracja sygnałów jest względnie złożonym zagadnieniem. Z tego co pamiętam to projektowanie filtra dyskretnego jest podzielone na następujące kroki:<br />1. Określenie częstotliwości próbkowania przetwornika i częstotliwości sygnału próbkowanego (czy sygnał da się próbkować twierdzenie Shanona Kotelnikova)<br />2. Zaprojektowanie analogowego filtra<br />3. Wyznaczenie transmitancji filtra analogowego<br />4. Dyskretyzacja układu analogowego<br />5. Zbadanie zapasu stabilności układu (charakterystyki Bodego)<br /><br />Przykładowo mogę podać równania dla dolnoprzepustowego filtra Czybyszewa I rodzaju o parametrach:<br /><ul>pasmo przenoszenia Fpass = 0-10 [Hz]</ul><ul>tłumienie w pasmie przenoszenia Apass= 0.2 [dB]</ul><ul>tłumienie przy częstotliwości granicznej Fstop = 80 [Hz] równe 50 [dB].</ul><ul>próbkowanie fp = 760 [Hz]</ul><ul>częstotliwość sygnału próbkowanego fs = 50 [Hz]</ul><br />&lt;Pominę tu wyprowadzenie całości&gt;<br /><br />Jako wynik otrzymałem filtr 3 rzędu składający się z dwóch sekcji (filtr SOI):<br /><br />Sekcja I<br />wy(n)= 0.0023339 we(n) + 1.925625 wy(n−1) + 0.0046678 we (n−1) − 0.934961 wy(n−2) + 0.0023339 we(n−2)<br /><br />Sekcja II<br />wy(n)= 0.03259526 we(n) + 0.934809 wy(n−1)+0.03259526 we(n−1)<br /><br />wy(n) - wynik pracy filtra z aktualną próbką (najnowszą)<br />wy(n-1) - wynik pracy filtra z poprzednią próbką<br />wy(n-2) - wynik pracy filtra z jeszcze wcześniejszą próbką<br />we(n) - najnowsza próbka ADC<br />we(n-1) - poprzednia próbka z ADC<br />we(n-2) - jeszcze wcześniejsza próbka z ADC<br /><br />Wynik sekcji I jest sygnałem wejściowym dla sekcji II<br /><br />Tu charakterystyki Bodego:<br /><a href="https://obrazkiforum.atnel.pl/17861/4e08281d4a947c33440789474103dff1.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/17861/4e08281d4a947c33440789474103dff1.png" alt="Obrazek" /></a><br /><br />zapas wzmocnienia Δk wynosi -160[dB]<br />zapas fazy Δϕ = 34,2[°]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17861">abel11</a> — 15 paź 2017, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Espablo]]></name></author>
<updated>2017-10-15T19:52:22+01:00</updated>
<published>2017-10-15T19:52:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197100#p197100</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197100#p197100"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197100#p197100"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Czy moze zamiast tego zrobic cos takiego, zmierzyc 8 probek sygnalu, odrzucic 3 skrajne, a usrednic 5 probek? Dzieki temu jezeli wpadnie mi jakis pik, to nie zaburze wartoci sredniej?<br /></div><br />Tak też można. Nazywa się to średnia mediana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1897">Espablo</a> — 15 paź 2017, o 19:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-10-15T19:46:52+01:00</updated>
<published>2017-10-15T19:46:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197098#p197098</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197098#p197098"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197098#p197098"><![CDATA[
No właśnie, że nie jest dobrze, sprawdź proszę. Wlej ten kod, ale ten pierwszy i zobacz co się dzieje, jaką otrzymujemy wartość zmiennej sr?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />No właśnie dlaczego otrzymujemy 101 skoro większość próbek ma wartość 105?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 15 paź 2017, o 19:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karbiuch]]></name></author>
<updated>2017-10-15T19:43:12+01:00</updated>
<published>2017-10-15T19:43:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197096#p197096</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197096#p197096"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197096#p197096"><![CDATA[
To nie ma sensu. Przeciez od probki 5 do 100 Twoj wynik = 105. Czyli 95 probek ma wartosc 105. Przy takim sygnale cos kolwiek bys zrobil bylo by dobrze. 95% Twoich srednich ma wartosc 101, a sygnal ma wartosc 105. <br /><br />Wez dodaj losowy szum do wartosc 105 i wtedy dopiero to przetestuj. Np. losowo niech dodaje wartosci +-3 do kolejnych probek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18096">karbiuch</a> — 15 paź 2017, o 19:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-10-15T19:28:23+01:00</updated>
<published>2017-10-15T19:28:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197094#p197094</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197094#p197094"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197094#p197094"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />to niestety nie jest dobry pomysł<br /></div><br />Zgadza się. Mój błąd.<br /><br />W ramach pokuty zrobiłem małą symulację i faktycznie wszystko pięknie działa, ale tylko dla zmiennych typu float. Dla zmiennych typu int niestety nigdy nie uzyskamy prawidłowego wyniku.<br /><br />Wklejcie ten kod:<br />[syntax=c]#include  &lt;stdio.h&gt;<br />     <br />#define TEST_FLOAT 0 // 1 dla zmiennych typu float, 0 dla zmiennych typu int<br />     <br />    int main(void)<br />    {<br />#if TEST_FLOAT == 1<br />        double wynik=0.0, sr=0.0;<br />#else<br />        unsigned int wynik=0, sr=0;<br />#endif<br />        unsigned char i, dt;<br />       <br />        dt = 4;<br />       <br />        for(i=1; i&lt;100; i++)<br />        {<br />            if(i==1) wynik = 105;<br />            if(i==2) wynik = 110;<br />            if(i==3) wynik = 100;<br />            if(i==4) wynik = 105;<br />            if(i&gt;4) wynik = 105;<br />           <br />            sr = sr * dt;<br />            sr = sr + wynik;<br />            sr = sr / (dt + 1);<br />           <br />#if TEST_FLOAT == 1<br />            printf(&quot;i - %d\tWynik - %f\t Srednia - %f\r\n&quot;, i, wynik, sr);<br />#else<br />            printf(&quot;i - %d\tWynik - %d\t Srednia - %d\r\n&quot;, i, wynik, sr);<br />#endif<br />        }<br />       <br />        return 0;<br />    }[/syntax]<br />na przykład tutaj <!-- m --><a class="postlink" href="http://rextester.com/l/c_online_compiler_gcc" >http://rextester.com/l/c_online_compiler_gcc</a><!-- m --><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />Aby działało poprawnie również dla zmiennych typu int proponuję takie małe oszustwo:<br />[syntax=c]#include  &lt;stdio.h&gt;<br />         <br />    int main(void)<br />    {<br />        unsigned int wynik=0, sr=0;<br />        unsigned char i, dt;<br />       <br />        dt = 4;<br />       <br />        for(i=1; i&lt;100; i++)<br />        {<br />            if(i==1) wynik = 105;<br />            if(i==2) wynik = 110;<br />            if(i==3) wynik = 100;<br />            if(i==4) wynik = 105;<br />            if(i&gt;4) wynik = 105;<br />           <br />            sr = sr * dt;<br />            sr = sr + wynik + dt; //tutaj zaszła zmiana<br />            sr = sr / (dt + 1);<br />           <br />            printf(&quot;i - %d\tWynik - %d\t Srednia - %d\r\n&quot;, i, wynik, sr);<br />        }<br />       <br />        return 0;<br />    }[/syntax]<br /><br />Co Wy na to?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 15 paź 2017, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karbiuch]]></name></author>
<updated>2017-10-15T18:40:55+01:00</updated>
<published>2017-10-15T18:40:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197088#p197088</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197088#p197088"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197088#p197088"><![CDATA[
Yyy,.. jeszcze raz, ale tak dla prostych ludzi. Na razie nie probkuje rzeczywistego sygnalu, tylko siedze w excelu.<br /><br />Zalozmy, ze mam 8 probek sygnalu, ktore maja mi pomoc w tym, ze ADC nie lata gora/dol. Rozumiem, ze w takim wypadku lepiej zastosowac zwykle usrednianie? Ewentualnie rozszerzyc do 16 probek, i wtedy stala czasowa bedzie rzedu 98%?<br /><br />Czy moze zamiast tego zrobic cos takiego, zmierzyc 8 probek sygnalu, odrzucic 3 skrajne, a usrednic 5 probek? Dzieki temu jezeli wpadnie mi jakis pik, to nie zaburze wartoci sredniej?<br /><br />Ogolnie rzecz biorac chcialbym &quot;poswiecic&quot; 16 probek, tak aby wyeliminowac szumy/zaklocenia i pozbyc sie latania przetwornika. Jak to zrobic najrozsadniej? Wg mnie liczenie samej sredniej jest bez sensu, bo to nie jest odporne na pojedyncze zaklocenia.<br /><br />Z tego wynika, ze ten filtr sens tylko wtedy jezeli ciagle mierzmy sygnal. Natomiast jezeli wrzuce to do petli, ktora wykonuje sie N-niewiele razy to mija sie to z celem? Znacie jakas ksiazke gdzie sa fajnie rozpisane i wytlumaczone takie algorytmy? Temat niesamowicie ciekawy!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18096">karbiuch</a> — 15 paź 2017, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alef2]]></name></author>
<updated>2017-10-15T18:39:29+01:00</updated>
<published>2017-10-15T18:39:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197087#p197087</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197087#p197087"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197087#p197087"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />sr = sr * dt<br />sr = sr + wynik<br />sr = sr /(dt+1)<br /></div><br />To jest człon inercyjny o stałej czasowej T równej około 4t, gdzie t to okres między próbkami. <br />Lub też filtr dolnoprzepustowy pierwszego rzędu o częstotliwości granicznej równej 1/2*pi*T (0,04 1/t).<br />Po 1 stałej czasowej (czyli po 4 próbkach) osiągnie on 63% wartości ustalonej. <br />Po 2 stałych czasowych (czyli po 8 próbkach) osiągnie on 86% wartości ustalonej.<br />Po 4 stałych czasowych (czyli po 16 próbkach) osiągnie on 98% wartości ustalonej.<br />Czyli wszystko się zgadza, nalezy tylko dać trochę wiecej czasu (próbek), na dojście inercji do stanu ustalonego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14998">Alef2</a> — 15 paź 2017, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2017-10-15T18:35:35+01:00</updated>
<published>2017-10-15T18:35:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197086#p197086</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197086#p197086"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197086#p197086"><![CDATA[
<div class="quotetitle">karbiuch napisał(a):</div><div class="quotecontent"><br />dlaczego srednia wynosi okolo 62? a nie jest w poblizu wartosci sredniej ~ 104?<br />(105, 110, 100, 105) / 4 = 105<br /></div><br />Chyba trochę źle to zrozumiałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Należy przyjąć, iż uśrednianie ma zastąpić filtr RC. Stała czasowa filtru RC to czas, w którym napięcie na kondensatorze (po podaniu na filtr napięcia stałego) osiągnie wartość 63,2% napięcia zasilającego taki filtr (<a href="https://pl.wikipedia.org/wiki/Uk%C5%82ad_RC"  class="postlink">https://pl.wikipedia.org/wiki/Uk%C5%82ad_RC</a>). Czyli jesteś blisko <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Wartość zbliżoną do napięcia zasilającego, przy założeniu utrzymania cały czas tej samej wartości napięcia, możesz uzyskać po 30-40 pomiarach (w zależności od tego, jaka różnica jest akceptowalna). Na przykład przy utrzymaniu wartości 105, po 40 pomiarach powinieneś uzyskać wartość średnią ok. 104,98 (po 30 - 104,84).<br /><br />_________________<br /><a href="http://forum.atnel.pl/topic19149.html#p194736"  class="postlink">AVR-GCC - dane w pamięci FLASH</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 15 paź 2017, o 18:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-10-15T18:28:05+01:00</updated>
<published>2017-10-15T18:28:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197085#p197085</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197085#p197085"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197085#p197085"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Zamiast tego wzoru:<br />sr = sr * dt<br />sr = sr + wynik<br />sr = sr /(dt+1)<br />użyj:<br />sr = sr * dt<br />sr = sr + wynik<br />sr = sr / dt<br /></div><br /><br />to niestety nie jest dobry pomysł<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2017, o 18:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Espablo]]></name></author>
<updated>2017-10-15T17:56:15+01:00</updated>
<published>2017-10-15T17:56:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197084#p197084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197084#p197084"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197084#p197084"><![CDATA[
Bez tego sr = sr /(dt+1) średnia nigdy nie osiągnie wartości maxymalnej. Czyli jak będziesz cały czas podawał 105 to uśredniony wynik zawsze pokaże 104<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1897">Espablo</a> — 15 paź 2017, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karbiuch]]></name></author>
<updated>2017-10-15T17:35:15+01:00</updated>
<published>2017-10-15T17:35:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197080#p197080</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197080#p197080"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197080#p197080"><![CDATA[
Dzieki za odpowiedz. Dlaczego bez dt+1 ? To jest srednia ruchoma?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18096">karbiuch</a> — 15 paź 2017, o 17:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-10-15T16:53:12+01:00</updated>
<published>2017-10-15T16:53:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197078#p197078</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197078#p197078"/>
<title type="html"><![CDATA[Re: filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197078#p197078"><![CDATA[
Zamiast tego wzoru:<br />sr = sr * dt<br />sr = sr + wynik<br />sr = sr /(dt+1)<br />użyj:<br />sr = sr * dt<br />sr = sr + wynik<br />sr = sr / dt<br /><br />Teraz mamy:<br />1) obieg pętli: (wynik = 105, srednia = 0, dt = 4)<br />sr = 0 * 4 = 0<br />sr = 0 + 105 = 105<br />sr = 105 /4 = 26<br /><br />2) obieg pętli: (wynik = 110, srednia = 26, dt = 4)<br />sr = 26 * 4 = 104<br />sr = 104 + 110 = 214<br />sr = 214 / 4 = 53<br /><br />3) obieg pętli : (wynik = 100, srednia = 53, dt = 4)<br />sr = 53 * 4 = 212<br />sr = 212 + 100 = 312<br />sr = 312 / 4 = 78<br /><br />4) obieg pętli : (wynik = 105, srednia = 78, dt = 4 )<br />sr = 78 * 4 = 312<br />sr = 312 + 105 = 417<br />sr = 417 / 4 = 104<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 15 paź 2017, o 16:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karbiuch]]></name></author>
<updated>2017-10-15T15:56:15+01:00</updated>
<published>2017-10-15T15:56:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197074#p197074</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197074#p197074"/>
<title type="html"><![CDATA[filtr dolnoprzepustowy algorytm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19382&amp;p=197074#p197074"><![CDATA[
Witam,<br /><br />Ogladalem poradnik, ktore opisuje zasade dzialania filtru dolnoprzepustowego. Zauwazylem, ze on dziala ono wiele lepiej niz zwykle usrednianie danych. Jednak nie rozumiem tego algorytmu, tzn. probowalem go rozpisac i wychodza mi glupoty. Bardzo prosze o weryfikacje mojego myslenia.<br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=LtLdMRGHa7A&amp;feature=youtu.be" >https://www.youtube.com/watch?v=LtLdMRG ... e=youtu.be</a><!-- m --><br /><br />Mamy 4 probeki:<br />105, 110, 100, 105 - chce na tych probkach zrobic filtrowanie<br /><br />czyli <br /><br />wzor:<br />sr = sr * dt<br />sr = sr + wynik<br />sr = sr /(dt+1)<br /><br />1) obieg petli: (zmienna srednia =0, dt = 4)<br />sr = 0 * 4 = 0<br />sr = 0 + 105<br />sr = 105 /5 = 21<br /><br />2) obieg petli: (srednia = 21, dt = 4)<br />sr = 21 * 4 = 84<br />sr = 84 + 110 = 194<br />sr = 194 / 5 = 38,8<br /><br />3) obieg petli : (srednia = 38,8, dt = 4)<br />sr = 38,8  * 4 = 155,2<br />sr = 155 + 100 = 255<br />sr = 51,04<br /><br />4) obieg petli : (srednia = 51,04, dt =4 )<br />sr = 51,04 * 4 = 204,16<br />sr = 204,0 + 105 = 309<br />sr = 61,8<br /><br />....<br />dlaczego srednia wynosi okolo 62? a nie jest w poblizu wartosci sredniej ~ 104? <br />(105, 110, 100, 105) / 4 = 105 <br /><br />Chcialem wykorzystac ten algorytm do uspokojenia pomiarow od ADCka. Chcialem nim zastapic srednia, ktora licze z 64 probek. Gdzie popelniam blad w mysleniu? Ogolnie rzecz biorac mierze sygnal w 100 roznych punktach. Kazdy punkt pomiarowy mierze 64razy i usredniam. Z czyli z 100 usrednien rysuje wykres. Nie jestem zadowolony z wynikow, gdyz zamiast liniowej zaleznosci, mam czasem falujaca krzywa. Chcialem troche polepszyc rysowanie poprzez zastosowanie tego filtru.. Czyli dla 64 pomiarow, tej samej wartosci chcialem wykorzystac ten algorytm, zamiast usredniania.<br /><br />W skrocie:<br />100 zmieniam napiecie na aktuatorze o 5mV, czyli od 0-500mV. Mierze odpowiedz aktuatora, jego prad jest proporcjonalny do zadanego napiecia. Dla 5mV mam 5mA, dla 10mV mam 10mA.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18096">karbiuch</a> — 15 paź 2017, o 15:56</p><hr />
]]></content>
</entry>
</feed>