Hello,
there is now a test sample (bit file) with speech at
http://tetra.osmocom.org/trac/wiki/Test_Samples
Please only add samples to this page if you have the full
agreement for publishing from all involved parties (e.g.
operator of the network, people speaking during the capture).
This is not the place to share captures which were made
from someone else without their knowledge.
Best regards,
Dieter
--
Dieter Spaar, Germany spaar(a)mirider.augusta.de
Hi all
Just a quick enquiry.
Anybody know how to pipe traffic.out data to channel decoder ? I can only
get it to copy 1 frame with mkfifo and then it stops. All other pipes work right
up to aplay audio.
Any help is appreciated.
Many thanks.
Graham.
Hello.
Has anyone an idea how to demodulate more than one channel per time while using an USRP or FCD?
The provided bandwidth is big enough. But how the split the 25kHz channels into seperate streams? Any idea is welcome.
Thx
Martin
Hi,
I am currently trying to implement a modulator/demodulator for TETRA using pi/4 DQPSK. I tried to use cqpsk.py which was provided with this package, but apparently some functions such as psk.constellation[] are not available in the new version of gnuradio. I created a list of constellation points to be used by chunks_to_symbols_bc() function, and I think this has solved this issue. I have another issue: when I modulate a string of bits in a file, and then demodulate it, the output contains 10 zeros and then a few numbers between 0 to 255 which does not seem to be related to the input bit stream at all. Could anyone please advise me on the matter? I am using GNURadio3.6.0, and main bits of code are attached:
Regards,
Vahid
CQPSK.py cqpsk_mod() modification:
...
self.pi4map = [1, 3, 7, 5]
self.constel = [1+0j,0.7+0.7j,0+1j,-0.7+07j,-1+0j,-0.7-0.7j,0-1j,0.7-0.7j]
self.symbol_mapper = gr.map_bb(self.pi4map)
self.diffenc = gr.diff_encoder_bb(arity)
self.chunks2symbols = gr.chunks_to_symbols_bc(self.constel)
...
-------------------------------------------------------------------
Modulator:
sample_rate = options.sample_rate
symbol_rate = 18000
sps = 2
IN = gr.file_source(gr.sizeof_char, options.input_file, repeat = False)
#IN = (1,0,0,0,1,1,0,0)
#src = gr.vector_source_b (IN)
MOD = cqpsk.cqpsk_mod( samples_per_symbol = sps,
excess_bw=0.35,
log=options.log,
verbose=options.verbose)
OUT = gr.file_sink(gr.sizeof_gr_complex, options.output_file)
# r = float(sample_rate) / float(new_sample_rate)
# INTERPOLATOR = gr.fractional_interpolator_cc(0, r)
self.connect(IN, MOD, OUT)
---------------------------------------------------------------
Demodulator:
sample_rate = options.sample_rate
symbol_rate = 18000
sps = 2
# output rate will be 36,000
ntaps = 11 * sps
new_sample_rate = symbol_rate * sps
channel_taps = gr.firdes.low_pass(1.0, sample_rate, options.low_pass, options.low_pass * 0.1, gr.firdes.WIN_HANN)
FILTER = gr.freq_xlating_fir_filter_ccf(1, channel_taps, options.calibration, sample_rate)
sys.stderr.write("sample rate: %d\n" %(sample_rate))
IN = gr.file_source(gr.sizeof_gr_complex, options.input_file, repeat = False)
DEMOD = cqpsk.cqpsk_demod( samples_per_symbol = sps,
excess_bw=0.35,
costas_alpha=0.03,
gain_mu=0.05,
mu=0.05,
omega_relative_limit=0.05,
log=options.log,
verbose=options.verbose)
self.convert = gr.float_to_char()
self.convert2 = gr.float_to_char()
OUT = gr.file_sink(gr.sizeof_char, options.output_file)
self.sink1 = gr.vector_sink_b()
r = float(sample_rate) / float(new_sample_rate)
INTERPOLATOR = gr.fractional_interpolator_cc(0, r)
self.connect(IN, FILTER, INTERPOLATOR, DEMOD, self.convert, OUT)
self.connect (DEMOD,self.convert2,self.sink1)
def print_data(self):
print "data in sink1 is: ",self.sink1.data()
---------------