Skip to main content
. 2015 Mar 3;15(3):5163–5196. doi: 10.3390/s150305163

Algorithm 1 Dynamic sampling rate algorithm.

 SampleRateList ← InitSampleRate(Frequencies)
 MaxMemoryList ← InitMemoryList(Memories)
 AmevaIsRunning ← true
 Count ← 0
 WinSize ← 5
 WinSamples ← 50 * WinSize;
 Aprevious ← GetAmevaActivity(Statistics)
 while AmevaIsRunning do
  Alast ← GetAmevaActivity(Statistics)
  if Alast == Aprevious then
   Count ← ActivityMemory + 1
  else
   Count ← 0
  end if
  if IsCriticalActivity(Alast) and
  Count > GetMaxMemory(Alast) then
   NewFrequency ← SampleRateList(Alast)
   WinSamples ← NewFrequency * WinSize
  end if
  if Count%30 == MaxMemoryList(Alast) then
   WinSize ← WinSize + log2(Count%30)
   WinSamples ← NewFrequency * WinSize
  end if
  Aprevious ← Alast
 end while