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