Skip to content

Latest commit

 

History

History
1728 lines (1176 loc) · 62.3 KB

File metadata and controls

1728 lines (1176 loc) · 62.3 KB

Симулятор Side-Scan Sonar (60–900 кГц)


1. НАЗНАЧЕНИЕ СИСТЕМЫ

Разработать программный симулятор приёмного тракта и обработки side-scan sonar, предназначенный для:

  • Отработки алгоритмов обработки CHIRP-сигналов
  • Сравнения real и IQ (digital DDC) методов
  • Моделирования приёмного тракта (LNA, VGA, ADC)
  • Моделирования воды и рельефа дна
  • Генерации side-scan изображения
  • Оценки совпадения с эталонной сценой (ground truth)
  • Подготовки архитектуры под SAS (Synthetic Aperture Sonar)

2. ОБЩАЯ АРХИТЕКТУРА

2.1. Физическая модель

Полная цепочка сигнала:

TX (гидрофон) → Вода (TL) → Дно (рассеяние) → Вода (TL) → RX (гидрофон) → LNA → BPF → VGA → ADC → DSP

Гидроакустическое уравнение для side-scan:

$$ SNR(r, \theta) = SL - TL_{water}(2r) + \sigma_0(\theta) + D_{RX}(\theta) - NL + PG $$

где:

  • $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), дБ

2.2. Модель передатчика

Source Level (SL):

$$ SL = S_{TX} + 20 \log_{10}(V_{TX}) $$

где:

  • $S_{TX}$ — чувствительность передатчика, дБ re 1 µPa/V @ 1 м
  • $V_{TX}$ — напряжение передатчика, В

Типичные значения: $SL \approx 170$–$200$ дБ re 1 µPa @ 1 м

Оконная функция амплитуды (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$

Математическое описание окон:

  1. None (Rectangular):

$$ w(t) = 1, \quad 0 \leq t \leq T $$

  1. Hann:

$$ w(t) = 0.5 \left(1 - \cos\left(\frac{2\pi t}{T}\right)\right), \quad 0 \leq t \leq T $$

  1. 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]$$

  2. RaisedCosine:

$$ w(t) = \frac{1}{2}\left(1 - \cos\left(\frac{2\pi t}{T}\right)\right), \quad 0 \leq t \leq T $$

Влияние на сигнал:

Оконная функция применяется к CHIRP-сигналу:

$$ s_{tx}(t) = A \cdot w(t) \cdot \cos\left(2\pi\left(f_0 t + \frac{B}{2T}t^2\right)\right) $$

где $w(t)$ — выбранная оконная функция.

Влияние на спектр:

  • None (Rectangular): максимальная мощность, но высокие боковые лепестки
  • Hann/Tukey/RaisedCosine: снижение боковых лепестков за счёт уменьшения мощности сигнала

2.3. Архитектура приёмника (прямой путь)

Гидрофон
  ↓
LNA (шум + усиление)
  ↓
BPF (60–900 kHz)
  ↓
VGA / AGC
  ↓
ADC (real, 2–5 MSPS)
  ↓
Цифровая обработка:
   ├─ Real processing
   └─ Digital IQ (DDC)

Важно: Аналоговый IQ-перевод НЕ используется.


3. ПАРАМЕТРЫ СИГНАЛА (CHIRP)

3.1. Передаваемый сигнал

3.1.1. Временная форма

Линейный CHIRP (LFM — Linear Frequency Modulation):

$$ s_{tx}(t) = A \cdot w(t) \cdot \cos\left(2\pi\left(f_0 t + \frac{B}{2T}t^2\right)\right), \quad 0 \leq t \leq T $$

или в комплексной форме:

$$ s_{tx}(t) = A \cdot w(t) \cdot \exp\left(j2\pi\left(f_0 t + \frac{B}{2T}t^2\right)\right), \quad 0 \leq t \leq T $$

где:

  • $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$)

Выбор длительности импульса:

Длительность импульса $T$ выбирается по SNR для дальних боковых отражений.

Обоснование:

  1. Processing Gain зависит от длительности: $$ PG = 10 \cdot \log_{10}(B \cdot T) $$ Увеличение $T$ → увеличение $PG$ → улучшение SNR.

  2. Для дальних боковых отражений:

    • Сигнал сильно ослаблен из-за больших потерь распространения
    • Требуется максимальный Processing Gain для обеспечения достаточного SNR
    • Длительность $T$ выбирается такой, чтобы обеспечить требуемый SNR на максимальной дальности
  3. Компромисс:

    • Большая длительность $T$:

      • ✅ Высокий Processing Gain → лучше SNR для дальних целей
      • ❌ Ухудшение горизонтального разрешения: $\Delta x = \frac{c \cdot T}{2}$
      • ❌ Увеличение времени зондирования
    • Малая длительность $T$:

      • ✅ Лучшее горизонтальное разрешение
      • ✅ Быстрее зондирование
      • ❌ Низкий Processing Gain → недостаточный SNR для дальних целей

Расчёт требуемой длительности:

Для обеспечения минимального SNR на максимальной дальности $r_{max}$:

$$ SNR(r_{max}) = SL - TL_{water}(2r_{max}) + \sigma_0(\theta) + D_{RX}(\theta) - NL + PG(T) \geq SNR_{min} $$

где $PG(T) = 10 \cdot \log_{10}(B \cdot T)$.

Отсюда минимальная длительность:

$$ T \geq \frac{10^{(SNR_{min} - SL + TL_{water}(2r_{max}) - \sigma_0(\theta) - D_{RX}(\theta) + NL)/10}}{B} $$

Типичные значения:

  • Для ближних целей (до 50 м): $T = 1$–$5$ мс
  • Для средних расстояний (50–200 м): $T = 5$–$10$ мс
  • Для дальних боковых отражений (200+ м): $T = 10$–$20$ мс

3.1.2. Мгновенная частота

Мгновенная частота линейного CHIRP:

$$ f_i(t) = f_0 + \frac{B}{T} \cdot t, \quad 0 \leq t \leq T $$

