mirror of
				https://github.com/brmlab/osmo-tetra.git
				synced 2025-10-30 23:14:00 +01:00 
			
		
		
		
	shit
This commit is contained in:
		
							parent
							
								
									0cbb321801
								
							
						
					
					
						commit
						8d0dad6dd0
					
				
					 3 changed files with 15 additions and 23 deletions
				
			
		|  | @ -7,6 +7,7 @@ from gnuradio import gr | ||||||
| from gnuradio.eng_option import eng_option | from gnuradio.eng_option import eng_option | ||||||
| from gnuradio.filter import firdes | from gnuradio.filter import firdes | ||||||
| from gnuradio.filter import pfb | from gnuradio.filter import pfb | ||||||
|  | from os.path import expanduser | ||||||
| import osmosdr | import osmosdr | ||||||
| import tetra_demod | import tetra_demod | ||||||
| 
 | 
 | ||||||
|  | @ -21,16 +22,15 @@ class top_block(gr.top_block): | ||||||
|         self.symbol_rate = symbol_rate = 18000 |         self.symbol_rate = symbol_rate = 18000 | ||||||
|         self.samp_per_sym = samp_per_sym = 2 |         self.samp_per_sym = samp_per_sym = 2 | ||||||
|         self.channel_width = channel_width = 25e3 |         self.channel_width = channel_width = 25e3 | ||||||
|         self.chans = chans = 36*2  # must be multiple of 36 |         self.chans = chans = 36*2  # must be multiple of 36, bacause of resampling | ||||||
|         self.sample_rate = sample_rate = chans * channel_width |         self.sample_rate = sample_rate = chans * channel_width | ||||||
|         self.out_samp_rate = out_samp_rate = symbol_rate*samp_per_sym |         self.out_samp_rate = out_samp_rate = symbol_rate*samp_per_sym | ||||||
|         self.offset = offset = -73e3 |         self.fnames = expanduser('~/tetra-tmp/fifo') | ||||||
|         self.lowpass = lowpass = 17.5e3 |  | ||||||
|         self.fnames = '/home/test/tetra-tmp/fifo' |  | ||||||
| 
 | 
 | ||||||
|         #### LIST OF DEMODULATED CHANNELS |         #### LIST OF DEMODULATED CHANNELS | ||||||
|         # numbered from leftmost to rightmost |         # numbered from leftmost to rightmost | ||||||
|         self.selected = [ 6,7,8,9,12,13,14,16,17,19,20,21,23,24,26,31,32,33,34,35,38,42,43,44,45,46,47,50,52,53,55,56,61,62,69,70] |         # self.selected = [ 6,7,8,9,12,13,14,16,17,19,20,21,23,24,26,31,32,33,34,35,38,42,43,44,45,46,47,50,52,53,55,56,61,62,69,70] | ||||||
|  |         self.selected = [ 3, 9, 10, 11, 13, 14, 17, 20, 22, 28, ] | ||||||
| 
 | 
 | ||||||
|         ################################################## |         ################################################## | ||||||
|         # Blocks |         # Blocks | ||||||
|  | @ -40,12 +40,12 @@ class top_block(gr.top_block): | ||||||
|         #self.source = osmosdr.source( args="rtl_tcp=radio-tetra.brm:1234") |         #self.source = osmosdr.source( args="rtl_tcp=radio-tetra.brm:1234") | ||||||
|         self.source = osmosdr.source() |         self.source = osmosdr.source() | ||||||
|         self.source.set_sample_rate(sample_rate) |         self.source.set_sample_rate(sample_rate) | ||||||
|         self.source.set_center_freq(424.065e6, 0) |         self.source.set_center_freq(424.000e6, 0) | ||||||
|         self.source.set_freq_corr(0, 0) |         self.source.set_freq_corr(37, 0) | ||||||
|         self.source.set_dc_offset_mode(0, 0) |         self.source.set_dc_offset_mode(0, 0) | ||||||
|         self.source.set_iq_balance_mode(0, 0) |         self.source.set_iq_balance_mode(0, 0) | ||||||
|         self.source.set_gain_mode(0, 0) |         self.source.set_gain_mode(0, 0) | ||||||
|         self.source.set_gain(31, 0) |         self.source.set_gain(35, 0) | ||||||
|         self.source.set_if_gain(20, 0) |         self.source.set_if_gain(20, 0) | ||||||
|         self.source.set_bb_gain(20, 0) |         self.source.set_bb_gain(20, 0) | ||||||
|         self.source.set_antenna("", 0) |         self.source.set_antenna("", 0) | ||||||
|  | @ -54,33 +54,24 @@ class top_block(gr.top_block): | ||||||
|         self.channelizer = pfb.channelizer_ccf( |         self.channelizer = pfb.channelizer_ccf( | ||||||
|               chans, |               chans, | ||||||
|               (), |               (), | ||||||
|               1.0, |               36./25, | ||||||
|               100) |               100) | ||||||
| 
 | 
 | ||||||
