Algoritmicka - pocitanie impulzov

Daniel Valuch balu na k-net.fr
Pondělí Únor 12 22:13:07 CET 2024


toto su programatorske riesenia. V FPGA je logika nadratovana, tam je 
nutne rozmyslat inym sposobom.

Ale podarilo sa mi vymyslet pouzitelne riesenie. Zadefinuje sa posuvny 
register o sirke 1 bit a dlzke pocet vzoriek (10 Hz * 30 s = 300 bitov). 
10 32 bitovych slov v Artix7 nie je vela. Zadefinuje sa jeden 9 bitovy 
citac.

Ak na vstupe bude detekovany impulz, do registra sa zapise 1 a 
inkrementuje sa citac. Posledny (odchadzajuci) bit posuvneho registra 
bude citac dekrementovat. Hodnota citaca bude predstavovat pocet 
jednotiek v posuvnom registri, t.j. pocet pulzov.

b.



On 11/02/2024 20:23, Tomas Hamouz wrote:
> 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.
>>>>
>
>
>



Další informace o konferenci Hw-list