Конвертор IQ файла в водопад (waterfall)

Для аналізу активності на діапазоні будемо конвертувати заздалегіть записаний IQ файл у водопад.

Для цього зовсім не багато інструментів. Ми протестували програму Baudline і також скрипт на Python.

Baudline

Позиціонує себе як програма для аналізу сигналів та створення FFT графіків. Сайт програми застарів і очевидно був зроблений ще в 2005 році. Незважаючи на те що картинки з сайту зникли, основна інформація у вигляді тексту залишилася. Для прикладу ось непогана інструкція .

Отож завантажуємо останню доступну безкоштовну версію baudline_1.08_linux_i686 або baudline_1.08_linux_x86_64 якщо у вас 64 бітна версія системи. Працює програма тільки на Linux (якщо Лінукс відсутній є можливість запускати у віртуальній машині, наприклад VirtualBox). Розпаковуємо архів і запускаємо файл ./baudline

Відкриється порожній водопад. Натискаємо правою кнопкою мишки, вибираємо File - Input - Open File

Відкриється порожній водопад. Натискаємо правою кнопкою мишки, вибираємо File - Input - Open File

Вибираємо файл і вказуємо тип файлу Raw

Відкриється вікно з параметрами файлу. Тут треба змінити наступні опції:

  • частота дискретизації (sample rate). В мене це 12 000
  • кількість каналів (channels). Для IQ вибираємо 2 канали, сигнал квадратурний і ставимо галочка flip complex (необхідна для правильного відображення сигналів, інакше буде перевернути зліва на право)

cmDqrhP1

Відкриється водопад. Щоб його збільшити клікаємо правою кнопкою мишки, вибираємо Process - Transform size - і вибираємо необхідне число.

Водимо мишкою по водопаду і можемо бачити частоту і час знизу праворуч.

Програма вміє записувати аудіосигнали і опрацьовувати в режимі реального часу. Теж вміє працювати з вже готовими записами. Також в неї є окремі пункти Process Display Measure для додаткового аналізу сигналів. Але це вже виходить за межі нашого топіка.

Python скрипт raw_iq.py

Цей скрипт дозволяє з файлу IQ зробити картинку в форматі PNG.
Для цього треба завантажити скрипт або клонувати цілий репозиторій.
Поставити необхідні залежності
pip install numpy
python install Pillow

Якщо на цьому етапі у вас уиникає помилка, тоді треба оновити PIP і ще раз поставити Pillow
python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

Після успішного встановлення всіх залежностей запускаємо програму
raw_iq.py 4096 16 s2 ./myiqfile.wav

В цій команді число 4096 це к-сть пікселів по горизонталі (ширина спектру) 16 це число яке показує скільки пікселів має бути по вертикалі, s2 вказує на simple rate вашого файлу (u1 (uint8), s1 (int8), s2 (int16)).

Якщо ви знаєте інші програми для створення спектру з IQ файлу або можете доповнити статтю, наприклад написавши детально про програму Baudline ласкаво просимо до команди.