|         self.channelizer.set_channel_map((range(chans/2, chans)+range(0,chans/2))) |         #self.channelizer.set_channel_map((range(chans/2, chans)+range(0,chans/2))) | ||||||
| 
 | 
 | ||||||
|         # Generate per-target blocks |         # Generate per-target blocks | ||||||
|         self.sinks = list() |         self.sinks = list() | ||||||
|         self.demods = list() |         self.demods = list() | ||||||
|         self.resamplers = list() |         sel = 0 | ||||||
|         sel = 1 |  | ||||||
|         for i in range(chans): |         for i in range(chans): | ||||||
|             if i in self.selected: |             if i in self.selected: | ||||||
|                 self.resamplers.append(filter.rational_resampler_ccc( |  | ||||||
|                     interpolation=36, |  | ||||||
|                     decimation=25, |  | ||||||
|                     taps=None, |  | ||||||
|                     fractional_bw=None, |  | ||||||
|                 )) |  | ||||||
| 
 | 
 | ||||||
|                 self.demods.append(tetra_demod.demod()) |                 self.demods.append(tetra_demod.demod()) | ||||||
|                 self.sinks.append(blocks.file_sink(gr.sizeof_float, "%s/floats%d" % (self.fnames, sel))) |                 self.sinks.append(blocks.file_sink(gr.sizeof_float, "%s/floats%d" % (self.fnames, sel))) | ||||||
|                 self.connect((self.channelizer, i), (self.resamplers[i], 0)) |                 self.connect((self.channelizer, i), (self.demods[i], 0),  (self.sinks[i], 0)) | ||||||
|                 self.connect((self.resamplers[i], 0),  (self.demods[i], 0),  (self.sinks[i], 0)) |  | ||||||
|                 sel = sel + 1 |                 sel = sel + 1 | ||||||
|                 print "Enabled channel %d" % i |                 print "Enabled channel %d" % i | ||||||
|             else: |             else: | ||||||
|                 self.resamplers.append(None) |  | ||||||
|                 self.demods.append(None) |                 self.demods.append(None) | ||||||
|                 self.sinks.append(blocks.null_sink(gr.sizeof_gr_complex*1)) |                 self.sinks.append(blocks.null_sink(gr.sizeof_gr_complex*1)) | ||||||
|                 self.connect((self.channelizer, i), (self.sinks[i], 0)) |                 self.connect((self.channelizer, i), (self.sinks[i], 0)) | ||||||
|  |  | ||||||
|  | @ -45,6 +45,7 @@ class top_block(grc_wxgui.top_block_gui): | ||||||
|     self.src = osmosdr.source(options.args) |     self.src = osmosdr.source(options.args) | ||||||
|     self.src.set_center_freq(self.ifreq) |     self.src.set_center_freq(self.ifreq) | ||||||
|     self.src.set_sample_rate(int(options.sample_rate)) |     self.src.set_sample_rate(int(options.sample_rate)) | ||||||
|  |     self.src.set_freq_corr(36, 0) | ||||||
| 
 | 
 | ||||||
|     if self.rfgain is None: |     if self.rfgain is None: | ||||||
|         self.src.set_gain_mode(1) |         self.src.set_gain_mode(1) | ||||||
|  | @ -160,7 +161,7 @@ class top_block(grc_wxgui.top_block_gui): | ||||||
|         callback=set_rfgain, |         callback=set_rfgain, | ||||||
|         minimum=0, |         minimum=0, | ||||||
|         maximum=50, |         maximum=50, | ||||||
|         num_steps=200, |         num_steps=1000, | ||||||
|         style=wx.SL_HORIZONTAL, |         style=wx.SL_HORIZONTAL, | ||||||
|         cast=float, |         cast=float, | ||||||
|         proportion=1, |         proportion=1, | ||||||
|  |  | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| #!/bin/bash | #!/bin/bash | ||||||
| 
 | 
 | ||||||
|  ./demod/python/osmosdr-tetra_demod_fft.py -f 393.0880M -g 10 -o /dev/stdout | ./float_to_bits /dev/stdin /dev/stdout | ./tetra-rx /dev/stdin | python2 ./demod/python/osmosdr-tetra_demod_fft.py -f 423.750M -g 32 -L 27e3 -o /dev/stdout | ./float_to_bits /dev/stdin /dev/stdout | ./tetra-rx /dev/stdin ../tmp 2>&1 > tetra-rx.log | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jiří Pinkava
						Jiří Pinkava