diff options
Diffstat (limited to 'gr-radar/src/python/split_files.py')
-rwxr-xr-x | gr-radar/src/python/split_files.py | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/gr-radar/src/python/split_files.py b/gr-radar/src/python/split_files.py deleted file mode 100755 index a604c07793..0000000000 --- a/gr-radar/src/python/split_files.py +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env python - -from gnuradio import gr, gru, eng_notation, optfir -from gnuradio.eng_option import eng_option -from optparse import OptionParser -import os.path -import re - -plot = None - -def split_filename(src_filename): - s = os.path.splitext(src_filename)[0] # drop extension - date, time, freq, dec, nchan = s.split('-') - return (date, time, freq, int(dec), int(nchan)) - - -def make_filename(date, time, freq, n, short_output): - if short_output: - return '-'.join((date, time, freq)) + '.s%02d' % (n,) - else: - return '-'.join((date, time, freq)) + '.c%02d' % (n,) - -class my_graph(gr.flow_graph): - - def __init__(self, src_filename, short_output): - """ - Deinterleave file, filter and decimate by 4, and write out - a separate file for each input channel. - - The input file is the raw output of nchannels of short USRP data. - That is, they are interleaved short I&Q for each channel. - """ - global plot - - gr.flow_graph.__init__(self) - - decim = 4 - - (date, time, freq, dec, nchan) = split_filename(src_filename) - - src = gr.file_source(gr.sizeof_short, src_filename) - - # convert stream of interleaved shorts to a stream of complex - s2c = gr.interleaved_short_to_complex() - - # deinterleave complexes into separate streams - deint = gr.deinterleave(gr.sizeof_gr_complex) - - self.connect(src, s2c, deint) - - taps = optfir.low_pass(1, # gain - 1, # sampling rate - 0.100, # passband cutoff - 0.125, # stopband cutoff - 0.01, # passband ripple (dB) - 70) # stopband atten (dB) - - print "len(taps) =", len(taps) - - #plot = gru.gnuplot_freqz(gru.freqz(taps, 1), 1) - #raw_input('Press Enter to continue: ') - - for n in xrange(nchan): - #df = gr.fft_filter_ccc(decim, taps) - df = gr.fir_filter_ccf(decim, taps) - self.connect((deint, n), df) - dst_filename = make_filename(date, time, freq, n, short_output) - if short_output: - c2s = gr.complex_to_interleaved_short() - dst = gr.file_sink(gr.sizeof_short, dst_filename) - self.connect(df, c2s, dst) - else: - dst = gr.file_sink(gr.sizeof_gr_complex, dst_filename) - self.connect(df, dst) - - -def split_1_file(filename, short_output): - my_graph(filename, short_output).run() - - -def main(): - usage="%prog: [options] file_to_split..." - parser = OptionParser (option_class=eng_option, usage=usage) - parser.add_option("-s", "--short", action="store_true", default=False, - help="short output if set, else complex") - (options, args) = parser.parse_args() - - for filename in args: - split_1_file(filename, options.short) - - -if __name__ == '__main__': - main() |