Автор Тема: DCF/HGA PC-Time corrector  (Прочитано 22913 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3547
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #45 : 17 Февраль 2019, 19:48:47 »
стоит твой корректор сделать Portable так же.
Да он такой и есть, скопировал и все. Или прямо с флешки запускать можно.

Оффлайн rw3adb

  • Ветеран
  • *****
  • Сообщений: 6338
    • Просмотр профиля
    • E-mail
Re: DCF/HGA PC-Time corrector
« Ответ #46 : 20 Февраль 2019, 22:37:02 »
стоит твой корректор сделать Portable так же.
Да он такой и есть, скопировал и все. Или прямо с флешки запускать можно.

Вот это - очень правильно!
В перспективе - стоит освоить иностранные станции точного времени и частоты и попросить кого-то из наших коллег протестировать программу.
DCF-77, DDH-49 а так же японские, американские и австралийские станции.
По ним где то видал сайт с форматом передач и даже программы для приема их сигналов.
По этим делам точно в курсе Эдгар с Тасмании. Может кто еще. Стоит в рсгб спросить.
И в таком виде программа будет полезна не только нам.
Ну, она и сейчас полезна) Наши станции принимаются много где.
--_ _ _  _ _ _ --  --_   _   _-_  _--  _ _ _-- _- -_ _ -_ _ _

Оффлайн EW8HP

  • Ветеран
  • *****
  • Сообщений: 638
  • Влад
    • Просмотр профиля
    • E-mail
Re: DCF/HGA PC-Time corrector
« Ответ #47 : 05 Июнь 2019, 16:30:02 »
В описании указано что частота сигнала меряется как количество переходов через ноль за отрезок времени (секунда). Как правило эта секунда "плывёт" по длительности в ПК. Соответственно и частота измеренная тоже будет плавать. Или эти изменения не критичны для точности ? Может стоит попробовать другой способ измерения частоты не так чувствительный к внутренним часам компьютера..?
Приём на NanoLoop.
Телеграмм-канал на различные темы по радио https://t.me/Gomel_Radio

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 331
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #48 : 06 Июнь 2019, 13:41:38 »
Основная погрешность получается из-за того, что подсчитывается количество переходов за 1 секунду, а за 1 сек их может быть нецелое число (метод "ворот"). Поэтому точность измерения составляет ±1 Гц, а относительная ±1/137000=±7Е-6. А кратковременная стабильность внутренних часов практически ничего не вносит в итоговую погрешность.

Вот здесь я публиковал метод измерения частоты на голом атмеловском микроконтроллере (метод "захвата") https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=29796&page=2&tab=comments#comment-234466

Абсолютная погрешность измерения частоты 137 кГц составляет ±0,007 Гц. Относительная точность измерения частоты за 1 с по методу захвата более чем на два порядка лучше, чем метод ворот, и составляет ±5Е-8. Тут, кстати, кратковременная стабильность кварцевых часов порядка 1Е-9 уже начинает конкретно влиять на результат.
« Последнее редактирование: 06 Июнь 2019, 14:54:30 от GM »
Зачем нам бумеранг? У нас грабли есть!

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3547
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #49 : 06 Июнь 2019, 16:02:33 »
В описании указано что частота сигнала меряется как количество переходов через ноль за отрезок времени (секунда). Как правило эта секунда "плывёт" по длительности в ПК. Соответственно и частота измеренная тоже будет плавать. Или эти изменения не критичны для точности ? Может стоит попробовать другой способ измерения частоты не так чувствительный к внутренним часам компьютера..?
Отрезок времени, отведенный на подсчет количества переходов через ноль в программе установлен равным 100 секунд. Считаются пересечения нуля как вниз, так и вверх. Каждая новая оценка частоты вычисляется один раз в 0.12 сек, используя часть старых и вновь поступившие отсчеты (скользящее окно длиной 100 сек). Эти оценки частоты запоминаются в кольцевом буфере и усредняются, длина "окна" усреднения 123 сек (2 минуты). Так сделано, чтобы не теряя точности можно было бы отслеживать дрейф частоты и видеть процесс в динамике.

Каким образом определяется, что 100 секунд истекли? По количеству обработанных от звуковой карты отсчетов. Частота дискретизации установлена 12 кГц, значит, когда мы получили 12000000 отсчетов, то 100 сек прошло.
Таким образом, точность измерения зависит от точности кварца звуковой карты. Разумеется, если в ней стоит кварц не очень точный, то и частота дискретизации окажется не 12000, а скажем 11996 Гц. Соответственно программа "насчитает" некоторый частотный сдвиг относительно эталона.
Но в этом и содержится весь смысл измерения частотного сдвига этой программой! Станция в эфире стоит точно. А вот частота дискретизации может немного отличаться от номинала. Плюс гетеродин приемника может быть несколько смещен. Суммарно мы увидим некоторый образовавшийся частотный сдвиг, состоящий, как я уже сказал, из настоящего сдвига (приемник) и сдвига, возникшего от неточного значения частоты дискретизации (кварц в звуковой карте).
Это нам и нужно, чтобы скомпенсировать (хотя бы предварительно) этот сдвиг с спектрумлабе или арго.
« Последнее редактирование: 06 Июнь 2019, 20:17:55 от rn3aus »

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3547
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #50 : 12 Январь 2022, 21:37:29 »
Обнаружилось, что с началом 2022 года несколько изменился формат телеграмм станций DCF и HGA: раньше длина телеграммы равнялась 16 символам, теперь стало 14. Пришлось скорректировать программу DCFHGATime.exe, версия 2.2 во вложении.