где:

  • $f_0$ — начальная частота, Гц
  • $B = f_1 - f_0$ — полоса частот, Гц
  • $T$ — длительность импульса, с
  • $t$ — время, с

Центральная частота:

$$ f_c = \frac{f_0 + f_1}{2} $$

3.1.3. Спектр сигнала

Спектр CHIRP-сигнала приближённо описывается прямоугольной функцией:

$$ S(f) \approx \text{rect}\left(\frac{f - f_c}{B}\right) $$

где:

  • $f_c = \frac{f_0 + f_1}{2}$ — центральная частота, Гц
  • $B = f_1 - f_0$ — полоса частот, Гц
  • $\text{rect}(x)$ — прямоугольная функция (равна 1 при $|x| \leq 0.5$ и 0 в противном случае)

3.1.4. Выигрыш обработки (Processing Gain)

Для согласованной фильтрации выигрыш обработки:

$$ PG = 10 \cdot \log_{10}(B \cdot T) $$

где:

  • $B$ — полоса частот, Гц
  • $T$ — длительность импульса, с
  • $B \cdot T$ — произведение полосы на длительность (time-bandwidth product), безразмерное

Пример: при $B = 200$ кГц и $T = 5$ мс: $$ PG = 10 \cdot \log_{10}(200 \times 10^3 \times 5 \times 10^{-3}) = 10 \cdot \log_{10}(1000) = 30 \text{ дБ} $$


4. МОДЕЛЬ СРЕДЫ

4.1. Вода

4.1.1. Скорость звука

Скорость звука в воде рассчитывается по формуле Mackenzie (1981):

$$ \begin{aligned} c(T, S, P) = {} & 1448.96 + 4.591 \cdot T - 5.304 \times 10^{-2} \cdot T^2 + 2.374 \times 10^{-4} \cdot T^3 \\ & + 1.340 \cdot (S - 35) + 1.630 \times 10^{-2} \cdot P + 1.675 \times 10^{-7} \cdot P^2 \\ & - 1.025 \times 10^{-2} \cdot T \cdot (S - 35) - 7.139 \times 10^{-13} \cdot T \cdot P^3 \end{aligned} $$

где:

  • $c$ — скорость звука, м/с
  • $T$ — температура, °C (диапазон: 0–30 °C)
  • $S$ — солёность, PSU (диапазон: 0–35 PSU)
  • $P$ — давление, дБар (dBar)

Давление на глубине:

$$ P(z) = 1.0 + 0.1 \cdot z $$

где $z$ — глубина, м. Примечание: 1 дБар ≈ 1 м глубины.

Типичные значения: $c \approx 1450$–$1550$ м/с для морской воды.

4.1.2. Коэффициент поглощения

Коэффициент поглощения в воде рассчитывается по формуле Francois–Garrison (1982):

$$ \alpha_w(f, T, S, P) = \frac{A_1 \cdot P_1 \cdot f_1 \cdot f_k^2}{f_1^2 + f_k^2} + \frac{A_2 \cdot P_2 \cdot f_2 \cdot f_k^2}{f_2^2 + f_k^2} + \frac{A_3 \cdot P_3 \cdot f_3 \cdot f_k^2}{f_3^2 + f_k^2} $$

где $f_k = f / 1000$ — частота в кГц, $f$ — частота в Гц.

Вязкое поглощение (первое слагаемое):

$$ A_1 = 1.03 \times 10^{-8} + 2.36 \times 10^{-10} \cdot T - 5.22 \times 10^{-12} \cdot T^2 $$

$$ f_1 = 1.32 \times 10^3 \cdot (T + 273.1) \cdot \exp\left(-\frac{1700}{T + 273.1}\right) $$

$$ P_1 = 1.0 $$

Релаксационное поглощение бората (второе слагаемое):

$$ A_2 = 5.62 \times 10^{-8} \cdot \left(1.0 + 0.00654 \cdot (S - 35)\right) $$

$$ f_2 = 1.55 \times 10^7 \cdot (T + 273.1) \cdot \exp\left(-\frac{3052}{T + 273.1}\right) $$

$$ P_2 = 1.0 - 1.23 \times 10^{-4} \cdot P $$

Релаксационное поглощение сульфата магния (третье слагаемое):

$$ A_3 = 3.38 \times 10^{-6} \cdot \exp\left(-\frac{2000}{T + 273.1}\right) \cdot \left(1.0 + 0.00654 \cdot (S - 35)\right) $$

$$ f_3 = \frac{1.55 \times 10^7 \cdot (T + 273.1) \cdot \exp\left(-\frac{3052}{T + 273.1}\right)}{1.0 + 0.00654 \cdot (S - 35)} $$

$$ P_3 = 1.0 - 3.83 \times 10^{-5} \cdot P + 4.9 \times 10^{-10} \cdot P^2 $$

Результат в неперах на метр (Np/m), переводится в дБ/м:

$$ \alpha_{w,dB}(f, T, S, P) = \alpha_w(f, T, S, P) \cdot 8.686 $$

где коэффициент 8.686 = 20/ln(10) — преобразование из неперов в децибелы.

Типичные значения: $\alpha_{w,dB} \approx 0.1$–$10$ дБ/м для частот 60–900 кГц.

4.1.3. Потери распространения (Transmission Loss)

Spreading Loss (геометрическое рассеяние):

Для сферического распространения:

$$ TL_{spreading}(r) = 20 \cdot \log_{10}(r) $$

где $r$ — расстояние, м.

Absorption Loss (поглощение):

$$ TL_{absorption}(r, f, T, S, z) = \alpha_{w,dB}(f, T, S, P) \cdot r $$

где $P = P(z)$ — давление на глубине $z$.

Total Transmission Loss:

$$ TL_{water}(r, f, T, S, z) = TL_{spreading}(r) + TL_{absorption}(r, f, T, S, z) $$

Для round-trip (туда и обратно):

$$ TL_{round-trip} = TL_{water}(2r, f, T, S, z) $$

4.1.4. Фазовая задержка (Time of Flight)

Время задержки:

$$ \tau = \frac{2r}{c} $$

