Używając narzędzi programowych DVSwitch MMDVM_Bridge i Analog_Bridge do łączenia krosowego usług głosowych np z DMR do YSF narrow, YSF wide, D-Star, NXDN, P25 warto znać możliwości dostępnych vocoder'ów sprzętowych i programowych w takim rozwiązaniu.

Jakie mamy dostępne vocodery sprzętowe i programowe?

Sprzętowe vocodery: DV3000U, PiDV, DVMega AMBE rekomendowane do: DMR, YSF narrow, NXDN, D-Star

Programowe vocodery:

  • md380-emu rekomendowane do: DMR, YSF narrow (DN), NXDN
  • OP25 vocoder rekomendowane do: DMR, YSF narrow (DN), YSF wide (VW), NXDN, P25, D-Star (bardzo słabej jakości nie używać do nadawania)

Żródło: https://www.qsl.net/kb9mwr/projects/dv/multi/MMDVM_Bridge.pdf

W obsługiwanych trybach DV3000 jest najwyższej jakości, md-380-emu produkuje dobrej jakości audio jak na programowy vocoder. OP25 obsługuje wszystkie tryby DV. Jest to jedyny wokoder dostępny w Aanalog_Bridge, którego można używać dla P25 i YSF wide (VW). Działa OK na DMR, YSF narrow i NXDN. Na D-Star ma kiepską jakość i sugeruję, aby używać go z D-Star tylko do testowania.

Rysunek diagramu MMDVM + AB

Łącząc MDMVM_Bridge z P25, NXDN, D-Star reflektorem musimy użyć połączenia poprzez xxGateway program (np. nxdngateway). W przypadku YSF reflektora możemy bezpośrednio połączyć MMDVM_Bridge z YSF reflektorem.

Wybór vocodera.

Jeśli chcemy używać vocodera md380-emu dla DMR/NXDN/YSF narrow (DN) ustawiamy w Analog_Bridge.ini

[GENERAL]
decoderFallBack = true                       ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = true                             ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470     ; IP address and port of the md380 server

Jeśli chcemy używać vocodera OP25 dla P25 / YSF wide (VW) ustawiamy w Analog_Bridge.ini

[GENERAL]
decoderFallBack = true                        ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                             ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470     ; IP address and port of the md380 server

definicja "emulatorAddress" nie jest wtedy brana pod uwagę podczas uruchamiania Analog_Bridge

Jeśli chcemy użyć vocodera sprzętowego DV3000 (DV30 stick) dla D-Star:

[GENERAL]
decoderFallBack = false                       ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                             ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470     ; IP address and port of the md380 server

W przypadku podłączonego DV3000 lokalnie na USB:

[DV3000]
; address = 127.0.0.1              ; IP address of AMBEServer
; rxPort = 2460                        ; Port of AMBEServer
address = /dev/ttyUSB0          ; Device of DV3000U on this machine
baud = 460800                        ; Baud rate of the dongle (230400 or 460800)
serial = true                             ; Use serial=true for direct connect or serial=false for AMBEServer

Jeśli mamy problemy z audio używając DV3000 warto sprawdzić na komputerze gdzie jest podłączony DV3000 na USB jako użytkownik root poleceniem

cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer

jeśli wyświetlona wartość będzie inna niż 1 to należy wykonać polecenie jako użytkownik root:

echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer

i sprawdzić różnicę w jakości audio i jeśli działa poprawnie warto to polecenie wpisać w /etc/rc.local aby było wykonane podczas startu systemu.

W przypadku podłączonego DV3000 na innym komputerze który jest dostępny poprzez adres IP (address) na wskazanym porcie (rxPort) ustawiamy:

[DV3000]
address = 127.0.0.1              ; IP address of AMBEServer
rxPort = 2460                        ; Port of AMBEServer
;address = /dev/ttyUSB0          ; Device of DV3000U on this machine
;baud = 460800                        ; Baud rate of the dongle (230400 or 460800)
serial = false                             ; Use serial=true for direct connect or serial=false for AMBEServer

Kompensacja poziomów audio w krosowych połączeniach.

O ile przejście z DMR do YSF narrow, NXDN wystarczy zrobić konwersje meta data nie jest wymagana transkodowanie audio gdyż wszystkie te mody używają kodeka AMBE+2. Jednak użycie narzędzi DMR2YSF, DMR2NXDN w Pi-Star lub w DVSwitch tylko MMDVM_Bridge nie kompensuje różnicy poziomów audio jakie są miedzy różnymi technologiami. I tak DMR jest za głośny w YSF czy NXDN i odwrotnie YSF i NXDN jest cichy w DMR.

Ale w przypadku budowy krosowego przejścia z DMR do YSF narrow (DN), NXDN, P25, D-Star przy pomocy MMDVM_Bridge i Analog_Bridge gdzie przechodzimy przez analogowe audio możemy regulować poziomy w ustawieniach Analog_Bridge.ini dzięki temu zrobić kompensacje poziomów audio między różnymi modami komunikacji głosowej. Ustawiając w jednym z Analog_Bridge.ini dla ambeMode: NXDN, YSFN, P25, D-Star:

usrpAudio=AUDIO_UNITY 
usrpGain=1
tlvAudio =  AUDIO_UNITY
tlvGain=1

Możemy dobrać odpowiednio wartości poziomów w Analog_Bridge.ini dla ambeMode=DMR. Dla audio które jest słyszane na DMR:

tlvAudio=AUDIO_USE_GAIN
tlvGain=xxx

zamiast "xxx" wstawiamy wartości wzmocnienia poziomu audio np 0.5 itp dobierając eksperymentalnie.

Oraz poziom wychodzącego audio z DMR do drugiego modu ustawiając odpowiednio:

usrpAudio=AUDIO_USE_GAIN
usrpGain=xxx 

zamiast "xxx" wstawiamy wartości wzmocnienia poziomu adudio np 2.5 itp dobierając exksperymentalnie

W przypadku usrpAudio możemy skorzystać i poeksperymentować z zastosowaniem w Analog_Bridge.ini dla DMR

usrpAudio=AUDIO_USE_AGC

i wtedy ustawiać parametry AGC w

usrpAGC= aa,bb,ccc

na przykład usrpAGC= -20,10,100 gdzie parametry AGC: aa - threshold (db), bb - slope (db), ccc - decay (ms).

Poprzedni Post Następny Post