![Embarassed :oops:](./images/smilies/icon_redface.gif)
Mám několik zdrojů signálu, které mají stejnou frekvencí (přesněji jde o napětí získáné ze senzorů, snímacích rezistorů, převodů z transformátoru apod měřící proud v jedné smyčce). Jenomže tu frekvenci neznám, ale vím, že signál může být i stejnosměrný nebo dosahovat maximální hodnoty frekvence - řekněme konkrétně 100kHz. Další zjednodušení předpokládá, že se perioda v delším čase (jednotky sekund) nemění. Signál může být libovolně komplexní (obdelník, harmonický...).
Otázka zní jak přes MCUčko, které nějak získá vzorky (z interního nebo externího AD) vypočítat efektivní hodnotu. Je vztah RMS = √(∑ (V1^2 + ... + Vn^2) / n), kde Vx jsou jednotlivé vzorky a n je jejich celkový počet.
Jak určit počet vzorků a jakou frekvencí by měli být vzorky vzorkovány, aby pro signál nabývající frekvence od 0 do max. frekvence dal algoritmus rozumné přesné hodnoty rms? Existuje jiná cesta?
Příklad: ARM mcu, co má 12bitový převodník a umí vzorkovat 1Mhz(T=1us). Vzorkuju celou jednu vteřinu, abych pokryl výpočet rms ze signálu o frekvenci 0 až 100kHz, takže pro maximum 100kHz (T=10us) bych měl mít 10 vzorků. Budu mít v každém případě po vteřině vzorkování 1 000 000 vzorků o 16bitech (12 bitů převedu do 16bitové integeru). Když zanedbám nějaké zarovnání v datové paměti, tak zaberu 16 * 1 000 000 = 2 kB paměti. Krapec overkill ne? Je nějaký trik, jak to zjednodušit (průměrování, plovoucí okno). Bude nutné získat pro mcu informaci o frekvenci signálu, aby stanovil kolik period změří?
Určitě je řešení v použití specialních integrovaných obvodů, co na svém výstupu (analogově nebo digitálně) dávají RMS se slušnou přesností, ale jsou pěkně drahé (800kHz za 1000Kč), ale ušetřily by mi spoustu starostí
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
EDIT: Viz dále. Z původního zadání počítající s vypisováním efektivní hodnoty se vyklubala střední hodnota