Честные 24 бита, 16-бит TX DAC и стабилизация PureSignal

Автор: | 03.08.2026
ANVELINA PRO III · REV 4.0 · TECHNICAL BRIEF · FW 2.2.15

Честные 24 бита, 16-бит TX DAC и стабилизация PureSignal

Технический обзор модернизации SDR-трансивера Anvelina PRO III rev 4.0

Автор: Юрий EU2AV · Прошивка: 2.2.15 · Thetis: Extended PSA · Дата: 03.08.2026

Введение

Данный релиз охватывает три независимых слоя системы: аппаратный (аудиокодек и аналоговый тракт), прошивочный (FPGA, TX-тракт, DSP) и хостовый (Thetis, PureSignal).

Работа велась итеративно; представленный результат является третьей ревизией после двух полных циклов доработки.

+12
дБ к полке TX
24
бита аудио
16
бит TX DAC
0
сбоев старта
+10
дБ пик-фактор

Миф «16 бит в 32-битной обёртке»

С 2008 года протокол HPSDR передаёт аудиоданные в 32-битных словах, однако реальная разрядность составляла 16 бит. Старшие 16 бит заполнялись нулями.

Распространённое заблуждение

«Установка внешней звуковой карты с поддержкой 24/32 бита обеспечит честные 24 бита.»

✕ Ошибка: настройка интерфейса не изменяет разрядность протокола.

1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Рис. 2. 32-битное слово HPSDR: биты 0–15 — данные, биты 16–31 — padding

01. Аппаратная часть

1.1 Аудиокодек TLV320AIC3204

Плата rev 4.0 оснащена кодеком TLV320AIC3204 взамен TLV320AIC23B.

Параметр AIC23B AIC3204
SNR ~90–95 дБ ~100–106 дБ
THD+N ~−85 дБ ~−100 дБ
Разрядность 16 бит 24 бита
Noise floor ~−90 дБ ~−104 дБ

1.2 Практический эффект

Переход на AIC3204 обеспечивает снижение собственного шума аналогового тракта на 14 дБ. Пик-фактор улучшился минимум на 10 дБ.

Автоопределение ревизии

Thetis считывает hw_rev из discovery-пакета. Rev 4.0 → 24-битный режим; legacy → 16-битный. Обратная совместимость сохраняется.

1.3 Оптимизация аналогового тракта

  • Микрофон (WM-61A): MICBIAS = 1.7 В, входное сопротивление 20 кОм, ток 0.3 мА. Линейный режим.
  • Наушники: выходные конденсаторы 10 мкФ → 100 мкФ. Частота среза ~500 Гц → ~50 Гц.

02. FAQ: 24-битный аудиотракт

Q1. АЦП приёмника (LTC2208) имеет 16 бит. Зачем 24 бита в аудиотракте?

RF-тракт и аудиотракт — независимые подсистемы. Аудиокодек работает с сигналом после DSP-обработки; его разрядность определяет шумовую полку и динамический диапазон воспроизводимого звука. Два тракта не взаимно ограничивают друг друга.

Q2. Каков объективный выигрыш от 24 бит?

Теоретический SNR: 16 бит ≈ 96 дБ, 24 бита ≈ 144 дБ. Переход с AIC23B (~90 дБ SNR) на AIC3204 (~106 дБ) даёт 16 дБ реального выигрыша — снижение шумовой полки в 6.3 раза.

Q3. Зачем запас до 144 дБ, если ухо различает ~120 дБ?

Запас нужен для компенсации накопления ошибок округления при DSP-обработке. Каждый каскад (фильтрация, эквализация, компрессия) вносит шум квантования. В 16 битах после 3–4 каскадов он слышен; в 24 битах — нет.

Q4. Даст ли внешняя 24-битная звуковая карта 24 бита?

Нет. Внешняя карта получает данные из протокола HPSDR, который содержит 16 бит полезной нагрузки. Единственный путь — аппаратная замена кодека на плате и обновление FPGA.

Q5. Сохраняется ли совместимость с legacy-платами?

Да. Thetis определяет ревизию через hw_rev. Для rev 4.0 — 24-битный режим; для legacy — 16-битный. Все механизмы PSA работают на всех ревизиях.

03. Прошивка 2.2.15

3.1 TX DAC: расширение окна до 16 бит

Ранее DAC MAX5891 управлялся 14-битным окном [21:8] с двумя нулевыми LSB. Теперь окно [21:6] — полные 16 бит с round-to-nearest и TPDF-дизером.

Расчёт выигрыша

Шум квантования ∝ 2−N
Переход 14 → 16 бит: 20·log₁₀(2²) ≈ +12.04 дБ
Потолок SNR: 6.02·16 + 1.76 = ~98.1 дБ

3.2 CORDIC: повышение разрядности

  • Внутренние стадии: 20 → 22 итерации, шина 24 → 26 бит. Снижена угловая систематика (дискретные спуры CW).
  • Выходная шина: 22 → 24 бита. Устранён wrap на полном драйве (документированное отклонение 4 194 304).

3.3 RX-спур 28.431 МГц — устранение

Выявлен побочный эффект: гребёнка LFSR-дизера (период 255 тактов при 122.88 МГц → шаг 481.882 кГц, 59-я гармоника = 28.431 МГц) попадала в приёмник.

Меры
  • Гейтирование LFSR по сигналу TX.
  • Удлинение LFSR до 24 бит: период ~16.78 млн тактов, шаг спектральных линий 7.3 Гц.

3.4 Стабилизация холодного старта PSA

Проблема: в 25–33% случаев при холодном старте — высокая IMD-гребёнка на двухтоновом тесте.

Примечание

