Перейти к содержанию

Лабораторная 9.1 — Формат IQ-файла и metadata

Цель

Научиться оформлять воспроизводимый пакет IQ-записи: бинарный файл отсчётов и metadata JSON с параметрами чтения и интерпретации.

Что выполняется

В работе студент:

  1. выбирает формат IQ-записи;
  2. фиксирует sample rate и center frequency;
  3. задаёт порядок I/Q и endian;
  4. описывает gain settings и expected signal offset;
  5. проверяет полноту metadata.

Результат

После выполнения работы должны быть получены:

  • описание формата IQ;
  • metadata JSON;
  • checklist воспроизводимости;
  • вывод о готовности записи к анализу.

Что приложить к отчёту

  • metadata JSON;
  • формат файла и scaling rule;
  • sample count и expected duration;
  • expected signal offset;
  • инженерный вывод.

Подробная техническая часть

Инженерный вопрос

Какая информация должна храниться рядом с IQ-файлом, чтобы другой инженер смог воспроизвести анализ?

Минимальный пакет записи

capture_name.ci16
capture_name.metadata.json

Обязательные поля метаданных

Поле Пример Смысл
sample_rate_hz 2400000 частота дискретизации IQ
center_frequency_hz 915000000 центральная RF-частота приёмника
iq_format ci16 двоичный формат отсчётов
endianness little порядок байт
i_first true порядок чередования
sample_count 1048576 число комплексных отсчётов
expected_signal_offset_hz 100000 ожидаемое положение сигнала в основной полосе
gain_settings объект конфигурация усиления приёмника

Примеры форматов

CI16

I0 int16, Q0 int16, I1 int16, Q1 int16, ...

Преобразование в нормированный float:

I_float = I_int16 / 32768
Q_float = Q_int16 / 32768

CU8

I0 uint8, Q0 uint8, I1 uint8, Q1 uint8, ...

Преобразование в нормированный float:

I_float = (I_uint8 - 127.5) / 127.5
Q_float = (Q_uint8 - 127.5) / 127.5

CF32

I0 float32, Q0 float32, I1 float32, Q1 float32, ...

Обычно дополнительное масштабирование не требуется, но соглашение об амплитуде всё равно необходимо документировать.

Чего ожидать

Исполняемая проверка записывает один и тот же тон из 65 536 отсчётов в трёх форматах и читает каждый обратно по его метаданным:

[PASS] CI16   peak=+100012 Hz  error=12.2 Hz  missing=none  size=262144 B
[PASS] CU8    peak=+100012 Hz  error=12.2 Hz  missing=none  size=131072 B
[PASS] CF32   peak=+100012 Hz  error=12.2 Hz  missing=none  size=524288 B
  • Размер файла это бесплатная проверка согласованности: отсчёты × 2 × байт на компоненту, то есть 4, 2 и 8 байт на комплексный отсчёт для CI16, CU8 и CF32. Несовпадение размера с метаданными означает неверный формат, обрезанный файл или забытый заголовок.
  • Все три формата дают один и тот же пик, потому что читатель применяет к каждому верное масштабирование.

Упражнения

  1. Прочитайте файл CU8 как CI16, изменив только его метаданные. Как выглядит спектр и какая проверка метаданных могла бы это поймать?
  2. Поменяйте endianness у файла CI16. Опишите результат.
  3. Коллега присылает файл .cf32 размером 10 МБ, записанный при 2,4 МС/с. Какова длительность записи?

Чек-лист метаданных

  • Идентификатор записи уникален.
  • Частота дискретизации известна.
  • Центральная частота известна.
  • Указан формат IQ.
  • Указан порядок I/Q.
  • Указан порядок байт.
  • Записаны настройки усиления.
  • Записано ожидаемое смещение сигнала.
  • Размер файла соответствует ожидаемому числу отсчётов.

Типичные ошибки

Ошибка Симптом Исправление
неверная частота дискретизации пик FFT на неверной частоте читать метаданные, а не память
перепутаны I/Q спектр зеркален или повёрнут указать i_first
неверный порядок байт шумоподобная испорченная форма сигнала указать порядок байт
нет усиления уровень невозможно воспроизвести сохранить настройки усиления
нет ожидаемого смещения нельзя проверить частотный план добавить ожидаемое смещение сигнала

Чек-лист отчёта (расширенный)

  • Приложен JSON метаданных.
  • Указан двоичный формат IQ.
  • Объяснено масштабирование в нормированные комплексные отсчёты.
  • Проверен размер файла.
  • Указано ожидаемое смещение сигнала.
  • Объяснено, воспроизводима ли запись.

Шаблон инженерного вывода

Запись IQ использует формат ____ с частотой дискретизации ____ МС/с и центральной частотой ____ МГц.
Ожидаемое смещение сигнала — ____ кГц. Метаданные содержат / не содержат достаточно
информации для воспроизведения анализа, потому что ______.