Алгоритм герцеля - смещена частота.

Тема в разделе "Arduino & Shields", создана пользователем Ariadna-on-Line, 3 окт 2023.

  1. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Решил скрестить Диджиспарку (Аттини85, 16.5МГц) с алгоритмом Гёрцеля (АГ). Скачал библу Goertzel (Sebastian Westerhold (AI5GW)). При симуляции на Протеусе заметил странность - алгоритм выделяет частоту примерно на 90 герц выше заданной. Задавал и подавал (виртуально ессно) частоты ДТМФ. Выделялась всегда следующая (и только она) над заданной. Очевидно присутствует ошибка в формуле расчета, но не пойму какая. С уважением.
    ПС. Рассчитал и задавал недостающие (635 и 1095) комплементарные частоты. Та же странность. Но - коль система сохраняется - это уже можно обойти. !!!
    ПСС. Первая библиотека АГ, которая хоть как-то работает.
     
    Последнее редактирование: 3 окт 2023
  2. DetSimen

    DetSimen Гуру

    Наерна, вычислительная.
     
  3. parovoZZ

    parovoZZ Гуру

    ну так вычти эти 90 Герц. Но только в протеусе.
    Когда в кварц зальёшь, возможно всё и заработает.
     
    Ariadna-on-Line нравится это.
  4. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Понимая, что штатные частоты ДТМФ наверняка подчиняются какой-то системе - поступил по-другому : Задал 2 полинома для существующих "квартетов" частот, и рассчитал интерполяцией недостающие нижние частоты. Оказались - то что надо.
    ПС. Очень соответствует теме "впихнуть невпихуемое". Компил с Герцелем с запасом помещается в объем АТтини85 !)))
     
    Последнее редактирование: 3 окт 2023
    DetSimen нравится это.
  5. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Проблема в том - как определить пришедшую в данный момент частоту (ессно из списка штатных частот) ? Логика простая - перебирайте частоты "гетеродина", и ловите максимум магнитуды. Для этого надо строчку задания частот занести в тело цикла. Но не получается их "перебирать". Код продолжает работать только с первой заданной частотой.
     
    Последнее редактирование: 16 окт 2023