Разработать программный симулятор приёмного тракта и обработки side-scan sonar, предназначенный для:
- Отработки алгоритмов обработки CHIRP-сигналов
- Сравнения real и IQ (digital DDC) методов
- Моделирования приёмного тракта (LNA, VGA, ADC)
- Моделирования воды и рельефа дна
- Генерации side-scan изображения
- Оценки совпадения с эталонной сценой (ground truth)
- Подготовки архитектуры под SAS (Synthetic Aperture Sonar)
Полная цепочка сигнала:
TX (гидрофон) → Вода (TL) → Дно (рассеяние) → Вода (TL) → RX (гидрофон) → LNA → BPF → VGA → ADC → DSP
Гидроакустическое уравнение для side-scan:
где:
-
$SNR(r, \theta)$ — отношение сигнал/шум на расстоянии$r$ и угле$\theta$ , дБ -
$SL$ — уровень источника (Source Level), дБ re 1 µPa @ 1 м -
$TL_{water}(2r)$ — потери передачи в воде (round-trip), дБ -
$\sigma_0(\theta)$ — backscattering strength, дБ -
$D_{RX}(\theta)$ — диаграмма направленности приёмника, дБ -
$NL$ — уровень шумов, дБ -
$PG$ — выигрыш обработки (Processing Gain), дБ
Source Level (SL):
где:
-
$S_{TX}$ — чувствительность передатчика, дБ re 1 µPa/V @ 1 м -
$V_{TX}$ — напряжение передатчика, В
Типичные значения:
Оконная функция амплитуды (TX_amplitude_window):
Оконная функция применяется к передаваемому CHIRP-сигналу для управления спектром и снижения боковых лепестков.
Параметры:
-
type — тип оконной функции:
-
none— без окна (прямоугольное окно, постоянная амплитуда) -
Tukey— окно Тьюки (Tukey window), параметризуемое$\alpha$ -
Hann— окно Ханна (Hann window) -
RaisedCosine— приподнятый косинус (Raised Cosine window)
-
-
param — параметр
$\alpha$ (только для Tukey):-
$\alpha \in [0, 1]$ — доля окна с плоской вершиной -
$\alpha = 0$ → прямоугольное окно -
$\alpha = 1$ → окно Ханна - Типичное значение:
$\alpha = 0.5$
-
Математическое описание окон:
- None (Rectangular):
- Hann:
-
Tukey:
Кусочно-определённая функция:
-
При
$0 \leq t < \frac{\alpha T}{2}$ :$$w(t) = \frac{1}{2}\left[1 + \cos\left(\frac{\pi}{\alpha T/2}\left(t - \frac{\alpha T}{2}\right)\right)\right]$$ -
При
$\frac{\alpha T}{2} \leq t \leq T - \frac{\alpha T}{2}$ :$$w(t) = 1$$ -
При
$T - \frac{\alpha T}{2} < t \leq T$ :$$w(t) = \frac{1}{2}\left[1 + \cos\left(\frac{\pi}{\alpha T/2}\left(t - T + \frac{\alpha T}{2}\right)\right)\right]$$
-
-
RaisedCosine:
Влияние на сигнал:
Оконная функция применяется к CHIRP-сигналу:
где
Влияние на спектр:
- None (Rectangular): максимальная мощность, но высокие боковые лепестки
- Hann/Tukey/RaisedCosine: снижение боковых лепестков за счёт уменьшения мощности сигнала
Гидрофон
↓
LNA (шум + усиление)
↓
BPF (60–900 kHz)
↓
VGA / AGC
↓
ADC (real, 2–5 MSPS)
↓
Цифровая обработка:
├─ Real processing
└─ Digital IQ (DDC)
Важно: Аналоговый IQ-перевод НЕ используется.
Линейный CHIRP (LFM — Linear Frequency Modulation):
или в комплексной форме:
где:
-
$A$ — амплитуда сигнала, В -
$w(t)$ — оконная функция (Rect, Hann, Tukey) -
$f_0$ — начальная частота, Гц -
$f_1$ — конечная частота, Гц -
$B = f_1 - f_0$ — полоса частот, Гц -
$T$ — длительность импульса, с
Параметры для side-scan:
- Начальная частота
$f_0$ : 65–900 кГц - Конечная частота
$f_1$ : 65–900 кГц - Полоса
$B = |f_1 - f_0|$ : 5–300 кГц - Длительность
$T$ : 1–20 мс - Тип: LFM up (
$f_1 > f_0$ ) или LFM down ($f_1 < f_0$ )
Выбор длительности импульса:
Длительность импульса
Обоснование:
-
Processing Gain зависит от длительности: $$ PG = 10 \cdot \log_{10}(B \cdot T) $$ Увеличение
$T$ → увеличение$PG$ → улучшение SNR. -
Для дальних боковых отражений:
- Сигнал сильно ослаблен из-за больших потерь распространения
- Требуется максимальный Processing Gain для обеспечения достаточного SNR
- Длительность
$T$ выбирается такой, чтобы обеспечить требуемый SNR на максимальной дальности
-
Компромисс:
-
Большая длительность
$T$ :- ✅ Высокий Processing Gain → лучше SNR для дальних целей
- ❌ Ухудшение горизонтального разрешения:
$\Delta x = \frac{c \cdot T}{2}$ - ❌ Увеличение времени зондирования
-
Малая длительность
$T$ :- ✅ Лучшее горизонтальное разрешение
- ✅ Быстрее зондирование
- ❌ Низкий Processing Gain → недостаточный SNR для дальних целей
-
Расчёт требуемой длительности:
Для обеспечения минимального SNR на максимальной дальности
где
Отсюда минимальная длительность:
Типичные значения:
- Для ближних целей (до 50 м):
$T = 1$ –$5$ мс - Для средних расстояний (50–200 м):
$T = 5$ –$10$ мс - Для дальних боковых отражений (200+ м):
$T = 10$ –$20$ мс
Мгновенная частота линейного CHIRP:
где:
-
$f_0$ — начальная частота, Гц -
$B = f_1 - f_0$ — полоса частот, Гц -
$T$ — длительность импульса, с -
$t$ — время, с
Центральная частота:
Спектр CHIRP-сигнала приближённо описывается прямоугольной функцией:
где:
-
$f_c = \frac{f_0 + f_1}{2}$ — центральная частота, Гц -
$B = f_1 - f_0$ — полоса частот, Гц -
$\text{rect}(x)$ — прямоугольная функция (равна 1 при$|x| \leq 0.5$ и 0 в противном случае)
Для согласованной фильтрации выигрыш обработки:
где:
-
$B$ — полоса частот, Гц -
$T$ — длительность импульса, с -
$B \cdot T$ — произведение полосы на длительность (time-bandwidth product), безразмерное
Пример: при
Скорость звука в воде рассчитывается по формуле Mackenzie (1981):
где:
-
$c$ — скорость звука, м/с -
$T$ — температура, °C (диапазон: 0–30 °C) -
$S$ — солёность, PSU (диапазон: 0–35 PSU) -
$P$ — давление, дБар (dBar)
Давление на глубине:
где
Типичные значения:
Коэффициент поглощения в воде рассчитывается по формуле Francois–Garrison (1982):
где
Вязкое поглощение (первое слагаемое):
Релаксационное поглощение бората (второе слагаемое):
Релаксационное поглощение сульфата магния (третье слагаемое):
Результат в неперах на метр (Np/m), переводится в дБ/м:
где коэффициент 8.686 = 20/ln(10) — преобразование из неперов в децибелы.
Типичные значения:
Spreading Loss (геометрическое рассеяние):
Для сферического распространения:
где
Absorption Loss (поглощение):
где
Total Transmission Loss:
Для round-trip (туда и обратно):
Время задержки:
где:
-
$\tau$ — время задержки (round-trip), с -
$r$ — расстояние (one-way), м -
$c$ — скорость звука, м/с
Расстояние из TOF:
Океанский фоновый шум:
где:
-
$NL_0$ — спектральная плотность шума, дБ re 1 µPa/√Hz -
$B$ — полоса частот, Гц
Типичные значения для 60–900 кГц:
-
$NL_0 \approx 50$ –$70$ дБ re 1 µPa/√Hz (в зависимости от условий)
AWGN (Additive White Gaussian Noise):
где
2D / 3D карта высот
Рельеф задаётся пользователем через GUI.
Эффективная площадь рассеяния (Backscattering Strength):
где:
-
$\sigma_0$ — backscattering strength, дБ -
$\theta$ — угол падения (от нормали), рад -
$f$ — частота, Гц - material — тип материала дна
Зависимость от угла падения:
Для большинства типов грунта:
где:
-
$\sigma_0(0)$ — backscattering strength при нормальном падении, дБ -
$n$ — показатель степени (обычно 1–3)
Типичные значения
| Материал |
|
Частота |
|---|---|---|
| Ил (mud) | -30 до -20 | 60–900 кГц |
| Песок (sand) | -25 до -15 | 60–900 кГц |
| Гравий (gravel) | -20 до -10 | 60–900 кГц |
| Камни (rocks) | -15 до -5 | 60–900 кГц |
| Металл (metal) | -5 до +5 | 60–900 кГц |
Зависимость от частоты:
где:
-
$f_0$ — опорная частота, Гц -
$m$ — показатель частотной зависимости (обычно 1–3)
Поддерживаемые модели:
- Rayleigh — для мелкомасштабного рассеяния (много независимых рассеивателей):
где:
-
$A$ — амплитуда рассеянного сигнала -
$\sigma^2$ — дисперсия (зависит от$\sigma_0$ )
- Rice — для рассеяния с доминирующей компонентой:
где:
-
$A_0$ — амплитуда доминирующей компоненты -
$I_0$ — модифицированная функция Бесселя нулевого порядка
- K-distribution — для неоднородного рассеяния:
где:
-
$K_\nu$ — модифицированная функция Бесселя второго рода -
$\nu$ — параметр формы (степень неоднородности) -
$b$ — масштабный параметр
Физическая модель:
В гидроакустике дно обычно моделируют как распределённый случайный рассеиватель:
- Дно состоит из множества микрорефлекторов
- Каждый микрорефлектор меньше разрешающего элемента (элемента разрешения системы)
- Каждый микрорефлектор имеет случайную фазу отражения
Формальное математическое описание:
Отражённое поле в точке
где:
-
$a_i$ — амплитуда отражения от$i$ -го микрорефлектора -
$\phi_i$ — случайная фаза отражения от$i$ -го микрорефлектора -
$\delta(r - r_i)$ — дельта-функция Дирака (позиция$i$ -го рассеивателя) -
$r_i$ — координата$i$ -го микрорефлектора
Статистические свойства:
-
Амплитуды
$a_i$ распределены по закону, зависящему от типа грунта:- Rayleigh:
$a_i \sim \text{Rayleigh}(\sigma)$ - Rice:
$a_i \sim \text{Rice}(A_0, \sigma)$ - K-distribution:
$a_i \sim \text{K}(\nu, b)$
- Rayleigh:
-
Фазы
$\phi_i$ равномерно распределены:
-
Позиции
$r_i$ случайно распределены в объёме (объёмное рассеяние) или на поверхности (поверхностное рассеяние)
Объёмное vs поверхностное рассеяние:
Объёмное рассеяние: микрорефлекторы распределены в объёме грунта
где
Поверхностное рассеяние: микрорефлекторы распределены на поверхности дна
где
Разрешающий элемент:
Размер разрешающего элемента определяется:
-
Горизонтальное разрешение:
$\Delta x = \frac{c \cdot T}{2}$ (где$T$ — длительность импульса) -
Вертикальное разрешение:
$\Delta z = \frac{c}{2B}$ (где$B$ — полоса частот)
Микрорефлекторы должны быть меньше разрешающего элемента: $$ \text{size}(r_i) < \min(\Delta x, \Delta z) $$
Статистика суммарного отражения:
При большом количестве микрорефлекторов суммарное отражение подчиняется центральной предельной теореме:
Для независимых рассеивателей с равномерной фазой:
-
Амплитуда
$|P_{total}|$ распределена по Rayleigh (если нет доминирующего компонента) -
Амплитуда
$|P_{total}|$ распределена по Rice (если есть доминирующий компонент)
Связь с backscattering strength:
Средняя мощность рассеяния связана с
где
Физическая природа спекла:
Спекл (speckle) — это зернистая, «шумоподобная» текстура на изображениях, возникающая не из-за электроники, а как физическое свойство когерентного рассеяния. Для side-scan sonar это нормальное и неизбежное явление.
Причины возникновения:
- Side-scan использует когерентный сигнал (CHIRP → matched filter → фаза сохраняется)
- Дно состоит из множества мелких рассеивателей (песчинки, неровности, пузырьки):
- каждый отражает сигнал с собственной фазой
- в одном разрешающем элементе (range cell) складываются десятки–сотни отражений
Суммарный сигнал:
где:
-
$a_k$ — амплитуда отражения от$k$ -го рассеивателя -
$\phi_k$ — случайная фаза отражения от$k$ -го рассеивателя -
$N$ — количество рассеивателей в разрешающем элементе
Интерференция:
Фазы
- Конструктивная → яркие точки
- Деструктивная → тёмные точки
👉 Это и есть спекл
Визуальные характеристики:
- Зернистая текстура
- «Соль-перец» (salt-and-pepper)
- Присутствует даже на идеально ровном дне
- НЕ исчезает при увеличении SNR
❗ Важно: Спекл — не шум электроники, а физическое явление когерентного рассеяния.
Комплексный сигнал после matched filter:
где
Условия для модели спекла:
Если:
- много независимых рассеивателей
- фазы равномерно распределены:
$\phi_k \sim \mathcal{U}(0, 2\pi)$
Тогда по центральной предельной теореме:
где
Амплитуда:
имеет распределение Рэлея:
📌 Это классическая модель спекла для сонаров и SAR (Synthetic Aperture Radar/Sonar).
Интенсивность:
имеет экспоненциальное распределение:
Сравнительная таблица:
| Характеристика | Спекл | Электронный шум |
|---|---|---|
| Природа | Физическая (когерентное рассеяние) | Аппаратная (электроника) |
| Когерентность | Да | Нет |
| Зависит от фазы | Да | Нет |
| Убирается фильтрами | Частично (multilook) | Да (фильтрация) |
| Информативен | Да (несёт информацию о структуре дна) | Нет |
| Зависит от SNR | Нет | Да |
👉 Спекл несёт информацию о структуре дна и не является артефактом системы.
По структуре спекла можно:
- Отличать типы грунта (ил, песок, камни имеют разную структуру спекла)
- Выявлять объекты (металлические объекты дают другой спекл)
- Оценивать шероховатость поверхности
Отсутствие спекла → нереалистичная симуляция
В SAS (Synthetic Aperture Sonar):
Спекл уменьшается за счёт когерентного суммирования апертуры (multilook processing), но полностью не исчезает.
Генерация комплексного рассеяния для одного разрешающего элемента:
Упрощённая модель (Rayleigh):
Для большого количества рассеивателей:
# Генерация комплексного сигнала со спеклом
I = np.random.normal(0, sigma, size)
Q = np.random.normal(0, sigma, size)
y = I + 1j*Q
A = np.abs(y) # Амплитуда с распределением Рэлеягде:
-
$\sigma$ — параметр, зависящий от$\sigma_0(\theta, f, \text{material})$ -
size— размер разрешающего элемента
Для разных типов дна:
-
Rayleigh — ил, песок (много мелких рассеивателей):
I = np.random.normal(0, sigma, size) Q = np.random.normal(0, sigma, size)
-
Rice — песок + камни (есть доминирующий рассеиватель):
I = np.random.normal(A0, sigma, size) Q = np.random.normal(0, sigma, size)
где
$A_0$ — амплитуда доминирующего компонента. -
K-distribution — грубое дно (неоднородное рассеяние):
# Более сложная модель с параметром формы nu # Требует специальной генерации K-distributed случайных величин
Параметры модели:
- Плотность рассеивателей: количество рассеивателей на единицу площади/объёма
- Размер рассеивателей: должен быть меньше разрешающего элемента
-
Распределение фаз: равномерное
$\phi_k \sim \mathcal{U}(0, 2\pi)$ - Распределение амплитуд: зависит от типа грунта (Rayleigh/Rice/K)
Диаграмма направленности гидрофона:
где:
-
$D_{RX}$ — диаграмма направленности приёмника -
$D_0$ — максимальное значение -
$\theta, \phi$ — углы в сферической системе координат
Влияние на принимаемый сигнал:
где:
-
$P_{TX}$ — мощность передатчика -
$D_{TX}$ — диаграмма направленности передатчика -
$\theta_{TX}, \theta_{RX}$ — углы для передатчика и приёмника -
$r$ — расстояние (влияние$r^4$ из-за round-trip)
Параметры:
- Усиление
$G_{LNA}$ , дБ - Шумовая температура
$T_n$ или шумовая фигура$NF_{LNA}$ , дБ
Модель шума:
где:
-
$k_B = 1.38 \times 10^{-23}$ Дж/К — постоянная Больцмана -
$T$ — температура, К -
$B$ — полоса частот, Гц
Параметры:
- Полоса: 60–900 кГц
- Реализуется как цифровая модель аналогового фильтра
Передаточная функция (идеальный фильтр):
где
Реалистичная модель (Butterworth или Chebyshev):
где:
-
$f_c$ — частота среза, Гц -
$n$ — порядок фильтра
Параметры (из SonarCore):
- Минимальное усиление
$G_{VGA,min}$ , дБ - Максимальное усиление
$G_{VGA,max}$ , дБ - Шаг усиления
$\Delta G$ , дБ - Полоса пропускания
$BW_{VGA}$ , Гц - Время установления
$T_{set}$ , с
Режимы работы:
- Фиксированное усиление:
Усиление ограничивается диапазоном: $$ G_{VGA,min} \leq G_{VGA} \leq G_{VGA,max} $$
- TVG (Time Variant Gain):
Компенсация потерь распространения:
или упрощённо:
где:
-
$G_0$ — начальное усиление, дБ -
$r(t) = \frac{c \cdot t}{2}$ — расстояние, соответствующее времени$t$ , м -
$\alpha_{w,dB}$ — коэффициент поглощения в воде, дБ/м -
$c$ — скорость звука, м/с
Усиление в линейном масштабе:
Выходной сигнал после VGA:
где
Проверка на клиппинг:
Параметры (из SonarCore):
- Разрядность
$N$ , бит (12–14 бит) - Частота дискретизации
$f_s$ , Гц (2–5 MSPS) - Полный диапазон
$V_{FS}$ , В - Эффективное число разрядов
$ENOB$ , бит - SNR ADC
$SNR_{ADC}$ , дБ
Тип: real-sampling (не IQ)
Квантование:
где:
-
$\Delta = V_{FS}/2^N$ — шаг квантования, В -
$V_{FS}$ — полный диапазон, В -
$N$ — разрядность, бит
Динамический диапазон ADC:
Шум квантования:
SNR квантования:
Эффективное число разрядов (ENOB):
где
Проверка на клиппинг ADC:
Ограничение сигнала перед квантованием:
processing_mode = "real" | "digital_IQ"
Цепочка обработки:
-
ADC → real сигнал
$x[n]$ -
Matched filter (согласованная фильтрация):
где
Оконная функция для matched filter:
Для снижения боковых лепестков в отклике matched filter применяется оконная функция к опорному сигналу:
где
Параметры:
-
window_type — тип оконной функции:
-
none— без окна (прямоугольное окно, максимальное разрешение, но высокие боковые лепестки) -
Hann— окно Ханна (Hann window) -
Hamming— окно Хэмминга (Hamming window) -
Blackman— окно Блэкмана (Blackman window) -
Kaiser— окно Кайзера (Kaiser window), параметризуемое$\beta$
-
-
window_param — параметр
$\beta$ (только для Kaiser):-
$\beta \geq 0$ — параметр формы окна -
$\beta = 0$ → прямоугольное окно -
$\beta \approx 5$ → окно, близкое к Hamming -
$\beta \approx 8.6$ → окно, близкое к Blackman - Типичные значения:
$\beta = 5$ –$10$
-
Математическое описание окон для matched filter:
Для опорного сигнала длиной
- None (Rectangular):
- Hann:
- Hamming:
- Blackman:
- Kaiser:
где
Визуальное сравнение:
Raw (без окна, window_type = none):
- Максимальное разрешение (узкий главный лепесток)
- Высокие боковые лепестки (до -13 дБ для прямоугольного окна)
- Риск маскировки слабых целей сильными боковыми лепестками
Windowed (с окном):
- Снижение боковых лепестков:
- Hann: ~-32 дБ
- Hamming: ~-43 дБ
- Blackman: ~-58 дБ
- Kaiser (
$\beta = 8.6$ ): ~-60 дБ
- Ухудшение разрешения (расширение главного лепестка)
- Снижение динамического диапазона
Влияние на разрешение:
Разрешение по дальности:
-
Без окна:
$\Delta r = \frac{c}{2B}$ (теоретическое разрешение) -
С окном:
$\Delta r_{windowed} = k \cdot \frac{c}{2B}$ , где$k > 1$ — коэффициент расширения
Коэффициенты расширения для различных окон:
| Окно | Коэффициент расширения |
Уровень боковых лепестков, дБ |
|---|---|---|
| None (Rectangular) | 1.0 | -13 |
| Hann | ~1.5 | -32 |
| Hamming | ~1.36 | -43 |
| Blackman | ~1.73 | -58 |
| Kaiser ( |
~1.8 | -60 |
Влияние на динамический диапазон:
Динамический диапазон — способность различать слабые и сильные цели одновременно.
- Без окна: максимальный динамический диапазон, но слабые цели могут маскироваться боковыми лепестками сильных
- С окном: снижение динамического диапазона из-за расширения главного лепестка, но улучшение способности различать слабые цели благодаря подавлению боковых лепестков
Компромисс:
- Высокое разрешение (none) → высокие боковые лепестки
- Низкие боковые лепестки (Blackman, Kaiser) → ухудшение разрешения
Рекомендации по выбору:
- None: для максимального разрешения, когда боковые лепестки не критичны
- Hann/Hamming: компромисс между разрешением и подавлением боковых лепестков
- Blackman/Kaiser: для максимального подавления боковых лепестков, когда разрешение менее критично
- Огибающая (Envelope Detection):
где
Перенос в нулевую частоту:
где:
-
$f_c$ — центральная частота CHIRP, Гц -
$T_s = 1/f_s$ — период дискретизации, с -
$n$ — номер отсчёта
Низкочастотная фильтрация и децимация:
После DDC применяется LPF (Low-Pass Filter) с последующей децимацией для снижения частоты дискретизации.
где
Оконная функция для matched filter:
Аналогично real-обработке, для digital IQ применяется оконная функция:
где
Параметры: window_type и window_param (аналогично разделу 6.2).
где
- Каждая посылка CHIRP → одна строка side-scan изображения
- По мере движения платформы формируется 2D изображение
Поддержка:
-
Линейная шкала:
$I_{linear}(x, y) = A(x, y)$ -
Логарифмическая шкала (дБ):
$I_{dB}(x, y) = 20 \cdot \log_{10}(A(x, y))$
где:
-
$A(x, y)$ — амплитуда отражения в точке$(x, y)$ -
$I(x, y)$ — интенсивность пикселя в изображении
Преобразование времени в расстояние:
Преобразование в координаты изображения:
где
Выбор метода обработки:
- Real processing
- Digital IQ (DDC)
Параметры CHIRP:
- Центральная частота
$f_0$ , кГц (60–900 кГц) - Полоса
$B$ , кГц (5–300 кГц) - Длительность
$T$ , мс (1–20 мс) - Тип: LFM up / LFM down
Настройка приёмного тракта:
- LNA gain
$G_{LNA}$ , дБ - VGA/TVG параметры:
- Фиксированное усиление
$G_{VGA}$ , дБ - Или TVG:
$G_{TVG}(t) = G_0 + 20\log_{10}(r(t))$
- Фиксированное усиление
- Шум: уровень шума, дБ (или шумовая фигура LNA)
Частота дискретизации ADC:
-
$f_s$ : 2–5 МГц (MSPS) - Разрядность
$N$ : 12–14 бит
Параметры воды:
- Скорость звука
$c$ , м/с - Коэффициент поглощения
$\alpha$ , дБ/м
Параметры дна:
- Тип грунта: ил, песок, камни, металл
- Амплитуда/коэффициент рассеяния
$\sigma_0(\theta)$ - Добавление рельефа: горы, ямы, валуны
Выбор визуализации:
- Логарифмическая шкала (дБ)
- Линейная шкала
- TVG компенсация (включить/выключить)
2D / 3D редактор рельефа:
Инструменты редактирования:
- Кисти высоты: интерактивное рисование высот с различными размерами кисти
- Генератор случайного рельефа: создание реалистичного рельефа с настраиваемыми параметрами
- Импорт/экспорт карты высот:
- Форматы: NumPy array (.npy), матрица (.csv), изображение (PNG, GeoTIFF)
- Сохранение и загрузка конфигураций
Параметры сетки:
- Разрешение сетки:
$\Delta x \times \Delta y$ (настраиваемое) - Единицы измерения: метры
- Масштаб отображения
Визуализация:
- Подсветка типа грунта по цвету:
- Ил — коричневый
- Песок — жёлтый
- Камни — серый
- Металл — синий/фиолетовый
- 2D вид сверху: карта высот с цветовым кодированием
- 3D вид: трёхмерная визуализация рельефа
Отображение side-scan изображения:
- Side-scan изображение после обработки (2D)
- Возможность сравнения с эталонной картой (ground truth):
- Наложение эталонной карты (полупрозрачное)
- Переключение между симуляцией и эталоном
- Разностное изображение (ошибка)
Цветовая шкала:
- По амплитуде (дБ): настраиваемая палитра
- Диапазон значений: автоматический или ручной
- Легенда с указанием значений
Навигация:
- Масштабирование: zoom in/out (колесо мыши, кнопки)
- Панорамирование: перетаскивание изображения
- Измерение расстояний: инструмент линейки
Дополнительные функции:
- Профиль по выбранной линии (график амплитуды)
- Статистика изображения (гистограмма, SNR)
- Экспорт изображения (PNG, TIFF, CSV)
Расчёт процента совпадения с эталоном:
где:
-
$A_{sim}(i,j)$ — амплитуда огибающей симуляции в пикселе$(i,j)$ -
$A_{ref}(i,j)$ — эталонная карта (ground truth) в пикселе$(i,j)$ -
$\epsilon$ — допустимая разница (порог) -
$N_{pixels}$ — общее количество пикселей -
$\mathbf{1}(\cdot)$ — индикаторная функция (1 если условие выполнено, 0 иначе)
График распределения ошибки:
Отображение гистограммы:
где
Дополнительные метрики:
- MSE (Mean Squared Error)
- SNR (Signal-to-Noise Ratio)
- Максимальная ошибка
- Средняя ошибка
Верхняя панель: управление сигналом и трактом
- Параметры CHIRP
- Настройки приёмного тракта (LNA, VGA, ADC)
- Параметры воды
- Выбор метода обработки (real/IQ)
Левая панель: редактор рельефа и типа грунта
- Инструменты рисования рельефа
- Выбор типа грунта
- Параметры генератора случайного рельефа
- Импорт/экспорт карт высот
Центральное окно: изображение side-scan
- Основное рабочее пространство
- Отображение результата симуляции
- Сравнение с ground truth
- Интерактивное масштабирование и панорамирование
Правая панель: статистика совпадения
- Процент совпадения (match%)
- Гистограммы ошибок
- SNR и другие метрики
- Графики распределения
Основные кнопки:
- Generate Terrain — генерация случайного рельефа
- Run Simulation — расчёт CHIRP, RX, ADC, matched filter
- Compare Ground Truth — расчёт совпадения с эталоном
- Export Image — экспорт изображения (PNG, TIFF)
- Export Data — экспорт данных (CSV, NumPy, JSON)
- Save Configuration — сохранение текущей конфигурации
- Load Configuration — загрузка сохранённой конфигурации
- При изменении рельефа в редакторе → автоматическое обновление предпросмотра
- При нажатии Run Simulation → пересчёт изображения с новым рельефом
- Индикатор прогресса для длительных вычислений
- Переключение между режимами обработки без пересоздания рельефа
- Синхронное отображение результатов обоих методов
- Сравнительная статистика (какой метод даёт лучший результат)
- TVG: изменение параметров TVG → автоматический пересчёт изображения
- Лог шкала: переключение между линейной и логарифмической шкалой в реальном времени
- Масштабирование: интерактивное изменение масштаба без пересчёта
- Визуальная проверка статистики рассеяния
- Отображение спекла отдельно от основного изображения
- Анализ влияния статистической модели (Rayleigh/Rice/K-distribution)
Схема обработки данных:
Пользователь
│
▼
GUI ------------------+
│ │
▼ ▼
Рельеф/Грунт Параметры тракта
│ │
▼ ▼
Формирование сцены → Симулятор сигналов (CHIRP) → RX тракт (LNA+VGA+ADC)
│
▼
Matched filter (real/IQ)
│
▼
Огибающая |y[n]|
│
▼
Side-scan изображение
│
▼
Оценка совпадения с эталоном
│
▼
GUI: результат
Модули системы:
- GUI Module — пользовательский интерфейс
- Terrain Editor — редактор рельефа дна
- Signal Generator — генератор CHIRP-сигналов
- Channel Model — модель распространения в воде
- Scattering Model — модель рассеяния от дна
- Receiver Chain — модель приёмного тракта (LNA, VGA, ADC)
- DSP Processor — обработка сигнала (real/IQ, matched filter)
- Image Formatter — формирование side-scan изображения
- Metrics Calculator — расчёт метрик совпадения
Карты рельефа:
- Сохранение: NumPy array (.npy), CSV, PNG (с метаданными)
- Загрузка: поддержка различных форматов
- Версионирование: сохранение истории изменений
Конфигурации:
- Сохранение всех параметров симуляции (JSON формат)
- Загрузка предустановленных конфигураций
- Шаблоны для типовых задач
Поддержка различных моделей:
1. Rayleigh: для мелкомасштабного рассеяния
2. Rice: для рассеяния с доминирующей компонентой
где
3. K-distribution: для неоднородного рассеяния
где
Раздельное отображение компонентов:
- Спекл: отдельное окно для визуализации спекла
- Шумы: отображение шумовых компонентов по отдельности
- Сигнал до обработки: raw сигнал с ADC
- Сигнал после matched filter: до взятия огибающей
- Огибающая: финальная огибающая перед формированием изображения
Инструменты отладки:
- Пошаговое выполнение обработки
- Логирование промежуточных результатов
- Экспорт данных на каждом этапе
Истинная карта отражающей способности:
где
Процент совпадения:
где:
-
$A_{sim}(i,j)$ — амплитуда огибающей симуляции в пикселе$(i,j)$ -
$A_{ref}(i,j)$ — эталонная карта (ground truth) в пикселе$(i,j)$ -
$\epsilon$ — допустимая разница (порог) -
$N_{pixels}$ — общее количество пикселей -
$\mathbf{1}(\cdot)$ — индикаторная функция (1 если условие выполнено, 0 иначе)
График распределения ошибки:
Отображение гистограммы ошибки:
где:
-
$e$ — значение ошибки -
$\Delta e$ — шаг гистограммы
Дополнительные метрики:
- MSE (Mean Squared Error):
- SNR (Signal-to-Noise Ratio):
где:
$P_{signal} = \frac{1}{N} \sum_{i=1}^{N} A_{ref}^2(i)$ $P_{noise} = \frac{1}{N} \sum_{i=1}^{N} (A_{sim}(i) - A_{ref}(i))^2$
- Гистограмма ошибок:
- Возможность сравнения real vs digital IQ методов обработки
- Повторяемость результатов (seed для RNG)
- Подготовка архитектуры под SAS (Synthetic Aperture Sonar)
- Архитектура 1:1 с будущим железом (FPGA/DSP)
- Модульность (легко менять модели компонентов)
- Детерминированность вычислений
- Возможность batch-симуляций
- Логирование всех параметров
- Unit-тестируемость компонентов
- Обработка ошибок
- Реальное время или близко к реальному времени для типичных параметров
- Оптимизация для больших изображений (1000×1000+ пикселей)
Частоты 60–900 кГц → прямой ADC оптимален:
- Полоса частот позволяет использовать real-sampling ADC
- Не требуется аналоговый IQ-перевод
- Упрощение аппаратной части
Аналоговый IQ не используется по следующим причинам:
- Отсутствие IQ chip для низких частот: для диапазона 60–900 кГц нет доступных готовых IQ-микросхем (IQ demodulators/mixers), которые работают в этом частотном диапазоне
- Дополнительные компоненты (фазовые сдвигатели, смесители) требуют самостоятельной разработки
- Проблемы с балансировкой каналов I и Q при самостоятельной реализации
- Высокая стоимость и сложность разработки аналогового IQ-тракта для низких частот
Цифровой IQ (DDC) обеспечивает:
- Точную фазу — нет ошибок балансировки
- Минимум аппаратуры — только один ADC
- Идеален для SAS — требуется точная фазовая информация
- Гибкость — легко изменять параметры обработки
Симулятор полностью повторяет реальную DSP-цепочку:
ADC (real) → DDC → Matched Filter → Envelope → Image
Это позволяет напрямую переносить алгоритмы в FPGA / DSP без изменений.
Симулятор должен позволять:
-
Интерактивно менять дно:
- Редактировать рельеф в реальном времени
- Видеть изменения в side-scan изображении
-
Видеть влияние тракта и шума:
- Анализировать влияние LNA, VGA, ADC на качество изображения
- Оценивать влияние шумов и искажений
-
Сравнивать методы обработки:
- Real processing vs Digital IQ
- Различные алгоритмы matched filtering
- Различные методы формирования огибающей
-
Измерять качество изображения:
- Метрики совпадения с ground truth
- SNR, MSE, гистограммы ошибок
- Визуальное сравнение
-
Напрямую переносить алгоритмы в FPGA / DSP:
- Идентичная архитектура обработки
- Те же математические операции
- Те же форматы данных
| Обозначение | Описание | Единицы |
|---|---|---|
| Центральная частота CHIRP | Гц | |
| Полоса частот | Гц | |
| Длительность импульса | с | |
| Скорость звука | м/с | |
| Расстояние | м | |
| Коэффициент затухания | м⁻¹ | |
| Время задержки (TOF) | с | |
| Высота дна | м | |
| Эффективная площадь рассеяния | м² | |
| Угол падения | рад | |
| Усиление LNA | дБ | |
| Шумовая фигура LNA | дБ | |
| Частота дискретизации | Гц | |
| Разрядность ADC | бит | |
| Амплитуда огибающей | В | |
| Синфазная и квадратурная компоненты | В |
Документ подготовлен для разработки симулятора side-scan sonar с поддержкой digital IQ обработки.