Мне нужно синхронизировать два датчика от UTC до времени Unix.Первый - это GPS, который выдает файл NMEA GPGGA, где временная метка UTC имеет формат «HHmmss.SSS».Например, "042803.00" - это "4:28:03" AM и ноль миллисекунд.
Второй датчик выдает время Unix без високосных секунд.
Есть ли функция MATLAB, которую я могуиспользовать?Меня особенно интересует решение, которое учитывает високосные секунды.
Мой первый подход заключается в преобразовании времени unix в utc:
sensor=datetime(unix_timestamp,'ConvertFrom','posixtime')
К сожалению, аргумент posixtime не поддерживает високосные секунды.Затем я беру метку времени utc из файла NMEA:
gps=datetime(utc_timestamp,'InputFormat','HHmmss.SSS','TimeZone','UTC')
Теперь, поскольку у меня нет ни одного дня, года, месяца в моем протоколе NMEA, я беру его из unix_timestamp
gps.Day=sensor.Day
gps.Month=sensor.Month
gps.Year=sensor.Year
Есть идеи, как это сделать лучше?Какой риск, если я возьму год, месяц, день из метки времени Unix без високосных секунд?
Теперь я хочу перевести время GPS в время Unix с помощью:
unix_time_gps=posixtime(gps)
Thisне работает, поскольку posixtime не учитывает високосные секунды.
Как мне этого добиться?
Спасибо