diff --git a/docs/lab042_hardware_loopback_spec.md b/docs/lab042_hardware_loopback_spec.md index 492a865..549d142 100644 --- a/docs/lab042_hardware_loopback_spec.md +++ b/docs/lab042_hardware_loopback_spec.md @@ -66,7 +66,9 @@ - связь по Ethernet, а не по USB; адрес `ip:192.168.2.1` уже подтверждён работой Lab024a; - два приёмных и два передающих канала; в Lab042 используется только первый канал каждого; -- класс `adi.Pluto` в Lab024a отработал на приёме. Начинать с него. Если передача на этом классе не пойдёт из-за двухканальности, перейти на `adi.ad9361` с тем же адресом. Это единственное разрешённое отступление от задания, и о нём нужно сообщить. +- вопреки надписи на корпусе, устройство сообщает о себе как `Analog Devices PlutoSDR Rev.C (Z7010-AD9361)` и представлено **одним приёмным и одним передающим каналом**: буферные устройства `cf-ad9361-lpc` и `cf-ad9361-dds-core-lpc` несут по паре каналов I и Q. Поэтому класс `adi.Pluto` подходит, переход на `adi.ad9361` не требуется; +- чип **AD9361**, а не урезанный AD9363. Диапазон перестройки приёмника от 70 МГц до 6 ГГц, передатчика от 46,9 МГц до 6 ГГц. Целевой диапазон проекта ниже 350 МГц устройству доступен штатно, без доработки прошивки. Для Lab044 это снимает ранее открытый вопрос; +- прошивка `v0.32-1-g7bdc-dirty`, ядро 4.19. Обновление в рамках Lab042 не выполняется. ## 5. Требования к схеме и сохранности оборудования @@ -120,13 +122,13 @@ ## 7. Параметры тракта -Значения тракта взяты из Lab018 и менять их в этой лабораторной **запрещено**. Причина: переход на железо сам по себе вносит достаточно неизвестных. Менять одновременно и параметры сигнала — значит потерять возможность понять причину отказа. +Значения тракта взяты из Lab018 и менять их в этой лабораторной **запрещено**, за единственным исключением, описанным сразу под таблицей. Причина запрета: переход на железо сам по себе вносит достаточно неизвестных. Менять одновременно и параметры сигнала — значит потерять возможность понять причину отказа. | Параметр | Значение | Источник | |---|---|---| | Символьная скорость | 20 000 симв/с | `SYMBOL_RATE`, Lab018 | -| Отсчётов на символ | 32 | `SAMPLES_PER_SYMBOL`, Lab018 | -| Частота дискретизации | 640 000 Гц | произведение двух предыдущих | +| Отсчётов на символ | **128** | изменено против Lab018, см. ниже | +| Частота дискретизации | **2 560 000 Гц** | произведение двух предыдущих | | Скругление фильтра | 0,35 | `RRC_ROLLOFF`, Lab018 | | Длина фильтра | 10 символов | `RRC_SPAN_SYMBOLS`, Lab018 | | Преамбула | 64 бита | `PREAMBLE_BIT_COUNT`, Lab018 | @@ -134,15 +136,29 @@ | Защитный интервал | 16 символов | `GUARD_SYMBOL_COUNT`, Lab018 | | Амплитуда передачи | 0,70 | `TX_AMPLITUDE`, Lab018 | +### Обязательное отступление от Lab018: частота дискретизации + +Опрос устройства 10 августа 2026 года показал, что **минимальная частота дискретизации AD9361 составляет 2 083 333 Гц**. Частота 640 000 Гц из Lab018 физически недостижима: она втрое ниже предела. Понизить её можно только включением встроенного КИХ-фильтра с прореживанием, что добавляет к первому включению передатчика ещё один непроверенный механизм. + +Принято решение поднять число отсчётов на символ с 32 до 128. Тогда: + +- символьная скорость остаётся **20 000 симв/с**, как в Lab018; +- скругление, длина фильтра, преамбула, слово синхронизации и защитный интервал — без изменений; +- частота дискретизации становится 20 000 × 128 = **2 560 000 Гц**, что выше минимума с запасом. + +Меняется **только степень передискретизации** — величина, относящаяся к стыку с устройством, а не к самому сигналу. Форма спектра, скорость и структура кадра остаются теми же, что проверены в Lab018–Lab023. Это единственное разрешённое расхождение с Lab018, и оно вынужденное. + Полезная скорость получается около 20 кбит/с. Для картинки в несколько килобайт это единицы секунд. Этого достаточно: цель — картинка, а не скорость. +Побочное следствие: фильтр приподнятого косинуса при 128 отсчётах на символ и длине 10 символов получается на 1281 отвод. Свёртку следует выполнять через быстрое преобразование Фурье (`scipy.signal.fftconvolve`), иначе формирование сигнала займёт недопустимо много времени. + ### Параметры PlutoSDR | Параметр | Значение | Примечание | |---|---|---| | Адрес устройства | `ip:192.168.2.1` | как в Lab024a | | Несущая передачи и приёма | 435 МГц | обе одинаковые | -| Частота дискретизации | 640 000 | совпадает с трактом | +| Частота дискретизации | 2 560 000 | совпадает с трактом, минимум устройства 2 083 333 | | Полоса радиочастотного тракта | 200 000 Гц | минимум Pluto, сигнал занимает около 27 кГц | | Усиление передатчика | начать с −30 дБ | с аттенюатором безопасен весь диапазон, см. раздел 5 | | Режим усиления приёмника | `manual` | автоматика мешает измерениям |