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

Algorytm do precyzyjnego określenia początku echa ultradźwięków (20cm)

30 Gru 2013 13:48 4089 29
REKLAMA
  • #1 13115801
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #2 13117109
    nibbit
    Poziom 20  
    Próbowałeś to ogarnąć za pomocą filtrów dopasowanych? W urządzeniach radarowych korzysta się m.in. z tego rozwiązania.
    Link
    W dużym uproszczeniu miałbyś klasyczny filtr FIR, w którym współczynniki były by właśnie Twoją obwiednią (tyle że w odwrotnej kolejności). Pytanie tylko jaki SNR byś uzyskał za jego pomocą, to już kwestia przesymulowania. W każdym bądź razie za pomocą takiego rozwiązania widział bym szansę wykrywania początku echa z opóźnieniem zależnym od długości zasotosowanego filtru.

    Tutaj ładnie jest pokazane to o czym pisałem (od 17 slajdu):
    Link
  • REKLAMA
  • Pomocny post
    #3 13118894
    __Grzegorz__
    Poziom 30  
    Filtry dopasowane - jak najbardziej. Dadzą najlepszy możliwy SNR.

    Jeżeli ma to być FIR, to jego współczynniki nie mogą być obwiednią echa (odwróconą w czasie), tylko dokładnie odwzorowanym przebiegiem echa odwróconym w czasie.

    Im dłuższy filtr - tym większa pewność detekcji sygnału.

    Długość filtra najlepiej dobrać równą długości nadawanego impulsu / f samplowania.

    Filtr ten będzie także świetnie działał na sygnale nadawanym pozwalając uzyskać sygnał START do pomiaru czasu.

    Mniej więcej pod koniec impulsu nadawanego pojawi Ci się na wyjściu filtra pik odniesienia (czas pomiaru START),
    przy filtrowaniu sygnału odbitego także pojawi Ci się pik (czas STOP).
    Prosta różnica czasu da Ci info o odległości. Nie trzeba uwzględniać opóźnienia wprowadzanego przez filtr, bo w ww metodzie się zniesie.

    Metoda zadziała, nawet gdy odpowiedź nałoży się na sygnał nadawany, czyli dla b. małych odległości. Piki będą dalej widoczne.
  • #4 13127384
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #5 13128882
    nibbit
    Poziom 20  
    Proponuję porobić eksperymenty.
    Masz szczęście, że od ponad tygodnia nie napisałem linii kodu i aż mnie korciło to sprawdzić :].

    Korzystając z jednej z przykładowych implementacji filtru dopasowanego zrobiłem małą symulację. Na poniższym zrzucie masz dwa fragmenty, który posłużyły za wejście filtru dopasowanego:
    Algorytm do precyzyjnego określenia początku echa ultradźwięków (20cm)
    Obrazek z lewej: Na niebiesko wejście z jednego ADC a na czerwono z drugiego. Po lewej i po prawej dałem sporo dużego szumu. Filtr dopasowany jest 'dopasowany' na ten niebieski fragment.
    Obrazek z prawej: Wyjście filtru dopasowanego dla obu sygnałów z ADC (ale filtr jak wcześniej pisałem jest dopasowany do niebieskiego). Kółkiem jest zaznaczone wykrycie sygnału przez prymitywny układ decyzyjny (zbyt prymitywny ;]).

    Zauważ dużą odporność na szum (choć nie tak dużą jak dla sygnałów z kompresją). I teraz co do sedna. Mamy filtr z 'n' współczynników. Jeśli teraz zadziałał układ decyzyjny (innymi słowy stwierdzamy, że sygnał został z całą pewnością wykryty) to znaczy, że 'n' próbek wcześniej zaczął się początek echa.
  • #6 13128994
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #7 13129167
    nibbit
    Poziom 20  
    No ale jak masz dwa sygnały jeden wcześniej a drugi później to chyba logiczne, że ten drugi zostanie wykryty z opóźnieniem równym ich przesunięciu ;].

    Co do amplitud to tutaj widzę problem. Bo różne moce sygnału dadzą różne wartości na wyjściu i ciężko w takim wypadku zastosować próg decyzyjny oparty na jakiejś wartości bezwzględnej. Co innego dla sygnałów z kompresją, tam masz listek główny i listki boczne a próg decyzyjny dobierasz w stosunku do wartości tłumienia listków bocznych. Ja działałem tylko na sygnałach z kompresją i szczerze nie wiem jak by to najlepiej zrobić dla sygnałów bez niej.
  • #8 13129238
    Konto nie istnieje
    Poziom 1  
  • #9 13129324
    nibbit
    Poziom 20  
    Cytat:
    No ale ja nie dałem sygnałów przesuniętych (a zostały wykryte jako przesunięte).


    Dobrze tego nie widać ale w tym projekcie jest ustawiony próg wykrycia na > 0.9 max amplitudy i tak się złożyło, że sygnał niebieski miał dwa prążki powyżej tego progu a czerwony żadnego.

    Pisząc kompresja miałem na myśli liniową modulację częstotliwości. Nie za bardzo to czuję skoro masz nadajniki na bardzo wąskie pasmo.
  • #10 13129412
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #11 13129530
    nibbit
    Poziom 20  
    Ewentualnie możesz pomyśleć o analizie w dziedzinie częstotliwości. Co prawda wymaga sporo większej mocy obliczeniowej ale skoro interesuje Cię tylko jedna częstotliwość to i w miarę prosty algorytm goertzela by się nadał. Choć nie sądzę by tędy była droga zapewniająca dokładność o jakiej myślisz.
  • Pomocny post
    #12 13129766
    Wieslaw Bicz

    Poziom 18  
    atom1477 napisał:
    Pora w końcu odpowiedzieć.

    Nie bardzo wiem jak z sygnału nadawanego miał bym wyciągnąć sygnał start. No bo ten sygnał jest zupełnie inny niż sygnał odbierany (nadawany jest prostokątny).
    Tak więc co koledzy radzą? Dalej filtr dopasowany?


    Szczerze mówiąc to nie bardzo wiem, na czym polega problem. w przypadku takich pomiarów start jest przecież zdefiniowany przez nadajnik - początek paczki lub impulsu. Czas przejścia sygnału najlepiej w tym wypadku mierzyć przy pomocy korelacji. Chodzi przecież o wykrycie różnicy, spowodowanej - jak rozumiem - przepływem gazu. Dokładność pomiaru czasu (zgodnie z teorią i praktyką) powinna zależeć głównie od precyzji pomiaru amplitudy i synchronizacji całego toru pomiarowego. Dokładność pomiaru związana jest też z użytą częstotliwością, ale w mniejszym stopniu. Tej w gazach nie da się w nieskończoność zwiększać, bo na ogół już dla kilkuset kHz tłumienie bardzo rośnie.
  • #13 13130223
    Konto nie istnieje
    Poziom 1  
  • #14 13130252
    Wieslaw Bicz

    Poziom 18  
    Cytat:

    No niestety nie da rady. Gdyby sygnały nadawany i odbierany były podobne to tak, i sam o tym myślałem.
    Ale nie są więc korelacja nic nie da.



    należy porównywać sygnał z wzorcowym, odebranym w kontrolowanych warunkach, a nie nadawanym. Wtedy nie ma problemu.
  • #15 13130366
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #16 13130744
    Pawel2420
    Poziom 31  
    Może zrobić tak:
    - Aproksymować początek (najlepiej kilka pierwszych okresów) odebranego sygnału za pomącą funkcji sinusoidalnej o znanej częstotliwości. W wyniku tej operacji otrzymamy przesunięcie fazowe.
    - Zmierzyć "początek echa" z dokładnością do jednego okresu. Czyli określić ile całych okresów trwała propagacja sygnału.
    - Dodać do siebie dwie wyżej wymienione wielkości
    - Skorygować wynik o stały współczynnik wynikający z fizycznych właściwości układu pomiarowego
  • REKLAMA
  • Pomocny post
    #17 13130765
    Wieslaw Bicz

    Poziom 18  
    atom1477 napisał:
    Niestety jest. Układ jest wtedy czuły na amplitudę sygnału.


    Nie wydaje mi się to możliwe. Zrobiliśmy wiele podobnych systemów pomiarowych i w przypadku dobrego stosunku sygnału do szumu korelacja sprawdza się z reguły najlepiej. Czułość na amplitudę łatwo wyeliminować, ale sam algorytm o to dba.
  • #18 13130852
    Konto nie istnieje
    Poziom 1  
  • #19 13130906
    Wieslaw Bicz

    Poziom 18  
    atom1477 napisał:

    Być może to wynika z tego że korelujecie cały sygnał. Czyli i początek i koniec impulsu.
    Wtedy bardzo łatwo uniknąć wpływu amplitudy, bo jak amplituda jest np. mniejsza i jakiś okres zginie na początku impulsu, to tak samo zaginie i jakiś na końcu.
    I środek pozostaje w tym samym miejscu.
    Ja jednak muszę się ograniczyć do tylko jednej strony impulsu (początku). Bo koniec muszę pominąć bo jest on różny zależnie od wielu czynników. A wtedy nie jestem w stanie określić gdzie jest początek czy środek. Mam nadzieję że to zrozumiale wyjaśniłem.



    Korelować trzeba całą pierwszą przechodzącą paczkę. Jeśli mierzysz tak, jak opisane wcześniej, efekty muszą być bardzo dobre.
  • Pomocny post
    #20 13130986
    Pawel2420
    Poziom 31  
    atom1477 napisał:
    Problem jest tylko z punktem 2. Bo algorytm określający początek odebranego impulsu może się łatwo pomylić o 1 czy 2 okresy.

    Tu korelacja wzorcowego odebranego przebiegu z rzeczywistym wydaje się najlepszym rozwiązaniem.
  • #21 13131456
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #22 13131516
    Wieslaw Bicz

    Poziom 18  
    Korelacja powinna się dość dobrze sprawdzać na tego typu przebiegach. Jeśli jednak lokalne maksima zaczną zanikać, to wtedy jedynym wyjściem jest zastosowanie przetworników generujących krótsze odpowiedzi, lub przejście na wyższe częstotliwości, np. na 200kHz. Na niezbyt dużych dystansach powinno to dać dobry efekt.
    Sygnały z obrazków powinny się korelować dość dobrze z wzorcowym.
  • #23 13133221
    Konto nie istnieje
    Poziom 1  
  • #24 13133282
    Pawel2420
    Poziom 31  
    Jaką zmianę czasu propagacji sygnału zakładasz ?
  • #25 13133660
    Konto nie istnieje
    Poziom 1  
  • #26 13134183
    Pawel2420
    Poziom 31  
    atom1477 napisał:
    Niewielką. Ze 3...5%. Czyli w mojej rurce 250mm daje to około 1...2 okresy przebiegu 40kHz.

    Czyli inaczej mówiąc można dokładnie zmierzyć czas propagacji sygnału ale otrzymamy 3 wyniki i nie wiadomo, który wybrać.
    Zastanów się nad umieszczeniem dodatkowego odbiornika po środku układu pomiarowego. Na odległości 250mm chyba nie będzie dużych różnic prędkości powietrza.
  • #27 13134464
    Konto nie istnieje
    Poziom 1  
  • #28 13134556
    Wieslaw Bicz

    Poziom 18  
    atom1477 napisał:
    Niestety nic z tego.
    Funkcja korelacji dla takich zniekształconych sygnałów wygląda mniej więcej tak:
    Algorytm do precyzyjnego określenia początku echa ultradźwięków (20cm)
    Niby jest maksimum na środku (czyli dla przesunięcia czasowego równego 0 względem sygnału odniesienia), ale zbyt mało się ono odróżnia od pozostałych maksimów.
    Dla wizualnie podobnych sygnałów też jest nienajlepiej:
    Algorytm do precyzyjnego określenia początku echa ultradźwięków (20cm)
    Choć tu przynajmniej wyraźnie widać o które maksimum chodzi.
    Zastosuję więc metodę z dwoma nośnymi. Tylko muszę jakieś lepsze przetworniki załatwić.


    Coś jest nie tak z algorytmem. Jak już powiedziałem, pomiar na takich sygnałach musi dawać dobre rezultaty. Liczne systemy oparte o taką zasadę dają dobre efekty. A pokazane sygnały i warunki pomiaru powodują, że inaczej być nie może. Mówię to w oparciu o wiele doświadczeń ze znacznie gorszymi sygnałami.
  • #29 13134613
    nibbit
    Poziom 20  
    Podeślij jeszcze raz w excelu te brzydkie sygnały tylko ogranicz je już do tego co ma służyć do korelacji.
  • #30 13182611
    Konto nie istnieje
    Poziom 1  
REKLAMA