QPython+SL4A:
import android
import time
import sys, select, os #for loop exit
#Initiate android-module
droid = android.Android()
#notify me
droid.makeToast("fetching GPS data")
print("start gps-sensor...")
droid.startLocating()
while True:
#exit loop hook
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = input()
print("exit endless loop...")
break
#wait for location-event
event = droid.eventWaitFor('location',10000).result
if event['name'] == "location":
try:
#try to get gps location data
timestamp = repr(event['data']['gps']['time'])
longitude = repr(event['data']['gps']['longitude'])
latitude = repr(event['data']['gps']['latitude'])
altitude = repr(event['data']['gps']['altitude'])
speed = repr(event['data']['gps']['speed'])
accuracy = repr(event['data']['gps']['accuracy'])
loctype = "gps"
except KeyError:
#if no gps data, get the network location instead (inaccurate)
timestamp = repr(event['data']['network']['time'])
longitude = repr(event['data']['network']['longitude'])
latitude = repr(event['data']['network']['latitude'])
altitude = repr(event['data']['network']['altitude'])
speed = repr(event['data']['network']['speed'])
accuracy = repr(event['data']['network']['accuracy'])
loctype = "net"
data = loctype + ";" + timestamp + ";" + longitude + ";" + latitude + ";" + altitude + ";" + speed + ";" + accuracy
print(data) #logging
time.sleep(5) #wait for 5 seconds
print("stop gps-sensor...")
droid.stopLocating()
Между измерениями существуют интервалы, длительность которых определяется частотой дискретизации. Чем больше частота дискретизации, тем меньше интервал, тем точнее повторится форма исходного сигнала. То есть частота дискретизации определяет допустимый частотный диапазон входного сигнала. По теореме Котельникова она должна быть в два раза выше максимальной частоты измеряемого сигнала. Вот откуда взялась частота дискретизации 44 кГц. Это удвоенная частота слышимого человеком звука, теоретически.
Посмотрим еще раз на рисунок. Есть что-то неправильное. Ведь сигнал от одного замера до другого может измениться несколько раз, а это значит, что частота дискретизации выбрана гораздо ниже необходимой и в результате сигнал оцифруется с большими искажениями. Сигнал с необходимой частотой дискретизации будет выглядеть, как показано на следующем рисунке. Как видим, в этом случае разницей в замерах действительно можно пренебречь.
Объяснение: