Revision 225d3141 gr-noaa/grc/usrp_rx_hrpt.py

b/gr-noaa/grc/usrp_rx_hrpt.py
2 2
##################################################
3 3
# Gnuradio Python Flow Graph
4 4
# Title: USRP HRPT Receiver
5
# Generated: Sat Aug 29 11:48:57 2009
5
# Generated: Sat Aug 29 13:16:19 2009
6 6
##################################################
7 7

8 8
from gnuradio import gr
......
28 28
		self.sym_rate = sym_rate = 600*1109
29 29
		self.sample_rate = sample_rate = 64e6/decim
30 30
		self.sps = sps = sample_rate/sym_rate
31
		self.sync_alpha = sync_alpha = 0.005
32
		self.pll_alpha = pll_alpha = 0.005
31
		self.sync_alpha = sync_alpha = 0.001
32
		self.pll_alpha = pll_alpha = 0.001
33 33
		self.max_sync_offset = max_sync_offset = 0.01
34 34
		self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
35 35
		self.hs = hs = int(sps/2.0)
......
97 97
		# Blocks
98 98
		##################################################
99 99
		self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
100
		self.gr_moving_average_xx_0 = gr.moving_average_cc(hs, 1.0/hs, 4000)
101 100
		self.noaa_hrpt_pll_cc_0 = noaa.hrpt_pll_cc(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
102 101
		self.rx_fftsink = fftsink2.fft_sink_c(
103 102
			self.displays.GetPage(0).GetWin(),
......
153 152
		self.wxgui_scopesink2_0_0_0_0 = scopesink2.scope_sink_c(
154 153
			self.displays.GetPage(2).GetWin(),
155 154
			title="Post-SYNC",
156
			sample_rate=sample_rate,
155
			sample_rate=sym_rate,
157 156
			v_scale=0.5,
158
			t_scale=20.0/sample_rate,
157
			t_scale=20.0/sym_rate,
159 158
			ac_couple=False,
160 159
			xy_mode=True,
161 160
			num_inputs=1,
......
164 163
		self.wxgui_scopesink2_0_0_1 = scopesink2.scope_sink_c(
165 164
			self.displays.GetPage(2).GetWin(),
166 165
			title="Post-SYNC",
167
			sample_rate=sample_rate,
166
			sample_rate=sym_rate,
168 167
			v_scale=0.5,
169
			t_scale=20.0/sample_rate,
168
			t_scale=20.0/sym_rate,
170 169
			ac_couple=False,
171 170
			xy_mode=False,
172 171
			num_inputs=1,
......
178 177
		##################################################
179 178
		self.connect((self.src, 0), (self.throttle, 0))
180 179
		self.connect((self.throttle, 0), (self.agr, 0))
181
		self.connect((self.agr, 0), (self.gr_moving_average_xx_0, 0))
182 180
		self.connect((self.agr, 0), (self.rx_fftsink, 0))
183 181
		self.connect((self.agr, 0), (self.wxgui_scopesink2_0, 0))
184
		self.connect((self.gr_moving_average_xx_0, 0), (self.noaa_hrpt_pll_cc_0, 0))
185 182
		self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0, 0))
186 183
		self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0_0, 0))
187 184
		self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.sync, 0))
188 185
		self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_1, 0))
189 186
		self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
187
		self.connect((self.agr, 0), (self.noaa_hrpt_pll_cc_0, 0))
190 188

191 189
	def set_decim(self, decim):
192 190
		self.decim = decim
......
195 193
	def set_sym_rate(self, sym_rate):
196 194
		self.sym_rate = sym_rate
197 195
		self.set_sps(self.sample_rate/self.sym_rate)
196
		self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sym_rate)
197
		self.wxgui_scopesink2_0_0_1.set_sample_rate(self.sym_rate)
198 198

199 199
	def set_sample_rate(self, sample_rate):
200 200
		self.sample_rate = sample_rate
201 201
		self.set_sps(self.sample_rate/self.sym_rate)
202
		self.rx_fftsink.set_sample_rate(self.sample_rate)
203
		self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
204 202
		self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
205 203
		self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
206
		self.wxgui_scopesink2_0_0_1.set_sample_rate(self.sample_rate)
207 204
		self.wxgui_scopesink2_0_0_0.set_sample_rate(self.sample_rate)
208
		self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sample_rate)
205
		self.rx_fftsink.set_sample_rate(self.sample_rate)
206
		self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
209 207

210 208
	def set_sps(self, sps):
211 209
		self.sps = sps
......
213 211

214 212
	def set_sync_alpha(self, sync_alpha):
215 213
		self.sync_alpha = sync_alpha
216
		self._sync_alpha_slider.set_value(self.sync_alpha)
217
		self._sync_alpha_text_box.set_value(self.sync_alpha)
218 214
		self.sync.set_alpha(self.sync_alpha)
219 215
		self.sync.set_beta(self.sync_alpha**2/4.0)
216
		self._sync_alpha_slider.set_value(self.sync_alpha)
217
		self._sync_alpha_text_box.set_value(self.sync_alpha)
220 218

221 219
	def set_pll_alpha(self, pll_alpha):
222 220
		self.pll_alpha = pll_alpha
223
		self._pll_alpha_slider.set_value(self.pll_alpha)
224
		self._pll_alpha_text_box.set_value(self.pll_alpha)
225 221
		self.noaa_hrpt_pll_cc_0.set_alpha(self.pll_alpha)
226 222
		self.noaa_hrpt_pll_cc_0.set_beta(self.pll_alpha**2/4.0)
223
		self._pll_alpha_slider.set_value(self.pll_alpha)
224
		self._pll_alpha_text_box.set_value(self.pll_alpha)
227 225

228 226
	def set_max_sync_offset(self, max_sync_offset):
229 227
		self.max_sync_offset = max_sync_offset
......
235 233

236 234
	def set_hs(self, hs):
237 235
		self.hs = hs
238
		self.gr_moving_average_xx_0.set_length_and_scale(self.hs, 1.0/self.hs)
239 236

240 237
if __name__ == '__main__':
241 238
	parser = OptionParser(option_class=eng_option, usage="%prog: [options]")

Also available in: Unified diff