Algoritmicka - pocitanie impulzov
Tomas Hamouz
konfery.tomas.hamouz na seznam.cz
Neděle Únor 11 20:23:24 CET 2024
Nebo:
kruhový buffer na timestampu, délka dle požadované kapacity na 30s
při každém příjmu pulzu zapíšu timestamp na konec
přečtu si hodnotu prvního zápisu, až nastane čas t+30s, tak ho z fronty smažu
počet pulzů za posledních 30s je délka fronty v každém okamžiku
Nebo ještě vylepšené, zapisovat se bude čas platnosti, tedy rovnou t+30s a
mazat když ten čas nastane. Šel by na to použít nějaký systémový alarm,
ať už od RTC či od timeru.
Pokud se použije timer, mohou být timestampy jen hodnoty čítače z timeru
a nechat si generovat přerušení když timer dokráčí na určenou hodnotu nejstaršího
vzorku.
Tomáš
> a co registr s uloženým časem pulsu? Jak velké má být rozlišení nejmenší
> časové jednotky? 2 bajty je dostatečné pro 500us. 3 pro 2us.
> Kaliciak, Richard napsal(a):
>> A co ak by si v prvom bloku pocital pocet impulzov za 1 sekundu (za
>> jednu casovu jednotku) a az potom toto cislo poslal do FIR s casovou
>> konstantou 30 s? Pri normalizacii max. frekvencia 10 Hz na rozsah 0..1
>> by ti 16 bitov fixed point aritmetiky mohlo stacit.
>>
>> R.
>>
>> Am 07.02.2024 um 09:25 schrieb Daniel Valuch:
>>> presne nieco ako fir filter ma uz napadol.
>>>
>>> Posuvny register s poctom bitov vzorkovacia frekvencia krat dlzka
>>> okna (10x30=300), do ktoreho by sa vzorkovalo je impulz, nie je
>>> impulz. Potom spocitat pocet nenulovych bitov. Som trochu zaseknuty
>>> na resynchronizacii. Ak je vzorkovacia frekvencia rovna maximalnej
>>> frekvencii pulzov, ale nie su to presne rovnake frekvencie (rozne
>>> zdroje) je nutne zabezpecit aby sa pulz nevynechal, ani nezapocital
>>> dva krat. Zvysit vzorkovaciu frekvenciu znamena predlzit pipeline, co
>>> nie je uplne idealne, lebo uz je pomerne dlha. Ale stale sa to da.
>>>
--
Best regards,
Tomas mailto:konfery.tomas.hamouz na seznam.cz
Další informace o konferenci Hw-list