Лабораторная 6.5 — Калибровка RF-искажений приёмника (DC, дисбаланс IQ, утечка LO)¶
Цель¶
Построить воспроизводимую процедуру калибровки типичных искажений RF-приёмника:
- смещение по постоянному току (DC offset);
- рассогласование усиления и фазы I/Q;
- утечка гетеродина (LO leakage) на нулевой частоте основной полосы.
Зачем это нужно¶
Идеальный приёмник с нулевой ПЧ выдавал бы чистую комплексную основную полосу. Реальный добавляет три артефакта, которые легко принять за сигнал: смещение DC (пик на 0 Гц от смещений АЦП и смесителя), утечку LO (сам гетеродин просачивается в тракт сигнала, а у приёмника с нулевой ПЧ она тоже попадает на 0 Гц) и дисбаланс I/Q (два плеча смесителя никогда не равны по усилению и не сдвинуты ровно на 90°), из-за которого каждый реальный сигнал отражается зеркальной копией на отрицательной частоте. Если вы их не узнаёте, вы будете гоняться за фантомными тонами, читать неверный SNR и терять несколько дБ качества созвездия во всех последующих работах. Эта работа делает каждый артефакт измеримым, чтобы вы могли его увидеть, убрать и узнать, сколько осталось.
Инженерный вопрос¶
Можно ли количественно измерить метрики искажений до и после калибровки и показать измеримое улучшение на спектре и созвездии?
Исполняемый файл¶
| Файл | Назначение |
|---|---|
blocks/block_06_rf_frontend_and_ad9363/python/lab_6_5_rf_impairment_calibration.py |
синтез искажений, калибровка, метрики, графики |
Запуск из корня репозитория:
python blocks/block_06_rf_frontend_and_ad9363/python/lab_6_5_rf_impairment_calibration.py
Сгенерированные артефакты¶
docs/assets/lab65_rf_impairment_spectrum_before_after.png
docs/assets/lab65_rf_impairment_constellation_before_after.png
docs/assets/lab65_rf_impairment_calibration_metrics.json
Метрики¶
| Метрика | Смысл |
|---|---|
dc_offset_rms |
модуль комплексного среднего IQ-отсчётов |
iq_gain_mismatch_db |
разница RMS I и Q в дБ |
iq_cross_correlation |
остаточная неортогональность I и Q |
image_rejection_db |
мощность полезного тона относительно мощности зеркального тона |
lo_leakage_dbfs |
уровень утечки LO/DC относительно пика тона |
Этапы калибровки¶
- Удалить комплексную составляющую DC.
- Выровнять RMS-амплитуды I/Q.
- Ортогонализовать Q относительно I (в стиле Грама–Шмидта).
- Удалить остаточный DC ещё раз.
Чего ожидать¶
С синтетическими искажениями по умолчанию (DC = 0,085 − j0,052, рассогласование усиления I/Q 1,7 дБ, перекос фазы 6,5°, утечка LO 0,14 при −30°, шум rms 0,015, тон 180 кГц при 2,4 МС/с):
DC offset RMS before/after: 0.239629 / 0.000000
Image rejection (dB) before/after: 19.16 / 78.77
IQ cross-correlation before/after: 0.1131 / 0.0000
а из lab65_rf_impairment_calibration_metrics.json видно, что утечка LO улучшается с −10,2 дБFS до −86,1 дБFS, а рассогласование усиления I/Q с −1,64 дБ до 0 дБ.
Как читать эти числа:
- Подавление зеркального канала 19 дБ: именно то, что предсказывают такие дисбалансы. Оценка первого порядка
IRR ≈ 10·log10(4 / (ε² + φ²))при амплитудной ошибкеε ≈ 0,22(1,7 дБ) и фазовой ошибкеφ ≈ 0,11 рад(6,5°) даёт около 18–19 дБ. На практике это значит: сильный сигнал на +180 кГц виден и на −180 кГц всего на ~19 дБ слабее, достаточно, чтобы сымитировать помеху. - DC и утечка LO схлопываются вместе, потому что в приёмнике с нулевой ПЧ обе сидят ровно на 0 Гц; вычитание комплексного среднего убирает обе.
- Числа «после» нереалистично хороши (78,8 дБ подавления зеркала, −86 дБFS утечки, DC порядка
1e-17). Причина: этот компактный метод оценивает каждую поправку по той же почти безшумной синтетической записи из 65 536 отсчётов, которую затем и корректирует, поэтому оценка практически точна. На реальном железе оценка ограничена шумом, дрейфом температуры и усиления, а также тем, что дисбаланс меняется с частотой по полосе. Ожидайте от реальной калибровки десятки дБ, а не 78, и необходимость повторять её.
Упражнения¶
- Поставьте
iq_gain_mismatch_dbв 0 и оставьте перекос 6,5°. Сколько зеркала осталось? Затем сделайте наоборот. Какое искажение важнее для этого тона? - Уменьшите
noise_rmsвдвое и перезапустите. Изменилось ли подавление зеркала «после»? Почему да или почему нет? - Сдвиньте тон с 180 кГц на 5 кГц. Что происходит с тоном, пиком DC и зеркалом и что это говорит о сигналах вблизи 0 Гц в приёмнике с нулевой ПЧ?
Ответы (проверены запуском скрипта лабораторной)
- Без рассогласования усилений (только перекос) подавление зеркального канала 24,9 дБ; без перекоса (только рассогласование): 20,2 дБ. Устранение рассогласования 1,7 дБ помогает больше, поэтому здесь оно вносит больший вклад, как и предсказывает формула первого порядка:
ε ≈ 0,22противφ ≈ 0,11 рад. - Подавление «до» не меняется (19,2 дБ): его задают искажения. Подавление «после» меняется: 87,9 дБ при половинном шуме и 68,2 дБ при двойном против 78,8 дБ по умолчанию. После калибровки остаточный образ определяется тем, насколько точно коррекция оценена по зашумлённым отсчётам, и шумом в бине образа, а не самим искажением.
- На 5 кГц тон, пик постоянной составляющей/утечки гетеродина и образ лежат в пределах ±5 кГц от 0 Гц (тон 0 дБ, DC −9,2 дБ, образ −19,2 дБ). Длинная синтетическая запись ещё разделяет их, и калибровка работает (образ −74,7 дБ, DC −51,6 дБ после). На реальном оборудовании здесь и болит zero-IF: фильтр удаления постоянной составляющей, задевающий 5 кГц, уносит и сигнал (случай DC-блокера блока 11, Лабораторная 11.41), а образ всего, что рядом с 0 Гц, ложится вплотную к нему. Поэтому приёмники настраивают нужный сигнал в стороне от 0 Гц (Лабораторная 6.7).
Чек-лист отчёта¶
- Показаны спектр и созвездие до и после.
- Указаны все пять метрик до и после калибровки.
- Объяснено, какая метрика улучшилась сильнее всего и почему.
- Указаны ограничения этого компактного метода калибровки для реального железа.