I have a C array fftArray[64] that contains values that I want averaged and placed into another array frequencyBar[8]. Getting the average of the entire array would be easy enough using a for statement.
int average, sum = 0;
for (i = 0; i < 64; i++)
{
sum += fftArray[i];
}
average = sum/64;
But I just can’t seem to figure out how to get the average from fftArray[0] through fftArray[8] and store this in frequencyBar[0], the average of fftArray[9] through fftArray[16] and store this in frequencyBar[1], etc. Can anyone help me out with this? Thanks
This looks like a homework assignment, so, rather than give you the outright answer, I’d rather just point you in the right direction…
use a nested loop (one inside the other). One loop cycles 0-7, the other one 0 – 63. Use the smaller one to populate your sliced averages.
or better yet use the % operator to see when you’ve gone through 8 elements and do an average of your total, then reset the total for the next set. Then you’ll have learned how to use the % operator too! 🙂
[EDIT]
ok, if not homework then something like this… I haven’t written C in 5 years, so treat this as pseudo code:
I think this will work better than a nested loop… but I’m not sure since % is division which is more processor heavy than addition… however… I doubt anyone would notice 🙂