где:

  • $\tau$ — время задержки (round-trip), с
  • $r$ — расстояние (one-way), м
  • $c$ — скорость звука, м/с

Расстояние из TOF:

$$ r = \frac{c \cdot \tau}{2} $$

4.1.5. Аддитивный шум

Океанский фоновый шум:

$$ NL_{ambient}(f) = NL_0 + 10 \cdot \log_{10}(B) $$

где:

  • $NL_0$ — спектральная плотность шума, дБ re 1 µPa/√Hz
  • $B$ — полоса частот, Гц

Типичные значения для 60–900 кГц:

  • $NL_0 \approx 50$–$70$ дБ re 1 µPa/√Hz (в зависимости от условий)

AWGN (Additive White Gaussian Noise):

$$ n(t) \sim \mathcal{N}(0, \sigma_n^2) $$

где $\sigma_n^2$ — дисперсия шума, рассчитывается из уровня шума $NL$.

4.2. Дно

4.2.1. Геометрия

2D / 3D карта высот $h(x, y)$

Рельеф задаётся пользователем через GUI.

4.2.2. Рассеяние (Backscattering)

Эффективная площадь рассеяния (Backscattering Strength):

$$ \sigma_0(\theta, f, \text{material}) = 10 \log_{10}\left(\frac{I_{scattered}}{I_{incident}}\right) $$

где:

  • $\sigma_0$ — backscattering strength, дБ
  • $\theta$ — угол падения (от нормали), рад
  • $f$ — частота, Гц
  • material — тип материала дна

Зависимость от угла падения:

Для большинства типов грунта:

$$ \sigma_0(\theta) = \sigma_0(0) + 10 \cdot \log_{10}(\cos^n(\theta)) $$

где:

  • $\sigma_0(0)$ — backscattering strength при нормальном падении, дБ
  • $n$ — показатель степени (обычно 1–3)

Типичные значения $\sigma_0(0)$ для различных материалов:

Материал $\sigma_0(0)$, дБ Частота
Ил (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 кГц

Зависимость от частоты:

$$ \sigma_0(f) = \sigma_0(f_0) + 10 \cdot m \cdot \log_{10}\left(\frac{f}{f_0}\right) $$

где:

  • $f_0$ — опорная частота, Гц
  • $m$ — показатель частотной зависимости (обычно 1–3)

4.2.3. Статистические модели рассеяния

Поддерживаемые модели:

  1. Rayleigh — для мелкомасштабного рассеяния (много независимых рассеивателей):

$$ p(A) = \frac{A}{\sigma^2} \exp\left(-\frac{A^2}{2\sigma^2}\right), \quad A \geq 0 $$

где:

  • $A$ — амплитуда рассеянного сигнала
  • $\sigma^2$ — дисперсия (зависит от $\sigma_0$)
  1. Rice — для рассеяния с доминирующей компонентой:

$$ p(A) = \frac{A}{\sigma^2} \exp\left(-\frac{A^2 + A_0^2}{2\sigma^2}\right) I_0\left(\frac{A A_0}{\sigma^2}\right), \quad A \geq 0 $$

где:

  • $A_0$ — амплитуда доминирующей компоненты
  • $I_0$ — модифицированная функция Бесселя нулевого порядка
  1. K-distribution — для неоднородного рассеяния:

$$ p(A) = \frac{2b}{\Gamma(\nu)} \left(\frac{bA}{2}\right)^\nu K_{\nu-1}(bA), \quad A \geq 0 $$

где:

  • $K_\nu$ — модифицированная функция Бесселя второго рода
  • $\nu$ — параметр формы (степень неоднородности)
  • $b$ — масштабный параметр

4.2.4. Модель дна как распределённого случайного рассеивателя

Физическая модель:

В гидроакустике дно обычно моделируют как распределённый случайный рассеиватель:

  • Дно состоит из множества микрорефлекторов
  • Каждый микрорефлектор меньше разрешающего элемента (элемента разрешения системы)
  • Каждый микрорефлектор имеет случайную фазу отражения

Формальное математическое описание:

Отражённое поле в точке $r$:

$$ p(r) = \sum_{i} a_i e^{j\phi_i} \delta(r - r_i) $$

где:

  • $a_i$ — амплитуда отражения от $i$-го микрорефлектора
  • $\phi_i$ — случайная фаза отражения от $i$-го микрорефлектора
  • $\delta(r - r_i)$ — дельта-функция Дирака (позиция $i$-го рассеивателя)
  • $r_i$ — координата $i$-го микрорефлектора

Статистические свойства:

  1. Амплитуды $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)$
  2. Фазы $\phi_i$ равномерно распределены:

$$ \phi_i \sim \mathcal{U}(0, 2\pi) $$

  1. Позиции $r_i$ случайно распределены в объёме (объёмное рассеяние) или на поверхности (поверхностное рассеяние)

Объёмное vs поверхностное рассеяние:

Объёмное рассеяние: микрорефлекторы распределены в объёме грунта

