def __init__(self, center_freq, offset_freq, decimate_am=1, play_audio=False): """Configure the RTL-SDR and GNU Radio""" super(rtlsdr_am_stream, self).__init__() audio_rate = 44100 device_rate = audio_rate * 25 output_rate = audio_rate / float(decimate_am) self.rate = output_rate self.osmosdr_source = osmosdr.source("") self.osmosdr_source.set_center_freq(freq) self.osmosdr_source.set_sample_rate(device_rate) taps = firdes.low_pass(1, device_rate, 40000, 5000, firdes.WIN_HAMMING, 6.76) self.freq_filter = filter_swig.freq_xlating_fir_filter_ccc(25, taps, -freq_offs, device_rate) #self.am_demod_self = blks2.am_demod_cf( self.am_demod_self = am_demod.am_demod_cf( channel_rate=audio_rate, audio_decim=1, audio_pass=5000, audio_stop=5500, ) self.resampler = rational_resampler.rational_resampler_fff( interpolation=1, decimation=decimate_am, ) self.sink = gr_queue.queue_sink_f() self.connect(self.osmosdr_source, self.freq_filter, self.am_demod_self) self.connect(self.am_demod_self, self.resampler, self.sink) if play_audio: self.audio_sink = audio.sink(audio_rate, "", True) self.connect(self.am_demod_self, self.audio_sink)
def __init__(self, center_freq, offset_freq, decimate_am=1, play_audio=False): """Configure the RTL-SDR and GNU Radio""" super(rtlsdr_am_stream, self).__init__() audio_rate = 44100 device_rate = audio_rate * 25 output_rate = audio_rate / float(decimate_am) self.rate = output_rate self.osmosdr_source = osmosdr.source_c("") self.osmosdr_source.set_center_freq(freq) self.osmosdr_source.set_sample_rate(device_rate) taps = firdes.low_pass(1, device_rate, 40000, 5000, firdes.WIN_HAMMING, 6.76) self.freq_filter = gr.freq_xlating_fir_filter_ccc(25, taps, -freq_offs, device_rate) self.am_demod = blks2.am_demod_cf( channel_rate=audio_rate, audio_decim=1, audio_pass=5000, audio_stop=5500, ) self.resampler = blks2.rational_resampler_fff( interpolation=1, decimation=decimate_am, ) self.sink = gr_queue.queue_sink_f() self.connect(self.osmosdr_source, self.freq_filter, self.am_demod) self.connect(self.am_demod, self.resampler, self.sink) if play_audio: self.audio_sink = audio.sink(audio_rate, "", True) self.connect(self.am_demod, self.audio_sink)
def __init__(self, center_freq, offset_freq, decimate_am=1): """Configure the RTL-SDR and GNU Radio""" super(rtlsdr_am_stream, self).__init__() audio_rate = 48000 device_rate = audio_rate * 25 output_rate = audio_rate / float(decimate_am) self.rate = output_rate # self.osmosdr_source = osmosdr.source_c("") self.osmosdr_source = osmosdr.source("") self.osmosdr_source.set_sample_rate(device_rate) self.osmosdr_source.set_center_freq(freq) self.osmosdr_source.set_freq_corr(0, 0) #self.osmosdr_source.set_gain_mode(1, 0) self.osmosdr_source.set_gain_mode(True, 0) self.osmosdr_source.set_gain(20, 0) taps = firdes.low_pass(1, device_rate, 40000, 5000, firdes.WIN_HAMMING, 6.76) #self.freq_filter = gr.freq_xlating_fir_filter_ccc(25, taps, -freq_offs, device_rate) self.freq_filter = filter.freq_xlating_fir_filter_ccc(25, taps, -freq_offs, device_rate) self.am_demod = analog.am_demod_cf( channel_rate=audio_rate, audio_decim=1, audio_pass=5000, audio_stop=5500, ) self.resampler = filter.rational_resampler_fff( interpolation=1, decimation=decimate_am, ) self.sink = gr_queue.queue_sink_f() self.connect(self.osmosdr_source, self.freq_filter, self.am_demod) self.connect(self.am_demod, self.resampler, self.sink)
def __init__(self): gr.top_block.__init__(self, "Key") # super(Key, self).__init__() ################################################## # Variables ################################################## self.samp_rate = samp_rate = 2016000 #1920000#2000000 self.offset_freq_keyboard = offset_freq_keyboard = 27195000 self.offset_freq = offset_freq = 27175000 self.center_freq = center_freq = 28000000 self.target_rate = target_rate = 48000#16000#96000 self.offset_keyboard = offset_keyboard = offset_freq_keyboard - center_freq self.offset = offset = offset_freq - center_freq #self.firdes_tap_overall = firdes_tap_overall = firdes.low_pass(1, samp_rate, 50000, 0100, firdes.WIN_HAMMING, # 6.76) self.firdes_tap_keyboard = firdes_tap_keyboard = firdes.low_pass(1, samp_rate, 20000, 0100,#5000, 5000, #20000, 10000, firdes.WIN_HAMMING, 6.76) ################################################## # Blocks ################################################## self.osmosdr_source_c_0 = osmosdr.source_c(args="nchan=" + str(1) + " " + "") self.osmosdr_source_c_0.set_sample_rate(samp_rate) self.osmosdr_source_c_0.set_center_freq(center_freq, 0) self.osmosdr_source_c_0.set_freq_corr(0, 0) self.osmosdr_source_c_0.set_dc_offset_mode(1, 0) self.osmosdr_source_c_0.set_iq_balance_mode(0, 0) self.osmosdr_source_c_0.set_gain_mode(0, 0) self.osmosdr_source_c_0.set_gain(01, 0) self.osmosdr_source_c_0.set_if_gain(20, 0) self.osmosdr_source_c_0.set_bb_gain(20, 0) self.osmosdr_source_c_0.set_antenna("", 0) self.osmosdr_source_c_0.set_bandwidth(0, 0) self.low_pass_filter_0 = gr.fir_filter_fff(1, firdes.low_pass( 1, target_rate, 5e3, 01e3, firdes.WIN_HAMMING, 6.76)) self.freq_xlating_fir_filter_xxx_0_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate / target_rate), (firdes_tap_keyboard), offset_keyboard, samp_rate) self.blocks_wavfile_sink_0 = blocks.wavfile_sink("/root/sdr/keyboard/44.1Ks_27Mf_quad3_keyboard.wav", 1, target_rate, 8) #ACL #self.blocks_file_source_0 = blocks.file_source(gr.sizeof_float * 1, "/root/sdr/keyboard/96k_27M_float", False) #self.blocks_file_sink_2 = blocks.file_sink(gr.sizeof_float * 1, "/root/sdr/keyboard/96k_27M_float") #self.blocks_file_sink_2.set_unbuffered(False) self.sink = gr_queue.queue_sink_f() self.analog_simple_squelch_cc_0 = analog.simple_squelch_cc(-5, 1) self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf(2) ################################################## # Connections ################################################## self.connect((self.osmosdr_source_c_0, 0), (self.freq_xlating_fir_filter_xxx_0_0, 0)) self.connect((self.freq_xlating_fir_filter_xxx_0_0, 0), (self.analog_simple_squelch_cc_0, 0)) self.connect((self.analog_simple_squelch_cc_0, 0), (self.analog_quadrature_demod_cf_0, 0)) self.connect((self.analog_quadrature_demod_cf_0, 0), (self.low_pass_filter_0, 0)) self.connect((self.low_pass_filter_0, 0), (self.blocks_wavfile_sink_0, 0)) self.connect((self.low_pass_filter_0, 0), self.sink)