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
   CountActivityMemory + 1
  else
   Count ← 0
  end if
  if IsCriticalActivity(Alast) and
  Count > GetMaxMemory(Alast) then
   NewFrequencySampleRateList(Alast)
   WinSamplesNewFrequency * WinSize
  end if
  if Count%30 == MaxMemoryList(Alast) then
   WinSizeWinSize + log2(Count%30)
   WinSamplesNewFrequency * WinSize
  end if
  ApreviousAlast
end while