|
@@ -29,26 +29,25 @@ class fm_radio(gr.top_block):
|
|
channel_width_hertz = 250000
|
|
channel_width_hertz = 250000
|
|
audio_sample_rate_hertz = 48000
|
|
audio_sample_rate_hertz = 48000
|
|
|
|
|
|
- self.rtlsdr_source_0 = osmosdr.source()
|
|
|
|
- self.rtlsdr_source_0.set_sample_rate(samp_rate)
|
|
|
|
- self.rtlsdr_source_0.set_center_freq((98.3 * 1e6), 0)
|
|
|
|
- self.rational_resampler_xxx_0 = filter.rational_resampler_fff(
|
|
|
|
|
|
+ rtlsdr_source = osmosdr.source()
|
|
|
|
+ rtlsdr_source.set_sample_rate(samp_rate)
|
|
|
|
+ rtlsdr_source.set_center_freq((98.3 * 1e6), 0)
|
|
|
|
+ resampler = filter.rational_resampler_fff(
|
|
interpolation=audio_sample_rate_hertz, decimation=channel_width_hertz
|
|
interpolation=audio_sample_rate_hertz, decimation=channel_width_hertz
|
|
)
|
|
)
|
|
- self.low_pass_filter_0 = filter.fir_filter_ccf(
|
|
|
|
|
|
+ low_pass_filter = filter.fir_filter_ccf(
|
|
(int(samp_rate / channel_width_hertz)),
|
|
(int(samp_rate / channel_width_hertz)),
|
|
firdes.low_pass(2, samp_rate, 100000, 10000, window.WIN_KAISER, 6.76),
|
|
firdes.low_pass(2, samp_rate, 100000, 10000, window.WIN_KAISER, 6.76),
|
|
)
|
|
)
|
|
- self.audio_sink_0 = audio.sink(audio_sample_rate_hertz, "", True)
|
|
|
|
- self.analog_wfm_rcv_0 = analog.wfm_rcv(
|
|
|
|
- quad_rate=channel_width_hertz,
|
|
|
|
- audio_decimation=1,
|
|
|
|
|
|
+ audio_sink = audio.sink(audio_sample_rate_hertz, "", True)
|
|
|
|
+ wbfm_demodulator = analog.wfm_rcv(
|
|
|
|
+ quad_rate=channel_width_hertz, audio_decimation=1
|
|
)
|
|
)
|
|
|
|
|
|
- self.connect((self.analog_wfm_rcv_0, 0), (self.rational_resampler_xxx_0, 0))
|
|
|
|
- self.connect((self.low_pass_filter_0, 0), (self.analog_wfm_rcv_0, 0))
|
|
|
|
- self.connect((self.rational_resampler_xxx_0, 0), (self.audio_sink_0, 0))
|
|
|
|
- self.connect((self.rtlsdr_source_0, 0), (self.low_pass_filter_0, 0))
|
|
|
|
|
|
+ self.connect((wbfm_demodulator, 0), (resampler, 0))
|
|
|
|
+ self.connect((low_pass_filter, 0), (wbfm_demodulator, 0))
|
|
|
|
+ self.connect((resampler, 0), (audio_sink, 0))
|
|
|
|
+ self.connect((rtlsdr_source, 0), (low_pass_filter, 0))
|
|
|
|
|
|
|
|
|
|
def main(top_block_cls=fm_radio, options=None):
|
|
def main(top_block_cls=fm_radio, options=None):
|