Источник дефекта находился в wdsp. Исправление применимо ко всем платформам, использующим Thetis (Anan, Hermes, Red Pitaya).

Два корневых дефекта:

  • Случайная фаза TX NCO (cpl_cordic не сбрасывался): θ₀ случайная → m0 варьировался 0.78…1.12. Фикс: жёсткий сброс фазы NCO при каждом рестарте.
  • Экстремальные ym на нулях биения (шум feedback) искажали МНК-фит бина 0 на ±5–20%. Фикс: нижний гейт env ≥ 1/256.

Результат: серия 20+ циклов power on/off, m0 ≈ 1.00 при каждом включении; отказов 0.

3.5 Тайминг и CDC

Исправлена ошибка CDC: гейт дизера вводил асинхронный PTT-сигнал в быстрый домен. Добавлен 2-FF синхронизатор + регистр.

STA: 0 violations, setup slack +0.75 нс (было −4.489 нс, критический фейл).

04. Thetis: надзорный движок PureSignal

Ядро фита (wdsp calcc) оставлено без изменений. Надзорный слой обеспечивает следующие гарантии:

┌─────────────────────────────────────────────┐
[wdsp calcc] ядро фита (стоковое)
+ jump-check (cm/cc/cs vs опорная)
+ DCB-якорь (гейт 24-бит)
+ нижний гейт сбора (env >= 1/256)
+ P1 кэш кривых / P2 двухскоростная
[Thetis PSForm] оркестрация · индикация · ATT
[ChannelMaster] сетевой паддинг (гейт rev4)
└─────────────────────────────────────────────┘
  • Jump-check: свежая кривая сравнивается с опорной. Скачок > 0.05 → отклонение. Одиночные шумные калибровки не проходят.
  • Контекстная память (P1): кэш по частоте/бенду (16 слотов, персистентность). Ретюнинг = мгновенная коррекция.
  • Двухскоростная калибровка (P2): грубый проход 64/бин при отсутствии кэша; уточняющий 256/бин.
  • DCB-якорь: «загрязнённые» бины заменяются донорскими. Только 24-битный режим.
  • Сетевой паддинг: потерянные UDP-кадры заполняются нулями. Только rev 4.

05. Результаты на стенде

Метрика Было (2.2.14) Стало (2.2.15)
Окно TX DAC 14 бит + 2’0 16 бит + дизер
Полка квантования TX ~86 дБ ~98 дБ
RX-спур 28.431 МГц нет устранён
Холодный старт PSA решено (Thetis/wdsp) решено (Thetis/wdsp)
m0 (бин 0) 0.78…1.12 ≈ 1.00
STA setup slack +0.001 нс (крит.) +0.75 нс
Звук RX (наушники) шум при нуле тишина
Пик-фактор +10 дБ

Верификация

  • iverilog тестбенчи: TB1 (DAC/округление/дизер), TB2 (CORDIC/wrap) — PASS.
  • Quartus STA: 0 violations, все slacks положительны.
  • Стенд: CW, двухтон, серия power on/off, RX/TX.

Ресурсы FPGA

Ресурс Занято Примечание
Logic Elements 70 097 / 114 480 (61%) +~400 к изменениям
Память (бит) 1 116 064 / 3 981 312 (28%)
9-бит умножители 202 / 532 (38%)
PLL 4 / 4 (100%)

06. Дальнейшие шаги

  • Работа в эфире на КВ-диапазонах, накопление статистики.
  • Дополнительная оптимизация аналогового тракта.
  • Оценка возможности расширения 24-битного режима на legacy-платы.
  • Подготовка ревизии 4.1.
Загрузка

Thetis v2.10.3.16 Extended (Final) — версия с поддержкой GPU FFT, стабилизацией PureSignal и всеми исправлениями, описанными в статье.

⬇ Скачать Thetis Extended

Благодарности

Выражаю признательность группе тестеров за терпение при проверке промежуточных сборок, предоставление логов и конструктивную обратную связь. Без участия сообщества данный релиз был бы невозможен.

73! · Юрий · EU2AV · eu2av.com · OpenHPSDR Community · © 2026

Честные 24 бита, 16-бит TX DAC и стабилизация PureSignal: 7 комментариев

    1. eu2av Автор записи

      Владимир Здравствуйте! Да я хорошо знаю этот кодек, и изначально так вопрос и стоял расширить его до 24-битт но вы прочитайте внимательно маю статью там я писал в чем проблема, то есть короче говоря такой действия только добавило бы мусорные биты и не чего не дало бы по факту. Второй сам кодек не просто старый а очень древний развязка внутренних цап и адц развязки каналов и тд.. плохое вернее было достаточное на 2001год но недостаточное на сегодняшний день.

      1. RN0D Владимир

        Принято, Юрий ! вот почему и стало интересным почему бы его не заставить работать на 24-х битах. ну за не невозможностью пока засунуть в корпус вместо него некой платки с другим кодеком. ну раз нет смысла… спасибо, Юрий.

        1. eu2av Автор записи

          Владимир Есть такие мысли попробовать, тут смысл в том, если это не ухудшит параметры и останется не хуже чем было, то смысл есть для для внешнего звука и обработки на стороне пк.

          1. RN0D Владимир

            Вот ! ну вот это же я и имею в виду ! именно звук. Спасибо, Юрий.

        2. eu2av Автор записи

          Владимир если готовы протестировать напишите мне на имейл, сам аудио кодек работает как и раньше 16бит в завернутой оболочке 24. Со стороны компьютера теперь мы видим настоящий 24 аудио поток rx/tx.

          1. RN0D Владимир

            Юрий, да конечно же ! Всегда готов с удовольствием. не совсем понял на счет оболочки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *