| 
					
				 | 
			
			
				@@ -23,10 +23,7 @@ import osmosdr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class fm_radio(gr.top_block): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __init__(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         gr.top_block.__init__(self, "FM Radio Receiver", catch_exceptions=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -41,12 +38,10 @@ class fm_radio(gr.top_block): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # Blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ################################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.rtlsdr_source_0 = osmosdr.source( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            args="numchan=" + str(1) + " " + "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.rtlsdr_source_0 = osmosdr.source(args="numchan=" + str(1) + " " + "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_time_unknown_pps(osmosdr.time_spec_t()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_sample_rate(samp_rate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.rtlsdr_source_0.set_center_freq((98.3*1e6), 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.rtlsdr_source_0.set_center_freq((98.3 * 1e6), 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_freq_corr(0, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_dc_offset_mode(0, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_iq_balance_mode(0, 0) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -54,29 +49,24 @@ class fm_radio(gr.top_block): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_gain(20, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_if_gain(20, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_bb_gain(20, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.rtlsdr_source_0.set_antenna('', 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.rtlsdr_source_0.set_antenna("", 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_bandwidth(0, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rational_resampler_xxx_0 = filter.rational_resampler_fff( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                interpolation=audio_sample_rate_hertz, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                decimation=channel_width_hertz, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                taps=[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fractional_bw=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            interpolation=audio_sample_rate_hertz, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            decimation=channel_width_hertz, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            taps=[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fractional_bw=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.low_pass_filter_0 = filter.fir_filter_ccf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (int(samp_rate/channel_width_hertz)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            firdes.low_pass( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                samp_rate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                100000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                10000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                window.WIN_KAISER, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                6.76)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.audio_sink_0 = audio.sink(audio_sample_rate_hertz, '', True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (int(samp_rate / channel_width_hertz)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            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, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            quad_rate=channel_width_hertz, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            audio_decimation=1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ################################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # Connections 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ################################################## 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -85,13 +75,14 @@ class fm_radio(gr.top_block): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_samp_rate(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.samp_rate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_samp_rate(self, samp_rate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.samp_rate = samp_rate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.low_pass_filter_0.set_taps(firdes.low_pass(2, self.samp_rate, 100000, 10000, window.WIN_KAISER, 6.76)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.low_pass_filter_0.set_taps( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            firdes.low_pass(2, self.samp_rate, 100000, 10000, window.WIN_KAISER, 6.76) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_sample_rate(self.samp_rate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_channel_width_hertz(self): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -107,8 +98,6 @@ class fm_radio(gr.top_block): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.audio_sample_rate_hertz = audio_sample_rate_hertz 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def main(top_block_cls=fm_radio, options=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tb = top_block_cls() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -124,12 +113,12 @@ def main(top_block_cls=fm_radio, options=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tb.start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        input('Press Enter to quit: ') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        input("Press Enter to quit: ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     except EOFError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tb.stop() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tb.wait() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if __name__ == "__main__": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     main() 
			 |