-
1. Data: 2009-03-18 21:00:13
Temat: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Sebastian Biały <h...@p...onet.pl>
Czesc.
Jest mikrokontroler. Jest przebieg zsamplowany ze znana prędkością.
Przebieg jest okresowy, acz jedynie podobny do sinusoidy. Mogę założyc,
że jest tylko okresowy, co do kształtu trudno zgadywać. Wiem, że
okresowość miesci się w granicach 140-160Hz. Mam w pamieci około 256-512
próbek 8 bit mieszczących max. 3 okresy.
Teraz pytanie: zakładając, ze nie mam więcej ramu a częstotliwość
orientacyjnie znam, czy może mnie ktoś nakierować gdzie szukać algorytmu
potrafiacego okreslić czestotliwość przebiegu tym razem precyzyjniej?
Szukam jakiejś metody _sprytnej_, pozwalającej w miare malym nakładem
obliczeniowym okreslić ta częstotliwośc, mipsów na zbyciu mam bardzo
mało. Przypuszczam, że tego typu problemy znalazly juz ładne rozwiązanie
numeryczne i nie ma sensu wymyślać tego od nowa.
-
2. Data: 2009-03-19 00:17:36
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Michoo <m...@v...pl>
Sebastian Biały pisze:
> Czesc.
>
> Jest mikrokontroler. Jest przebieg zsamplowany ze znana prędkością.
> Przebieg jest okresowy, acz jedynie podobny do sinusoidy. Mogę założyc,
> że jest tylko okresowy, co do kształtu trudno zgadywać. Wiem, że
> okresowość miesci się w granicach 140-160Hz. Mam w pamieci około 256-512
> próbek 8 bit mieszczących max. 3 okresy.
>
> Teraz pytanie: zakładając, ze nie mam więcej ramu a częstotliwość
> orientacyjnie znam, czy może mnie ktoś nakierować gdzie szukać algorytmu
> potrafiacego okreslić czestotliwość przebiegu tym razem precyzyjniej?
> Szukam jakiejś metody _sprytnej_, pozwalającej w miare malym nakładem
> obliczeniowym okreslić ta częstotliwośc, mipsów na zbyciu mam bardzo
> mało. Przypuszczam, że tego typu problemy znalazly juz ładne rozwiązanie
> numeryczne i nie ma sensu wymyślać tego od nowa.
Proponuję liczyć różnicę pomiędzy 2 kolejnymi próbkami. Zmiana znaku
będzie oznaczać, że zmienił się 'znak pochodnej' - jeżeli dla n/2 (n=2+
zależnie od kształtu wykresu - żeby odfiltrować skoki) próbek dominuje
wartość >0 a potem dla kolejnych n/2 próbek <0 to pomiędzy nimi było
maksimum lokalne. Czas między 2 maksimami(ja używałem free running
timer) to będzie okres. Ilość okresów w jednostce czasu - częstotliwość.
Zalety: do obliczeń starczy samo odejmowanie i dodawanie, nie trzeba
pamiętać samych sampli a tylko różnicę między n ostatnimi.
--
Pozdrawiam
Michoo
-
3. Data: 2009-03-19 06:25:39
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Sebastian Biały <h...@p...onet.pl>
Michoo wrote:
> Czas między 2 maksimami(ja używałem free running
> timer) to będzie okres. Ilość okresów w jednostce czasu - częstotliwość.
To sprawdza się wyłącznie dla ładnych sygnałów. W tej chwili mam coś w
tym guscie, niestety przestało się sprawdzać gdy wykres z sinusoidy stał
się czymśc przypominajacym ją tylko. Dlatego szukam czegoś z okolic
korelacji aby dało rade rowniez sygnały w miarę dowolne ale okresowe tym
mierzyć.
Ideałem jest cos co potrafi znaleźć f przebiegu dowolnego znając zakres
fmin-fmax w ktorym sie na pewno f mieści. Ja pomagam (czy aby na pewno?)
twierdząc że wykres bedzie nie tyle dowolny ale zblizony do sin. Przy
czym prawdopodobnie prste metody bazujace na szukaniu odległości miedzy
maksimami mogą sie nie sprawdzić bo w wyniku szumu może byc tych
maksimów duzo w okresie.
-
4. Data: 2009-03-20 14:05:54
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Piotr Chamera <p...@p...onet.pl>
Sebastian Biały pisze:
> Czesc.
>
> Jest mikrokontroler. Jest przebieg zsamplowany ze znana prędkością.
> Przebieg jest okresowy, acz jedynie podobny do sinusoidy. Mogę założyc,
> że jest tylko okresowy, co do kształtu trudno zgadywać. Wiem, że
> okresowość miesci się w granicach 140-160Hz. Mam w pamieci około 256-512
> próbek 8 bit mieszczących max. 3 okresy.
>
> Teraz pytanie: zakładając, ze nie mam więcej ramu a częstotliwość
> orientacyjnie znam, czy może mnie ktoś nakierować gdzie szukać algorytmu
> potrafiacego okreslić czestotliwość przebiegu tym razem precyzyjniej?
> Szukam jakiejś metody _sprytnej_, pozwalającej w miare malym nakładem
> obliczeniowym okreslić ta częstotliwośc, mipsów na zbyciu mam bardzo
> mało. Przypuszczam, że tego typu problemy znalazly juz ładne rozwiązanie
> numeryczne i nie ma sensu wymyślać tego od nowa.
Jeśli amplituda szumów nie jest zbyt duża, to powinno dać się jakoś tak:
wybrać jakiś w miarę czysty poziom "wyzwalania", zrobić
"cyfrowy przerzutnik monostabilny" wyzwalany zboczem przy przejściu
przez poziom odniesienia z "impulsem" o długości ok 3/4 okresu; liczyć
średni czas między wyzwoleniami przerzutnika (liczę że dane są dostępne,
tylko nie ma dla nich miejsca w pamięci).
To się chyba da zrobić przy założeniu że amplituda zakłóceń
jest co najmniej o połowę mniejsza niż sygnału mierzonego.
-
5. Data: 2009-03-20 14:35:35
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Jacek Czerwinski <...@...z.pl>
Piotr Chamera pisze:
> Sebastian Biały pisze:
>> Jest mikrokontroler. Jest przebieg zsamplowany ze znana prędkością.
>> Przebieg jest okresowy, acz jedynie podobny do sinusoidy.
> Jeśli amplituda szumów nie jest zbyt duża, to powinno dać się jakoś tak:
> wybrać jakiś w miarę czysty poziom "wyzwalania", zrobić
> "cyfrowy przerzutnik monostabilny" wyzwalany zboczem przy przejściu
> przez poziom odniesienia z "impulsem" o długości ok 3/4 okresu;
(Zgaduję, że chodzi o 3/4 półokresu).
Zasłyszane gdzieś w kręgach OCR, obraz zaszumia się dodatkowo (czyli na
chłopski rozum pogarsza) żeby lepiej rozpoznawać istotną część liter a
nie przypadkowe zakłócenia.
Tu bym 'pogorszył' sygnał zamieniając go jakąś średnią kroczącą z X
próbek (liniową lub geometryczną). Algorytm średniej nie potrzebuje
jakiegoś extra RAM-u. Skoro wiadomo, czego się spodziewać, stała do
uśredniania jest dość łatwa do dobrania.
A na taki przebieg by ten przerzutnik był ok.
-
6. Data: 2009-03-20 15:30:33
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Piotr Chamera <p...@p...onet.pl>
Jacek Czerwinski pisze:
> Piotr Chamera pisze:
>> Sebastian Biały pisze:
>
>>> Jest mikrokontroler. Jest przebieg zsamplowany ze znana prędkością.
>>> Przebieg jest okresowy, acz jedynie podobny do sinusoidy.
>
>> Jeśli amplituda szumów nie jest zbyt duża, to powinno dać się jakoś tak:
>> wybrać jakiś w miarę czysty poziom "wyzwalania", zrobić
>> "cyfrowy przerzutnik monostabilny" wyzwalany zboczem przy przejściu
>> przez poziom odniesienia z "impulsem" o długości ok 3/4 okresu;
> (Zgaduję, że chodzi o 3/4 półokresu).
Nie, właśnie okresu - interesują nas przejścia przez poziom
odniesienia tylko w jedną stronę. Przy założeniu zakresu
140 - 160Hz (okres 7,1 - 6,25 ms) "impuls" (okres, w którym
ignorujemy wszystko) mógłby trwać nawet około 6ms a okienko pomiarowe
miałoby długość np. 1,5 ms - żeby to działało, w przebiegu przy
danym poziomie odcięcia musi istnieć co najmniej tej długości
stabilna część (cz.stab.). Wyobrażam sobie to jakoś tak jak na
rysunku poniżej (po potraktowaniu "komparatorem" na poziomie odniesienia)
| cz.stab. |
------- - - -- - - - -------------- -- - --
- - - -------- ------- - - - - - --
| okres |
| impuls (ignorujemy wszystko) | okno |
> Zasłyszane gdzieś w kręgach OCR, obraz zaszumia się dodatkowo (czyli na
> chłopski rozum pogarsza) żeby lepiej rozpoznawać istotną część liter a
> nie przypadkowe zakłócenia.
>
> Tu bym 'pogorszył' sygnał zamieniając go jakąś średnią kroczącą z X
> próbek (liniową lub geometryczną). Algorytm średniej nie potrzebuje
> jakiegoś extra RAM-u. Skoro wiadomo, czego się spodziewać, stała do
> uśredniania jest dość łatwa do dobrania.
> A na taki przebieg by ten przerzutnik był ok.
W powyższej metodzie problemem może być dobór poziomu odcinania tak
żeby uzyskać cz.stab. z wykresu > szerokości okna pomiarowego i tu
może pomóc filtrowanie/uśrednianie.
-
7. Data: 2009-03-20 16:09:51
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Sebastian Biały <h...@p...onet.pl>
Piotr Chamera wrote:
> wybrać jakiś w miarę czysty poziom "wyzwalania", zrobić
> "cyfrowy przerzutnik monostabilny" wyzwalany zboczem przy przejściu
> przez poziom odniesienia z "impulsem" o długości ok 3/4 okresu; liczyć
> średni czas między wyzwoleniami przerzutnika (liczę że dane są dostępne,
> tylko nie ma dla nich miejsca w pamięci).
Szumy nie są na tyle duże, żeby nie dało się tego zrobic w ten sposob i
bede kombinowal. Liczylem jednak na algorytm typu zsumuj wszystko,
podziel przez pierwiastek z pi i wyjdzie f :)
> To się chyba da zrobić przy założeniu że amplituda zakłóceń
> jest co najmniej o połowę mniejsza niż sygnału mierzonego.
Sygnał jest czysty. Problem w tym, że przypomina troche sin zdeformowany
innym sin przesuniętym w fazie i o mniejszej amplitudzie.
-
8. Data: 2009-03-20 16:34:11
Temat: Re: Obliczenie częstotliwości przebiegu w ciasnej pamięci
Od: Piotr Chamera <p...@p...onet.pl>
Sebastian Biały pisze:
> ... Liczylem jednak na algorytm typu zsumuj wszystko,
> podziel przez pierwiastek z pi i wyjdzie f :)
Tu są zebrane różne metody obliczeniowe:
http://sound.eti.pg.gda.pl/student/eim/synteza/leszc
zyna/