$$ p_{volume}(r) = \int_V \rho(r') a(r') e^{j\phi(r')} \delta(r - r') dV' $$

где $\rho(r')$ — плотность рассеивателей в объёме $V$.

Поверхностное рассеяние: микрорефлекторы распределены на поверхности дна

$$ p_{surface}(r) = \int_S \sigma(r') a(r') e^{j\phi(r')} \delta(r - r') dS' $$

где $\sigma(r')$ — поверхностная плотность рассеивателей на поверхности $S$.

Разрешающий элемент:

Размер разрешающего элемента определяется:

  • Горизонтальное разрешение: $\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} = \left|\sum_{i} a_i e^{j\phi_i}\right|^2 $$

Для независимых рассеивателей с равномерной фазой:

  • Амплитуда $|P_{total}|$ распределена по Rayleigh (если нет доминирующего компонента)
  • Амплитуда $|P_{total}|$ распределена по Rice (если есть доминирующий компонент)

Связь с backscattering strength:

Средняя мощность рассеяния связана с $\sigma_0$:

$$ E[|P_{total}|^2] = \sigma_0(\theta, f, \text{material}) \cdot I_{incident} $$

где $I_{incident}$ — интенсивность падающего сигнала.

4.2.5. Спекл (Speckle)

Физическая природа спекла:

Спекл (speckle) — это зернистая, «шумоподобная» текстура на изображениях, возникающая не из-за электроники, а как физическое свойство когерентного рассеяния. Для side-scan sonar это нормальное и неизбежное явление.

Причины возникновения:

  1. Side-scan использует когерентный сигнал (CHIRP → matched filter → фаза сохраняется)
  2. Дно состоит из множества мелких рассеивателей (песчинки, неровности, пузырьки):
    • каждый отражает сигнал с собственной фазой
    • в одном разрешающем элементе (range cell) складываются десятки–сотни отражений

Суммарный сигнал:

$$ y = \sum_{k=1}^{N} a_k e^{j\phi_k} $$

где:

  • $a_k$ — амплитуда отражения от $k$-го рассеивателя
  • $\phi_k$ — случайная фаза отражения от $k$-го рассеивателя
  • $N$ — количество рассеивателей в разрешающем элементе

Интерференция:

Фазы $\phi_k$ — случайны ⇒ происходит интерференция:

  • Конструктивная → яркие точки
  • Деструктивная → тёмные точки

👉 Это и есть спекл

Визуальные характеристики:

  • Зернистая текстура
  • «Соль-перец» (salt-and-pepper)
  • Присутствует даже на идеально ровном дне
  • НЕ исчезает при увеличении SNR

Важно: Спекл — не шум электроники, а физическое явление когерентного рассеяния.

4.2.6. Математическая модель спекла

Комплексный сигнал после matched filter:

$$ y = I + jQ $$

где $I$ и $Q$ — синфазная и квадратурная компоненты.

Условия для модели спекла:

Если:

  • много независимых рассеивателей
  • фазы равномерно распределены: $\phi_k \sim \mathcal{U}(0, 2\pi)$

Тогда по центральной предельной теореме:

$$ I, Q \sim \mathcal{N}(0, \sigma^2) $$

где $\sigma^2$ — дисперсия, зависящая от backscattering strength $\sigma_0$.

Амплитуда:

$$ A = |y| = \sqrt{I^2 + Q^2} $$

имеет распределение Рэлея:

$$ p(A) = \frac{A}{\sigma^2} e^{-A^2/(2\sigma^2)}, \quad A \geq 0 $$

📌 Это классическая модель спекла для сонаров и SAR (Synthetic Aperture Radar/Sonar).

Интенсивность:

$$ I = A^2 = I^2 + Q^2 $$

имеет экспоненциальное распределение:

$$ p(I) = \frac{1}{\sigma^2} e^{-I/\sigma^2}, \quad I \geq 0 $$

4.2.7. Спекл vs шум

Сравнительная таблица:

Характеристика Спекл Электронный шум
Природа Физическая (когерентное рассеяние) Аппаратная (электроника)
Когерентность Да Нет
Зависит от фазы Да Нет
Убирается фильтрами Частично (multilook) Да (фильтрация)
Информативен Да (несёт информацию о структуре дна) Нет
Зависит от SNR Нет Да

👉 Спекл несёт информацию о структуре дна и не является артефактом системы.

4.2.8. Важность спекла для side-scan

По структуре спекла можно:

  • Отличать типы грунта (ил, песок, камни имеют разную структуру спекла)
  • Выявлять объекты (металлические объекты дают другой спекл)
  • Оценивать шероховатость поверхности

Отсутствие спекла → нереалистичная симуляция

В SAS (Synthetic Aperture Sonar):

Спекл уменьшается за счёт когерентного суммирования апертуры (multilook processing), но полностью не исчезает.

4.2.9. Моделирование спекла в симуляторе

Генерация комплексного рассеяния для одного разрешающего элемента:

$$ y_{cell} = \sum_{k=1}^{N} a_k e^{j\phi_k} $$

Упрощённая модель (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 — размер разрешающего элемента

Для разных типов дна:

  1. Rayleigh — ил, песок (много мелких рассеивателей):

    I = np.random.normal(0, sigma, size)
    Q = np.random.normal(0, sigma, size)
  2. Rice — песок + камни (есть доминирующий рассеиватель):

    I = np.random.normal(A0, sigma, size)
    Q = np.random.normal(0, sigma, size)

    где $A_0$ — амплитуда доминирующего компонента.

  3. K-distribution — грубое дно (неоднородное рассеяние):

    # Более сложная модель с параметром формы nu
    # Требует специальной генерации K-distributed случайных величин

Параметры модели:

  • Плотность рассеивателей: количество рассеивателей на единицу площади/объёма
  • Размер рассеивателей: должен быть меньше разрешающего элемента
  • Распределение фаз: равномерное $\phi_k \sim \mathcal{U}(0, 2\pi)$
  • Распределение амплитуд: зависит от типа грунта (Rayleigh/Rice/K)

4.2.10. Геометрическое рассеяние

Диаграмма направленности гидрофона:

$$ D_{RX}(\theta, \phi) = D_0 \cdot \text{pattern}(\theta, \phi) $$

где:

  • $D_{RX}$ — диаграмма направленности приёмника
  • $D_0$ — максимальное значение
  • $\theta, \phi$ — углы в сферической системе координат

Влияние на принимаемый сигнал:

$$ P_{RX} = P_{TX} \cdot D_{TX}(\theta_{TX}) \cdot \sigma_0(\theta) \cdot D_{RX}(\theta_{RX}) \cdot \frac{1}{r^4} $$

где:

  • $P_{TX}$ — мощность передатчика
  • $D_{TX}$ — диаграмма направленности передатчика
  • $\theta_{TX}, \theta_{RX}$ — углы для передатчика и приёмника
  • $r$ — расстояние (влияние $r^4$ из-за round-trip)

5. МОДЕЛЬ ПРИЁМНОГО ТРАКТА

5.1. LNA (Low Noise Amplifier)

Параметры:

  • Усиление $G_{LNA}$, дБ
  • Шумовая температура $T_n$ или шумовая фигура $NF_{LNA}$, дБ

Модель шума:

$$ N_{LNA} = k_B T B \cdot (10^{NF_{LNA}/10} - 1) $$

где:

  • $k_B = 1.38 \times 10^{-23}$ Дж/К — постоянная Больцмана
  • $T$ — температура, К
  • $B$ — полоса частот, Гц

5.3. BPF (Band-Pass Filter)

Параметры:

  • Полоса: 60–900 кГц
  • Реализуется как цифровая модель аналогового фильтра

Передаточная функция (идеальный фильтр):

$$ H_{BPF}(f) = 1 \text{ для } f_{min} \leq f \leq f_{max}, \quad H_{BPF}(f) = 0 \text{ иначе} $$

где $f_{min} = 60$ кГц, $f_{max} = 900$ кГц.

Реалистичная модель (Butterworth или Chebyshev):

$$ |H_{BPF}(f)|^2 = \frac{1}{1 + \left(\frac{f}{f_c}\right)^{2n}} $$

где:

  • $f_c$ — частота среза, Гц
  • $n$ — порядок фильтра

5.4. VGA / AGC (Variable Gain Amplifier / Automatic Gain Control)

Параметры (из SonarCore):

  • Минимальное усиление $G_{VGA,min}$, дБ
  • Максимальное усиление $G_{VGA,max}$, дБ
  • Шаг усиления $\Delta G$, дБ
  • Полоса пропускания $BW_{VGA}$, Гц
  • Время установления $T_{set}$, с

Режимы работы:

  1. Фиксированное усиление:

$$ G_{VGA} = \text{const} $$

Усиление ограничивается диапазоном: $$ G_{VGA,min} \leq G_{VGA} \leq G_{VGA,max} $$

  1. TVG (Time Variant Gain):

Компенсация потерь распространения:

$$ G_{TVG}(t) = G_0 + 20 \cdot \log_{10}(r(t)) + 2 \cdot \alpha_{w,dB} \cdot r(t) $$

или упрощённо:

$$ G_{TVG}(t) = G_0 + 20 \cdot \log_{10}(r(t)) $$

где:

  • $G_0$ — начальное усиление, дБ
  • $r(t) = \frac{c \cdot t}{2}$ — расстояние, соответствующее времени $t$, м
  • $\alpha_{w,dB}$ — коэффициент поглощения в воде, дБ/м
  • $c$ — скорость звука, м/с

Усиление в линейном масштабе:

$$ G_{VGA,linear} = 10^{G_{VGA}/20} $$

Выходной сигнал после VGA:

$$ V_{VGA} = V_{LNA} \cdot G_{VGA,linear} + n_{VGA} $$

где $n_{VGA}$ — шум VGA (обычно пренебрежимо мал по сравнению с шумом LNA).

Проверка на клиппинг:

$$ \text{clipping} = \text{True} \text{ если } |V_{VGA}| > V_{max,LNA}, \quad \text{clipping} = \text{False} \text{ иначе} $$

5.5. ADC (Analog-to-Digital Converter)

Параметры (из SonarCore):

  • Разрядность $N$, бит (12–14 бит)
  • Частота дискретизации $f_s$, Гц (2–5 MSPS)
  • Полный диапазон $V_{FS}$, В
  • Эффективное число разрядов $ENOB$, бит
  • SNR ADC $SNR_{ADC}$, дБ

Тип: real-sampling (не IQ)

Квантование:

$$ x_{quantized}[n] = \Delta \cdot \text{round}\left(\frac{x[n]}{\Delta}\right) $$

где:

  • $\Delta = V_{FS}/2^N$ — шаг квантования, В
  • $V_{FS}$ — полный диапазон, В
  • $N$ — разрядность, бит

Динамический диапазон ADC:

$$ DR_{ADC} = 20 \log_{10}(2^N) = 6.02 \cdot N + 1.76 \text{ дБ} $$

Шум квантования:

$$ \sigma_{quant}^2 = \frac{\Delta^2}{12} = \frac{V_{FS}^2}{12 \cdot 2^{2N}} $$

SNR квантования:

$$ SNR_{quant} = 6.02 \cdot N + 1.76 \text{ дБ} $$

Эффективное число разрядов (ENOB):

$$ ENOB = \frac{SNR_{ADC} - 1.76}{6.02} $$

где $SNR_{ADC}$ — измеренный SNR ADC, дБ.

Проверка на клиппинг ADC:

$$ \text{clipping}_{ADC} = \text{True} \text{ если } |x[n]| &gt; V_{FS}/2, \quad \text{clipping}_{ADC} = \text{False} \text{ иначе} $$

Ограничение сигнала перед квантованием:

$$ x_{clipped}[n] = \text{clip}(x[n], -V_{FS}/2, V_{FS}/2) $$


6. ЦИФРОВАЯ ОБРАБОТКА

6.1. Режимы обработки

processing_mode = "real" | "digital_IQ"

6.2. Real-обработка

Цепочка обработки:

  1. ADC → real сигнал $x[n]$

  2. Matched filter (согласованная фильтрация):

$$ y[n] = x[n] * s_{tx}[-n] $$

где $*$ — операция свёртки, $s_{tx}[-n]$ — обращённый во времени опорный сигнал.

Оконная функция для matched filter:

Для снижения боковых лепестков в отклике matched filter применяется оконная функция к опорному сигналу:

$$ y[n] = x[n] * (s_{tx}[-n] \cdot w[n]) $$

где $w[n]$ — оконная функция.

Параметры:

  • 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:

Для опорного сигнала длиной $N$ отсчётов:

  1. None (Rectangular):

$$ w[n] = 1, \quad 0 \leq n < N $$

  1. Hann:

$$ w[n] = 0.5 \left(1 - \cos\left(\frac{2\pi n}{N-1}\right)\right), \quad 0 \leq n < N $$

  1. Hamming:

$$ w[n] = 0.54 - 0.46 \cos\left(\frac{2\pi n}{N-1}\right), \quad 0 \leq n < N $$

  1. Blackman:

$$ w[n] = 0.42 - 0.5 \cos\left(\frac{2\pi n}{N-1}\right) + 0.08 \cos\left(\frac{4\pi n}{N-1}\right), \quad 0 \leq n < N $$

  1. Kaiser:

$$ w[n] = \frac{I_0\left(\beta \sqrt{1 - \left(\frac{2n}{N-1} - 1\right)^2}\right)}{I_0(\beta)}, \quad 0 \leq n < N $$

где $I_0$ — модифицированная функция Бесселя нулевого порядка.

Визуальное сравнение:

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 &gt; 1$ — коэффициент расширения

Коэффициенты расширения для различных окон:

Окно Коэффициент расширения $k$ Уровень боковых лепестков, дБ
None (Rectangular) 1.0 -13
Hann ~1.5 -32
Hamming ~1.36 -43
Blackman ~1.73 -58
Kaiser ($\beta = 8.6$) ~1.8 -60

Влияние на динамический диапазон:

Динамический диапазон — способность различать слабые и сильные цели одновременно.

  • Без окна: максимальный динамический диапазон, но слабые цели могут маскироваться боковыми лепестками сильных
  • С окном: снижение динамического диапазона из-за расширения главного лепестка, но улучшение способности различать слабые цели благодаря подавлению боковых лепестков

Компромисс:

$$ \text{Разрешение} \leftrightarrow \text{Подавление боковых лепестков} $$

  • Высокое разрешение (none) → высокие боковые лепестки
  • Низкие боковые лепестки (Blackman, Kaiser) → ухудшение разрешения

Рекомендации по выбору:

  • None: для максимального разрешения, когда боковые лепестки не критичны
  • Hann/Hamming: компромисс между разрешением и подавлением боковых лепестков
  • Blackman/Kaiser: для максимального подавления боковых лепестков, когда разрешение менее критично
  1. Огибающая (Envelope Detection):

$$ A[n] = |\text{Hilbert}(y[n])| $$

где $\text{Hilbert}(\cdot)$ — преобразование Гильберта.

6.4. Digital IQ (основной режим)

6.3.1. Digital Downconversion (DDC)

Перенос в нулевую частоту:

$$ z[n] = x[n] \cdot e^{-j2\pi f_c n T_s} $$

где:

  • $f_c$ — центральная частота CHIRP, Гц
  • $T_s = 1/f_s$ — период дискретизации, с
  • $n$ — номер отсчёта

Низкочастотная фильтрация и децимация:

После DDC применяется LPF (Low-Pass Filter) с последующей децимацией для снижения частоты дискретизации.

6.3.2. Matched Filter

$$ y[n] = z[n] * s_{tx}^*[-n] $$

где $s_{tx}^*[-n]$ — комплексно-сопряжённый обращённый опорный сигнал.

Оконная функция для matched filter:

Аналогично real-обработке, для digital IQ применяется оконная функция:

$$ y[n] = z[n] * (s_{tx}^*[-n] \cdot w[n]) $$

где $w[n]$ — оконная функция (см. раздел 6.2 для описания типов окон и параметров).

Параметры: window_type и window_param (аналогично разделу 6.2).

6.3.3. Огибающая

$$ A[n] = |y[n]| = \sqrt{I^2[n] + Q^2[n]} $$

где $I[n]$ и $Q[n]$ — синфазная и квадратурная компоненты.


7. ФОРМИРОВАНИЕ ИЗОБРАЖЕНИЯ

7.1. Принцип формирования

  • Каждая посылка CHIRP → одна строка side-scan изображения
  • По мере движения платформы формируется 2D изображение

7.2. Масштабирование

Поддержка:

  • Линейная шкала: $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)$ — интенсивность пикселя в изображении

7.3. Геометрические преобразования

Преобразование времени в расстояние:

$$ r = \frac{c \cdot t}{2} $$

Преобразование в координаты изображения:

$$ x_{image} = r \cdot \cos(\theta) $$

$$ y_{image} = r \cdot \sin(\theta) $$

где $\theta$ — угол азимута.


8. GUI (ОБЯЗАТЕЛЬНОЕ)

8.1. Основные окна GUI

8.1.1. Панель управления

Выбор метода обработки:

  • 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 компенсация (включить/выключить)

8.1.2. Окно рельефа дна

2D / 3D редактор рельефа:

Инструменты редактирования:

  • Кисти высоты: интерактивное рисование высот с различными размерами кисти
  • Генератор случайного рельефа: создание реалистичного рельефа с настраиваемыми параметрами
  • Импорт/экспорт карты высот:
    • Форматы: NumPy array (.npy), матрица (.csv), изображение (PNG, GeoTIFF)
    • Сохранение и загрузка конфигураций

Параметры сетки:

  • Разрешение сетки: $\Delta x \times \Delta y$ (настраиваемое)
  • Единицы измерения: метры
  • Масштаб отображения

Визуализация:

  • Подсветка типа грунта по цвету:
    • Ил — коричневый
    • Песок — жёлтый
    • Камни — серый
    • Металл — синий/фиолетовый
  • 2D вид сверху: карта высот с цветовым кодированием
  • 3D вид: трёхмерная визуализация рельефа

8.1.3. Окно результата

Отображение side-scan изображения:

  • Side-scan изображение после обработки (2D)
  • Возможность сравнения с эталонной картой (ground truth):
    • Наложение эталонной карты (полупрозрачное)
    • Переключение между симуляцией и эталоном
    • Разностное изображение (ошибка)

Цветовая шкала:

  • По амплитуде (дБ): настраиваемая палитра
  • Диапазон значений: автоматический или ручной
  • Легенда с указанием значений

Навигация:

  • Масштабирование: zoom in/out (колесо мыши, кнопки)
  • Панорамирование: перетаскивание изображения
  • Измерение расстояний: инструмент линейки

Дополнительные функции:

  • Профиль по выбранной линии (график амплитуды)
  • Статистика изображения (гистограмма, SNR)
  • Экспорт изображения (PNG, TIFF, CSV)

8.1.4. Статистика совпадения

Расчёт процента совпадения с эталоном:

$$ \text{match%} = 100 \cdot \frac{\sum_{i,j} \mathbf{1}(|A_{sim}(i,j) - A_{ref}(i,j)| < \epsilon)}{N_{pixels}} $$

где:

  • $A_{sim}(i,j)$ — амплитуда огибающей симуляции в пикселе $(i,j)$
  • $A_{ref}(i,j)$ — эталонная карта (ground truth) в пикселе $(i,j)$
  • $\epsilon$ — допустимая разница (порог)
  • $N_{pixels}$ — общее количество пикселей
  • $\mathbf{1}(\cdot)$ — индикаторная функция (1 если условие выполнено, 0 иначе)

График распределения ошибки:

Отображение гистограммы:

$$ \text{Hist}(e) = \text{count}(|A_{sim}(i,j) - A_{ref}(i,j)| \in [e, e + \Delta e]) $$

где $e$ — значение ошибки, $\Delta e$ — шаг гистограммы.

Дополнительные метрики:

  • MSE (Mean Squared Error)
  • SNR (Signal-to-Noise Ratio)
  • Максимальная ошибка
  • Средняя ошибка

8.2. Интерфейс пользователя

8.2.1. Расположение панелей

Верхняя панель: управление сигналом и трактом

  • Параметры CHIRP
  • Настройки приёмного тракта (LNA, VGA, ADC)
  • Параметры воды
  • Выбор метода обработки (real/IQ)

Левая панель: редактор рельефа и типа грунта

  • Инструменты рисования рельефа
  • Выбор типа грунта
  • Параметры генератора случайного рельефа
  • Импорт/экспорт карт высот

Центральное окно: изображение side-scan

  • Основное рабочее пространство
  • Отображение результата симуляции
  • Сравнение с ground truth
  • Интерактивное масштабирование и панорамирование

Правая панель: статистика совпадения

  • Процент совпадения (match%)
  • Гистограммы ошибок
  • SNR и другие метрики
  • Графики распределения

8.2.2. Кнопки управления

Основные кнопки:

  • 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 — загрузка сохранённой конфигурации

8.3. Функции интерактивности

8.3.1. Изменение рельефа в реальном времени

  • При изменении рельефа в редакторе → автоматическое обновление предпросмотра
  • При нажатии Run Simulation → пересчёт изображения с новым рельефом
  • Индикатор прогресса для длительных вычислений

8.3.2. Сравнение обработки real/IQ

  • Переключение между режимами обработки без пересоздания рельефа
  • Синхронное отображение результатов обоих методов
  • Сравнительная статистика (какой метод даёт лучший результат)

8.3.3. Динамическое обновление

  • TVG: изменение параметров TVG → автоматический пересчёт изображения
  • Лог шкала: переключение между линейной и логарифмической шкалой в реальном времени
  • Масштабирование: интерактивное изменение масштаба без пересчёта

8.3.4. Отображение спекла

  • Визуальная проверка статистики рассеяния
  • Отображение спекла отдельно от основного изображения
  • Анализ влияния статистической модели (Rayleigh/Rice/K-distribution)

8.4. Архитектура под капотом

Схема обработки данных:

Пользователь
   │
   ▼
   GUI ------------------+
   │                     │
   ▼                     ▼
Рельеф/Грунт       Параметры тракта
   │                     │
   ▼                     ▼
Формирование сцены → Симулятор сигналов (CHIRP) → RX тракт (LNA+VGA+ADC)
                                               │
                                               ▼
                                      Matched filter (real/IQ)
                                               │
                                               ▼
                                       Огибающая |y[n]|
                                               │
                                               ▼
                                       Side-scan изображение
                                               │
                                               ▼
                                       Оценка совпадения с эталоном
                                               │
                                               ▼
                                           GUI: результат

Модули системы:

  1. GUI Module — пользовательский интерфейс
  2. Terrain Editor — редактор рельефа дна
  3. Signal Generator — генератор CHIRP-сигналов
  4. Channel Model — модель распространения в воде
  5. Scattering Model — модель рассеяния от дна
  6. Receiver Chain — модель приёмного тракта (LNA, VGA, ADC)
  7. DSP Processor — обработка сигнала (real/IQ, matched filter)
  8. Image Formatter — формирование side-scan изображения
  9. Metrics Calculator — расчёт метрик совпадения

8.5. Дополнительные функции

8.5.1. Сохранение и загрузка

Карты рельефа:

  • Сохранение: NumPy array (.npy), CSV, PNG (с метаданными)
  • Загрузка: поддержка различных форматов
  • Версионирование: сохранение истории изменений

Конфигурации:

  • Сохранение всех параметров симуляции (JSON формат)
  • Загрузка предустановленных конфигураций
  • Шаблоны для типовых задач

8.5.2. Статистические модели дна

Поддержка различных моделей:

1. Rayleigh: для мелкомасштабного рассеяния

$$ p(A) = \frac{A}{\sigma^2} \exp\left(-\frac{A^2}{2\sigma^2}\right), \quad A \geq 0 $$

2. Rice: для рассеяния с доминирующей компонентой

$$ p(A) = \frac{A}{\sigma^2} \exp\left(-\frac{A^2 + A_0^2}{2\sigma^2}\right) I_0\left(\frac{A A_0}{\sigma^2}\right), \quad A \geq 0 $$

где $I_0$ — модифицированная функция Бесселя нулевого порядка.

3. K-distribution: для неоднородного рассеяния

$$ p(A) = \frac{2b}{\Gamma(\nu)} \left(\frac{bA}{2}\right)^\nu K_{\nu-1}(bA), \quad A \geq 0 $$

где $K_\nu$ — модифицированная функция Бесселя второго рода, $\nu$ — параметр формы.

8.5.3. Отображение для отладки

Раздельное отображение компонентов:

  • Спекл: отдельное окно для визуализации спекла
  • Шумы: отображение шумовых компонентов по отдельности
  • Сигнал до обработки: raw сигнал с ADC
  • Сигнал после matched filter: до взятия огибающей
  • Огибающая: финальная огибающая перед формированием изображения

Инструменты отладки:

  • Пошаговое выполнение обработки
  • Логирование промежуточных результатов
  • Экспорт данных на каждом этапе

9. ОЦЕНКА СОВПАДЕНИЯ (МЕТРИКА)

9.1. Ground Truth

Истинная карта отражающей способности:

$$ A_{ref}(x, y) $$

где $A_{ref}$ — эталонная амплитуда отражения в точке $(x, y)$.

9.2. Метрика совпадения

Процент совпадения:

$$ \text{match%} = 100 \cdot \frac{\sum_{i,j} \mathbf{1}(|A_{sim}(i,j) - A_{ref}(i,j)| < \epsilon)}{N_{pixels}} $$

где:

  • $A_{sim}(i,j)$ — амплитуда огибающей симуляции в пикселе $(i,j)$
  • $A_{ref}(i,j)$ — эталонная карта (ground truth) в пикселе $(i,j)$
  • $\epsilon$ — допустимая разница (порог)
  • $N_{pixels}$ — общее количество пикселей
  • $\mathbf{1}(\cdot)$ — индикаторная функция (1 если условие выполнено, 0 иначе)

График распределения ошибки:

Отображение гистограммы ошибки:

$$ \text{Hist}(e) = \text{count}(|A_{sim}(i,j) - A_{ref}(i,j)| \in [e, e + \Delta e]) $$

где:

  • $e$ — значение ошибки
  • $\Delta e$ — шаг гистограммы

Дополнительные метрики:

  1. MSE (Mean Squared Error):

$$ \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (A_{sim}(i) - A_{ref}(i))^2 $$

  1. SNR (Signal-to-Noise Ratio):

$$ \text{SNR} = 10 \cdot \log_{10}\left(\frac{P_{signal}}{P_{noise}}\right) $$

где:

  • $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$
  1. Гистограмма ошибок:

$$ \text{Hist}(e) = \text{count}(|A_{sim}(i) - A_{ref}(i)| \in [e, e + \Delta e]) $$


10. ТРЕБОВАНИЯ К СИМУЛЯТОРУ

10.1. Функциональные требования

  • Возможность сравнения real vs digital IQ методов обработки
  • Повторяемость результатов (seed для RNG)
  • Подготовка архитектуры под SAS (Synthetic Aperture Sonar)
  • Архитектура 1:1 с будущим железом (FPGA/DSP)
  • Модульность (легко менять модели компонентов)

10.2. Технические требования

  • Детерминированность вычислений
  • Возможность batch-симуляций
  • Логирование всех параметров
  • Unit-тестируемость компонентов
  • Обработка ошибок

10.3. Производительность

  • Реальное время или близко к реальному времени для типичных параметров
  • Оптимизация для больших изображений (1000×1000+ пикселей)

11. ОБОСНОВАНИЕ АРХИТЕКТУРЫ

11.1. Выбор частотного диапазона

Частоты 60–900 кГц → прямой ADC оптимален:

  • Полоса частот позволяет использовать real-sampling ADC
  • Не требуется аналоговый IQ-перевод
  • Упрощение аппаратной части

11.2. Отказ от аналогового IQ

Аналоговый IQ не используется по следующим причинам:

  • Отсутствие IQ chip для низких частот: для диапазона 60–900 кГц нет доступных готовых IQ-микросхем (IQ demodulators/mixers), которые работают в этом частотном диапазоне
  • Дополнительные компоненты (фазовые сдвигатели, смесители) требуют самостоятельной разработки
  • Проблемы с балансировкой каналов I и Q при самостоятельной реализации
  • Высокая стоимость и сложность разработки аналогового IQ-тракта для низких частот

11.3. Преимущества цифрового IQ

Цифровой IQ (DDC) обеспечивает:

  • Точную фазу — нет ошибок балансировки
  • Минимум аппаратуры — только один ADC
  • Идеален для SAS — требуется точная фазовая информация
  • Гибкость — легко изменять параметры обработки

11.4. Соответствие реальной системе

Симулятор полностью повторяет реальную DSP-цепочку:

ADC (real) → DDC → Matched Filter → Envelope → Image

Это позволяет напрямую переносить алгоритмы в FPGA / DSP без изменений.


12. РЕЗУЛЬТАТЫ

Симулятор должен позволять:

  1. Интерактивно менять дно:

    • Редактировать рельеф в реальном времени
    • Видеть изменения в side-scan изображении
  2. Видеть влияние тракта и шума:

    • Анализировать влияние LNA, VGA, ADC на качество изображения
    • Оценивать влияние шумов и искажений
  3. Сравнивать методы обработки:

    • Real processing vs Digital IQ
    • Различные алгоритмы matched filtering
    • Различные методы формирования огибающей
  4. Измерять качество изображения:

    • Метрики совпадения с ground truth
    • SNR, MSE, гистограммы ошибок
    • Визуальное сравнение
  5. Напрямую переносить алгоритмы в FPGA / DSP:

    • Идентичная архитектура обработки
    • Те же математические операции
    • Те же форматы данных

ПРИЛОЖЕНИЕ A: ОБОЗНАЧЕНИЯ

Обозначение Описание Единицы
$f_0$ Центральная частота CHIRP Гц
$B$ Полоса частот Гц
$T$ Длительность импульса с
$c$ Скорость звука м/с
$r$ Расстояние м
$\alpha$ Коэффициент затухания м⁻¹
$\tau$ Время задержки (TOF) с
$h(x, y)$ Высота дна м
$\sigma_0$ Эффективная площадь рассеяния м²
$\theta$ Угол падения рад
$G_{LNA}$ Усиление LNA дБ
$NF_{LNA}$ Шумовая фигура LNA дБ
$f_s$ Частота дискретизации Гц
$N$ Разрядность ADC бит
$A[n]$ Амплитуда огибающей В
$I[n], Q[n]$ Синфазная и квадратурная компоненты В

Документ подготовлен для разработки симулятора side-scan sonar с поддержкой digital IQ обработки.