Project

General

Profile

RepeaterPage » History » Revision 4

Revision 3 (max, 04/22/2017 04:04 PM) → Revision 4/12 (max, 04/22/2017 04:04 PM)

 
  = SUMMARY = 
  * Simultaneous multi-channel transmission/reception 
  * Uses USRP and/or conventional receiver/transmitter hardware 
  * Generic interface to Asterisk via app_rpt (full VOIP, radio control, and standard repeater functions) 
  * Features: P25, analog NBFM with CTCSS 
  * Expected to be fully "ROIP" [Radio Over IP] compatible 

  = Multi-channel reception using the USRP = 

 Assume we want to simultaneously receive the four signals shown below; 
 one conventional (analog) FM voice channel plus three P25 
 signals.    The two P25 voice channels are to be IMBE-decoded whereas the 
 P25 data channel is to be sent to Wireshark after decoding.    For all three voice 
 channels, we want to forward the received PTT and audio info to Asterisk app_rpt. 
 The received PTT [Push To Talk, or "keyed"] signal is a bit that ideally tracks 
 the state of the PTT key at transmitter, indicating the presence or absence of the 
 received signal. 

 [[Image(sa.png)]] 

 Fig. 1 - Spectrum of repeater input band (sample; diagram not to scale) 

 For now, it's necessary to edit the source code file manually to specify 
 the list of channels/modes to be received (file usrp_rx.py): 

 {{{ 
 channels = [ 
	 {'freq':435.200e6, 'mode':'c4fm',    'port':32001}, 
	 {'freq':435.350e6, 'mode':'fm',      'port':32002, 'ctcss':97.4}, 
	 {'freq':435.600e6, 'mode':'cqpsk', 'port':23456, 'wireshark':1}, 
	 {'freq':435.775e6, 'mode':'cqpsk', 'port':32003} 
 ] 
 }}} 

 Individual channels are defined one per line; note that all definition lines 
 except the last must end with a comma. 

 We choose a frequency somewhere close to the center of this band. 
 which will set the USRP's nominal receive frequency; this must also 
 be manually set in the source file: 

 {{{ 
 center_freq = 435.500e6 
 }}} 

 Before running the receiver app, we 
  * measure the current calibration error value (I use kalibrate) 
  * determine the optimum USRP receiver gain value 
 The values used in this example are +1234 and 35, respectively. 

 We're now ready to start the receiver: 

 {{{ 
 usrp_rx.py -RA -c 1234 -H 127.0.0.1 -g 35 -d 25 
 }}} 

 The receiver continuously monitors all four channels.    For each of the three 
 voice channels, the audio and the PTT info ("key up" and "key down" events) 
 are forwarded to asterisk app_rpt over separate UDP channels. 
 For both voice modes (IMBE and analog FM) the audio is transmitted 
 as frames over the UDP channel in Asterisk's native audio format: 
  * 50 frames per second 
  * 160 audio samples per frame 
  * 8000 samples / second 
  * signed 
  * 16-bit 
  * linear 

  = P25 and/or analog NBFM Reception using a discriminator-tapped receiver = 

 One or more disc-tapped conventional receivers may be used at the same time, and can 
 coexist with one or more USRP's. 

 An audio cable is connected between the disc-tap point in the receiver and the PC soundcard. 

 Single-channel reception is possible using disctap_rx.py. 
 The This app dynmically auto-detects the modulation type (P25 or analog NBFM). 

 Audio and PTT events are forwarded to asterisk app_rpt over two separate UDP 
 channels, depending on modulation type: 
  * type (in the example below, received P25 
 audio is sent to asterisk on UDP port 32004 
  * when analog NBFM is received with the proper CTCSS tone (97.4 Hz), 32004; for NBFM, port 32005 is used used). 

 {{{ 
  disctap_rx.py -i -A 0.05 -c 97.4 -H 127.0.0.1 -p 32004 -g 35 -d 25 
 }}} 

 The -g (gain) parameter is used to set the proper audio gain level.    See 
 the hardware page for further guidance - this value is important for achieving 
 correct operation. 

  = Asterisk and app_rpt = 

 For all voice modes (IMBE and analog FM) the audio is transmitted 
 as frames over the UDP channel to and from Asterisk in the standard native audio format: 
  * 50 frames per second 
  * 160 audio samples per frame 
  * 8000 samples / second 
  * signed 
  * 16-bit 
  * linear 

 TBC 

  = Transmission (USRP and conventional) = 

 TBC
Add picture from clipboard (Maximum size: 48.8 MB)