субота, 9 вересня 2023 р.

Йо, тут в Meshtastic пхають голос

Голос через LoRa - це факт, це можливо та працює. Але є нюанс... нюанс в тому, що у разі децентралізованого чату ми маємо так чи інакше один потік даних і з'єднання point-multipoint в радіусі покриття передавача LoRa з урахуванням чутливості приймачів LoRa, посилення антен, втрат у фідері та завадової обстановці в ефірі. Але у випадку мереж MESH, особливо з примітивною структурою, як у Meshtastic, ми маємо необхідність зберігання всіх голосових повідомлень усіх нод у кожній ноді та постійними повторами. В результаті трафік мережі стає перевантаженим навіть при розширенні смуги (знижує таймінг), а ресурси кожної ноди витрачаються на зберігання всіх цих повідомлень. Враховуючи, що голосові дані чутливі до випадання пакетів даних після стиснення, мережа без гарантованої доставки стає просто непрацездатною. Адже федінг сигналу на VHF/UHF діапазоні поширюється на будь-які види модуляції і LoRa тому не виняток. У разі прямого каналу в такій MESH мережі голосовий зв'язок можливий. Але це вже й не класичний MESH, де ноди можуть не бачити один одного та бачити через когось...

Якщо не бачили, то ось. На 125 та 500 kHz полосi та SF=8 з цим проблем не буде навiть для 3200 моде. Не буде, але якщо нод небагато.

Небагато матчасті для вашого розуміння:

  • Допустимо задаємося кодеком з бітрейтом = 1600
  • Вхідний буфер у цьому режимі = 320 byte
  • Вихідний після стиску = 8 frame x 8 bit, тобто 8 byte

При частоті дискретизації 8 kHz чи 125 мкс на вибірку маємо час запису 320*125 us = 40 ms на 1 вхідний буфер.

  • Допустимо задаємося кодеком з бітрейтом = 3200
  • Вхідний буфер у цьому режимі = 160 byte
  • Вихідний після стиску = 8 frame x 8 bit, тобто 8 byte

При частоті дискретизації 8 kHz чи 125 мкс на вибірку маємо час запису 160*125 us = 20 ms на 1 вхідний буфер.


Кодеки 450 або 700 я не беру до уваги, там розбiрливiсть низка. Фактично для зберігання 10 секунд голосу у моді 3200 використовую 4096 байт. У випадку MESH мережі доведеться для кожної ноди в кожному мішастику зберігати 4096 x кількість нод для ретрансляції аудіо. Якщо нод 16 (як у мене), то вже 65 536 байт. А це для звичайного ESP32 чіпа добре відгризає так пам'ять. Для Meshtastic з її теоретичними 80 нодами вже 4096 * 80 = 327 680 байт. Тому голос звичайно можна в MESH, але тільки для плат ESP32-S3 і при зміні маршрутизації з видаленням пройденого хопу, щоб уникнути флуду. Там навiть текст йде до 10...15 хвилин.

Зв'язок мiж чутливiстю, смугою та SNR

Для кожного коефіцієнта розширення спектра SF* існує граничне співвідношення сигнал/шум (SNR) [dBm], при досягненні якого приймач не зможе демодулювати сигнал:


* При збільшенні SF на 1, межа SNR змінюється на -2.5 dBm

Чутливість приймача S [dBm] визначається залежністю:

S = -174 + 10 * lg (BW) + NF + SNR

Де: NF - коефіцієнт шуму приймача конкретної апаратної реалізації приймачів кінцевих вузлів LoRa.

Задамося режимами роботи:

  • BW = 31.25 kHz
  • NF = 6 dB (для модулів SX1262)
  • SF = 12
  • SNR = -20

Тоді чутливість становитиме:

S = -174 + 10 * lg (BW) + NF + SNR = -174 + 10 * lg (31250) + 6 - 20 = -143.05 dBm

Якщо вiдмовитися вiд реалтайм-режиму, то обмiн голосом та iншим медiа-контентом можливий на будь-яких смугах. А чи є реалтайм MESH-мережі для голосу? Звісно є, QMesh:

І не лише для голосу, а й відео - MANET:


Постскриптум

Шановні читачі, якщо мої дописи вас зацікавили – пiдтримайте збiр або ставайте спонсорами Youtube-каналу LaboratoryW з ексклюзивними лайфхаками.

Кориснi ресурси
  1. MiniFAQ по LoRa
  2. Як працювати LoRa та аматорському трансиверу на одну антену
  3. LoraBOT та приймач на одну антену
  4. Простий мiжбендовий LoRa-шлюз на UART модулях без окремого контролера
  5. Крос-бенд LoRa мереж та ПАПУГА
  6. Взаємозв'язок між розширенням спектру, чутливiстю та швидкiстю обмiну в текстових та голосових режимах over LoRa
  7. LR-FHSS. Як працює ППРЧ в LoRa
  8. Завади для керування БПЛА. На сьогодні існує кілька видів атак на LoRa
  9. Зменьшення нестабільностi TCXO в LoRa-модулях
  10. Як прошити LoraSAT або Meshtastic в польових умовах з смартфону
  11. LoRa на ручній тязі... поки крутиш - в космочаті
  12. Керування Starlink-приводом з антеною через LoRa
  13. Мережевi iгри over LoRa
  14. Стероїд-мод. Як додати шоколадку до LoRa-модуля або потужний LoRa-модем
  15. Робота LoRa-модуля SX1262 за паспортними межами
  16. Чи можна працювати в LoRa із супутниками на низьких орбітах? Можна й ось чому...