logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Procedura uśrednienia próbek z kompaktora - Bascom - jak?

olo_3 12 Cze 2010 12:48 2894 16
  • #1 8181822
    olo_3
    Poziom 15  
    Jak napisać w Bascomie procedurę pobrania 10-ciu próbek (z jednego ADC(0)) tak by odrzucić 5 skrajnych, wybrać 5 środkowych wartości i policzyć z nich średnią? Możne ktoś podpowiedzieć?
    Z góry dziękuję.
  • #2 8181840
    kuuczoo
    Poziom 26  
    Liczysz średnią, a potem odrzucasz 5, których odchylenie jest największe:
    1. Liczysz średnią
    2. Liczysz moduł różnicy średniej i próbki.
    3. Sortujesz różnice
    4. Odrzucasz 5 pierwszych/ostatnich elementów posortowanej grupy.
  • #3 8206112
    spawacz12_83
    Poziom 10  
    Nie prościej będzie jednak uśrednić wszystkie 10 pomiarów przez dodanie wszystkich próbek i podzielenie ich przez 10? Łatwo i szybko.
  • #4 8206710
    olo_3
    Poziom 15  
    Nie,
    ponieważ straszenie nie dokładnie to wychodzi, dlatego trzeba by wybrać jakieś wiarygodne wartości.
  • #5 8206917
    J_Bravo
    Poziom 27  
    Lepiej znajdź przyczynę wahania wyników pomiaru. Masz schemat urządzenia? dobrze odseparowałeś cyfrówkę od analogówki? Jak skonfigurowałeś ADC? gdzie podpiąłeś Aref?

    ps. Jak wielkie masz wahania pomiaru?
  • #6 8207485
    olo_3
    Poziom 15  
    Absurdalne,
    ostatecznie robie to xmega - ale to znowu potrwa bo musze dac zrobic pcb.
    wiecej szczegolow masz tutaj:
    http://forum.ep.com.pl/viewtopic.php?p=89134#89134
    Co do konfiguracji to wszystkie sposoby były przerabiane. Łączenie z bardzo dokładnym źródłem napięcia ref.
    Temat martwy do momentu przyjścia pcb. Problemów więcej np. brak bibliotek do Xmega w Eagle.
    Co prawda pisałem na elektrodzie w tej sprawie ale jakiś cwaniaczek moderator postanowił wywalić temat albowiem ośmieliłem się zacząć zdanie z malej litery. Generalnie to forum spada na psy, a nie podnosi poziom.

    Moderowany przez _Robak_:

    Jeśli tak kolega sądzi to proszę nie korzystać z wiedzy użytkowników tego forum i zacząć się samemu uczyć, albo przenieść się na inne forum.

  • #7 8209909
    J_Bravo
    Poziom 27  
    Wg mnie na 100% nie jest to wina procesora. Zwykle używam atmega8/32/128 i ADC spisuje się perfekcyjnie. Co do usunięcia postu z powodu rozpoczęcia zdania z małej litery to nie wiadomo czy śmiać się czy płakać ;/ Nadgorliwy polonista ci się trafił ;)
  • #8 8210231
    PiotrPitucha
    Poziom 34  
    Witam
    Propozycje dzielenia przez ilość próbek np. 10 są bezsensowne, jeśli już uśredniać to można to zrobić z głową, daj 16 próbek i przesuń wynik w prawo, to że w BASCOMie wygląda prosto to wcale nie znaczy ze po kompilacji wyjdzie prosto.
    Nie mam BASCOMa pod ręką ale poszukaj instrukcji Shift Right lub coś podobnego.
    Piotr
  • #9 8210664
    landy13
    Poziom 31  
    olo_3 napisał:
    ponieważ straszenie nie dokładnie
    Kogo straszenie i czym?
    olo_3 napisał:
    Moderator osunął z tego temu
    W jaki sposób "osunął" i co to jest "temu"?
    O co tu chodzi?
  • #10 8210677
    gaskoin
    Poziom 38  
    w regulaminie jest napisane jasno, że nikogo nie obchodzi nawet dysleksja, chociaż przyznam, że co do używania polskich znaków - jednoznacznych informacji regulamin nie udziela.

    PiotrPitucha napisał:
    Witam
    Propozycje dzielenia przez ilość próbek np. 10 są bezsensowne, jeśli już uśredniać to można to zrobić z głową, daj 16 próbek i przesuń wynik w prawo


    tak przeczytałem sobie i zastanawiam się o co Ci tutaj chodziło ? Bo nie wyraziłeś się chyba do końca jasno.

    po "wzięciu" 16 próbek (domyślam się, że chodziło o zsumowanie ich), przesuwamy wynik w prawo = dzielimy go przez dwa :|

    $$\frac{1}{2}\sum_{i=0}^{15}x_i = ?$$ :D

    no chyba, że chodziło po prostu o uśrednianie większej ilości próbek (wzięcie większej ilości + przesunięcie o odpowiednia ilość w prawo) - wtedy to ma sens
  • #11 9006668
    pawcio4
    Poziom 11  
    Witam.
    Chciałbym sie podłączyć.

    Mam problem z uśrednieniem wyniku z lm35.
    Mam taki kod:

    Config Adc = Single , Prescaler = Auto , Reference = Avcc   'config ADC
    Start Adc
    
    Dim W As Word  , Volt As Word , Volt_d As Byte
    
     W = Getadc(0)
      Volt = W * 5
      Volt_d = Volt Mod 10
      Volt = Volt / 10 



    jak to uśrednić?
  • #12 9007098
    slawko_k
    Poziom 35  
    A co ty chcesz uśredniać w 1 pomiarze??
  • #13 9007875
    J_Bravo
    Poziom 27  
    Weż
    w=getadc(0)
    wynik=w+w
    w pętle For
  • #14 9014537
    chifchif
    Poziom 12  
    W moim przypadku pomogło zbieranie pomiarów do tablicy Tab(x) as Word, następnie sortujesz wyniki np metodą bąbelkową
        For I = 1 To (x-1)
          For J = x To 2 Step -1
             Tab1 = Tab(j)
             Tab2 = Tab(j - 1)
             If Tab2 > Tab1 Then
                Tab(j) = Tab2
                Tab(j -1) = Tab1
             End If
          Next J
       Next I

    Liczysz średnią odrzucając skrajne wyniki - kilka pierwszych i ostatnich (zależy jaka chcesz mieć dokładność).
  • #15 9478907
    encore
    Poziom 19  
    chifchif napisał:
    W moim przypadku pomogło zbieranie pomiarów do tablicy Tab(x) as Word, następnie sortujesz wyniki np metodą bąbelkową
        For I = 1 To (x-1)
          For J = x To 2 Step -1
             Tab1 = Tab(j)
             Tab2 = Tab(j - 1)
             If Tab2 > Tab1 Then
                Tab(j) = Tab2
                Tab(j -1) = Tab1
             End If
          Next J
       Next I

    Liczysz średnią odrzucając skrajne wyniki - kilka pierwszych i ostatnich (zależy jaka chcesz mieć dokładność).


    Po co cała ta zabawa z bąbelkowaniem skoro na końcu i tak liczysz zwykłą średnią arytmetyczną.
    Dla liczenia średniej arytmetycznej kolejność wyrazów w sumie nie ma żadnego znaczenia. tak wiec twój sposób jest kompletnie bezsensowny. oczywiście wynik wyjdzie poprawny , z tym że robisz masę roboty bez najmniejszego sensu.
  • #16 9488020
    J_Bravo
    Poziom 27  
    encore: Chyba że bombelkujesz po to żeby odrzucić skrajne wyniki. Wtedy ma to sens.
  • #17 9557906
    chifchif
    Poziom 12  
    Tak jak kolega J_Bravo już odpowiedział, czasami pojawiają się wyniki bardzo odbiegające od pozostałych (szpilki). Średnia liczona ze wszystkich pomiarów, może powodować nawet znaczną rozbieżność wyniku.
REKLAMA