Strona 1 z 1

Stabilizacja odczytywanej częstotliwości

: 16 lip 2014 20:19
autor: przemulala
Witam,


Postaram się przedstawić mój problem możliwie zwięźle: z określoną częstotliwością (powiedzmy co pół sekundy) dostaję pewną wartość, określającą częstotliwość drgań. Problem polega na tym, że odczyty pochodzą z nienajlepszego układu i tak np dla częstotliwości o zadanej wartości 4,5 kHz otrzymuję szereg takich wartości: 4500, 4500, 300, 8000, 4500, 4300 etc. W większości przypadków odczyt jest poprawny i chciałbym w jakiś sposób stabilizować wyświetlenia (żeby użytkownik nie przestraszył się dzikich odchyleń).

Moje wstępne rozwiązanie zakładało użycie Collector VI pobierającego różnej wielkości próbki: 5, 10, 15, 20, 30, 40 i przy pomocy histogramu wybierającego najczęściej powtarzającą się wartość. Później całość szła na jeszcze jeden Collector i histogram, i otrzymywało się w ten sposób ostateczną wartość. Pomiędzy połączeniami wartość jest zaokrąglana do jedności (inaczej powtórzenia nie byłyby możliwe).

Efekt jest taki, że odczyt jest całkiem odporny na szumy, ale najczęściej niedokładny względem wartości chwilowej, kiedy ta jest akurat wyświetlana poprawnie (różnice na poziomie dziesiątek Hz - najprawdopodobniej ich źródłem są wspomniane zaokrąglenia po histogramie, intervals są dobierane automatycznie).

Czy macie jakiś inny pomysł, jak osiągnąć efekt, o którym piszę? Myślałem o śledzeniu czasu wyświetlania pewnych wartości i żeby to na tej podstawie określać poprawną wartość częstotliwości i ją określać (zakłócenia, jeśli występują, mają bardzo różne wartości i są chwilowe), nie wiem jednak, jak mógłbym zrealizować to w praktyce.

Z góry przepraszam, ale nie mogę udostępnić wspomnianego kodu na forum.


Pozdrawiam!

Re: Stabilizacja odczytywanej częstotliwości

: 16 lip 2014 21:58
autor: Daniel PCL
To może zebranie np. 10 pomiarów i odrzucenie 2 najniższych i 2 najwyższych (jako przypadkowe piki zakłócające) ..... i później średnia a na koniec średnia krocząca.....

Re: Stabilizacja odczytywanej częstotliwości

: 16 lip 2014 22:58
autor: PiDi
przemulala pisze:odczyty pochodzą z nienajlepszego układu (...) chciałbym w jakiś sposób stabilizować wyświetlenia (żeby użytkownik nie przestraszył się dzikich odchyleń).
Ale czy użytkownik nie powinien w takim razie bać się tego "nienajlepszego układu" pomiarowego? :-ss Skąd masz pewność, że wartości, które otrzymujesz, w ogóle są właściwe, skoro ten układ nie działa prawidłowo?

Czy możesz pokazać jakieś konkretne wyniki, wyniki jakie chciałbyś uzyskać oraz to, co dostajesz teraz po przetwarzaniu? Jeden rysunek/wykres zamiast tego dość pogmatwanego opisu słownego pewnie więcej powie.

Stabilizacja odczytywanej częstotliwości

: 16 lip 2014 23:50
autor: przemulala
Wiem, że większa część otrzymywanych wartości jest prawidłowa, ponieważ sygnał podaję z oscyloskopu, gdzie definiuję częstotliwość. Przesyłane na bieżąco odczyty podglądam i znam wartości (jak wypisywałem przykładowo wyżej).

Wyniki prezentują się następująco - jest to ciąg wartości liczbowych (nowa pojawia się co ok 0,5 sec): x, x, a, b, c, x, x, x, x, g, h, i, j, k, x, x, x, x...
'x' jest wartością poprawną. Pozostałe mogą się różnić znacząco lub mniej. Stąd pomysł Daniela jest raczej słaby - odrzucanie wyników, nawet po sortowaniu danej próbki i liczenie średniej na pewno wprowadzi większy błąd niż aktualnie uzyskiwany. Chodzi o to, aby wyświetlać użytkownikowi właśnie wartość x, korzystając z faktu, że pojawia się najczęściej.

Ale jak powiedziałem, histogram wprowadza pewien błąd (nie jest on widoczny przy częstotliwościach < 1 kHz). Wynika to najprawdopodobniej ze sposobu przetwarzania danych przez Histogram VI (interwały niby są dobierane automatycznie, ale przecież skoro wchodzą do analizy liczby całkowite, a wychodzą double, no to musi coś się tam dziać).

Re: Stabilizacja odczytywanej częstotliwości

: 21 lip 2014 23:09
autor: PiDi
To może filtr medianowy? Albo po prostu medianę z N próbek?

Re: Stabilizacja odczytywanej częstotliwości

: 22 lip 2014 09:10
autor: TMa
Potrzebujesz mierzyć wartość tzw. rozrzutu kolejnych pomiarów. Najczęściej stosuje się tutaj odchylenie standardowe. Masz wartość oczekiwaną (pochodzącą z poprzednich pomiarów poprzez uśrednienie lub zadaną z góry) i wartości zmienne (kolejne próbki zebrane przy akwizycji). Obliczasz jak bardzo dany pomiar jest oddalony (wartość rozrzutu) i na tej podstawie określasz wiarygodność/ważność danej próbki.