True RMS

Moczik Gabor progzmaster at freemail.hu
Mon Jan 19 21:10:10 CET 2004


Petrik Gergely wrote:
> szinusz, es van eleg hely a uC-ben, akkor nem lehet esetleg

Hely van meg, CPU ido az viszont minimalis. Lehet hogy 18F452-re cserelem a 
16F877-et, labkompatibilis, kavrcot 10Mhz-re, 4x PLL-t be, maris 40MHz-en 
ketyegek. Igaz, ez alig tobb mint 2szeres sebesseg lesz csak. Cserebe kell 
egy PICC-18 forditot keresnem, idoziteseket atszamitgatni...

> kell, es egy tablazatbol kiolvasod adott fazisu hasitashoz
> mekkora effektiv ertek tartozik, azt folszorzod a
> csucsertekkel, es jol van. a nullatmenetekkel trukkozve
> sporolhatsz a csucsertekmeressel es a kov. nullatmenet

Otletes megoldasnak hangzik! Csucserteket nem is kell merni, mert stab 
feszrol megy a cumo, igy az _elvileg_ const. Viszont erdekes kerdes, hogyan 
szamitom majd ki a digitalizalt jelalakbol a fazishasitas szoget... De ez 
mar legyen az en gondom.



Meg egy picit vissza a TrueRMS-hez:
Ugye elvileg ugy kell szamolni hogy n db minta negyzetet osszeadom, majd a 
vegen n-el oszom es gyokolok. Programozastechnikailag problema (PIC-en), 
hogy egy 10-bites ertek negyzete bazi nagy, ebbol meg n db-ot ossze is adok, 
ehhez legalabb 4-byte egesz kell amibol majd gyokot kell vonni. Zabalja a 
ciklusidot.

Nincs valakinek otlete, hogy lehetne iterativ modon, egybol egy olyan szamot 
szamolni, amibol mar csak gyokot kell vonni, mert az osztast valami 
korrekcios tenyezovel mar negyzetreemels es szummazas kozben kikuszoboltuk?

olyasmire gondolok, hogy

----------
n=0;        // vett mintak szama
sum=0;      // osszegzett jel

ciklus (ameg egy periodus le nem telik)
{
     n = n + 1;
     korrekcio = f(n);
     sum = sum + minta^2/korrekcio;
}

rms = sqrt(sum);
----------

Lehet ilyen f(n) fuggvenyt konstrualni, ami ha 10 mintat veszek akkor is, ha 
100-at akkor is jo eredmenyt ad?

Aki nagyon vagja a matekot annak jo kis fejtoro lesz :-)

-- 
((( Móczik Gábor )))--((( hu <- DOT <- freemail <- AT <- progzmaster )))
((( Debian unstable )))-((( Kernel 2.4.20 )))-((( Celeron466 / 128Mb )))
((( -->  Vigyázat! Ön súlyos közlekedési balesetet szenvedett.   <-- )))
((( -->          Kívánja, hogy a légzsák felfúvódjon?            <-- )))



More information about the Elektro mailing list