Оффлайн Р6ЛДД

  • Ветеран
  • *****
  • Сообщений: 2916
    • Просмотр профиля
    • E-mail
Re: DCF/HGA PC-Time corrector
« Ответ #51 : 12 Январь 2022, 21:49:05 »
[
Пришлось скорректировать программу DCFHGATime.exe, версия 2.2 во вложении.
Работает. ;D
« Последнее редактирование: 12 Январь 2022, 22:18:50 от R6LDD »
Per aspera ad astra.

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3547
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #52 : 10 Март 2023, 20:42:05 »
По предложению Маркуса DF6NM программа была усовершенствована.
1) Сделан выбор левого или правого каналов звуковой карты для приема
2) процедура коррекции времени теперь позволяет подстраивать часы компьютера с точностью около 150-200 мс
3) Noise Blanker сделан отключаемым с возможностью выбора порога
4) Значительно усовершенствован декодер сообщений DCF/HGA
5) можно переключать демодулятор либо в режим с приемом с двумя фильтрами (стандартный режим), либо вести прием одним фильтром (по каналу "нажатия"). В предыдущей версии эти режимы переключались автоматически, но работало это не очень хорошо. Включение приема с одним фильтром часто помогает при частоте настройки 135500, когда второй канал оказывается за полосой пропускания фильтра ПЧ.
6) Можно записывать в файл измеренные задержки dT


Новая версия программы находится здесь: http://rn3aus.136.su/DCF-HGA-RWM_Time_v3.0.zip

И в приложении к сообщению exe-файл.

Настройки программы как и всегда хранятся в ini-файле, однако большинство из них доступны через контекстное меню при щелчке правой кнопкой мыши.

Пример файла настроек:
[FILE]
PATH=TimeLog.txt               - файл лога программы
DF_PATH=df.txt                   - файл для измерений частотного сдвига приема dF
WRITE_DF_TO_FILE=1         - записывать dF в файл
WRITE_DF_PERIOD_MIN=5  - один раз в 5 минут
DT_PATH=dt.txt                   - файл для записи измерений задержки dT
WRITE_DT_TO_FILE=1         - записывать dT в файл
[AUDIO]
SND_INPUT=0
NB_ENABLE=1                       - NB включен
NB_THRESHOLD_DB=20         - порог NB в dB
USE_LEFT_CHANNEL=1          -  использовать левый канал звуковой карты (=0 - правый канал)
DEMOD_USE_2_FILTERS=1     - демодулятор использует 2 фильтра (=0 - один фильтр)     
[TIME_CORRECTION]
ENABLE=1                              - коррекция времени включена     
EU_GMT_TIME_DIF=1
COUNT_DT_EQUAL=3
DT_TOLERANCE=0,5               - максимально допустимая задержка dT, если больше, время будет скорректировано
DCF_DELAY_MS=80                - задержка момента окончания телеграммы DCF относительно начала секунды, мс
HGA_DELAY_MS=100              - задержка момента окончания телеграммы HGA относительно начала секунды, мс
[FREQ]
DIAL=135500
[DATA]
PARITY_CHECK_ENABLE=1

Надеюсь прием будет лучше, чем на предыдущих версиях. Если будут видны недостатки - прошу сообщать о них здесь.
« Последнее редактирование: 10 Март 2023, 23:48:32 от rn3aus »

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3547
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #53 : 11 Март 2023, 14:22:43 »
Чтобы не потерялось и кому интересно - исходные коды программы.

Оффлайн R3KEE

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #54 : 16 Март 2023, 10:21:36 »
Чтобы не потерялось и кому интересно - исходные коды программы.
Александр, спасибо - для понимания как работать со звуком и делать декодирование отличный пример.

чтобы компилятор не сыпал error'ы нужно
где-то в районе 69й строки определить пару переменных:
AnsiString DateSeparator, TimeSeparator;

« Последнее редактирование: 16 Март 2023, 11:06:02 от R3KEE »

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3547
    • Просмотр профиля
Re: DCF/HGA PC-Time corrector
« Ответ #55 : 26 Сентябрь 2023, 22:11:22 »
Подготовил новую версию. Исправлены недостатки связанные с использованием на компьютере локального времени.
Очень значительно усовершенствован алгоритм подстройки времени! Теперь программа поддерживает точность настройки системных часов не хуже 10 мс относительно всемирного времени. Проверялось совместно с приемником GPS.
Все новые дополнительные настройки открываются при щелчке правой кнопкой мыши.

Ссылка для скачивания: http://rn3aus.136.su/DCF-HGA-RWM_Time_v3.1.1.zip