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