Szazalekos eloszlas
Moczik Gabor
progzmaster at freemail.hu
Sun Sep 4 13:17:06 CEST 2005
Hali!
Olyat kellene csinalnom, hogy folyamatosan mintavetelezek egy jelet, ami
0..15 erteket vehet fel. Ebbol nekem kell egy tombot feltolteni, ami
tarolja, hogy milyen a mintak szazalekos elofordulasa, tehat a tomb 0..15
elemeinek osszege allando kellene legyen.
A kov C programot irtam most, de lathato hogy tetves lassu, mivel szorzas es
osztas van benne. Azt csinalja, hogy az erkezett mintahoz tartozo tombelemet
noveli 1-el. Utana megnezi, hogy ezzel a tomb osszege >=100. Ha igen, akkor
minden tombelemet szazalekosan annyival csokkent, amennyivel az osszeg
nagyobb volt mint 99. (mivel azt szeretnem hogy max 99 legyen a tomb
osszege). Van erre valami normalis algoritmus?
// bemeno minta: nindex (0..15 kozott)
// feltoltendo: noise_level[] tomb
noise_level[nindex]++;
noise_sum++;
if (noise_sum>=100) {
for (ni=0; ni<=15; ni++) {
noise_level[ni]=((unsigned int)noise_level[ni])*99/noise_sum;
}
noise_sum=noise_level[0];
for (ni=15; ni>0; ni--) {
noise_sum+=noise_level[ni];
}
}
--
((( Móczik Gábor )))--((( progzmaster -> @ -> freemail . hu )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))
More information about the Elektro
mailing list