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:
Ż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.
Łą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).