From b6101982e270948b4a3185ee745ed76bb8661552 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sat, 15 Aug 2009 12:30:45 -0700
Subject: Created new gr-noaa top-level component.
Initial work:
- Carrier recovery/mixer PLL block
- Start of POES grc pipeline, recovers Manchester symbols only
- Start of GOES grc pipeline, recovers BPSK symbols only
---
gr-noaa/grc/.gitignore | 1 +
gr-noaa/grc/Makefile.am | 30 +
gr-noaa/grc/noaa_carrier_pll_cc.xml | 34 +
gr-noaa/grc/rx_goes.grc | 1454 +++++++++++++++++++++++++++++++++++
gr-noaa/grc/rx_poes.grc | 845 ++++++++++++++++++++
5 files changed, 2364 insertions(+)
create mode 100644 gr-noaa/grc/.gitignore
create mode 100644 gr-noaa/grc/Makefile.am
create mode 100644 gr-noaa/grc/noaa_carrier_pll_cc.xml
create mode 100755 gr-noaa/grc/rx_goes.grc
create mode 100755 gr-noaa/grc/rx_poes.grc
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/.gitignore b/gr-noaa/grc/.gitignore
new file mode 100644
index 000000000..70845e08e
--- /dev/null
+++ b/gr-noaa/grc/.gitignore
@@ -0,0 +1 @@
+Makefile.in
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
new file mode 100644
index 000000000..18144040d
--- /dev/null
+++ b/gr-noaa/grc/Makefile.am
@@ -0,0 +1,30 @@
+#
+# Copyright 2009 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+include $(top_srcdir)/Makefile.common
+
+grcblocksdir = $(prefix)/share/gnuradio/grc/blocks
+dist_grcblocks_DATA = \
+ noaa_carrier_pll_cc.xml
+
+EXTRA_DIST = \
+ rx_goes.grc \
+ rx_poes.grc
diff --git a/gr-noaa/grc/noaa_carrier_pll_cc.xml b/gr-noaa/grc/noaa_carrier_pll_cc.xml
new file mode 100644
index 000000000..7b1fdc8f2
--- /dev/null
+++ b/gr-noaa/grc/noaa_carrier_pll_cc.xml
@@ -0,0 +1,34 @@
+
+
+ Carrier PLL
+ noaa_carrier_pll_cc
+ NOAA
+ from gnuradio import noaa
+ noaa.carrier_pll_cc($alpha, $beta, $max_offset)
+ set_alpha($alpha)
+ set_beta($beta)
+ set_max_offset($max_offset)
+
+ Alpha
+ alpha
+ real
+
+
+ Beta
+ beta
+ real
+
+
+ Max Offset
+ max_offset
+ real
+
+
+ in
+ complex
+
+
+ out
+ complex
+
+
diff --git a/gr-noaa/grc/rx_goes.grc b/gr-noaa/grc/rx_goes.grc
new file mode 100755
index 000000000..ebd21da40
--- /dev/null
+++ b/gr-noaa/grc/rx_goes.grc
@@ -0,0 +1,1454 @@
+
+
+ Sat Aug 1 22:58:41 2009
+
+ options
+
+ id
+ rx_goes
+
+
+ _enabled
+ True
+
+
+ title
+ USRP GOES Receiver
+
+
+ author
+
+
+
+ description
+
+
+
+ window_size
+ 4095, 4095
+
+
+ generate_options
+ wx_gui
+
+
+ category
+ Custom
+
+
+ run
+ True
+
+
+ realtime_scheduling
+
+
+
+ _coordinate
+ (10, 10)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ samp_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 64e6/decim
+
+
+ _coordinate
+ (10, 81)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ symbol_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 293e3
+
+
+ _coordinate
+ (11, 148)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sps
+
+
+ _enabled
+ True
+
+
+ value
+ samp_rate/symbol_rate
+
+
+ _coordinate
+ (12, 214)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ gain
+
+
+ _enabled
+ True
+
+
+ label
+ Gain
+
+
+ value
+ saved_gain
+
+
+ min
+ 0
+
+
+ max
+ 115
+
+
+ num_steps
+ 115
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 1, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (392, 12)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_gain
+
+
+ _enabled
+ True
+
+
+ value
+ 33
+
+
+ type
+ real
+
+
+ config_file
+ rx_goes.cfg
+
+
+ section
+ main
+
+
+ option
+ gain
+
+
+ writeback
+ gain
+
+
+ _coordinate
+ (392, 163)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_gain_mu
+
+
+ _enabled
+ True
+
+
+ value
+ 0.005
+
+
+ type
+ real
+
+
+ config_file
+ rx_goes.cfg
+
+
+ section
+ main
+
+
+ option
+ gain_mu
+
+
+ writeback
+ gain_mu
+
+
+ _coordinate
+ (835, 162)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_costas_alpha
+
+
+ _enabled
+ True
+
+
+ value
+ 0.005
+
+
+ type
+ real
+
+
+ config_file
+ rx_goes.cfg
+
+
+ section
+ main
+
+
+ option
+ costas_alpha
+
+
+ writeback
+ costas_alpha
+
+
+ _coordinate
+ (688, 162)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ gain_mu
+
+
+ _enabled
+ True
+
+
+ label
+ Gain Mu
+
+
+ value
+ saved_gain_mu
+
+
+ min
+ 0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 100
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 1, 1, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (833, 14)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ costas_alpha
+
+
+ _enabled
+ True
+
+
+ label
+ Costas Alpha
+
+
+ value
+ saved_costas_alpha
+
+
+ min
+ 0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 100
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (688, 13)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ freq
+
+
+ _enabled
+ True
+
+
+ label
+ Frequency
+
+
+ value
+ saved_freq
+
+
+ min
+ 135e6
+
+
+ max
+ 139e6
+
+
+ num_steps
+ 400
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 2, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (540, 13)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_freq
+
+
+ _enabled
+ True
+
+
+ value
+ 137e6
+
+
+ type
+ real
+
+
+ config_file
+ rx_goes.cfg
+
+
+ section
+ main
+
+
+ option
+ freq
+
+
+ writeback
+ freq
+
+
+ _coordinate
+ (541, 162)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_decim
+
+
+ _enabled
+ True
+
+
+ value
+ 160
+
+
+ type
+ int
+
+
+ config_file
+ rx_goes.cfg
+
+
+ section
+ main
+
+
+ option
+ decim
+
+
+ writeback
+ decim
+
+
+ _coordinate
+ (245, 161)
+
+
+ _rotation
+ 0
+
+
+
+ variable_text_box
+
+ id
+ decim
+
+
+ _enabled
+ True
+
+
+ label
+ Decim
+
+
+ value
+ saved_decim
+
+
+ converver
+ int_converter
+
+
+ formatter
+ None
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (243, 13)
+
+
+ _rotation
+ 0
+
+
+
+ notebook
+
+ id
+ displays
+
+
+ _enabled
+ True
+
+
+ style
+ wx.NB_TOP
+
+
+ labels
+ ['USRP RX', 'Costas Output']
+
+
+ grid_pos
+ 2, 0, 1, 3
+
+
+ notebook
+
+
+
+ _coordinate
+ (12, 287)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Waveform
+
+
+ samp_rate
+ samp_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/samp_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (434, 551)
+
+
+ _rotation
+ 0
+
+
+
+ gr_agc_xx
+
+ id
+ gr_agc_xx_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ rate
+ 1e-6
+
+
+ reference
+ 1.0
+
+
+ gain
+ 1.0/32767.0
+
+
+ max_gain
+ 1.0
+
+
+ _coordinate
+ (261, 493)
+
+
+ _rotation
+ 0
+
+
+
+ root_raised_cosine_filter
+
+ id
+ root_raised_cosine_filter_0
+
+
+ _enabled
+ False
+
+
+ type
+ fir_filter_ccf
+
+
+ decim
+ 1
+
+
+ interp
+ 1
+
+
+ gain
+ 1
+
+
+ samp_rate
+ samp_rate
+
+
+ sym_rate
+ symbol_rate
+
+
+ alpha
+ 0.5
+
+
+ ntaps
+ 50
+
+
+ _coordinate
+ (618, 373)
+
+
+ _rotation
+ 0
+
+
+
+ usrp_simple_source_x
+
+ id
+ usrp_simple_source_x_0
+
+
+ _enabled
+ False
+
+
+ type
+ complex
+
+
+ format
+
+
+
+ which
+ 0
+
+
+ decimation
+ decim
+
+
+ frequency
+ freq
+
+
+ lo_offset
+ float('inf')
+
+
+ gain
+ gain
+
+
+ side
+ B
+
+
+ rx_ant
+ RXA
+
+
+ hb_filters
+
+
+
+ _coordinate
+ (11, 477)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_fftsink2
+
+ id
+ wxgui_fftsink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Spectrum
+
+
+ samp_rate
+ samp_rate
+
+
+ baseband_freq
+ freq
+
+
+ y_per_div
+ 10
+
+
+ y_divs
+ 10
+
+
+ ref_level
+ 50
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
+ False
+
+
+ avg_alpha
+ 0
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (434, 337)
+
+
+ _rotation
+ 0
+
+
+
+ gr_throttle
+
+ id
+ gr_throttle_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ samples_per_second
+ samp_rate
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (181, 663)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_1
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Scope Plot
+
+
+ samp_rate
+ samp_rate
+
+
+ v_scale
+ 0.4
+
+
+ t_scale
+ 20.0/samp_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (1126, 251)
+
+
+ _rotation
+ 0
+
+
+
+ gr_probe_mpsk_snr_c
+
+ id
+ gr_probe_mpsk_snr_c_0
+
+
+ _enabled
+ True
+
+
+ type
+ snr
+
+
+ alpha
+ 0.0001
+
+
+ probe_rate
+ 10
+
+
+ _coordinate
+ (1126, 723)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_numbersink2
+
+ id
+ wxgui_numbersink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ float
+
+
+ title
+ SNR
+
+
+ units
+ dB
+
+
+ samp_rate
+ 10
+
+
+ min_value
+ 0
+
+
+ max_value
+ 30
+
+
+ factor
+ 1.0
+
+
+ decimal_places
+ 1
+
+
+ ref_level
+ 0
+
+
+ number_rate
+ 10
+
+
+ peak_hold
+ False
+
+
+ average
+ False
+
+
+ avg_alpha
+ 0
+
+
+ show_gauge
+ True
+
+
+ grid_pos
+ 2, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (1335, 651)
+
+
+ _rotation
+ 0
+
+
+
+ gr_mpsk_receiver_cc
+
+ id
+ gr_mpsk_receiver_cc_0
+
+
+ _enabled
+ True
+
+
+ M
+ 2
+
+
+ theta
+ 0
+
+
+ alpha
+ costas_alpha
+
+
+ beta
+ costas_alpha*costas_alpha/4.0
+
+
+ fmin
+ -0.05
+
+
+ fmax
+ 0.05
+
+
+ mu
+ 0.5
+
+
+ gain_mu
+ gain_mu
+
+
+ omega
+ sps
+
+
+ gain_omega
+ gain_mu*gain_mu/4.0
+
+
+ omega_relative_limit
+ 0.05
+
+
+ _coordinate
+ (881, 437)
+
+
+ _rotation
+ 0
+
+
+
+ gr_complex_to_real
+
+ id
+ gr_complex_to_real_0
+
+
+ _enabled
+ True
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (1133, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_char_to_float
+
+ id
+ gr_char_to_float_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1523, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_binary_slicer_fb
+
+ id
+ gr_binary_slicer_fb_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1343, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_add_const_vxx
+
+ id
+ gr_add_const_vxx_0
+
+
+ _enabled
+ True
+
+
+ type
+ float
+
+
+ const
+ 48.0
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (1707, 517)
+
+
+ _rotation
+ 0
+
+
+
+ gr_float_to_char
+
+ id
+ gr_float_to_char_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1878, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_sink
+
+ id
+ gr_file_sink_0
+
+
+ _enabled
+ True
+
+
+ file
+ bits.dat
+
+
+ type
+ byte
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (2059, 517)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_source
+
+ id
+ gr_file_source_0
+
+
+ _enabled
+ True
+
+
+ file
+ lrit.dat
+
+
+ type
+ complex
+
+
+ repeat
+ False
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (11, 655)
+
+
+ _rotation
+ 0
+
+
+
+ usrp_simple_source_x_0
+ gr_agc_xx_0
+ 0
+ 0
+
+
+ gr_agc_xx_0
+ wxgui_scopesink2_0
+ 0
+ 0
+
+
+ gr_file_source_0
+ gr_throttle_0
+ 0
+ 0
+
+
+ gr_throttle_0
+ gr_agc_xx_0
+ 0
+ 0
+
+
+ gr_probe_mpsk_snr_c_0
+ wxgui_numbersink2_0
+ 0
+ 0
+
+
+ gr_mpsk_receiver_cc_0
+ gr_probe_mpsk_snr_c_0
+ 0
+ 0
+
+
+ gr_agc_xx_0
+ gr_mpsk_receiver_cc_0
+ 0
+ 0
+
+
+ gr_mpsk_receiver_cc_0
+ wxgui_scopesink2_1
+ 0
+ 0
+
+
+ gr_agc_xx_0
+ wxgui_fftsink2_0
+ 0
+ 0
+
+
+ gr_mpsk_receiver_cc_0
+ gr_complex_to_real_0
+ 0
+ 0
+
+
+ gr_complex_to_real_0
+ gr_binary_slicer_fb_0
+ 0
+ 0
+
+
+ gr_binary_slicer_fb_0
+ gr_char_to_float_0
+ 0
+ 0
+
+
+ gr_char_to_float_0
+ gr_add_const_vxx_0
+ 0
+ 0
+
+
+ gr_add_const_vxx_0
+ gr_float_to_char_0
+ 0
+ 0
+
+
+ gr_float_to_char_0
+ gr_file_sink_0
+ 0
+ 0
+
+
diff --git a/gr-noaa/grc/rx_poes.grc b/gr-noaa/grc/rx_poes.grc
new file mode 100755
index 000000000..f3a483e66
--- /dev/null
+++ b/gr-noaa/grc/rx_poes.grc
@@ -0,0 +1,845 @@
+
+
+ Sun Aug 9 17:39:05 2009
+
+ options
+
+ id
+ rx_poes
+
+
+ _enabled
+ True
+
+
+ title
+
+
+
+ author
+
+
+
+ description
+
+
+
+ window_size
+ 4096,4096
+
+
+ generate_options
+ wx_gui
+
+
+ category
+ Custom
+
+
+ run
+ True
+
+
+ realtime_scheduling
+
+
+
+ _coordinate
+ (10, 10)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ decim
+
+
+ _enabled
+ True
+
+
+ value
+ 16
+
+
+ _coordinate
+ (97, 10)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sym_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 600*1109
+
+
+ _coordinate
+ (286, 10)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sample_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 64e6/decim
+
+
+ _coordinate
+ (176, 12)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sps
+
+
+ _enabled
+ True
+
+
+ value
+ sample_rate/sym_rate
+
+
+ _coordinate
+ (382, 14)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ hs
+
+
+ _enabled
+ True
+
+
+ value
+ int(sps/2.0)
+
+
+ _coordinate
+ (492, 16)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ mf_taps
+
+
+ _enabled
+ True
+
+
+ value
+ [0.5/hs,]*hs+[-0.5/hs,]*hs
+
+
+ _coordinate
+ (573, 15)
+
+
+ _rotation
+ 0
+
+
+
+ notebook
+
+ id
+ displays
+
+
+ _enabled
+ True
+
+
+ style
+ wx.NB_TOP
+
+
+ labels
+ ['RX','Manchester']
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (9, 99)
+
+
+ _rotation
+ 0
+
+
+
+ gr_throttle
+
+ id
+ throttle
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ samples_per_second
+ sample_rate
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (79, 518)
+
+
+ _rotation
+ 0
+
+
+
+ import
+
+ id
+ import_0
+
+
+ _enabled
+ True
+
+
+ import
+ import math
+
+
+ _coordinate
+ (9, 202)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_source
+
+ id
+ src
+
+
+ _enabled
+ True
+
+
+ file
+ /home/jcorgan/test/poes/poes-d16.dat
+
+
+ type
+ complex
+
+
+ repeat
+ True
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (34, 423)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ RX Waveform
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (438, 612)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ max_offset
+
+
+ _enabled
+ True
+
+
+ value
+ 2*math.pi*100e3/sample_rate
+
+
+ _coordinate
+ (307, 93)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_fftsink2
+
+ id
+ rx_fftsink
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ RX Spectrum
+
+
+ samp_rate
+ sample_rate
+
+
+ baseband_freq
+ 1698e6
+
+
+ y_per_div
+ 5
+
+
+ y_divs
+ 8
+
+
+ ref_level
+ 20
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
+ True
+
+
+ avg_alpha
+ 0.1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (438, 244)
+
+
+ _rotation
+ 0
+
+
+
+ gr_agc_xx
+
+ id
+ agr
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ rate
+ 1e-6
+
+
+ reference
+ 1.0
+
+
+ gain
+ 1.0
+
+
+ max_gain
+ 1.0
+
+
+ _coordinate
+ (270, 494)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_fftsink2
+
+ id
+ rx_fftsink_0
+
+
+ _enabled
+ True
+
+
+ type
+ float
+
+
+ title
+ Baseband Spectrum
+
+
+ samp_rate
+ sample_rate
+
+
+ baseband_freq
+ 0
+
+
+ y_per_div
+ 10
+
+
+ y_divs
+ 8
+
+
+ ref_level
+ 10
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
+ True
+
+
+ avg_alpha
+ 0.1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (1069, 243)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0_0
+
+
+ _enabled
+ True
+
+
+ type
+ float
+
+
+ title
+ Baseband Waveform
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (1069, 624)
+
+
+ _rotation
+ 0
+
+
+
+ gr_moving_average_xx
+
+ id
+ gr_moving_average_xx_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ length
+ hs
+
+
+ scale
+ 1.0/hs
+
+
+ max_iter
+ 4000
+
+
+ _coordinate
+ (437, 502)
+
+
+ _rotation
+ 0
+
+
+
+ gr_complex_to_imag
+
+ id
+ gr_complex_to_imag_0
+
+
+ _enabled
+ True
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (866, 522)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ pll_alpha
+
+
+ _enabled
+ True
+
+
+ label
+ PLL Alpha
+
+
+ value
+ 0.005
+
+
+ min
+ 0.0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 500
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (157, 94)
+
+
+ _rotation
+ 0
+
+
+
+ noaa_carrier_pll_cc
+
+ id
+ noaa_carrier_pll_cc_0
+
+
+ _enabled
+ True
+
+
+ alpha
+ pll_alpha
+
+
+ beta
+ pll_alpha**2/4.0
+
+
+ max_offset
+ max_offset
+
+
+ _coordinate
+ (645, 502)
+
+
+ _rotation
+ 0
+
+
+
+ agr
+ wxgui_scopesink2_0
+ 0
+ 0
+
+
+ agr
+ rx_fftsink
+ 0
+ 0
+
+
+ throttle
+ agr
+ 0
+ 0
+
+
+ src
+ throttle
+ 0
+ 0
+
+
+ agr
+ gr_moving_average_xx_0
+ 0
+ 0
+
+
+ gr_complex_to_imag_0
+ rx_fftsink_0
+ 0
+ 0
+
+
+ gr_complex_to_imag_0
+ wxgui_scopesink2_0_0
+ 0
+ 0
+
+
+ gr_moving_average_xx_0
+ noaa_carrier_pll_cc_0
+ 0
+ 0
+
+
+ noaa_carrier_pll_cc_0
+ gr_complex_to_imag_0
+ 0
+ 0
+
+
--
cgit
From a02a0e43d49d3bbb9a76ab8333f1bf8e25c48556 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sat, 22 Aug 2009 13:10:08 -0700
Subject: Update rx_poes script to filter prior to PLL.
---
gr-noaa/grc/rx_poes.grc | 407 ++++++++++++++++++++++--------------------------
1 file changed, 184 insertions(+), 223 deletions(-)
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/rx_poes.grc b/gr-noaa/grc/rx_poes.grc
index f3a483e66..1001049a2 100755
--- a/gr-noaa/grc/rx_poes.grc
+++ b/gr-noaa/grc/rx_poes.grc
@@ -1,6 +1,6 @@
- Sun Aug 9 17:39:05 2009
+ Sat Aug 22 13:06:22 2009
options
@@ -167,11 +167,34 @@
0
+
+ import
+
+ id
+ import_0
+
+
+ _enabled
+ True
+
+
+ import
+ import math
+
+
+ _coordinate
+ (9, 202)
+
+
+ _rotation
+ 0
+
+
variable
id
- mf_taps
+ max_offset
_enabled
@@ -179,11 +202,11 @@
value
- [0.5/hs,]*hs+[-0.5/hs,]*hs
+ 2*math.pi*100e3/sample_rate
_coordinate
- (573, 15)
+ (342, 95)
_rotation
@@ -191,26 +214,46 @@
- notebook
+ variable_slider
id
- displays
+ pll_alpha
_enabled
True
+
+ label
+ PLL Alpha
+
+
+ value
+ 0.005
+
+
+ min
+ 0.0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 500
+
style
- wx.NB_TOP
+ wx.SL_HORIZONTAL
- labels
- ['RX','Manchester']
+ converver
+ float_converter
grid_pos
- 1, 0, 1, 1
+ 0, 0, 1, 1
notebook
@@ -218,7 +261,7 @@
_coordinate
- (9, 99)
+ (192, 100)
_rotation
@@ -257,22 +300,38 @@
- import
+ gr_agc_xx
id
- import_0
+ agr
_enabled
True
- import
- import math
+ type
+ complex
+
+
+ rate
+ 1e-6
+
+
+ reference
+ 1.0
+
+
+ gain
+ 1.0
+
+
+ max_gain
+ 1.0
_coordinate
- (9, 202)
+ (261, 494)
_rotation
@@ -280,34 +339,65 @@
- gr_file_source
+ gr_moving_average_xx
id
- src
+ gr_moving_average_xx_0
_enabled
True
-
- file
- /home/jcorgan/test/poes/poes-d16.dat
-
type
complex
- repeat
+ length
+ hs
+
+
+ scale
+ 1.0/hs
+
+
+ max_iter
+ 4000
+
+
+ _coordinate
+ (429, 502)
+
+
+ _rotation
+ 0
+
+
+
+ noaa_carrier_pll_cc
+
+ id
+ noaa_carrier_pll_cc_0
+
+
+ _enabled
True
- vlen
- 1
+ alpha
+ pll_alpha
+
+
+ beta
+ pll_alpha**2/4.0
+
+
+ max_offset
+ max_offset
_coordinate
- (34, 423)
+ (636, 502)
_rotation
@@ -366,30 +456,7 @@
_coordinate
- (438, 612)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- max_offset
-
-
- _enabled
- True
-
-
- value
- 2*math.pi*100e3/sample_rate
-
-
- _coordinate
- (307, 93)
+ (433, 612)
_rotation
@@ -464,7 +531,7 @@
_coordinate
- (438, 244)
+ (433, 241)
_rotation
@@ -472,38 +539,22 @@
- gr_agc_xx
+ gr_complex_to_imag
id
- agr
+ gr_complex_to_imag_0
_enabled
True
- type
- complex
-
-
- rate
- 1e-6
-
-
- reference
- 1.0
-
-
- gain
- 1.0
-
-
- max_gain
- 1.0
+ vlen
+ 1
_coordinate
- (270, 494)
+ (877, 522)
_rotation
@@ -511,74 +562,34 @@
- wxgui_fftsink2
+ notebook
id
- rx_fftsink_0
+ displays
_enabled
True
- type
- float
-
-
- title
- Baseband Spectrum
-
-
- samp_rate
- sample_rate
-
-
- baseband_freq
- 0
-
-
- y_per_div
- 10
-
-
- y_divs
- 8
-
-
- ref_level
- 10
-
-
- fft_size
- 1024
-
-
- fft_rate
- 30
-
-
- peak_hold
- False
-
-
- average
- True
+ style
+ wx.NB_TOP
- avg_alpha
- 0.1
+ labels
+ ['RX','Baseband']
grid_pos
- 0, 0, 1, 1
+ 1, 0, 1, 1
notebook
- displays, 1
+
_coordinate
- (1069, 243)
+ (9, 99)
_rotation
@@ -589,7 +600,7 @@
wxgui_scopesink2
id
- wxgui_scopesink2_0_0
+ wxgui_scopesink2_0_1_0_1
_enabled
@@ -601,7 +612,7 @@
title
- Baseband Waveform
+ Manchester Symbols
samp_rate
@@ -609,11 +620,11 @@
v_scale
- 0
+ 0.5
t_scale
- 20.0/sample_rate
+ 5.0/sym_rate
ac_couple
@@ -637,18 +648,18 @@
_coordinate
- (1069, 624)
+ (856, 343)
_rotation
- 0
+ 180
- gr_moving_average_xx
+ wxgui_scopesink2
id
- gr_moving_average_xx_0
+ wxgui_scopesink2_0_0
_enabled
@@ -659,129 +670,79 @@
complex
- length
- hs
-
-
- scale
- 1.0/hs
+ title
+ Post-Filter/PLL
- max_iter
- 4000
+ samp_rate
+ sample_rate
- _coordinate
- (437, 502)
+ v_scale
+ 0.5
- _rotation
- 0
+ t_scale
+ 20.0/sample_rate
-
-
- gr_complex_to_imag
- id
- gr_complex_to_imag_0
+ ac_couple
+ False
- _enabled
- True
+ xy_mode
+ False
- vlen
+ num_inputs
1
-
- _coordinate
- (866, 522)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- pll_alpha
-
-
- _enabled
- True
-
-
- label
- PLL Alpha
-
-
- value
- 0.005
-
-
- min
- 0.0
-
-
- max
- 0.5
-
-
- num_steps
- 500
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
grid_pos
0, 0, 1, 1
notebook
-
+ displays, 1
_coordinate
- (157, 94)
+ (634, 335)
_rotation
- 0
+ 180
- noaa_carrier_pll_cc
+ gr_file_source
id
- noaa_carrier_pll_cc_0
+ src
_enabled
True
- alpha
- pll_alpha
+ file
+ poes-d16.dat
- beta
- pll_alpha**2/4.0
+ type
+ complex
- max_offset
- max_offset
+ repeat
+ True
+
+
+ vlen
+ 1
_coordinate
- (645, 502)
+ (34, 423)
_rotation
@@ -789,14 +750,14 @@
- agr
- wxgui_scopesink2_0
+ src
+ throttle
0
0
- agr
- rx_fftsink
+ noaa_carrier_pll_cc_0
+ gr_complex_to_imag_0
0
0
@@ -806,12 +767,6 @@
0
0
-
- src
- throttle
- 0
- 0
-
agr
gr_moving_average_xx_0
@@ -819,14 +774,14 @@
0
- gr_complex_to_imag_0
- rx_fftsink_0
+ agr
+ rx_fftsink
0
0
- gr_complex_to_imag_0
- wxgui_scopesink2_0_0
+ agr
+ wxgui_scopesink2_0
0
0
@@ -838,7 +793,13 @@
noaa_carrier_pll_cc_0
- gr_complex_to_imag_0
+ wxgui_scopesink2_0_0
+ 0
+ 0
+
+
+ gr_complex_to_imag_0
+ wxgui_scopesink2_0_1_0_1
0
0
--
cgit
From 6b6a5522e0b1d12ef5d697b1067a87dfe584cec6 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sat, 29 Aug 2009 11:12:37 -0700
Subject: Work in progress, incomplete
* Renamed noaa.carrier_pll_cc to noaa.hrpt_pll_cc
* Added nop noaa.hrpt_sync_cc
* Renamed grc apps to use usrp_ prefix and protocol name
* Installed grc generated scripts to path
---
gr-noaa/grc/Makefile.am | 12 +-
gr-noaa/grc/noaa_carrier_pll_cc.xml | 34 -
gr-noaa/grc/noaa_hrpt_pll_cc.xml | 34 +
gr-noaa/grc/noaa_hrpt_sync_cc.xml | 39 +
gr-noaa/grc/rx_goes.grc | 1454 ----------------------------------
gr-noaa/grc/rx_poes.grc | 806 -------------------
gr-noaa/grc/usrp_rx_hrpt.grc | 1026 ++++++++++++++++++++++++
gr-noaa/grc/usrp_rx_hrpt.py | 245 ++++++
gr-noaa/grc/usrp_rx_lrit.grc | 1477 +++++++++++++++++++++++++++++++++++
gr-noaa/grc/usrp_rx_lrit.py | 399 ++++++++++
10 files changed, 3229 insertions(+), 2297 deletions(-)
delete mode 100644 gr-noaa/grc/noaa_carrier_pll_cc.xml
create mode 100644 gr-noaa/grc/noaa_hrpt_pll_cc.xml
create mode 100644 gr-noaa/grc/noaa_hrpt_sync_cc.xml
delete mode 100755 gr-noaa/grc/rx_goes.grc
delete mode 100755 gr-noaa/grc/rx_poes.grc
create mode 100644 gr-noaa/grc/usrp_rx_hrpt.grc
create mode 100755 gr-noaa/grc/usrp_rx_hrpt.py
create mode 100644 gr-noaa/grc/usrp_rx_lrit.grc
create mode 100755 gr-noaa/grc/usrp_rx_lrit.py
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
index 18144040d..c75529778 100644
--- a/gr-noaa/grc/Makefile.am
+++ b/gr-noaa/grc/Makefile.am
@@ -22,9 +22,15 @@
include $(top_srcdir)/Makefile.common
grcblocksdir = $(prefix)/share/gnuradio/grc/blocks
+
+dist_bin_SCRIPTS = \
+ usrp_rx_hrpt.py \
+ usrp_rx_lrit.py
+
dist_grcblocks_DATA = \
- noaa_carrier_pll_cc.xml
+ noaa_hrpt_pll_cc.xml \
+ noaa_hrpt_sync_cc.xml
EXTRA_DIST = \
- rx_goes.grc \
- rx_poes.grc
+ usrp_rx_hrpt.grc \
+ usrp_rx_lrit.grc
diff --git a/gr-noaa/grc/noaa_carrier_pll_cc.xml b/gr-noaa/grc/noaa_carrier_pll_cc.xml
deleted file mode 100644
index 7b1fdc8f2..000000000
--- a/gr-noaa/grc/noaa_carrier_pll_cc.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- Carrier PLL
- noaa_carrier_pll_cc
- NOAA
- from gnuradio import noaa
- noaa.carrier_pll_cc($alpha, $beta, $max_offset)
- set_alpha($alpha)
- set_beta($beta)
- set_max_offset($max_offset)
-
- Alpha
- alpha
- real
-
-
- Beta
- beta
- real
-
-
- Max Offset
- max_offset
- real
-
-
- in
- complex
-
-
- out
- complex
-
-
diff --git a/gr-noaa/grc/noaa_hrpt_pll_cc.xml b/gr-noaa/grc/noaa_hrpt_pll_cc.xml
new file mode 100644
index 000000000..e56e0b056
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_pll_cc.xml
@@ -0,0 +1,34 @@
+
+
+ HRPT PLL
+ noaa_hrpt_pll_cc
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_pll_cc($alpha, $beta, $max_offset)
+ set_alpha($alpha)
+ set_beta($beta)
+ set_max_offset($max_offset)
+
+ Alpha
+ alpha
+ real
+
+
+ Beta
+ beta
+ real
+
+
+ Max Offset
+ max_offset
+ real
+
+
+ in
+ complex
+
+
+ out
+ complex
+
+
diff --git a/gr-noaa/grc/noaa_hrpt_sync_cc.xml b/gr-noaa/grc/noaa_hrpt_sync_cc.xml
new file mode 100644
index 000000000..d311aa946
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_sync_cc.xml
@@ -0,0 +1,39 @@
+
+
+ HRPT SYNC
+ noaa_hrpt_sync_cc
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_sync_cc($alpha, $beta, $sps, $max_offset)
+ set_alpha($alpha)
+ set_beta($beta)
+ set_max_offset($max_offset)
+
+ Alpha
+ alpha
+ real
+
+
+ Beta
+ beta
+ real
+
+
+ Samples/Symbol
+ sps
+ real
+
+
+ Max Offset
+ max_offset
+ real
+
+
+ in
+ complex
+
+
+ out
+ complex
+
+
diff --git a/gr-noaa/grc/rx_goes.grc b/gr-noaa/grc/rx_goes.grc
deleted file mode 100755
index ebd21da40..000000000
--- a/gr-noaa/grc/rx_goes.grc
+++ /dev/null
@@ -1,1454 +0,0 @@
-
-
- Sat Aug 1 22:58:41 2009
-
- options
-
- id
- rx_goes
-
-
- _enabled
- True
-
-
- title
- USRP GOES Receiver
-
-
- author
-
-
-
- description
-
-
-
- window_size
- 4095, 4095
-
-
- generate_options
- wx_gui
-
-
- category
- Custom
-
-
- run
- True
-
-
- realtime_scheduling
-
-
-
- _coordinate
- (10, 10)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- samp_rate
-
-
- _enabled
- True
-
-
- value
- 64e6/decim
-
-
- _coordinate
- (10, 81)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- symbol_rate
-
-
- _enabled
- True
-
-
- value
- 293e3
-
-
- _coordinate
- (11, 148)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sps
-
-
- _enabled
- True
-
-
- value
- samp_rate/symbol_rate
-
-
- _coordinate
- (12, 214)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- gain
-
-
- _enabled
- True
-
-
- label
- Gain
-
-
- value
- saved_gain
-
-
- min
- 0
-
-
- max
- 115
-
-
- num_steps
- 115
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 1, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (392, 12)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_gain
-
-
- _enabled
- True
-
-
- value
- 33
-
-
- type
- real
-
-
- config_file
- rx_goes.cfg
-
-
- section
- main
-
-
- option
- gain
-
-
- writeback
- gain
-
-
- _coordinate
- (392, 163)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_gain_mu
-
-
- _enabled
- True
-
-
- value
- 0.005
-
-
- type
- real
-
-
- config_file
- rx_goes.cfg
-
-
- section
- main
-
-
- option
- gain_mu
-
-
- writeback
- gain_mu
-
-
- _coordinate
- (835, 162)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_costas_alpha
-
-
- _enabled
- True
-
-
- value
- 0.005
-
-
- type
- real
-
-
- config_file
- rx_goes.cfg
-
-
- section
- main
-
-
- option
- costas_alpha
-
-
- writeback
- costas_alpha
-
-
- _coordinate
- (688, 162)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- gain_mu
-
-
- _enabled
- True
-
-
- label
- Gain Mu
-
-
- value
- saved_gain_mu
-
-
- min
- 0
-
-
- max
- 0.5
-
-
- num_steps
- 100
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 1, 1, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (833, 14)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- costas_alpha
-
-
- _enabled
- True
-
-
- label
- Costas Alpha
-
-
- value
- saved_costas_alpha
-
-
- min
- 0
-
-
- max
- 0.5
-
-
- num_steps
- 100
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (688, 13)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- freq
-
-
- _enabled
- True
-
-
- label
- Frequency
-
-
- value
- saved_freq
-
-
- min
- 135e6
-
-
- max
- 139e6
-
-
- num_steps
- 400
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 2, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (540, 13)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_freq
-
-
- _enabled
- True
-
-
- value
- 137e6
-
-
- type
- real
-
-
- config_file
- rx_goes.cfg
-
-
- section
- main
-
-
- option
- freq
-
-
- writeback
- freq
-
-
- _coordinate
- (541, 162)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_decim
-
-
- _enabled
- True
-
-
- value
- 160
-
-
- type
- int
-
-
- config_file
- rx_goes.cfg
-
-
- section
- main
-
-
- option
- decim
-
-
- writeback
- decim
-
-
- _coordinate
- (245, 161)
-
-
- _rotation
- 0
-
-
-
- variable_text_box
-
- id
- decim
-
-
- _enabled
- True
-
-
- label
- Decim
-
-
- value
- saved_decim
-
-
- converver
- int_converter
-
-
- formatter
- None
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (243, 13)
-
-
- _rotation
- 0
-
-
-
- notebook
-
- id
- displays
-
-
- _enabled
- True
-
-
- style
- wx.NB_TOP
-
-
- labels
- ['USRP RX', 'Costas Output']
-
-
- grid_pos
- 2, 0, 1, 3
-
-
- notebook
-
-
-
- _coordinate
- (12, 287)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Waveform
-
-
- samp_rate
- samp_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 20.0/samp_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- True
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (434, 551)
-
-
- _rotation
- 0
-
-
-
- gr_agc_xx
-
- id
- gr_agc_xx_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- rate
- 1e-6
-
-
- reference
- 1.0
-
-
- gain
- 1.0/32767.0
-
-
- max_gain
- 1.0
-
-
- _coordinate
- (261, 493)
-
-
- _rotation
- 0
-
-
-
- root_raised_cosine_filter
-
- id
- root_raised_cosine_filter_0
-
-
- _enabled
- False
-
-
- type
- fir_filter_ccf
-
-
- decim
- 1
-
-
- interp
- 1
-
-
- gain
- 1
-
-
- samp_rate
- samp_rate
-
-
- sym_rate
- symbol_rate
-
-
- alpha
- 0.5
-
-
- ntaps
- 50
-
-
- _coordinate
- (618, 373)
-
-
- _rotation
- 0
-
-
-
- usrp_simple_source_x
-
- id
- usrp_simple_source_x_0
-
-
- _enabled
- False
-
-
- type
- complex
-
-
- format
-
-
-
- which
- 0
-
-
- decimation
- decim
-
-
- frequency
- freq
-
-
- lo_offset
- float('inf')
-
-
- gain
- gain
-
-
- side
- B
-
-
- rx_ant
- RXA
-
-
- hb_filters
-
-
-
- _coordinate
- (11, 477)
-
-
- _rotation
- 0
-
-
-
- wxgui_fftsink2
-
- id
- wxgui_fftsink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Spectrum
-
-
- samp_rate
- samp_rate
-
-
- baseband_freq
- freq
-
-
- y_per_div
- 10
-
-
- y_divs
- 10
-
-
- ref_level
- 50
-
-
- fft_size
- 1024
-
-
- fft_rate
- 30
-
-
- peak_hold
- False
-
-
- average
- False
-
-
- avg_alpha
- 0
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (434, 337)
-
-
- _rotation
- 0
-
-
-
- gr_throttle
-
- id
- gr_throttle_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- samples_per_second
- samp_rate
-
-
- vlen
- 1
-
-
- _coordinate
- (181, 663)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_1
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Scope Plot
-
-
- samp_rate
- samp_rate
-
-
- v_scale
- 0.4
-
-
- t_scale
- 20.0/samp_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- True
-
-
- num_inputs
- 1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (1126, 251)
-
-
- _rotation
- 0
-
-
-
- gr_probe_mpsk_snr_c
-
- id
- gr_probe_mpsk_snr_c_0
-
-
- _enabled
- True
-
-
- type
- snr
-
-
- alpha
- 0.0001
-
-
- probe_rate
- 10
-
-
- _coordinate
- (1126, 723)
-
-
- _rotation
- 0
-
-
-
- wxgui_numbersink2
-
- id
- wxgui_numbersink2_0
-
-
- _enabled
- True
-
-
- type
- float
-
-
- title
- SNR
-
-
- units
- dB
-
-
- samp_rate
- 10
-
-
- min_value
- 0
-
-
- max_value
- 30
-
-
- factor
- 1.0
-
-
- decimal_places
- 1
-
-
- ref_level
- 0
-
-
- number_rate
- 10
-
-
- peak_hold
- False
-
-
- average
- False
-
-
- avg_alpha
- 0
-
-
- show_gauge
- True
-
-
- grid_pos
- 2, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (1335, 651)
-
-
- _rotation
- 0
-
-
-
- gr_mpsk_receiver_cc
-
- id
- gr_mpsk_receiver_cc_0
-
-
- _enabled
- True
-
-
- M
- 2
-
-
- theta
- 0
-
-
- alpha
- costas_alpha
-
-
- beta
- costas_alpha*costas_alpha/4.0
-
-
- fmin
- -0.05
-
-
- fmax
- 0.05
-
-
- mu
- 0.5
-
-
- gain_mu
- gain_mu
-
-
- omega
- sps
-
-
- gain_omega
- gain_mu*gain_mu/4.0
-
-
- omega_relative_limit
- 0.05
-
-
- _coordinate
- (881, 437)
-
-
- _rotation
- 0
-
-
-
- gr_complex_to_real
-
- id
- gr_complex_to_real_0
-
-
- _enabled
- True
-
-
- vlen
- 1
-
-
- _coordinate
- (1133, 521)
-
-
- _rotation
- 0
-
-
-
- gr_char_to_float
-
- id
- gr_char_to_float_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1523, 521)
-
-
- _rotation
- 0
-
-
-
- gr_binary_slicer_fb
-
- id
- gr_binary_slicer_fb_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1343, 521)
-
-
- _rotation
- 0
-
-
-
- gr_add_const_vxx
-
- id
- gr_add_const_vxx_0
-
-
- _enabled
- True
-
-
- type
- float
-
-
- const
- 48.0
-
-
- vlen
- 1
-
-
- _coordinate
- (1707, 517)
-
-
- _rotation
- 0
-
-
-
- gr_float_to_char
-
- id
- gr_float_to_char_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1878, 521)
-
-
- _rotation
- 0
-
-
-
- gr_file_sink
-
- id
- gr_file_sink_0
-
-
- _enabled
- True
-
-
- file
- bits.dat
-
-
- type
- byte
-
-
- vlen
- 1
-
-
- _coordinate
- (2059, 517)
-
-
- _rotation
- 0
-
-
-
- gr_file_source
-
- id
- gr_file_source_0
-
-
- _enabled
- True
-
-
- file
- lrit.dat
-
-
- type
- complex
-
-
- repeat
- False
-
-
- vlen
- 1
-
-
- _coordinate
- (11, 655)
-
-
- _rotation
- 0
-
-
-
- usrp_simple_source_x_0
- gr_agc_xx_0
- 0
- 0
-
-
- gr_agc_xx_0
- wxgui_scopesink2_0
- 0
- 0
-
-
- gr_file_source_0
- gr_throttle_0
- 0
- 0
-
-
- gr_throttle_0
- gr_agc_xx_0
- 0
- 0
-
-
- gr_probe_mpsk_snr_c_0
- wxgui_numbersink2_0
- 0
- 0
-
-
- gr_mpsk_receiver_cc_0
- gr_probe_mpsk_snr_c_0
- 0
- 0
-
-
- gr_agc_xx_0
- gr_mpsk_receiver_cc_0
- 0
- 0
-
-
- gr_mpsk_receiver_cc_0
- wxgui_scopesink2_1
- 0
- 0
-
-
- gr_agc_xx_0
- wxgui_fftsink2_0
- 0
- 0
-
-
- gr_mpsk_receiver_cc_0
- gr_complex_to_real_0
- 0
- 0
-
-
- gr_complex_to_real_0
- gr_binary_slicer_fb_0
- 0
- 0
-
-
- gr_binary_slicer_fb_0
- gr_char_to_float_0
- 0
- 0
-
-
- gr_char_to_float_0
- gr_add_const_vxx_0
- 0
- 0
-
-
- gr_add_const_vxx_0
- gr_float_to_char_0
- 0
- 0
-
-
- gr_float_to_char_0
- gr_file_sink_0
- 0
- 0
-
-
diff --git a/gr-noaa/grc/rx_poes.grc b/gr-noaa/grc/rx_poes.grc
deleted file mode 100755
index 1001049a2..000000000
--- a/gr-noaa/grc/rx_poes.grc
+++ /dev/null
@@ -1,806 +0,0 @@
-
-
- Sat Aug 22 13:06:22 2009
-
- options
-
- id
- rx_poes
-
-
- _enabled
- True
-
-
- title
-
-
-
- author
-
-
-
- description
-
-
-
- window_size
- 4096,4096
-
-
- generate_options
- wx_gui
-
-
- category
- Custom
-
-
- run
- True
-
-
- realtime_scheduling
-
-
-
- _coordinate
- (10, 10)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- decim
-
-
- _enabled
- True
-
-
- value
- 16
-
-
- _coordinate
- (97, 10)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sym_rate
-
-
- _enabled
- True
-
-
- value
- 600*1109
-
-
- _coordinate
- (286, 10)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sample_rate
-
-
- _enabled
- True
-
-
- value
- 64e6/decim
-
-
- _coordinate
- (176, 12)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sps
-
-
- _enabled
- True
-
-
- value
- sample_rate/sym_rate
-
-
- _coordinate
- (382, 14)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- hs
-
-
- _enabled
- True
-
-
- value
- int(sps/2.0)
-
-
- _coordinate
- (492, 16)
-
-
- _rotation
- 0
-
-
-
- import
-
- id
- import_0
-
-
- _enabled
- True
-
-
- import
- import math
-
-
- _coordinate
- (9, 202)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- max_offset
-
-
- _enabled
- True
-
-
- value
- 2*math.pi*100e3/sample_rate
-
-
- _coordinate
- (342, 95)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- pll_alpha
-
-
- _enabled
- True
-
-
- label
- PLL Alpha
-
-
- value
- 0.005
-
-
- min
- 0.0
-
-
- max
- 0.5
-
-
- num_steps
- 500
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (192, 100)
-
-
- _rotation
- 0
-
-
-
- gr_throttle
-
- id
- throttle
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- samples_per_second
- sample_rate
-
-
- vlen
- 1
-
-
- _coordinate
- (79, 518)
-
-
- _rotation
- 0
-
-
-
- gr_agc_xx
-
- id
- agr
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- rate
- 1e-6
-
-
- reference
- 1.0
-
-
- gain
- 1.0
-
-
- max_gain
- 1.0
-
-
- _coordinate
- (261, 494)
-
-
- _rotation
- 0
-
-
-
- gr_moving_average_xx
-
- id
- gr_moving_average_xx_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- length
- hs
-
-
- scale
- 1.0/hs
-
-
- max_iter
- 4000
-
-
- _coordinate
- (429, 502)
-
-
- _rotation
- 0
-
-
-
- noaa_carrier_pll_cc
-
- id
- noaa_carrier_pll_cc_0
-
-
- _enabled
- True
-
-
- alpha
- pll_alpha
-
-
- beta
- pll_alpha**2/4.0
-
-
- max_offset
- max_offset
-
-
- _coordinate
- (636, 502)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- RX Waveform
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (433, 612)
-
-
- _rotation
- 0
-
-
-
- wxgui_fftsink2
-
- id
- rx_fftsink
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- RX Spectrum
-
-
- samp_rate
- sample_rate
-
-
- baseband_freq
- 1698e6
-
-
- y_per_div
- 5
-
-
- y_divs
- 8
-
-
- ref_level
- 20
-
-
- fft_size
- 1024
-
-
- fft_rate
- 30
-
-
- peak_hold
- False
-
-
- average
- True
-
-
- avg_alpha
- 0.1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (433, 241)
-
-
- _rotation
- 0
-
-
-
- gr_complex_to_imag
-
- id
- gr_complex_to_imag_0
-
-
- _enabled
- True
-
-
- vlen
- 1
-
-
- _coordinate
- (877, 522)
-
-
- _rotation
- 0
-
-
-
- notebook
-
- id
- displays
-
-
- _enabled
- True
-
-
- style
- wx.NB_TOP
-
-
- labels
- ['RX','Baseband']
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (9, 99)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0_1_0_1
-
-
- _enabled
- True
-
-
- type
- float
-
-
- title
- Manchester Symbols
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 5.0/sym_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (856, 343)
-
-
- _rotation
- 180
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Post-Filter/PLL
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (634, 335)
-
-
- _rotation
- 180
-
-
-
- gr_file_source
-
- id
- src
-
-
- _enabled
- True
-
-
- file
- poes-d16.dat
-
-
- type
- complex
-
-
- repeat
- True
-
-
- vlen
- 1
-
-
- _coordinate
- (34, 423)
-
-
- _rotation
- 0
-
-
-
- src
- throttle
- 0
- 0
-
-
- noaa_carrier_pll_cc_0
- gr_complex_to_imag_0
- 0
- 0
-
-
- throttle
- agr
- 0
- 0
-
-
- agr
- gr_moving_average_xx_0
- 0
- 0
-
-
- agr
- rx_fftsink
- 0
- 0
-
-
- agr
- wxgui_scopesink2_0
- 0
- 0
-
-
- gr_moving_average_xx_0
- noaa_carrier_pll_cc_0
- 0
- 0
-
-
- noaa_carrier_pll_cc_0
- wxgui_scopesink2_0_0
- 0
- 0
-
-
- gr_complex_to_imag_0
- wxgui_scopesink2_0_1_0_1
- 0
- 0
-
-
diff --git a/gr-noaa/grc/usrp_rx_hrpt.grc b/gr-noaa/grc/usrp_rx_hrpt.grc
new file mode 100644
index 000000000..d3c6603ad
--- /dev/null
+++ b/gr-noaa/grc/usrp_rx_hrpt.grc
@@ -0,0 +1,1026 @@
+
+
+ Sat Aug 29 11:48:56 2009
+
+ options
+
+ id
+ usrp_rx_hrpt
+
+
+ _enabled
+ True
+
+
+ title
+ USRP HRPT Receiver
+
+
+ author
+
+
+
+ description
+
+
+
+ window_size
+ 4096,4096
+
+
+ generate_options
+ wx_gui
+
+
+ category
+ Custom
+
+
+ run
+ True
+
+
+ realtime_scheduling
+
+
+
+ _coordinate
+ (10, 10)
+
+
+ _rotation
+ 0
+
+
+
+ import
+
+ id
+ import_0
+
+
+ _enabled
+ True
+
+
+ import
+ import math
+
+
+ _coordinate
+ (9, 202)
+
+
+ _rotation
+ 0
+
+
+
+ gr_throttle
+
+ id
+ throttle
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ samples_per_second
+ sample_rate
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (79, 518)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_source
+
+ id
+ src
+
+
+ _enabled
+ True
+
+
+ file
+ poes-d16.dat
+
+
+ type
+ complex
+
+
+ repeat
+ True
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (34, 423)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ decim
+
+
+ _enabled
+ True
+
+
+ value
+ 16
+
+
+ _coordinate
+ (186, 10)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ hs
+
+
+ _enabled
+ True
+
+
+ value
+ int(sps/2.0)
+
+
+ _coordinate
+ (589, 13)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sym_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 600*1109
+
+
+ _coordinate
+ (383, 7)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sps
+
+
+ _enabled
+ True
+
+
+ value
+ sample_rate/sym_rate
+
+
+ _coordinate
+ (479, 11)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sample_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 64e6/decim
+
+
+ _coordinate
+ (273, 9)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_fftsink2
+
+ id
+ rx_fftsink
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ RX Spectrum
+
+
+ samp_rate
+ sample_rate
+
+
+ baseband_freq
+ 1698e6
+
+
+ y_per_div
+ 5
+
+
+ y_divs
+ 8
+
+
+ ref_level
+ 20
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
+ True
+
+
+ avg_alpha
+ 0.1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (194, 263)
+
+
+ _rotation
+ 180
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ RX Waveform
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (198, 609)
+
+
+ _rotation
+ 180
+
+
+
+ gr_agc_xx
+
+ id
+ agr
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ rate
+ 1e-6
+
+
+ reference
+ 1.0
+
+
+ gain
+ 1.0
+
+
+ max_gain
+ 1.0
+
+
+ _coordinate
+ (261, 494)
+
+
+ _rotation
+ 0
+
+
+
+ gr_moving_average_xx
+
+ id
+ gr_moving_average_xx_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ length
+ hs
+
+
+ scale
+ 1.0/hs
+
+
+ max_iter
+ 4000
+
+
+ _coordinate
+ (434, 502)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ max_carrier_offset
+
+
+ _enabled
+ True
+
+
+ value
+ 2*math.pi*100e3/sample_rate
+
+
+ _coordinate
+ (668, 107)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ max_sync_offset
+
+
+ _enabled
+ True
+
+
+ value
+ 0.01
+
+
+ _coordinate
+ (665, 173)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ pll_alpha
+
+
+ _enabled
+ True
+
+
+ label
+ PLL Alpha
+
+
+ value
+ 0.005
+
+
+ min
+ 0.0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 500
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (192, 100)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ sync_alpha
+
+
+ _enabled
+ True
+
+
+ label
+ SYNC Alpha
+
+
+ value
+ 0.005
+
+
+ min
+ 0.0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 500
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 1, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (344, 101)
+
+
+ _rotation
+ 0
+
+
+
+ noaa_hrpt_pll_cc
+
+ id
+ noaa_hrpt_pll_cc_0
+
+
+ _enabled
+ True
+
+
+ alpha
+ pll_alpha
+
+
+ beta
+ pll_alpha**2/4.0
+
+
+ max_offset
+ max_carrier_offset
+
+
+ _coordinate
+ (628, 502)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Post-PLL
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (618, 335)
+
+
+ _rotation
+ 180
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0_0_1
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Post-SYNC
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 2
+
+
+ _coordinate
+ (872, 341)
+
+
+ _rotation
+ 180
+
+
+
+ notebook
+
+ id
+ displays
+
+
+ _enabled
+ True
+
+
+ style
+ wx.NB_TOP
+
+
+ labels
+ ['RX','PLL','SYNC']
+
+
+ grid_pos
+ 1, 0, 1, 2
+
+
+ notebook
+
+
+
+ _coordinate
+ (9, 99)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0_0_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Post-PLL
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (618, 614)
+
+
+ _rotation
+ 180
+
+
+
+ noaa_hrpt_sync_cc
+
+ id
+ sync
+
+
+ _enabled
+ True
+
+
+ alpha
+ sync_alpha
+
+
+ beta
+ sync_alpha**2/4.0
+
+
+ sps
+ sps
+
+
+ max_offset
+ max_sync_offset
+
+
+ _coordinate
+ (865, 494)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0_0_0_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Post-SYNC
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 2
+
+
+ _coordinate
+ (872, 607)
+
+
+ _rotation
+ 180
+
+
+
+ src
+ throttle
+ 0
+ 0
+
+
+ throttle
+ agr
+ 0
+ 0
+
+
+ agr
+ gr_moving_average_xx_0
+ 0
+ 0
+
+
+ agr
+ rx_fftsink
+ 0
+ 0
+
+
+ agr
+ wxgui_scopesink2_0
+ 0
+ 0
+
+
+ gr_moving_average_xx_0
+ noaa_hrpt_pll_cc_0
+ 0
+ 0
+
+
+ noaa_hrpt_pll_cc_0
+ wxgui_scopesink2_0_0
+ 0
+ 0
+
+
+ noaa_hrpt_pll_cc_0
+ wxgui_scopesink2_0_0_0
+ 0
+ 0
+
+
+ noaa_hrpt_pll_cc_0
+ sync
+ 0
+ 0
+
+
+ sync
+ wxgui_scopesink2_0_0_1
+ 0
+ 0
+
+
+ sync
+ wxgui_scopesink2_0_0_0_0
+ 0
+ 0
+
+
diff --git a/gr-noaa/grc/usrp_rx_hrpt.py b/gr-noaa/grc/usrp_rx_hrpt.py
new file mode 100755
index 000000000..ed6417335
--- /dev/null
+++ b/gr-noaa/grc/usrp_rx_hrpt.py
@@ -0,0 +1,245 @@
+#!/usr/bin/env python
+##################################################
+# Gnuradio Python Flow Graph
+# Title: USRP HRPT Receiver
+# Generated: Sat Aug 29 11:48:57 2009
+##################################################
+
+from gnuradio import gr
+from gnuradio import noaa
+from gnuradio.eng_option import eng_option
+from gnuradio.wxgui import fftsink2
+from gnuradio.wxgui import forms
+from gnuradio.wxgui import scopesink2
+from grc_gnuradio import wxgui as grc_wxgui
+from optparse import OptionParser
+import math
+import wx
+
+class usrp_rx_hrpt(grc_wxgui.top_block_gui):
+
+ def __init__(self):
+ grc_wxgui.top_block_gui.__init__(self, title="USRP HRPT Receiver")
+
+ ##################################################
+ # Variables
+ ##################################################
+ self.decim = decim = 16
+ self.sym_rate = sym_rate = 600*1109
+ self.sample_rate = sample_rate = 64e6/decim
+ self.sps = sps = sample_rate/sym_rate
+ self.sync_alpha = sync_alpha = 0.005
+ self.pll_alpha = pll_alpha = 0.005
+ self.max_sync_offset = max_sync_offset = 0.01
+ self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
+ self.hs = hs = int(sps/2.0)
+
+ ##################################################
+ # Notebooks
+ ##################################################
+ self.displays = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
+ self.displays.AddPage(grc_wxgui.Panel(self.displays), "RX")
+ self.displays.AddPage(grc_wxgui.Panel(self.displays), "PLL")
+ self.displays.AddPage(grc_wxgui.Panel(self.displays), "SYNC")
+ self.GridAdd(self.displays, 1, 0, 1, 2)
+
+ ##################################################
+ # Controls
+ ##################################################
+ _sync_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._sync_alpha_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_sync_alpha_sizer,
+ value=self.sync_alpha,
+ callback=self.set_sync_alpha,
+ label="SYNC Alpha",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._sync_alpha_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_sync_alpha_sizer,
+ value=self.sync_alpha,
+ callback=self.set_sync_alpha,
+ minimum=0.0,
+ maximum=0.5,
+ num_steps=500,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_sync_alpha_sizer, 0, 1, 1, 1)
+ _pll_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._pll_alpha_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_pll_alpha_sizer,
+ value=self.pll_alpha,
+ callback=self.set_pll_alpha,
+ label="PLL Alpha",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._pll_alpha_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_pll_alpha_sizer,
+ value=self.pll_alpha,
+ callback=self.set_pll_alpha,
+ minimum=0.0,
+ maximum=0.5,
+ num_steps=500,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_pll_alpha_sizer, 0, 0, 1, 1)
+
+ ##################################################
+ # Blocks
+ ##################################################
+ self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
+ self.gr_moving_average_xx_0 = gr.moving_average_cc(hs, 1.0/hs, 4000)
+ self.noaa_hrpt_pll_cc_0 = noaa.hrpt_pll_cc(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
+ self.rx_fftsink = fftsink2.fft_sink_c(
+ self.displays.GetPage(0).GetWin(),
+ baseband_freq=1698e6,
+ y_per_div=5,
+ y_divs=8,
+ ref_level=20,
+ sample_rate=sample_rate,
+ fft_size=1024,
+ fft_rate=30,
+ average=True,
+ avg_alpha=0.1,
+ title="RX Spectrum",
+ peak_hold=False,
+ )
+ self.displays.GetPage(0).GridAdd(self.rx_fftsink.win, 0, 0, 1, 1)
+ self.src = gr.file_source(gr.sizeof_gr_complex*1, "poes-d16.dat", True)
+ self.sync = noaa.hrpt_sync_cc(sync_alpha, sync_alpha**2/4.0, sps, max_sync_offset)
+ self.throttle = gr.throttle(gr.sizeof_gr_complex*1, sample_rate)
+ self.wxgui_scopesink2_0 = scopesink2.scope_sink_c(
+ self.displays.GetPage(0).GetWin(),
+ title="RX Waveform",
+ sample_rate=sample_rate,
+ v_scale=0,
+ t_scale=20.0/sample_rate,
+ ac_couple=False,
+ xy_mode=False,
+ num_inputs=1,
+ )
+ self.displays.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 0, 1, 1)
+ self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_c(
+ self.displays.GetPage(1).GetWin(),
+ title="Post-PLL",
+ sample_rate=sample_rate,
+ v_scale=0.5,
+ t_scale=20.0/sample_rate,
+ ac_couple=False,
+ xy_mode=False,
+ num_inputs=1,
+ )
+ self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0.win, 0, 0, 1, 1)
+ self.wxgui_scopesink2_0_0_0 = scopesink2.scope_sink_c(
+ self.displays.GetPage(1).GetWin(),
+ title="Post-PLL",
+ sample_rate=sample_rate,
+ v_scale=0.5,
+ t_scale=20.0/sample_rate,
+ ac_couple=False,
+ xy_mode=True,
+ num_inputs=1,
+ )
+ self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0_0.win, 1, 0, 1, 1)
+ self.wxgui_scopesink2_0_0_0_0 = scopesink2.scope_sink_c(
+ self.displays.GetPage(2).GetWin(),
+ title="Post-SYNC",
+ sample_rate=sample_rate,
+ v_scale=0.5,
+ t_scale=20.0/sample_rate,
+ ac_couple=False,
+ xy_mode=True,
+ num_inputs=1,
+ )
+ self.displays.GetPage(2).GridAdd(self.wxgui_scopesink2_0_0_0_0.win, 1, 0, 1, 1)
+ self.wxgui_scopesink2_0_0_1 = scopesink2.scope_sink_c(
+ self.displays.GetPage(2).GetWin(),
+ title="Post-SYNC",
+ sample_rate=sample_rate,
+ v_scale=0.5,
+ t_scale=20.0/sample_rate,
+ ac_couple=False,
+ xy_mode=False,
+ num_inputs=1,
+ )
+ self.displays.GetPage(2).GridAdd(self.wxgui_scopesink2_0_0_1.win, 0, 0, 1, 1)
+
+ ##################################################
+ # Connections
+ ##################################################
+ self.connect((self.src, 0), (self.throttle, 0))
+ self.connect((self.throttle, 0), (self.agr, 0))
+ self.connect((self.agr, 0), (self.gr_moving_average_xx_0, 0))
+ self.connect((self.agr, 0), (self.rx_fftsink, 0))
+ self.connect((self.agr, 0), (self.wxgui_scopesink2_0, 0))
+ self.connect((self.gr_moving_average_xx_0, 0), (self.noaa_hrpt_pll_cc_0, 0))
+ self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0, 0))
+ self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0_0, 0))
+ self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.sync, 0))
+ self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_1, 0))
+ self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
+
+ def set_decim(self, decim):
+ self.decim = decim
+ self.set_sample_rate(64e6/self.decim)
+
+ def set_sym_rate(self, sym_rate):
+ self.sym_rate = sym_rate
+ self.set_sps(self.sample_rate/self.sym_rate)
+
+ def set_sample_rate(self, sample_rate):
+ self.sample_rate = sample_rate
+ self.set_sps(self.sample_rate/self.sym_rate)
+ self.rx_fftsink.set_sample_rate(self.sample_rate)
+ self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
+ self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
+ self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
+ self.wxgui_scopesink2_0_0_1.set_sample_rate(self.sample_rate)
+ self.wxgui_scopesink2_0_0_0.set_sample_rate(self.sample_rate)
+ self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sample_rate)
+
+ def set_sps(self, sps):
+ self.sps = sps
+ self.set_hs(int(self.sps/2.0))
+
+ def set_sync_alpha(self, sync_alpha):
+ self.sync_alpha = sync_alpha
+ self._sync_alpha_slider.set_value(self.sync_alpha)
+ self._sync_alpha_text_box.set_value(self.sync_alpha)
+ self.sync.set_alpha(self.sync_alpha)
+ self.sync.set_beta(self.sync_alpha**2/4.0)
+
+ def set_pll_alpha(self, pll_alpha):
+ self.pll_alpha = pll_alpha
+ self._pll_alpha_slider.set_value(self.pll_alpha)
+ self._pll_alpha_text_box.set_value(self.pll_alpha)
+ self.noaa_hrpt_pll_cc_0.set_alpha(self.pll_alpha)
+ self.noaa_hrpt_pll_cc_0.set_beta(self.pll_alpha**2/4.0)
+
+ def set_max_sync_offset(self, max_sync_offset):
+ self.max_sync_offset = max_sync_offset
+ self.sync.set_max_offset(self.max_sync_offset)
+
+ def set_max_carrier_offset(self, max_carrier_offset):
+ self.max_carrier_offset = max_carrier_offset
+ self.noaa_hrpt_pll_cc_0.set_max_offset(self.max_carrier_offset)
+
+ def set_hs(self, hs):
+ self.hs = hs
+ self.gr_moving_average_xx_0.set_length_and_scale(self.hs, 1.0/self.hs)
+
+if __name__ == '__main__':
+ parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ (options, args) = parser.parse_args()
+ tb = usrp_rx_hrpt()
+ tb.Run(True)
+
diff --git a/gr-noaa/grc/usrp_rx_lrit.grc b/gr-noaa/grc/usrp_rx_lrit.grc
new file mode 100644
index 000000000..55fe39787
--- /dev/null
+++ b/gr-noaa/grc/usrp_rx_lrit.grc
@@ -0,0 +1,1477 @@
+
+
+ Sat Aug 29 11:26:03 2009
+
+ options
+
+ id
+ usrp_rx_lrit
+
+
+ _enabled
+ True
+
+
+ title
+ USRP LRIT Receiver
+
+
+ author
+
+
+
+ description
+
+
+
+ window_size
+ 4095, 4095
+
+
+ generate_options
+ wx_gui
+
+
+ category
+ Custom
+
+
+ run
+ True
+
+
+ realtime_scheduling
+
+
+
+ _coordinate
+ (10, 10)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ samp_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 64e6/decim
+
+
+ _coordinate
+ (10, 81)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ symbol_rate
+
+
+ _enabled
+ True
+
+
+ value
+ 293e3
+
+
+ _coordinate
+ (11, 148)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ sps
+
+
+ _enabled
+ True
+
+
+ value
+ samp_rate/symbol_rate
+
+
+ _coordinate
+ (12, 214)
+
+
+ _rotation
+ 0
+
+
+
+ variable_text_box
+
+ id
+ decim
+
+
+ _enabled
+ True
+
+
+ label
+ Decim
+
+
+ value
+ saved_decim
+
+
+ converver
+ int_converter
+
+
+ formatter
+ None
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (243, 13)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Waveform
+
+
+ samp_rate
+ samp_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/samp_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (434, 551)
+
+
+ _rotation
+ 0
+
+
+
+ gr_agc_xx
+
+ id
+ gr_agc_xx_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ rate
+ 1e-6
+
+
+ reference
+ 1.0
+
+
+ gain
+ 1.0/32767.0
+
+
+ max_gain
+ 1.0
+
+
+ _coordinate
+ (261, 493)
+
+
+ _rotation
+ 0
+
+
+
+ root_raised_cosine_filter
+
+ id
+ root_raised_cosine_filter_0
+
+
+ _enabled
+ False
+
+
+ type
+ fir_filter_ccf
+
+
+ decim
+ 1
+
+
+ interp
+ 1
+
+
+ gain
+ 1
+
+
+ samp_rate
+ samp_rate
+
+
+ sym_rate
+ symbol_rate
+
+
+ alpha
+ 0.5
+
+
+ ntaps
+ 50
+
+
+ _coordinate
+ (618, 373)
+
+
+ _rotation
+ 0
+
+
+
+ usrp_simple_source_x
+
+ id
+ usrp_simple_source_x_0
+
+
+ _enabled
+ False
+
+
+ type
+ complex
+
+
+ format
+
+
+
+ which
+ 0
+
+
+ decimation
+ decim
+
+
+ frequency
+ freq
+
+
+ lo_offset
+ float('inf')
+
+
+ gain
+ gain
+
+
+ side
+ B
+
+
+ rx_ant
+ RXA
+
+
+ hb_filters
+
+
+
+ _coordinate
+ (11, 477)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_fftsink2
+
+ id
+ wxgui_fftsink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Spectrum
+
+
+ samp_rate
+ samp_rate
+
+
+ baseband_freq
+ freq
+
+
+ y_per_div
+ 10
+
+
+ y_divs
+ 10
+
+
+ ref_level
+ 50
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
+ False
+
+
+ avg_alpha
+ 0
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
+
+ _coordinate
+ (434, 337)
+
+
+ _rotation
+ 0
+
+
+
+ gr_throttle
+
+ id
+ gr_throttle_0
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ samples_per_second
+ samp_rate
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (181, 663)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_scopesink2
+
+ id
+ wxgui_scopesink2_1
+
+
+ _enabled
+ True
+
+
+ type
+ complex
+
+
+ title
+ Scope Plot
+
+
+ samp_rate
+ samp_rate
+
+
+ v_scale
+ 0.4
+
+
+ t_scale
+ 20.0/samp_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (1126, 251)
+
+
+ _rotation
+ 0
+
+
+
+ gr_probe_mpsk_snr_c
+
+ id
+ gr_probe_mpsk_snr_c_0
+
+
+ _enabled
+ True
+
+
+ type
+ snr
+
+
+ alpha
+ 0.0001
+
+
+ probe_rate
+ 10
+
+
+ _coordinate
+ (1126, 723)
+
+
+ _rotation
+ 0
+
+
+
+ wxgui_numbersink2
+
+ id
+ wxgui_numbersink2_0
+
+
+ _enabled
+ True
+
+
+ type
+ float
+
+
+ title
+ SNR
+
+
+ units
+ dB
+
+
+ samp_rate
+ 10
+
+
+ min_value
+ 0
+
+
+ max_value
+ 30
+
+
+ factor
+ 1.0
+
+
+ decimal_places
+ 1
+
+
+ ref_level
+ 0
+
+
+ number_rate
+ 10
+
+
+ peak_hold
+ False
+
+
+ average
+ False
+
+
+ avg_alpha
+ 0
+
+
+ show_gauge
+ True
+
+
+ grid_pos
+ 2, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
+
+ _coordinate
+ (1335, 651)
+
+
+ _rotation
+ 0
+
+
+
+ gr_mpsk_receiver_cc
+
+ id
+ gr_mpsk_receiver_cc_0
+
+
+ _enabled
+ True
+
+
+ M
+ 2
+
+
+ theta
+ 0
+
+
+ alpha
+ costas_alpha
+
+
+ beta
+ costas_alpha*costas_alpha/4.0
+
+
+ fmin
+ -0.05
+
+
+ fmax
+ 0.05
+
+
+ mu
+ 0.5
+
+
+ gain_mu
+ gain_mu
+
+
+ omega
+ sps
+
+
+ gain_omega
+ gain_mu*gain_mu/4.0
+
+
+ omega_relative_limit
+ 0.05
+
+
+ _coordinate
+ (881, 437)
+
+
+ _rotation
+ 0
+
+
+
+ gr_complex_to_real
+
+ id
+ gr_complex_to_real_0
+
+
+ _enabled
+ True
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (1133, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_char_to_float
+
+ id
+ gr_char_to_float_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1523, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_binary_slicer_fb
+
+ id
+ gr_binary_slicer_fb_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1343, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_add_const_vxx
+
+ id
+ gr_add_const_vxx_0
+
+
+ _enabled
+ True
+
+
+ type
+ float
+
+
+ const
+ 48.0
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (1707, 517)
+
+
+ _rotation
+ 0
+
+
+
+ gr_float_to_char
+
+ id
+ gr_float_to_char_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1878, 521)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_sink
+
+ id
+ gr_file_sink_0
+
+
+ _enabled
+ True
+
+
+ file
+ bits.dat
+
+
+ type
+ byte
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (2059, 517)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_source
+
+ id
+ gr_file_source_0
+
+
+ _enabled
+ True
+
+
+ file
+ lrit.dat
+
+
+ type
+ complex
+
+
+ repeat
+ False
+
+
+ vlen
+ 1
+
+
+ _coordinate
+ (11, 655)
+
+
+ _rotation
+ 0
+
+
+
+ notebook
+
+ id
+ displays
+
+
+ _enabled
+ True
+
+
+ style
+ wx.NB_TOP
+
+
+ labels
+ ['USRP RX', 'Costas Output']
+
+
+ grid_pos
+ 2, 0, 1, 3
+
+
+ notebook
+
+
+
+ _coordinate
+ (14, 351)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_decim
+
+
+ _enabled
+ True
+
+
+ value
+ 160
+
+
+ type
+ int
+
+
+ config_file
+ config_filename
+
+
+ section
+ main
+
+
+ option
+ decim
+
+
+ writeback
+ decim
+
+
+ _coordinate
+ (246, 172)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ gain
+
+
+ _enabled
+ True
+
+
+ label
+ Gain
+
+
+ value
+ saved_gain
+
+
+ min
+ 0
+
+
+ max
+ 115
+
+
+ num_steps
+ 115
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 1, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (411, 11)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_gain
+
+
+ _enabled
+ True
+
+
+ value
+ 33
+
+
+ type
+ real
+
+
+ config_file
+ config_filename
+
+
+ section
+ main
+
+
+ option
+ gain
+
+
+ writeback
+ gain
+
+
+ _coordinate
+ (412, 172)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ freq
+
+
+ _enabled
+ True
+
+
+ label
+ Frequency
+
+
+ value
+ saved_freq
+
+
+ min
+ 135e6
+
+
+ max
+ 139e6
+
+
+ num_steps
+ 400
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 2, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (574, 12)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_freq
+
+
+ _enabled
+ True
+
+
+ value
+ 137e6
+
+
+ type
+ real
+
+
+ config_file
+ config_filename
+
+
+ section
+ main
+
+
+ option
+ freq
+
+
+ writeback
+ freq
+
+
+ _coordinate
+ (576, 170)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ costas_alpha
+
+
+ _enabled
+ True
+
+
+ label
+ Costas Alpha
+
+
+ value
+ saved_costas_alpha
+
+
+ min
+ 0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 100
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (738, 13)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_costas_alpha
+
+
+ _enabled
+ True
+
+
+ value
+ 0.005
+
+
+ type
+ real
+
+
+ config_file
+ config_filename
+
+
+ section
+ main
+
+
+ option
+ costas_alpha
+
+
+ writeback
+ costas_alpha
+
+
+ _coordinate
+ (739, 170)
+
+
+ _rotation
+ 0
+
+
+
+ variable_config
+
+ id
+ saved_gain_mu
+
+
+ _enabled
+ True
+
+
+ value
+ 0.005
+
+
+ type
+ real
+
+
+ config_file
+ config_filename
+
+
+ section
+ main
+
+
+ option
+ gain_mu
+
+
+ writeback
+ gain_mu
+
+
+ _coordinate
+ (900, 170)
+
+
+ _rotation
+ 0
+
+
+
+ variable_slider
+
+ id
+ gain_mu
+
+
+ _enabled
+ True
+
+
+ label
+ Gain Mu
+
+
+ value
+ saved_gain_mu
+
+
+ min
+ 0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 100
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 1, 1, 1, 1
+
+
+ notebook
+
+
+
+ _coordinate
+ (902, 13)
+
+
+ _rotation
+ 0
+
+
+
+ variable
+
+ id
+ config_filename
+
+
+ _enabled
+ True
+
+
+ value
+ "usrp_rx_lrit.cfg"
+
+
+ _coordinate
+ (13, 283)
+
+
+ _rotation
+ 0
+
+
+
+ usrp_simple_source_x_0
+ gr_agc_xx_0
+ 0
+ 0
+
+
+ gr_agc_xx_0
+ wxgui_scopesink2_0
+ 0
+ 0
+
+
+ gr_file_source_0
+ gr_throttle_0
+ 0
+ 0
+
+
+ gr_throttle_0
+ gr_agc_xx_0
+ 0
+ 0
+
+
+ gr_probe_mpsk_snr_c_0
+ wxgui_numbersink2_0
+ 0
+ 0
+
+
+ gr_mpsk_receiver_cc_0
+ gr_probe_mpsk_snr_c_0
+ 0
+ 0
+
+
+ gr_agc_xx_0
+ gr_mpsk_receiver_cc_0
+ 0
+ 0
+
+
+ gr_mpsk_receiver_cc_0
+ wxgui_scopesink2_1
+ 0
+ 0
+
+
+ gr_agc_xx_0
+ wxgui_fftsink2_0
+ 0
+ 0
+
+
+ gr_mpsk_receiver_cc_0
+ gr_complex_to_real_0
+ 0
+ 0
+
+
+ gr_complex_to_real_0
+ gr_binary_slicer_fb_0
+ 0
+ 0
+
+
+ gr_binary_slicer_fb_0
+ gr_char_to_float_0
+ 0
+ 0
+
+
+ gr_char_to_float_0
+ gr_add_const_vxx_0
+ 0
+ 0
+
+
+ gr_add_const_vxx_0
+ gr_float_to_char_0
+ 0
+ 0
+
+
+ gr_float_to_char_0
+ gr_file_sink_0
+ 0
+ 0
+
+
diff --git a/gr-noaa/grc/usrp_rx_lrit.py b/gr-noaa/grc/usrp_rx_lrit.py
new file mode 100755
index 000000000..bc313e3af
--- /dev/null
+++ b/gr-noaa/grc/usrp_rx_lrit.py
@@ -0,0 +1,399 @@
+#!/usr/bin/env python
+##################################################
+# Gnuradio Python Flow Graph
+# Title: USRP LRIT Receiver
+# Generated: Sat Aug 29 11:26:03 2009
+##################################################
+
+from gnuradio import gr
+from gnuradio.eng_option import eng_option
+from gnuradio.wxgui import fftsink2
+from gnuradio.wxgui import forms
+from gnuradio.wxgui import numbersink2
+from gnuradio.wxgui import scopesink2
+from grc_gnuradio import blks2 as grc_blks2
+from grc_gnuradio import wxgui as grc_wxgui
+from optparse import OptionParser
+import ConfigParser
+import wx
+
+class usrp_rx_lrit(grc_wxgui.top_block_gui):
+
+ def __init__(self):
+ grc_wxgui.top_block_gui.__init__(self, title="USRP LRIT Receiver")
+
+ ##################################################
+ # Variables
+ ##################################################
+ self.config_filename = config_filename = "usrp_rx_lrit.cfg"
+ self._saved_decim_config = ConfigParser.ConfigParser()
+ self._saved_decim_config.read(config_filename)
+ try: saved_decim = self._saved_decim_config.getint("main", "decim")
+ except: saved_decim = 160
+ self.saved_decim = saved_decim
+ self.decim = decim = saved_decim
+ self.symbol_rate = symbol_rate = 293e3
+ self._saved_gain_mu_config = ConfigParser.ConfigParser()
+ self._saved_gain_mu_config.read(config_filename)
+ try: saved_gain_mu = self._saved_gain_mu_config.getfloat("main", "gain_mu")
+ except: saved_gain_mu = 0.005
+ self.saved_gain_mu = saved_gain_mu
+ self._saved_gain_config = ConfigParser.ConfigParser()
+ self._saved_gain_config.read(config_filename)
+ try: saved_gain = self._saved_gain_config.getfloat("main", "gain")
+ except: saved_gain = 33
+ self.saved_gain = saved_gain
+ self._saved_freq_config = ConfigParser.ConfigParser()
+ self._saved_freq_config.read(config_filename)
+ try: saved_freq = self._saved_freq_config.getfloat("main", "freq")
+ except: saved_freq = 137e6
+ self.saved_freq = saved_freq
+ self._saved_costas_alpha_config = ConfigParser.ConfigParser()
+ self._saved_costas_alpha_config.read(config_filename)
+ try: saved_costas_alpha = self._saved_costas_alpha_config.getfloat("main", "costas_alpha")
+ except: saved_costas_alpha = 0.005
+ self.saved_costas_alpha = saved_costas_alpha
+ self.samp_rate = samp_rate = 64e6/decim
+ self.sps = sps = samp_rate/symbol_rate
+ self.gain_mu = gain_mu = saved_gain_mu
+ self.gain = gain = saved_gain
+ self.freq = freq = saved_freq
+ self.costas_alpha = costas_alpha = saved_costas_alpha
+
+ ##################################################
+ # Notebooks
+ ##################################################
+ self.displays = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
+ self.displays.AddPage(grc_wxgui.Panel(self.displays), "USRP RX")
+ self.displays.AddPage(grc_wxgui.Panel(self.displays), "Costas Output")
+ self.GridAdd(self.displays, 2, 0, 1, 3)
+
+ ##################################################
+ # Controls
+ ##################################################
+ self._decim_text_box = forms.text_box(
+ parent=self.GetWin(),
+ value=self.decim,
+ callback=self.set_decim,
+ label="Decim",
+ converter=forms.int_converter(),
+ )
+ self.GridAdd(self._decim_text_box, 0, 0, 1, 1)
+ _gain_mu_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._gain_mu_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_gain_mu_sizer,
+ value=self.gain_mu,
+ callback=self.set_gain_mu,
+ label="Gain Mu",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._gain_mu_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_gain_mu_sizer,
+ value=self.gain_mu,
+ callback=self.set_gain_mu,
+ minimum=0,
+ maximum=0.5,
+ num_steps=100,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_gain_mu_sizer, 1, 1, 1, 1)
+ _gain_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._gain_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_gain_sizer,
+ value=self.gain,
+ callback=self.set_gain,
+ label="Gain",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._gain_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_gain_sizer,
+ value=self.gain,
+ callback=self.set_gain,
+ minimum=0,
+ maximum=115,
+ num_steps=115,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_gain_sizer, 0, 1, 1, 1)
+ _freq_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._freq_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_freq_sizer,
+ value=self.freq,
+ callback=self.set_freq,
+ label="Frequency",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._freq_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_freq_sizer,
+ value=self.freq,
+ callback=self.set_freq,
+ minimum=135e6,
+ maximum=139e6,
+ num_steps=400,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_freq_sizer, 0, 2, 1, 1)
+ _costas_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._costas_alpha_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_costas_alpha_sizer,
+ value=self.costas_alpha,
+ callback=self.set_costas_alpha,
+ label="Costas Alpha",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._costas_alpha_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_costas_alpha_sizer,
+ value=self.costas_alpha,
+ callback=self.set_costas_alpha,
+ minimum=0,
+ maximum=0.5,
+ num_steps=100,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_costas_alpha_sizer, 1, 0, 1, 1)
+
+ ##################################################
+ # Blocks
+ ##################################################
+ self.gr_add_const_vxx_0 = gr.add_const_vff((48.0, ))
+ self.gr_agc_xx_0 = gr.agc_cc(1e-6, 1.0, 1.0/32767.0, 1.0)
+ self.gr_binary_slicer_fb_0 = gr.binary_slicer_fb()
+ self.gr_char_to_float_0 = gr.char_to_float()
+ self.gr_complex_to_real_0 = gr.complex_to_real(1)
+ self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "bits.dat")
+ self.gr_file_source_0 = gr.file_source(gr.sizeof_gr_complex*1, "lrit.dat", False)
+ self.gr_float_to_char_0 = gr.float_to_char()
+ self.gr_mpsk_receiver_cc_0 = gr.mpsk_receiver_cc(2, 0, costas_alpha, costas_alpha*costas_alpha/4.0, -0.05, 0.05, 0.5, gain_mu, sps, gain_mu*gain_mu/4.0, 0.05)
+ self.gr_probe_mpsk_snr_c_0 = grc_blks2.probe_mpsk_snr_c(
+ type='snr',
+ alpha=0.0001,
+ probe_rate=10,
+ )
+ self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
+ self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
+ self.displays.GetPage(0).GetWin(),
+ baseband_freq=freq,
+ y_per_div=10,
+ y_divs=10,
+ ref_level=50,
+ sample_rate=samp_rate,
+ fft_size=1024,
+ fft_rate=30,
+ average=False,
+ avg_alpha=None,
+ title="Spectrum",
+ peak_hold=False,
+ )
+ self.displays.GetPage(0).GridAdd(self.wxgui_fftsink2_0.win, 0, 0, 1, 1)
+ self.wxgui_numbersink2_0 = numbersink2.number_sink_f(
+ self.displays.GetPage(1).GetWin(),
+ unit="dB",
+ minval=0,
+ maxval=30,
+ factor=1.0,
+ decimal_places=1,
+ ref_level=0,
+ sample_rate=10,
+ number_rate=10,
+ average=False,
+ avg_alpha=None,
+ label="SNR",
+ peak_hold=False,
+ show_gauge=True,
+ )
+ self.displays.GetPage(1).GridAdd(self.wxgui_numbersink2_0.win, 2, 0, 1, 1)
+ self.wxgui_scopesink2_0 = scopesink2.scope_sink_c(
+ self.displays.GetPage(0).GetWin(),
+ title="Waveform",
+ sample_rate=samp_rate,
+ v_scale=0.5,
+ t_scale=20.0/samp_rate,
+ ac_couple=False,
+ xy_mode=True,
+ num_inputs=1,
+ )
+ self.displays.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 0, 1, 1)
+ self.wxgui_scopesink2_1 = scopesink2.scope_sink_c(
+ self.displays.GetPage(1).GetWin(),
+ title="Scope Plot",
+ sample_rate=samp_rate,
+ v_scale=0.4,
+ t_scale=20.0/samp_rate,
+ ac_couple=False,
+ xy_mode=True,
+ num_inputs=1,
+ )
+ self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_1.win, 0, 0, 1, 1)
+
+ ##################################################
+ # Connections
+ ##################################################
+ self.connect((self.gr_agc_xx_0, 0), (self.wxgui_scopesink2_0, 0))
+ self.connect((self.gr_file_source_0, 0), (self.gr_throttle_0, 0))
+ self.connect((self.gr_throttle_0, 0), (self.gr_agc_xx_0, 0))
+ self.connect((self.gr_probe_mpsk_snr_c_0, 0), (self.wxgui_numbersink2_0, 0))
+ self.connect((self.gr_mpsk_receiver_cc_0, 0), (self.gr_probe_mpsk_snr_c_0, 0))
+ self.connect((self.gr_agc_xx_0, 0), (self.gr_mpsk_receiver_cc_0, 0))
+ self.connect((self.gr_mpsk_receiver_cc_0, 0), (self.wxgui_scopesink2_1, 0))
+ self.connect((self.gr_agc_xx_0, 0), (self.wxgui_fftsink2_0, 0))
+ self.connect((self.gr_mpsk_receiver_cc_0, 0), (self.gr_complex_to_real_0, 0))
+ self.connect((self.gr_complex_to_real_0, 0), (self.gr_binary_slicer_fb_0, 0))
+ self.connect((self.gr_binary_slicer_fb_0, 0), (self.gr_char_to_float_0, 0))
+ self.connect((self.gr_char_to_float_0, 0), (self.gr_add_const_vxx_0, 0))
+ self.connect((self.gr_add_const_vxx_0, 0), (self.gr_float_to_char_0, 0))
+ self.connect((self.gr_float_to_char_0, 0), (self.gr_file_sink_0, 0))
+
+ def set_config_filename(self, config_filename):
+ self.config_filename = config_filename
+ self._saved_decim_config = ConfigParser.ConfigParser()
+ self._saved_decim_config.read(self.config_filename)
+ if not self._saved_decim_config.has_section("main"):
+ self._saved_decim_config.add_section("main")
+ self._saved_decim_config.set("main", "decim", str(self.decim))
+ self._saved_decim_config.write(open(self.config_filename, 'w'))
+ self._saved_gain_config = ConfigParser.ConfigParser()
+ self._saved_gain_config.read(self.config_filename)
+ if not self._saved_gain_config.has_section("main"):
+ self._saved_gain_config.add_section("main")
+ self._saved_gain_config.set("main", "gain", str(self.gain))
+ self._saved_gain_config.write(open(self.config_filename, 'w'))
+ self._saved_freq_config = ConfigParser.ConfigParser()
+ self._saved_freq_config.read(self.config_filename)
+ if not self._saved_freq_config.has_section("main"):
+ self._saved_freq_config.add_section("main")
+ self._saved_freq_config.set("main", "freq", str(self.freq))
+ self._saved_freq_config.write(open(self.config_filename, 'w'))
+ self._saved_costas_alpha_config = ConfigParser.ConfigParser()
+ self._saved_costas_alpha_config.read(self.config_filename)
+ if not self._saved_costas_alpha_config.has_section("main"):
+ self._saved_costas_alpha_config.add_section("main")
+ self._saved_costas_alpha_config.set("main", "costas_alpha", str(self.costas_alpha))
+ self._saved_costas_alpha_config.write(open(self.config_filename, 'w'))
+ self._saved_gain_mu_config = ConfigParser.ConfigParser()
+ self._saved_gain_mu_config.read(self.config_filename)
+ if not self._saved_gain_mu_config.has_section("main"):
+ self._saved_gain_mu_config.add_section("main")
+ self._saved_gain_mu_config.set("main", "gain_mu", str(self.gain_mu))
+ self._saved_gain_mu_config.write(open(self.config_filename, 'w'))
+
+ def set_saved_decim(self, saved_decim):
+ self.saved_decim = saved_decim
+ self.set_decim(self.saved_decim)
+
+ def set_decim(self, decim):
+ self.decim = decim
+ self.set_samp_rate(64e6/self.decim)
+ self._decim_text_box.set_value(self.decim)
+ self._saved_decim_config = ConfigParser.ConfigParser()
+ self._saved_decim_config.read(self.config_filename)
+ if not self._saved_decim_config.has_section("main"):
+ self._saved_decim_config.add_section("main")
+ self._saved_decim_config.set("main", "decim", str(self.decim))
+ self._saved_decim_config.write(open(self.config_filename, 'w'))
+
+ def set_symbol_rate(self, symbol_rate):
+ self.symbol_rate = symbol_rate
+ self.set_sps(self.samp_rate/self.symbol_rate)
+
+ def set_saved_gain_mu(self, saved_gain_mu):
+ self.saved_gain_mu = saved_gain_mu
+ self.set_gain_mu(self.saved_gain_mu)
+
+ def set_saved_gain(self, saved_gain):
+ self.saved_gain = saved_gain
+ self.set_gain(self.saved_gain)
+
+ def set_saved_freq(self, saved_freq):
+ self.saved_freq = saved_freq
+ self.set_freq(self.saved_freq)
+
+ def set_saved_costas_alpha(self, saved_costas_alpha):
+ self.saved_costas_alpha = saved_costas_alpha
+ self.set_costas_alpha(self.saved_costas_alpha)
+
+ def set_samp_rate(self, samp_rate):
+ self.samp_rate = samp_rate
+ self.set_sps(self.samp_rate/self.symbol_rate)
+ self.wxgui_scopesink2_0.set_sample_rate(self.samp_rate)
+ self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)
+ self.wxgui_scopesink2_1.set_sample_rate(self.samp_rate)
+
+ def set_sps(self, sps):
+ self.sps = sps
+ self.gr_mpsk_receiver_cc_0.set_omega(self.sps)
+
+ def set_gain_mu(self, gain_mu):
+ self.gain_mu = gain_mu
+ self.gr_mpsk_receiver_cc_0.set_gain_mu(self.gain_mu)
+ self.gr_mpsk_receiver_cc_0.set_gain_omega(self.gain_mu*self.gain_mu/4.0)
+ self._saved_gain_mu_config = ConfigParser.ConfigParser()
+ self._saved_gain_mu_config.read(self.config_filename)
+ if not self._saved_gain_mu_config.has_section("main"):
+ self._saved_gain_mu_config.add_section("main")
+ self._saved_gain_mu_config.set("main", "gain_mu", str(self.gain_mu))
+ self._saved_gain_mu_config.write(open(self.config_filename, 'w'))
+ self._gain_mu_slider.set_value(self.gain_mu)
+ self._gain_mu_text_box.set_value(self.gain_mu)
+
+ def set_gain(self, gain):
+ self.gain = gain
+ self._gain_slider.set_value(self.gain)
+ self._gain_text_box.set_value(self.gain)
+ self._saved_gain_config = ConfigParser.ConfigParser()
+ self._saved_gain_config.read(self.config_filename)
+ if not self._saved_gain_config.has_section("main"):
+ self._saved_gain_config.add_section("main")
+ self._saved_gain_config.set("main", "gain", str(self.gain))
+ self._saved_gain_config.write(open(self.config_filename, 'w'))
+
+ def set_freq(self, freq):
+ self.freq = freq
+ self.wxgui_fftsink2_0.set_baseband_freq(self.freq)
+ self._freq_slider.set_value(self.freq)
+ self._freq_text_box.set_value(self.freq)
+ self._saved_freq_config = ConfigParser.ConfigParser()
+ self._saved_freq_config.read(self.config_filename)
+ if not self._saved_freq_config.has_section("main"):
+ self._saved_freq_config.add_section("main")
+ self._saved_freq_config.set("main", "freq", str(self.freq))
+ self._saved_freq_config.write(open(self.config_filename, 'w'))
+
+ def set_costas_alpha(self, costas_alpha):
+ self.costas_alpha = costas_alpha
+ self.gr_mpsk_receiver_cc_0.set_alpha(self.costas_alpha)
+ self.gr_mpsk_receiver_cc_0.set_beta(self.costas_alpha*self.costas_alpha/4.0)
+ self._costas_alpha_slider.set_value(self.costas_alpha)
+ self._costas_alpha_text_box.set_value(self.costas_alpha)
+ self._saved_costas_alpha_config = ConfigParser.ConfigParser()
+ self._saved_costas_alpha_config.read(self.config_filename)
+ if not self._saved_costas_alpha_config.has_section("main"):
+ self._saved_costas_alpha_config.add_section("main")
+ self._saved_costas_alpha_config.set("main", "costas_alpha", str(self.costas_alpha))
+ self._saved_costas_alpha_config.write(open(self.config_filename, 'w'))
+
+if __name__ == '__main__':
+ parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ (options, args) = parser.parse_args()
+ tb = usrp_rx_lrit()
+ tb.Run(True)
+
--
cgit
From 225d3141a7f4754eae5a1a041e1d18dc38131772 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sat, 29 Aug 2009 13:24:58 -0700
Subject: Implemented crude timing recovery using zero crossings but no
resampling
---
gr-noaa/grc/usrp_rx_hrpt.grc | 513 ++++++++++++++++++++-----------------------
gr-noaa/grc/usrp_rx_hrpt.py | 35 ++-
2 files changed, 252 insertions(+), 296 deletions(-)
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/usrp_rx_hrpt.grc b/gr-noaa/grc/usrp_rx_hrpt.grc
index d3c6603ad..b304bd359 100644
--- a/gr-noaa/grc/usrp_rx_hrpt.grc
+++ b/gr-noaa/grc/usrp_rx_hrpt.grc
@@ -1,6 +1,6 @@
- Sat Aug 29 11:48:56 2009
+ Sat Aug 29 13:16:19 2009
options
@@ -257,85 +257,56 @@
- wxgui_fftsink2
+ variable
id
- rx_fftsink
+ max_carrier_offset
_enabled
True
- type
- complex
-
-
- title
- RX Spectrum
-
-
- samp_rate
- sample_rate
-
-
- baseband_freq
- 1698e6
-
-
- y_per_div
- 5
-
-
- y_divs
- 8
-
-
- ref_level
- 20
+ value
+ 2*math.pi*100e3/sample_rate
- fft_size
- 1024
+ _coordinate
+ (668, 107)
- fft_rate
- 30
+ _rotation
+ 0
+
+
+ variable
- peak_hold
- False
+ id
+ max_sync_offset
- average
+ _enabled
True
- avg_alpha
- 0.1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 0
+ value
+ 0.01
_coordinate
- (194, 263)
+ (665, 173)
_rotation
- 180
+ 0
wxgui_scopesink2
id
- wxgui_scopesink2_0
+ wxgui_scopesink2_0_0
_enabled
@@ -347,7 +318,7 @@
title
- RX Waveform
+ Post-PLL
samp_rate
@@ -355,7 +326,7 @@
v_scale
- 0
+ 0.5
t_scale
@@ -375,15 +346,15 @@
grid_pos
- 1, 0, 1, 1
+ 0, 0, 1, 1
notebook
- displays, 0
+ displays, 1
_coordinate
- (198, 609)
+ (618, 335)
_rotation
@@ -391,38 +362,34 @@
- gr_agc_xx
+ notebook
id
- agr
+ displays
_enabled
True
- type
- complex
-
-
- rate
- 1e-6
+ style
+ wx.NB_TOP
- reference
- 1.0
+ labels
+ ['RX','PLL','SYNC']
- gain
- 1.0
+ grid_pos
+ 1, 0, 1, 2
- max_gain
- 1.0
+ notebook
+
_coordinate
- (261, 494)
+ (9, 99)
_rotation
@@ -430,10 +397,10 @@
- gr_moving_average_xx
+ wxgui_scopesink2
id
- gr_moving_average_xx_0
+ wxgui_scopesink2_0_0_0
_enabled
@@ -444,66 +411,79 @@
complex
- length
- hs
+ title
+ Post-PLL
- scale
- 1.0/hs
+ samp_rate
+ sample_rate
- max_iter
- 4000
+ v_scale
+ 0.5
- _coordinate
- (434, 502)
+ t_scale
+ 20.0/sample_rate
- _rotation
- 0
+ ac_couple
+ False
-
-
- variable
- id
- max_carrier_offset
+ xy_mode
+ True
- _enabled
- True
+ num_inputs
+ 1
- value
- 2*math.pi*100e3/sample_rate
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 1
_coordinate
- (668, 107)
+ (618, 614)
_rotation
- 0
+ 180
- variable
+ noaa_hrpt_sync_cc
id
- max_sync_offset
+ sync
_enabled
True
- value
- 0.01
+ alpha
+ sync_alpha
+
+
+ beta
+ sync_alpha**2/4.0
+
+
+ sps
+ sps
+
+
+ max_offset
+ max_sync_offset
_coordinate
- (665, 173)
+ (865, 494)
_rotation
@@ -511,140 +491,156 @@
- variable_slider
+ wxgui_scopesink2
id
- pll_alpha
+ wxgui_scopesink2_0_0_0_0
_enabled
True
- label
- PLL Alpha
+ type
+ complex
- value
- 0.005
+ title
+ Post-SYNC
- min
- 0.0
+ samp_rate
+ sym_rate
- max
+ v_scale
0.5
- num_steps
- 500
+ t_scale
+ 20.0/sym_rate
- style
- wx.SL_HORIZONTAL
+ ac_couple
+ False
- converver
- float_converter
+ xy_mode
+ True
+
+
+ num_inputs
+ 1
grid_pos
- 0, 0, 1, 1
+ 1, 0, 1, 1
notebook
-
+ displays, 2
_coordinate
- (192, 100)
+ (872, 607)
_rotation
- 0
+ 180
- variable_slider
+ wxgui_scopesink2
id
- sync_alpha
+ wxgui_scopesink2_0_0_1
_enabled
True
- label
- SYNC Alpha
+ type
+ complex
- value
- 0.005
+ title
+ Post-SYNC
- min
- 0.0
+ samp_rate
+ sym_rate
- max
+ v_scale
0.5
- num_steps
- 500
+ t_scale
+ 20.0/sym_rate
- style
- wx.SL_HORIZONTAL
+ ac_couple
+ False
- converver
- float_converter
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
grid_pos
- 0, 1, 1, 1
+ 0, 0, 1, 1
notebook
-
+ displays, 2
_coordinate
- (344, 101)
+ (872, 341)
_rotation
- 0
+ 180
- noaa_hrpt_pll_cc
+ gr_agc_xx
id
- noaa_hrpt_pll_cc_0
+ agr
_enabled
True
- alpha
- pll_alpha
+ type
+ complex
- beta
- pll_alpha**2/4.0
+ rate
+ 1e-6
- max_offset
- max_carrier_offset
+ reference
+ 1.0
+
+
+ gain
+ 1.0
+
+
+ max_gain
+ 1.0
_coordinate
- (628, 502)
+ (261, 494)
_rotation
@@ -652,69 +648,41 @@
- wxgui_scopesink2
+ noaa_hrpt_pll_cc
id
- wxgui_scopesink2_0_0
+ noaa_hrpt_pll_cc_0
_enabled
True
- type
- complex
-
-
- title
- Post-PLL
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
+ alpha
+ pll_alpha
- grid_pos
- 0, 0, 1, 1
+ beta
+ pll_alpha**2/4.0
- notebook
- displays, 1
+ max_offset
+ max_carrier_offset
_coordinate
- (618, 335)
+ (628, 502)
_rotation
- 180
+ 0
- wxgui_scopesink2
+ wxgui_fftsink2
id
- wxgui_scopesink2_0_0_1
+ rx_fftsink
_enabled
@@ -726,78 +694,59 @@
title
- Post-SYNC
+ RX Spectrum
samp_rate
sample_rate
- v_scale
- 0.5
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
+ baseband_freq
+ 1698e6
- num_inputs
- 1
+ y_per_div
+ 5
- grid_pos
- 0, 0, 1, 1
+ y_divs
+ 8
- notebook
- displays, 2
+ ref_level
+ 20
- _coordinate
- (872, 341)
+ fft_size
+ 1024
- _rotation
- 180
+ fft_rate
+ 30
-
-
- notebook
- id
- displays
+ peak_hold
+ False
- _enabled
+ average
True
- style
- wx.NB_TOP
-
-
- labels
- ['RX','PLL','SYNC']
+ avg_alpha
+ 0.1
grid_pos
- 1, 0, 1, 2
+ 0, 0, 1, 1
notebook
-
+ displays, 0
_coordinate
- (9, 99)
+ (433, 297)
_rotation
@@ -808,7 +757,7 @@
wxgui_scopesink2
id
- wxgui_scopesink2_0_0_0
+ wxgui_scopesink2_0
_enabled
@@ -820,7 +769,7 @@
title
- Post-PLL
+ RX Waveform
samp_rate
@@ -828,7 +777,7 @@
v_scale
- 0.5
+ 0
t_scale
@@ -840,7 +789,7 @@
xy_mode
- True
+ False
num_inputs
@@ -852,46 +801,66 @@
notebook
- displays, 1
+ displays, 0
_coordinate
- (618, 614)
+ (434, 603)
_rotation
- 180
+ 0
- noaa_hrpt_sync_cc
+ variable_slider
id
- sync
+ pll_alpha
_enabled
True
- alpha
- sync_alpha
+ label
+ PLL Alpha
- beta
- sync_alpha**2/4.0
+ value
+ 0.001
- sps
- sps
+ min
+ 0.0
- max_offset
- max_sync_offset
+ max
+ 0.5
+
+
+ num_steps
+ 500
+
+
+ style
+ wx.SL_HORIZONTAL
+
+
+ converver
+ float_converter
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+
_coordinate
- (865, 494)
+ (192, 100)
_rotation
@@ -899,62 +868,58 @@
- wxgui_scopesink2
+ variable_slider
id
- wxgui_scopesink2_0_0_0_0
+ sync_alpha
_enabled
True
- type
- complex
+ label
+ SYNC Alpha
- title
- Post-SYNC
+ value
+ 0.001
- samp_rate
- sample_rate
+ min
+ 0.0
- v_scale
+ max
0.5
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
+ num_steps
+ 500
- xy_mode
- True
+ style
+ wx.SL_HORIZONTAL
- num_inputs
- 1
+ converver
+ float_converter
grid_pos
- 1, 0, 1, 1
+ 0, 1, 1, 1
notebook
- displays, 2
+
_coordinate
- (872, 607)
+ (344, 101)
_rotation
- 180
+ 0
@@ -969,12 +934,6 @@
0
0
-
- agr
- gr_moving_average_xx_0
- 0
- 0
-
agr
rx_fftsink
@@ -987,12 +946,6 @@
0
0
-
- gr_moving_average_xx_0
- noaa_hrpt_pll_cc_0
- 0
- 0
-
noaa_hrpt_pll_cc_0
wxgui_scopesink2_0_0
@@ -1023,4 +976,10 @@
0
0
+
+ agr
+ noaa_hrpt_pll_cc_0
+ 0
+ 0
+
diff --git a/gr-noaa/grc/usrp_rx_hrpt.py b/gr-noaa/grc/usrp_rx_hrpt.py
index ed6417335..5cfaf7842 100755
--- a/gr-noaa/grc/usrp_rx_hrpt.py
+++ b/gr-noaa/grc/usrp_rx_hrpt.py
@@ -2,7 +2,7 @@
##################################################
# Gnuradio Python Flow Graph
# Title: USRP HRPT Receiver
-# Generated: Sat Aug 29 11:48:57 2009
+# Generated: Sat Aug 29 13:16:19 2009
##################################################
from gnuradio import gr
@@ -28,8 +28,8 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.sym_rate = sym_rate = 600*1109
self.sample_rate = sample_rate = 64e6/decim
self.sps = sps = sample_rate/sym_rate
- self.sync_alpha = sync_alpha = 0.005
- self.pll_alpha = pll_alpha = 0.005
+ self.sync_alpha = sync_alpha = 0.001
+ self.pll_alpha = pll_alpha = 0.001
self.max_sync_offset = max_sync_offset = 0.01
self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
self.hs = hs = int(sps/2.0)
@@ -97,7 +97,6 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
# Blocks
##################################################
self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
- self.gr_moving_average_xx_0 = gr.moving_average_cc(hs, 1.0/hs, 4000)
self.noaa_hrpt_pll_cc_0 = noaa.hrpt_pll_cc(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
self.rx_fftsink = fftsink2.fft_sink_c(
self.displays.GetPage(0).GetWin(),
@@ -153,9 +152,9 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.wxgui_scopesink2_0_0_0_0 = scopesink2.scope_sink_c(
self.displays.GetPage(2).GetWin(),
title="Post-SYNC",
- sample_rate=sample_rate,
+ sample_rate=sym_rate,
v_scale=0.5,
- t_scale=20.0/sample_rate,
+ t_scale=20.0/sym_rate,
ac_couple=False,
xy_mode=True,
num_inputs=1,
@@ -164,9 +163,9 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.wxgui_scopesink2_0_0_1 = scopesink2.scope_sink_c(
self.displays.GetPage(2).GetWin(),
title="Post-SYNC",
- sample_rate=sample_rate,
+ sample_rate=sym_rate,
v_scale=0.5,
- t_scale=20.0/sample_rate,
+ t_scale=20.0/sym_rate,
ac_couple=False,
xy_mode=False,
num_inputs=1,
@@ -178,15 +177,14 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
##################################################
self.connect((self.src, 0), (self.throttle, 0))
self.connect((self.throttle, 0), (self.agr, 0))
- self.connect((self.agr, 0), (self.gr_moving_average_xx_0, 0))
self.connect((self.agr, 0), (self.rx_fftsink, 0))
self.connect((self.agr, 0), (self.wxgui_scopesink2_0, 0))
- self.connect((self.gr_moving_average_xx_0, 0), (self.noaa_hrpt_pll_cc_0, 0))
self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0, 0))
self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0_0, 0))
self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.sync, 0))
self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_1, 0))
self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
+ self.connect((self.agr, 0), (self.noaa_hrpt_pll_cc_0, 0))
def set_decim(self, decim):
self.decim = decim
@@ -195,17 +193,17 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
def set_sym_rate(self, sym_rate):
self.sym_rate = sym_rate
self.set_sps(self.sample_rate/self.sym_rate)
+ self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sym_rate)
+ self.wxgui_scopesink2_0_0_1.set_sample_rate(self.sym_rate)
def set_sample_rate(self, sample_rate):
self.sample_rate = sample_rate
self.set_sps(self.sample_rate/self.sym_rate)
- self.rx_fftsink.set_sample_rate(self.sample_rate)
- self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
- self.wxgui_scopesink2_0_0_1.set_sample_rate(self.sample_rate)
self.wxgui_scopesink2_0_0_0.set_sample_rate(self.sample_rate)
- self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sample_rate)
+ self.rx_fftsink.set_sample_rate(self.sample_rate)
+ self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
def set_sps(self, sps):
self.sps = sps
@@ -213,17 +211,17 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
def set_sync_alpha(self, sync_alpha):
self.sync_alpha = sync_alpha
- self._sync_alpha_slider.set_value(self.sync_alpha)
- self._sync_alpha_text_box.set_value(self.sync_alpha)
self.sync.set_alpha(self.sync_alpha)
self.sync.set_beta(self.sync_alpha**2/4.0)
+ self._sync_alpha_slider.set_value(self.sync_alpha)
+ self._sync_alpha_text_box.set_value(self.sync_alpha)
def set_pll_alpha(self, pll_alpha):
self.pll_alpha = pll_alpha
- self._pll_alpha_slider.set_value(self.pll_alpha)
- self._pll_alpha_text_box.set_value(self.pll_alpha)
self.noaa_hrpt_pll_cc_0.set_alpha(self.pll_alpha)
self.noaa_hrpt_pll_cc_0.set_beta(self.pll_alpha**2/4.0)
+ self._pll_alpha_slider.set_value(self.pll_alpha)
+ self._pll_alpha_text_box.set_value(self.pll_alpha)
def set_max_sync_offset(self, max_sync_offset):
self.max_sync_offset = max_sync_offset
@@ -235,7 +233,6 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
def set_hs(self, hs):
self.hs = hs
- self.gr_moving_average_xx_0.set_length_and_scale(self.hs, 1.0/self.hs)
if __name__ == '__main__':
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
--
cgit
From 65bcd58b65219408268e5db1b8fbafb2d3ccc215 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Mon, 7 Sep 2009 13:22:16 -0700
Subject: Updated HRPT blocks/scripts for testing. Seeing good minor frame
sync's.
* Change PLL and SYNC blocks to output floats
* Correct bit sense
* Update RX script to record ascii bits
---
gr-noaa/grc/Makefile.am | 4 +-
gr-noaa/grc/noaa_hrpt_pll_cc.xml | 34 ---
gr-noaa/grc/noaa_hrpt_pll_cf.xml | 34 +++
gr-noaa/grc/noaa_hrpt_sync_cc.xml | 39 ---
gr-noaa/grc/noaa_hrpt_sync_ff.xml | 39 +++
gr-noaa/grc/usrp_rx_hrpt.grc | 599 +++++++++++++++++++++-----------------
gr-noaa/grc/usrp_rx_hrpt.py | 78 ++---
7 files changed, 443 insertions(+), 384 deletions(-)
delete mode 100644 gr-noaa/grc/noaa_hrpt_pll_cc.xml
create mode 100644 gr-noaa/grc/noaa_hrpt_pll_cf.xml
delete mode 100644 gr-noaa/grc/noaa_hrpt_sync_cc.xml
create mode 100644 gr-noaa/grc/noaa_hrpt_sync_ff.xml
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
index c75529778..fa2c40c88 100644
--- a/gr-noaa/grc/Makefile.am
+++ b/gr-noaa/grc/Makefile.am
@@ -28,8 +28,8 @@ dist_bin_SCRIPTS = \
usrp_rx_lrit.py
dist_grcblocks_DATA = \
- noaa_hrpt_pll_cc.xml \
- noaa_hrpt_sync_cc.xml
+ noaa_hrpt_pll_cf.xml \
+ noaa_hrpt_sync_ff.xml
EXTRA_DIST = \
usrp_rx_hrpt.grc \
diff --git a/gr-noaa/grc/noaa_hrpt_pll_cc.xml b/gr-noaa/grc/noaa_hrpt_pll_cc.xml
deleted file mode 100644
index e56e0b056..000000000
--- a/gr-noaa/grc/noaa_hrpt_pll_cc.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- HRPT PLL
- noaa_hrpt_pll_cc
- NOAA
- from gnuradio import noaa
- noaa.hrpt_pll_cc($alpha, $beta, $max_offset)
- set_alpha($alpha)
- set_beta($beta)
- set_max_offset($max_offset)
-
- Alpha
- alpha
- real
-
-
- Beta
- beta
- real
-
-
- Max Offset
- max_offset
- real
-
-
- in
- complex
-
-
- out
- complex
-
-
diff --git a/gr-noaa/grc/noaa_hrpt_pll_cf.xml b/gr-noaa/grc/noaa_hrpt_pll_cf.xml
new file mode 100644
index 000000000..bbe15e8c3
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_pll_cf.xml
@@ -0,0 +1,34 @@
+
+
+ HRPT PLL
+ noaa_hrpt_pll_cf
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_pll_cf($alpha, $beta, $max_offset)
+ set_alpha($alpha)
+ set_beta($beta)
+ set_max_offset($max_offset)
+
+ Alpha
+ alpha
+ real
+
+
+ Beta
+ beta
+ real
+
+
+ Max Offset
+ max_offset
+ real
+
+
+ in
+ complex
+
+
+ out
+ float
+
+
diff --git a/gr-noaa/grc/noaa_hrpt_sync_cc.xml b/gr-noaa/grc/noaa_hrpt_sync_cc.xml
deleted file mode 100644
index d311aa946..000000000
--- a/gr-noaa/grc/noaa_hrpt_sync_cc.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- HRPT SYNC
- noaa_hrpt_sync_cc
- NOAA
- from gnuradio import noaa
- noaa.hrpt_sync_cc($alpha, $beta, $sps, $max_offset)
- set_alpha($alpha)
- set_beta($beta)
- set_max_offset($max_offset)
-
- Alpha
- alpha
- real
-
-
- Beta
- beta
- real
-
-
- Samples/Symbol
- sps
- real
-
-
- Max Offset
- max_offset
- real
-
-
- in
- complex
-
-
- out
- complex
-
-
diff --git a/gr-noaa/grc/noaa_hrpt_sync_ff.xml b/gr-noaa/grc/noaa_hrpt_sync_ff.xml
new file mode 100644
index 000000000..91b83ad5d
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_sync_ff.xml
@@ -0,0 +1,39 @@
+
+
+ HRPT SYNC
+ noaa_hrpt_sync_ff
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_sync_ff($alpha, $beta, $sps, $max_offset)
+ set_alpha($alpha)
+ set_beta($beta)
+ set_max_offset($max_offset)
+
+ Alpha
+ alpha
+ real
+
+
+ Beta
+ beta
+ real
+
+
+ Samples/Symbol
+ sps
+ real
+
+
+ Max Offset
+ max_offset
+ real
+
+
+ in
+ float
+
+
+ out
+ float
+
+
diff --git a/gr-noaa/grc/usrp_rx_hrpt.grc b/gr-noaa/grc/usrp_rx_hrpt.grc
index b304bd359..41aa1958e 100644
--- a/gr-noaa/grc/usrp_rx_hrpt.grc
+++ b/gr-noaa/grc/usrp_rx_hrpt.grc
@@ -1,6 +1,6 @@
- Sat Aug 29 13:16:19 2009
+ Mon Sep 7 13:05:09 2009
options
@@ -106,41 +106,6 @@
0
-
- gr_file_source
-
- id
- src
-
-
- _enabled
- True
-
-
- file
- poes-d16.dat
-
-
- type
- complex
-
-
- repeat
- True
-
-
- vlen
- 1
-
-
- _coordinate
- (34, 423)
-
-
- _rotation
- 0
-
-
variable
@@ -257,45 +222,78 @@
- variable
+ wxgui_fftsink2
id
- max_carrier_offset
+ rx_fftsink
_enabled
True
- value
- 2*math.pi*100e3/sample_rate
+ type
+ complex
- _coordinate
- (668, 107)
+ title
+ RX Spectrum
- _rotation
- 0
+ samp_rate
+ sample_rate
-
-
- variable
- id
- max_sync_offset
+ baseband_freq
+ 1698e6
- _enabled
+ y_per_div
+ 5
+
+
+ y_divs
+ 8
+
+
+ ref_level
+ 20
+
+
+ ref_scale
+ 2.0
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
True
- value
- 0.01
+ avg_alpha
+ 0.1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 0
_coordinate
- (665, 173)
+ (433, 297)
_rotation
@@ -306,7 +304,7 @@
wxgui_scopesink2
id
- wxgui_scopesink2_0_0
+ wxgui_scopesink2_0
_enabled
@@ -318,7 +316,7 @@
title
- Post-PLL
+ RX Waveform
samp_rate
@@ -326,7 +324,7 @@
v_scale
- 0.5
+ 0
t_scale
@@ -346,42 +344,62 @@
grid_pos
- 0, 0, 1, 1
+ 1, 0, 1, 1
notebook
- displays, 1
+ displays, 0
_coordinate
- (618, 335)
+ (434, 603)
_rotation
- 180
+ 0
- notebook
+ variable_slider
id
- displays
+ pll_alpha
_enabled
True
+
+ label
+ PLL Alpha
+
+
+ value
+ 0.001
+
+
+ min
+ 0.0
+
+
+ max
+ 0.5
+
+
+ num_steps
+ 500
+
style
- wx.NB_TOP
+ wx.SL_HORIZONTAL
- labels
- ['RX','PLL','SYNC']
+ converver
+ float_converter
grid_pos
- 1, 0, 1, 2
+ 0, 0, 1, 1
notebook
@@ -389,7 +407,7 @@
_coordinate
- (9, 99)
+ (192, 100)
_rotation
@@ -397,93 +415,100 @@
- wxgui_scopesink2
+ variable_slider
id
- wxgui_scopesink2_0_0_0
+ sync_alpha
_enabled
True
- type
- complex
+ label
+ SYNC Alpha
- title
- Post-PLL
+ value
+ 0.001
- samp_rate
- sample_rate
+ min
+ 0.0
- v_scale
+ max
0.5
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
+ num_steps
+ 500
- xy_mode
- True
+ style
+ wx.SL_HORIZONTAL
- num_inputs
- 1
+ converver
+ float_converter
grid_pos
- 1, 0, 1, 1
+ 0, 1, 1, 1
notebook
- displays, 1
+
_coordinate
- (618, 614)
+ (344, 101)
_rotation
- 180
+ 0
- noaa_hrpt_sync_cc
+ variable
id
- sync
+ max_carrier_offset
_enabled
True
- alpha
- sync_alpha
+ value
+ 2*math.pi*100e3/sample_rate
- beta
- sync_alpha**2/4.0
+ _coordinate
+ (671, 14)
- sps
- sps
+ _rotation
+ 0
+
+
+ variable
- max_offset
+ id
max_sync_offset
+
+ _enabled
+ True
+
+
+ value
+ 0.01
+
_coordinate
- (865, 494)
+ (805, 13)
_rotation
@@ -491,69 +516,84 @@
- wxgui_scopesink2
+ gr_file_source
id
- wxgui_scopesink2_0_0_0_0
+ src
_enabled
True
+
+ file
+ poes-d16.dat
+
type
complex
- title
- Post-SYNC
+ repeat
+ False
- samp_rate
- sym_rate
+ vlen
+ 1
- v_scale
- 0.5
+ _coordinate
+ (34, 423)
- t_scale
- 20.0/sym_rate
+ _rotation
+ 0
+
+
+ gr_agc_xx
- ac_couple
- False
+ id
+ agr
- xy_mode
+ _enabled
True
- num_inputs
- 1
+ type
+ complex
- grid_pos
- 1, 0, 1, 1
+ rate
+ 1e-6
- notebook
- displays, 2
+ reference
+ 1.0
+
+
+ gain
+ 1.0
+
+
+ max_gain
+ 1.0
_coordinate
- (872, 607)
+ (261, 494)
_rotation
- 180
+ 0
wxgui_scopesink2
id
- wxgui_scopesink2_0_0_1
+ wxgui_scopesink2_0_0
_enabled
@@ -561,15 +601,15 @@
type
- complex
+ float
title
- Post-SYNC
+ Post-PLL
samp_rate
- sym_rate
+ sample_rate
v_scale
@@ -577,7 +617,7 @@
t_scale
- 20.0/sym_rate
+ 20.0/sample_rate
ac_couple
@@ -597,11 +637,11 @@
notebook
- displays, 2
+ displays, 1
_coordinate
- (872, 341)
+ (618, 335)
_rotation
@@ -609,38 +649,30 @@
- gr_agc_xx
+ noaa_hrpt_pll_cf
id
- agr
+ noaa_hrpt_pll_cf_0
_enabled
True
- type
- complex
-
-
- rate
- 1e-6
-
-
- reference
- 1.0
+ alpha
+ pll_alpha
- gain
- 1.0
+ beta
+ pll_alpha**2/4.0
- max_gain
- 1.0
+ max_offset
+ max_carrier_offset
_coordinate
- (261, 494)
+ (639, 502)
_rotation
@@ -648,10 +680,10 @@
- noaa_hrpt_pll_cc
+ noaa_hrpt_sync_ff
id
- noaa_hrpt_pll_cc_0
+ noaa_hrpt_sync_ff_0
_enabled
@@ -659,19 +691,23 @@
alpha
- pll_alpha
+ .005
beta
- pll_alpha**2/4.0
+ .005*.005/4.0
+
+
+ sps
+ sps
max_offset
- max_carrier_offset
+ max_sync_offset
_coordinate
- (628, 502)
+ (876, 494)
_rotation
@@ -679,74 +715,91 @@
- wxgui_fftsink2
+ gr_binary_slicer_fb
id
- rx_fftsink
+ gr_binary_slicer_fb_0
_enabled
True
- type
- complex
+ _coordinate
+ (1108, 522)
- title
- RX Spectrum
+ _rotation
+ 0
+
+
+ virtual_sink
- samp_rate
- sample_rate
+ id
+ virtual_sink_1
- baseband_freq
- 1698e6
+ _enabled
+ True
- y_per_div
- 5
+ stream_id
+ bits
- y_divs
- 8
+ _coordinate
+ (1289, 518)
- ref_level
- 20
+ _rotation
+ 0
+
+
+ gr_file_sink
- fft_size
- 1024
+ id
+ gr_file_sink_0
- fft_rate
- 30
+ _enabled
+ True
- peak_hold
- False
+ file
+ bits.dat
- average
- True
+ type
+ byte
- avg_alpha
- 0.1
+ vlen
+ 1
- grid_pos
- 0, 0, 1, 1
+ _coordinate
+ (981, 919)
- notebook
- displays, 0
+ _rotation
+ 0
+
+
+
+ gr_char_to_float
+
+ id
+ gr_char_to_float_0
+
+
+ _enabled
+ True
_coordinate
- (433, 297)
+ (477, 923)
_rotation
@@ -754,58 +807,72 @@
- wxgui_scopesink2
+ gr_float_to_char
id
- wxgui_scopesink2_0
+ gr_float_to_char_0
_enabled
True
- type
- complex
+ _coordinate
+ (809, 923)
- title
- RX Waveform
+ _rotation
+ 0
+
+
+ gr_add_const_vxx
- samp_rate
- sample_rate
+ id
+ gr_add_const_vxx_0
- v_scale
- 0
+ _enabled
+ True
- t_scale
- 20.0/sample_rate
+ type
+ float
- ac_couple
- False
+ const
+ 48.0
- xy_mode
- False
+ vlen
+ 1
- num_inputs
- 1
+ _coordinate
+ (653, 919)
- grid_pos
- 1, 0, 1, 1
+ _rotation
+ 0
+
+
+ virtual_source
- notebook
- displays, 0
+ id
+ virtual_source_0
+
+
+ _enabled
+ True
+
+
+ stream_id
+ bits
_coordinate
- (434, 603)
+ (283, 919)
_rotation
@@ -813,101 +880,85 @@
- variable_slider
+ wxgui_scopesink2
id
- pll_alpha
+ wxgui_scopesink2_0_0_0_0
_enabled
True
- label
- PLL Alpha
+ type
+ float
- value
- 0.001
+ title
+ Post-SYNC
- min
- 0.0
+ samp_rate
+ sym_rate
- max
+ v_scale
0.5
- num_steps
- 500
+ t_scale
+ 20.0/sym_rate
- style
- wx.SL_HORIZONTAL
+ ac_couple
+ False
- converver
- float_converter
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
grid_pos
- 0, 0, 1, 1
+ 1, 0, 1, 1
notebook
-
+ displays, 1
_coordinate
- (192, 100)
+ (872, 607)
_rotation
- 0
+ 180
- variable_slider
+ notebook
id
- sync_alpha
+ displays
_enabled
True
-
- label
- SYNC Alpha
-
-
- value
- 0.001
-
-
- min
- 0.0
-
-
- max
- 0.5
-
-
- num_steps
- 500
-
style
- wx.SL_HORIZONTAL
+ wx.NB_TOP
- converver
- float_converter
+ labels
+ ['RX','PLL/SYNC']
grid_pos
- 0, 1, 1, 1
+ 1, 0, 1, 2
notebook
@@ -915,7 +966,7 @@
_coordinate
- (344, 101)
+ (9, 99)
_rotation
@@ -947,38 +998,62 @@
0
- noaa_hrpt_pll_cc_0
- wxgui_scopesink2_0_0
+ gr_binary_slicer_fb_0
+ virtual_sink_1
0
0
- noaa_hrpt_pll_cc_0
- wxgui_scopesink2_0_0_0
+ agr
+ noaa_hrpt_pll_cf_0
0
0
- noaa_hrpt_pll_cc_0
- sync
+ noaa_hrpt_pll_cf_0
+ wxgui_scopesink2_0_0
0
0
- sync
- wxgui_scopesink2_0_0_1
+ noaa_hrpt_pll_cf_0
+ noaa_hrpt_sync_ff_0
0
0
- sync
+ noaa_hrpt_sync_ff_0
+ gr_binary_slicer_fb_0
+ 0
+ 0
+
+
+ noaa_hrpt_sync_ff_0
wxgui_scopesink2_0_0_0_0
0
0
- agr
- noaa_hrpt_pll_cc_0
+ virtual_source_0
+ gr_char_to_float_0
+ 0
+ 0
+
+
+ gr_float_to_char_0
+ gr_file_sink_0
+ 0
+ 0
+
+
+ gr_add_const_vxx_0
+ gr_float_to_char_0
+ 0
+ 0
+
+
+ gr_char_to_float_0
+ gr_add_const_vxx_0
0
0
diff --git a/gr-noaa/grc/usrp_rx_hrpt.py b/gr-noaa/grc/usrp_rx_hrpt.py
index 5cfaf7842..74e352670 100755
--- a/gr-noaa/grc/usrp_rx_hrpt.py
+++ b/gr-noaa/grc/usrp_rx_hrpt.py
@@ -2,12 +2,14 @@
##################################################
# Gnuradio Python Flow Graph
# Title: USRP HRPT Receiver
-# Generated: Sat Aug 29 13:16:19 2009
+# Generated: Mon Sep 7 13:05:09 2009
##################################################
+from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import noaa
from gnuradio.eng_option import eng_option
+from gnuradio.gr import firdes
from gnuradio.wxgui import fftsink2
from gnuradio.wxgui import forms
from gnuradio.wxgui import scopesink2
@@ -39,8 +41,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
##################################################
self.displays = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
self.displays.AddPage(grc_wxgui.Panel(self.displays), "RX")
- self.displays.AddPage(grc_wxgui.Panel(self.displays), "PLL")
- self.displays.AddPage(grc_wxgui.Panel(self.displays), "SYNC")
+ self.displays.AddPage(grc_wxgui.Panel(self.displays), "PLL/SYNC")
self.GridAdd(self.displays, 1, 0, 1, 2)
##################################################
@@ -97,13 +98,20 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
# Blocks
##################################################
self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
- self.noaa_hrpt_pll_cc_0 = noaa.hrpt_pll_cc(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
+ self.gr_add_const_vxx_0 = gr.add_const_vff((48.0, ))
+ self.gr_binary_slicer_fb_0 = gr.binary_slicer_fb()
+ self.gr_char_to_float_0 = gr.char_to_float()
+ self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "bits.dat")
+ self.gr_float_to_char_0 = gr.float_to_char()
+ self.noaa_hrpt_pll_cf_0 = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
+ self.noaa_hrpt_sync_ff_0 = noaa.hrpt_sync_ff(.005, .005*.005/4.0, sps, max_sync_offset)
self.rx_fftsink = fftsink2.fft_sink_c(
self.displays.GetPage(0).GetWin(),
baseband_freq=1698e6,
y_per_div=5,
y_divs=8,
ref_level=20,
+ ref_scale=2.0,
sample_rate=sample_rate,
fft_size=1024,
fft_rate=30,
@@ -113,8 +121,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
peak_hold=False,
)
self.displays.GetPage(0).GridAdd(self.rx_fftsink.win, 0, 0, 1, 1)
- self.src = gr.file_source(gr.sizeof_gr_complex*1, "poes-d16.dat", True)
- self.sync = noaa.hrpt_sync_cc(sync_alpha, sync_alpha**2/4.0, sps, max_sync_offset)
+ self.src = gr.file_source(gr.sizeof_gr_complex*1, "poes-d16.dat", False)
self.throttle = gr.throttle(gr.sizeof_gr_complex*1, sample_rate)
self.wxgui_scopesink2_0 = scopesink2.scope_sink_c(
self.displays.GetPage(0).GetWin(),
@@ -127,7 +134,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
num_inputs=1,
)
self.displays.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 0, 1, 1)
- self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_c(
+ self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_f(
self.displays.GetPage(1).GetWin(),
title="Post-PLL",
sample_rate=sample_rate,
@@ -138,30 +145,8 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
num_inputs=1,
)
self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0.win, 0, 0, 1, 1)
- self.wxgui_scopesink2_0_0_0 = scopesink2.scope_sink_c(
+ self.wxgui_scopesink2_0_0_0_0 = scopesink2.scope_sink_f(
self.displays.GetPage(1).GetWin(),
- title="Post-PLL",
- sample_rate=sample_rate,
- v_scale=0.5,
- t_scale=20.0/sample_rate,
- ac_couple=False,
- xy_mode=True,
- num_inputs=1,
- )
- self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0_0.win, 1, 0, 1, 1)
- self.wxgui_scopesink2_0_0_0_0 = scopesink2.scope_sink_c(
- self.displays.GetPage(2).GetWin(),
- title="Post-SYNC",
- sample_rate=sym_rate,
- v_scale=0.5,
- t_scale=20.0/sym_rate,
- ac_couple=False,
- xy_mode=True,
- num_inputs=1,
- )
- self.displays.GetPage(2).GridAdd(self.wxgui_scopesink2_0_0_0_0.win, 1, 0, 1, 1)
- self.wxgui_scopesink2_0_0_1 = scopesink2.scope_sink_c(
- self.displays.GetPage(2).GetWin(),
title="Post-SYNC",
sample_rate=sym_rate,
v_scale=0.5,
@@ -170,7 +155,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
xy_mode=False,
num_inputs=1,
)
- self.displays.GetPage(2).GridAdd(self.wxgui_scopesink2_0_0_1.win, 0, 0, 1, 1)
+ self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0_0_0.win, 1, 0, 1, 1)
##################################################
# Connections
@@ -179,12 +164,15 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.connect((self.throttle, 0), (self.agr, 0))
self.connect((self.agr, 0), (self.rx_fftsink, 0))
self.connect((self.agr, 0), (self.wxgui_scopesink2_0, 0))
- self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0, 0))
- self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.wxgui_scopesink2_0_0_0, 0))
- self.connect((self.noaa_hrpt_pll_cc_0, 0), (self.sync, 0))
- self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_1, 0))
- self.connect((self.sync, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
- self.connect((self.agr, 0), (self.noaa_hrpt_pll_cc_0, 0))
+ self.connect((self.agr, 0), (self.noaa_hrpt_pll_cf_0, 0))
+ self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.wxgui_scopesink2_0_0, 0))
+ self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.noaa_hrpt_sync_ff_0, 0))
+ self.connect((self.noaa_hrpt_sync_ff_0, 0), (self.gr_binary_slicer_fb_0, 0))
+ self.connect((self.noaa_hrpt_sync_ff_0, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
+ self.connect((self.gr_binary_slicer_fb_0, 0), (self.gr_char_to_float_0, 0))
+ self.connect((self.gr_float_to_char_0, 0), (self.gr_file_sink_0, 0))
+ self.connect((self.gr_add_const_vxx_0, 0), (self.gr_float_to_char_0, 0))
+ self.connect((self.gr_char_to_float_0, 0), (self.gr_add_const_vxx_0, 0))
def set_decim(self, decim):
self.decim = decim
@@ -194,16 +182,14 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.sym_rate = sym_rate
self.set_sps(self.sample_rate/self.sym_rate)
self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sym_rate)
- self.wxgui_scopesink2_0_0_1.set_sample_rate(self.sym_rate)
def set_sample_rate(self, sample_rate):
self.sample_rate = sample_rate
self.set_sps(self.sample_rate/self.sym_rate)
- self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
- self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
- self.wxgui_scopesink2_0_0_0.set_sample_rate(self.sample_rate)
self.rx_fftsink.set_sample_rate(self.sample_rate)
self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
+ self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
+ self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
def set_sps(self, sps):
self.sps = sps
@@ -211,25 +197,23 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
def set_sync_alpha(self, sync_alpha):
self.sync_alpha = sync_alpha
- self.sync.set_alpha(self.sync_alpha)
- self.sync.set_beta(self.sync_alpha**2/4.0)
self._sync_alpha_slider.set_value(self.sync_alpha)
self._sync_alpha_text_box.set_value(self.sync_alpha)
def set_pll_alpha(self, pll_alpha):
self.pll_alpha = pll_alpha
- self.noaa_hrpt_pll_cc_0.set_alpha(self.pll_alpha)
- self.noaa_hrpt_pll_cc_0.set_beta(self.pll_alpha**2/4.0)
self._pll_alpha_slider.set_value(self.pll_alpha)
self._pll_alpha_text_box.set_value(self.pll_alpha)
+ self.noaa_hrpt_pll_cf_0.set_alpha(self.pll_alpha)
+ self.noaa_hrpt_pll_cf_0.set_beta(self.pll_alpha**2/4.0)
def set_max_sync_offset(self, max_sync_offset):
self.max_sync_offset = max_sync_offset
- self.sync.set_max_offset(self.max_sync_offset)
+ self.noaa_hrpt_sync_ff_0.set_max_offset(self.max_sync_offset)
def set_max_carrier_offset(self, max_carrier_offset):
self.max_carrier_offset = max_carrier_offset
- self.noaa_hrpt_pll_cc_0.set_max_offset(self.max_carrier_offset)
+ self.noaa_hrpt_pll_cf_0.set_max_offset(self.max_carrier_offset)
def set_hs(self, hs):
self.hs = hs
--
cgit
From b7d1c551fb374a0e5219fbb4d118f3f19f448393 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Tue, 8 Sep 2009 16:52:37 -0700
Subject: Changed synchronizer to output sliced bits.
---
gr-noaa/grc/Makefile.am | 2 +-
gr-noaa/grc/noaa_hrpt_sync_fb.xml | 39 ++++
gr-noaa/grc/noaa_hrpt_sync_ff.xml | 39 ----
gr-noaa/grc/usrp_rx_hrpt.grc | 455 ++++++++++++++++++--------------------
gr-noaa/grc/usrp_rx_hrpt.py | 20 +-
5 files changed, 264 insertions(+), 291 deletions(-)
create mode 100644 gr-noaa/grc/noaa_hrpt_sync_fb.xml
delete mode 100644 gr-noaa/grc/noaa_hrpt_sync_ff.xml
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
index fa2c40c88..e56bd354d 100644
--- a/gr-noaa/grc/Makefile.am
+++ b/gr-noaa/grc/Makefile.am
@@ -29,7 +29,7 @@ dist_bin_SCRIPTS = \
dist_grcblocks_DATA = \
noaa_hrpt_pll_cf.xml \
- noaa_hrpt_sync_ff.xml
+ noaa_hrpt_sync_fb.xml
EXTRA_DIST = \
usrp_rx_hrpt.grc \
diff --git a/gr-noaa/grc/noaa_hrpt_sync_fb.xml b/gr-noaa/grc/noaa_hrpt_sync_fb.xml
new file mode 100644
index 000000000..e066e3489
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_sync_fb.xml
@@ -0,0 +1,39 @@
+
+
+ HRPT SYNC
+ noaa_hrpt_sync_fb
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_sync_fb($alpha, $beta, $sps, $max_offset)
+ set_alpha($alpha)
+ set_beta($beta)
+ set_max_offset($max_offset)
+
+ Alpha
+ alpha
+ real
+
+
+ Beta
+ beta
+ real
+
+
+ Samples/Symbol
+ sps
+ real
+
+
+ Max Offset
+ max_offset
+ real
+
+
+ in
+ float
+
+
+ out
+ byte
+
+
diff --git a/gr-noaa/grc/noaa_hrpt_sync_ff.xml b/gr-noaa/grc/noaa_hrpt_sync_ff.xml
deleted file mode 100644
index 91b83ad5d..000000000
--- a/gr-noaa/grc/noaa_hrpt_sync_ff.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- HRPT SYNC
- noaa_hrpt_sync_ff
- NOAA
- from gnuradio import noaa
- noaa.hrpt_sync_ff($alpha, $beta, $sps, $max_offset)
- set_alpha($alpha)
- set_beta($beta)
- set_max_offset($max_offset)
-
- Alpha
- alpha
- real
-
-
- Beta
- beta
- real
-
-
- Samples/Symbol
- sps
- real
-
-
- Max Offset
- max_offset
- real
-
-
- in
- float
-
-
- out
- float
-
-
diff --git a/gr-noaa/grc/usrp_rx_hrpt.grc b/gr-noaa/grc/usrp_rx_hrpt.grc
index 41aa1958e..25b133532 100644
--- a/gr-noaa/grc/usrp_rx_hrpt.grc
+++ b/gr-noaa/grc/usrp_rx_hrpt.grc
@@ -1,6 +1,6 @@
- Mon Sep 7 13:05:09 2009
+ Tue Sep 8 14:57:48 2009
options
@@ -221,144 +221,6 @@
0
-
- wxgui_fftsink2
-
- id
- rx_fftsink
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- RX Spectrum
-
-
- samp_rate
- sample_rate
-
-
- baseband_freq
- 1698e6
-
-
- y_per_div
- 5
-
-
- y_divs
- 8
-
-
- ref_level
- 20
-
-
- ref_scale
- 2.0
-
-
- fft_size
- 1024
-
-
- fft_rate
- 30
-
-
- peak_hold
- False
-
-
- average
- True
-
-
- avg_alpha
- 0.1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (433, 297)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- RX Waveform
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (434, 603)
-
-
- _rotation
- 0
-
-
variable_slider
@@ -590,62 +452,61 @@
- wxgui_scopesink2
+ virtual_source
id
- wxgui_scopesink2_0_0
+ virtual_source_0
_enabled
True
- type
- float
-
-
- title
- Post-PLL
+ stream_id
+ bits
- samp_rate
- sample_rate
+ _coordinate
+ (283, 919)
- v_scale
- 0.5
+ _rotation
+ 0
+
+
+ notebook
- t_scale
- 20.0/sample_rate
+ id
+ displays
- ac_couple
- False
+ _enabled
+ True
- xy_mode
- False
+ style
+ wx.NB_TOP
- num_inputs
- 1
+ labels
+ ['RX','PLL/SYNC']
grid_pos
- 0, 0, 1, 1
+ 1, 0, 1, 2
notebook
- displays, 1
+
_coordinate
- (618, 335)
+ (9, 99)
_rotation
- 180
+ 0
@@ -680,10 +541,10 @@
- noaa_hrpt_sync_ff
+ noaa_hrpt_sync_fb
id
- noaa_hrpt_sync_ff_0
+ noaa_hrpt_sync_fb_0
_enabled
@@ -691,11 +552,11 @@
alpha
- .005
+ 0.001
beta
- .005*.005/4.0
+ 0.001**2/4.0
sps
@@ -707,7 +568,7 @@
_coordinate
- (876, 494)
+ (856, 494)
_rotation
@@ -715,18 +576,22 @@
- gr_binary_slicer_fb
+ virtual_sink
id
- gr_binary_slicer_fb_0
+ virtual_sink_1
_enabled
True
+
+ stream_id
+ bits
+
_coordinate
- (1108, 522)
+ (1126, 518)
_rotation
@@ -734,22 +599,18 @@
- virtual_sink
+ gr_char_to_float
id
- virtual_sink_1
+ gr_char_to_float_0
_enabled
True
-
- stream_id
- bits
-
_coordinate
- (1289, 518)
+ (477, 923)
_rotation
@@ -757,22 +618,22 @@
- gr_file_sink
+ gr_add_const_vxx
id
- gr_file_sink_0
+ gr_add_const_vxx_0
_enabled
True
- file
- bits.dat
+ type
+ float
- type
- byte
+ const
+ 48.0
vlen
@@ -780,7 +641,7 @@
_coordinate
- (981, 919)
+ (692, 919)
_rotation
@@ -788,10 +649,10 @@
- gr_char_to_float
+ gr_float_to_char
id
- gr_char_to_float_0
+ gr_float_to_char_0
_enabled
@@ -799,7 +660,7 @@
_coordinate
- (477, 923)
+ (848, 923)
_rotation
@@ -807,18 +668,30 @@
- gr_float_to_char
+ gr_file_sink
id
- gr_float_to_char_0
+ gr_file_sink_0
_enabled
True
+
+ file
+ bits.dat
+
+
+ type
+ byte
+
+
+ vlen
+ 1
+
_coordinate
- (809, 923)
+ (1020, 919)
_rotation
@@ -826,10 +699,10 @@
- gr_add_const_vxx
+ wxgui_scopesink2
id
- gr_add_const_vxx_0
+ wxgui_scopesink2_0_0_0_0
_enabled
@@ -840,39 +713,123 @@
float
- const
- 48.0
+ title
+ Post-SYNC
- vlen
+ samp_rate
+ sym_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sym_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
1
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
_coordinate
- (653, 919)
+ (452, 990)
_rotation
- 0
+ 180
- virtual_source
+ wxgui_fftsink2
id
- virtual_source_0
+ rx_fftsink
_enabled
True
- stream_id
- bits
+ type
+ complex
+
+
+ title
+ RX Spectrum
+
+
+ samp_rate
+ sample_rate
+
+
+ baseband_freq
+ 1698e6
+
+
+ y_per_div
+ 5
+
+
+ y_divs
+ 8
+
+
+ ref_level
+ 20
+
+
+ ref_scale
+ 2.0
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
+ False
+
+
+ average
+ True
+
+
+ avg_alpha
+ 0.1
+
+
+ grid_pos
+ 0, 0, 1, 1
+
+
+ notebook
+ displays, 0
_coordinate
- (283, 919)
+ (434, 269)
_rotation
@@ -883,7 +840,7 @@
wxgui_scopesink2
id
- wxgui_scopesink2_0_0_0_0
+ wxgui_scopesink2_0
_enabled
@@ -891,23 +848,23 @@
type
- float
+ complex
title
- Post-SYNC
+ RX Waveform
samp_rate
- sym_rate
+ sample_rate
v_scale
- 0.5
+ 0
t_scale
- 20.0/sym_rate
+ 20.0/sample_rate
ac_couple
@@ -927,50 +884,74 @@
notebook
- displays, 1
+ displays, 0
_coordinate
- (872, 607)
+ (433, 570)
_rotation
- 180
+ 0
- notebook
+ wxgui_scopesink2
id
- displays
+ wxgui_scopesink2_0_0
_enabled
True
- style
- wx.NB_TOP
+ type
+ float
- labels
- ['RX','PLL/SYNC']
+ title
+ Post-PLL
+
+
+ samp_rate
+ sample_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sample_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
+ 1
grid_pos
- 1, 0, 1, 2
+ 0, 0, 1, 1
notebook
-
+ displays, 1
_coordinate
- (9, 99)
+ (618, 335)
_rotation
- 0
+ 180
@@ -997,12 +978,6 @@
0
0
-
- gr_binary_slicer_fb_0
- virtual_sink_1
- 0
- 0
-
agr
noaa_hrpt_pll_cf_0
@@ -1016,32 +991,32 @@
0
- noaa_hrpt_pll_cf_0
- noaa_hrpt_sync_ff_0
+ virtual_source_0
+ gr_char_to_float_0
0
0
- noaa_hrpt_sync_ff_0
- gr_binary_slicer_fb_0
+ noaa_hrpt_pll_cf_0
+ noaa_hrpt_sync_fb_0
0
0
- noaa_hrpt_sync_ff_0
- wxgui_scopesink2_0_0_0_0
+ noaa_hrpt_sync_fb_0
+ virtual_sink_1
0
0
- virtual_source_0
- gr_char_to_float_0
+ gr_char_to_float_0
+ wxgui_scopesink2_0_0_0_0
0
0
- gr_float_to_char_0
- gr_file_sink_0
+ gr_char_to_float_0
+ gr_add_const_vxx_0
0
0
@@ -1052,8 +1027,8 @@
0
- gr_char_to_float_0
- gr_add_const_vxx_0
+ gr_float_to_char_0
+ gr_file_sink_0
0
0
diff --git a/gr-noaa/grc/usrp_rx_hrpt.py b/gr-noaa/grc/usrp_rx_hrpt.py
index 74e352670..10e2f31c0 100755
--- a/gr-noaa/grc/usrp_rx_hrpt.py
+++ b/gr-noaa/grc/usrp_rx_hrpt.py
@@ -2,7 +2,7 @@
##################################################
# Gnuradio Python Flow Graph
# Title: USRP HRPT Receiver
-# Generated: Mon Sep 7 13:05:09 2009
+# Generated: Tue Sep 8 14:58:57 2009
##################################################
from gnuradio import eng_notation
@@ -99,12 +99,11 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
##################################################
self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
self.gr_add_const_vxx_0 = gr.add_const_vff((48.0, ))
- self.gr_binary_slicer_fb_0 = gr.binary_slicer_fb()
self.gr_char_to_float_0 = gr.char_to_float()
self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "bits.dat")
self.gr_float_to_char_0 = gr.float_to_char()
self.noaa_hrpt_pll_cf_0 = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
- self.noaa_hrpt_sync_ff_0 = noaa.hrpt_sync_ff(.005, .005*.005/4.0, sps, max_sync_offset)
+ self.noaa_hrpt_sync_fb_0 = noaa.hrpt_sync_fb(0.001, 0.001**2/4.0, sps, max_sync_offset)
self.rx_fftsink = fftsink2.fft_sink_c(
self.displays.GetPage(0).GetWin(),
baseband_freq=1698e6,
@@ -166,13 +165,12 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.connect((self.agr, 0), (self.wxgui_scopesink2_0, 0))
self.connect((self.agr, 0), (self.noaa_hrpt_pll_cf_0, 0))
self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.wxgui_scopesink2_0_0, 0))
- self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.noaa_hrpt_sync_ff_0, 0))
- self.connect((self.noaa_hrpt_sync_ff_0, 0), (self.gr_binary_slicer_fb_0, 0))
- self.connect((self.noaa_hrpt_sync_ff_0, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
- self.connect((self.gr_binary_slicer_fb_0, 0), (self.gr_char_to_float_0, 0))
- self.connect((self.gr_float_to_char_0, 0), (self.gr_file_sink_0, 0))
- self.connect((self.gr_add_const_vxx_0, 0), (self.gr_float_to_char_0, 0))
+ self.connect((self.noaa_hrpt_sync_fb_0, 0), (self.gr_char_to_float_0, 0))
+ self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.noaa_hrpt_sync_fb_0, 0))
+ self.connect((self.gr_char_to_float_0, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
self.connect((self.gr_char_to_float_0, 0), (self.gr_add_const_vxx_0, 0))
+ self.connect((self.gr_add_const_vxx_0, 0), (self.gr_float_to_char_0, 0))
+ self.connect((self.gr_float_to_char_0, 0), (self.gr_file_sink_0, 0))
def set_decim(self, decim):
self.decim = decim
@@ -186,9 +184,9 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
def set_sample_rate(self, sample_rate):
self.sample_rate = sample_rate
self.set_sps(self.sample_rate/self.sym_rate)
+ self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
self.rx_fftsink.set_sample_rate(self.sample_rate)
self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
- self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
def set_sps(self, sps):
@@ -209,7 +207,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
def set_max_sync_offset(self, max_sync_offset):
self.max_sync_offset = max_sync_offset
- self.noaa_hrpt_sync_ff_0.set_max_offset(self.max_sync_offset)
+ self.noaa_hrpt_sync_fb_0.set_max_offset(self.max_sync_offset)
def set_max_carrier_offset(self, max_carrier_offset):
self.max_carrier_offset = max_carrier_offset
--
cgit
From ce9a41e69f5e3b9e0280d22fa778d167c3982db7 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Tue, 8 Sep 2009 21:08:29 -0700
Subject: Added HRPT deframer block
---
gr-noaa/grc/Makefile.am | 1 +
gr-noaa/grc/noaa_hrpt_deframer.xml | 12 ++
gr-noaa/grc/usrp_rx_hrpt.grc | 367 ++++++++++++++++++++-----------------
gr-noaa/grc/usrp_rx_hrpt.py | 16 +-
4 files changed, 215 insertions(+), 181 deletions(-)
create mode 100644 gr-noaa/grc/noaa_hrpt_deframer.xml
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
index e56bd354d..4e4c0bae0 100644
--- a/gr-noaa/grc/Makefile.am
+++ b/gr-noaa/grc/Makefile.am
@@ -28,6 +28,7 @@ dist_bin_SCRIPTS = \
usrp_rx_lrit.py
dist_grcblocks_DATA = \
+ noaa_hrpt_deframer.xml \
noaa_hrpt_pll_cf.xml \
noaa_hrpt_sync_fb.xml
diff --git a/gr-noaa/grc/noaa_hrpt_deframer.xml b/gr-noaa/grc/noaa_hrpt_deframer.xml
new file mode 100644
index 000000000..bc68f71d3
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_deframer.xml
@@ -0,0 +1,12 @@
+
+
+ HRPT Deframer
+ noaa_hrpt_deframer
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_deframer()
+
+ in
+ byte
+
+
diff --git a/gr-noaa/grc/usrp_rx_hrpt.grc b/gr-noaa/grc/usrp_rx_hrpt.grc
index 25b133532..715846743 100644
--- a/gr-noaa/grc/usrp_rx_hrpt.grc
+++ b/gr-noaa/grc/usrp_rx_hrpt.grc
@@ -1,6 +1,6 @@
- Tue Sep 8 14:57:48 2009
+ Tue Sep 8 21:03:12 2009
options
@@ -377,41 +377,6 @@
0
-
- gr_file_source
-
- id
- src
-
-
- _enabled
- True
-
-
- file
- poes-d16.dat
-
-
- type
- complex
-
-
- repeat
- False
-
-
- vlen
- 1
-
-
- _coordinate
- (34, 423)
-
-
- _rotation
- 0
-
-
gr_agc_xx
@@ -540,41 +505,6 @@
0
-
- noaa_hrpt_sync_fb
-
- id
- noaa_hrpt_sync_fb_0
-
-
- _enabled
- True
-
-
- alpha
- 0.001
-
-
- beta
- 0.001**2/4.0
-
-
- sps
- sps
-
-
- max_offset
- max_sync_offset
-
-
- _coordinate
- (856, 494)
-
-
- _rotation
- 0
-
-
virtual_sink
@@ -618,10 +548,10 @@
- gr_add_const_vxx
+ wxgui_scopesink2
id
- gr_add_const_vxx_0
+ wxgui_scopesink2_0_0_0_0
_enabled
@@ -632,66 +562,103 @@
float
- const
- 48.0
+ title
+ Post-SYNC
- vlen
+ samp_rate
+ sym_rate
+
+
+ v_scale
+ 0.5
+
+
+ t_scale
+ 20.0/sym_rate
+
+
+ ac_couple
+ False
+
+
+ xy_mode
+ False
+
+
+ num_inputs
1
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 1
+
_coordinate
- (692, 919)
+ (452, 990)
_rotation
- 0
+ 180
- gr_float_to_char
+ wxgui_scopesink2
id
- gr_float_to_char_0
+ wxgui_scopesink2_0
_enabled
True
- _coordinate
- (848, 923)
+ type
+ complex
- _rotation
- 0
+ title
+ RX Waveform
-
-
- gr_file_sink
- id
- gr_file_sink_0
+ samp_rate
+ sample_rate
- _enabled
- True
+ v_scale
+ 0
- file
- bits.dat
+ t_scale
+ 20.0/sample_rate
- type
- byte
+ ac_couple
+ False
- vlen
+ xy_mode
+ False
+
+
+ num_inputs
1
+
+ grid_pos
+ 1, 0, 1, 1
+
+
+ notebook
+ displays, 0
+
_coordinate
- (1020, 919)
+ (433, 570)
_rotation
@@ -702,7 +669,7 @@
wxgui_scopesink2
id
- wxgui_scopesink2_0_0_0_0
+ wxgui_scopesink2_0_0
_enabled
@@ -714,11 +681,11 @@
title
- Post-SYNC
+ Post-PLL
samp_rate
- sym_rate
+ sample_rate
v_scale
@@ -726,7 +693,7 @@
t_scale
- 20.0/sym_rate
+ 20.0/sample_rate
ac_couple
@@ -742,7 +709,7 @@
grid_pos
- 1, 0, 1, 1
+ 0, 0, 1, 1
notebook
@@ -750,7 +717,7 @@
_coordinate
- (452, 990)
+ (618, 335)
_rotation
@@ -758,78 +725,88 @@
- wxgui_fftsink2
+ noaa_hrpt_sync_fb
id
- rx_fftsink
+ noaa_hrpt_sync_fb_0
_enabled
True
- type
- complex
+ alpha
+ 0.001
- title
- RX Spectrum
+ beta
+ 0.001**2/4.0
- samp_rate
- sample_rate
+ sps
+ sps
- baseband_freq
- 1698e6
+ max_offset
+ max_sync_offset
- y_per_div
- 5
+ _coordinate
+ (856, 494)
- y_divs
- 8
+ _rotation
+ 0
+
+
+ noaa_hrpt_deframer
- ref_level
- 20
+ id
+ noaa_hrpt_deframer_0
- ref_scale
- 2.0
+ _enabled
+ True
- fft_size
- 1024
+ _coordinate
+ (1110, 631)
- fft_rate
- 30
+ _rotation
+ 0
+
+
+ gr_file_source
- peak_hold
- False
+ id
+ src
- average
+ _enabled
True
- avg_alpha
- 0.1
+ file
+ poes-d16.dat
- grid_pos
- 0, 0, 1, 1
+ type
+ complex
- notebook
- displays, 0
+ repeat
+ True
+
+
+ vlen
+ 1
_coordinate
- (434, 269)
+ (34, 423)
_rotation
@@ -837,58 +814,80 @@
- wxgui_scopesink2
+ gr_add_const_vxx
id
- wxgui_scopesink2_0
+ gr_add_const_vxx_0
_enabled
- True
+ False
type
- complex
+ float
- title
- RX Waveform
+ const
+ 48.0
- samp_rate
- sample_rate
+ vlen
+ 1
- v_scale
+ _coordinate
+ (692, 919)
+
+
+ _rotation
0
+
+
+ gr_float_to_char
- t_scale
- 20.0/sample_rate
+ id
+ gr_float_to_char_0
- ac_couple
+ _enabled
False
- xy_mode
+ _coordinate
+ (848, 923)
+
+
+ _rotation
+ 0
+
+
+
+ gr_file_sink
+
+ id
+ gr_file_sink_0
+
+
+ _enabled
False
- num_inputs
- 1
+ file
+ bits.dat
- grid_pos
- 1, 0, 1, 1
+ type
+ byte
- notebook
- displays, 0
+ vlen
+ 1
_coordinate
- (433, 570)
+ (1020, 919)
_rotation
@@ -896,10 +895,10 @@
- wxgui_scopesink2
+ wxgui_fftsink2
id
- wxgui_scopesink2_0_0
+ rx_fftsink
_enabled
@@ -907,35 +906,55 @@
type
- float
+ complex
title
- Post-PLL
+ RX Spectrum
samp_rate
sample_rate
- v_scale
- 0.5
+ baseband_freq
+ 1698e6
- t_scale
- 20.0/sample_rate
+ y_per_div
+ 5
- ac_couple
- False
+ y_divs
+ 8
- xy_mode
+ ref_level
+ -5
+
+
+ ref_scale
+ 2.0
+
+
+ fft_size
+ 1024
+
+
+ fft_rate
+ 30
+
+
+ peak_hold
False
- num_inputs
- 1
+ average
+ True
+
+
+ avg_alpha
+ 0.1
grid_pos
@@ -943,15 +962,15 @@
notebook
- displays, 1
+ displays, 0
_coordinate
- (618, 335)
+ (434, 269)
_rotation
- 180
+ 0
@@ -1032,4 +1051,10 @@
0
0
+
+ noaa_hrpt_sync_fb_0
+ noaa_hrpt_deframer_0
+ 0
+ 0
+
diff --git a/gr-noaa/grc/usrp_rx_hrpt.py b/gr-noaa/grc/usrp_rx_hrpt.py
index 10e2f31c0..40cc517fc 100755
--- a/gr-noaa/grc/usrp_rx_hrpt.py
+++ b/gr-noaa/grc/usrp_rx_hrpt.py
@@ -2,7 +2,7 @@
##################################################
# Gnuradio Python Flow Graph
# Title: USRP HRPT Receiver
-# Generated: Tue Sep 8 14:58:57 2009
+# Generated: Tue Sep 8 21:03:12 2009
##################################################
from gnuradio import eng_notation
@@ -98,10 +98,8 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
# Blocks
##################################################
self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
- self.gr_add_const_vxx_0 = gr.add_const_vff((48.0, ))
self.gr_char_to_float_0 = gr.char_to_float()
- self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "bits.dat")
- self.gr_float_to_char_0 = gr.float_to_char()
+ self.noaa_hrpt_deframer_0 = noaa.hrpt_deframer()
self.noaa_hrpt_pll_cf_0 = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
self.noaa_hrpt_sync_fb_0 = noaa.hrpt_sync_fb(0.001, 0.001**2/4.0, sps, max_sync_offset)
self.rx_fftsink = fftsink2.fft_sink_c(
@@ -109,7 +107,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
baseband_freq=1698e6,
y_per_div=5,
y_divs=8,
- ref_level=20,
+ ref_level=-5,
ref_scale=2.0,
sample_rate=sample_rate,
fft_size=1024,
@@ -120,7 +118,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
peak_hold=False,
)
self.displays.GetPage(0).GridAdd(self.rx_fftsink.win, 0, 0, 1, 1)
- self.src = gr.file_source(gr.sizeof_gr_complex*1, "poes-d16.dat", False)
+ self.src = gr.file_source(gr.sizeof_gr_complex*1, "poes-d16.dat", True)
self.throttle = gr.throttle(gr.sizeof_gr_complex*1, sample_rate)
self.wxgui_scopesink2_0 = scopesink2.scope_sink_c(
self.displays.GetPage(0).GetWin(),
@@ -168,9 +166,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.connect((self.noaa_hrpt_sync_fb_0, 0), (self.gr_char_to_float_0, 0))
self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.noaa_hrpt_sync_fb_0, 0))
self.connect((self.gr_char_to_float_0, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
- self.connect((self.gr_char_to_float_0, 0), (self.gr_add_const_vxx_0, 0))
- self.connect((self.gr_add_const_vxx_0, 0), (self.gr_float_to_char_0, 0))
- self.connect((self.gr_float_to_char_0, 0), (self.gr_file_sink_0, 0))
+ self.connect((self.noaa_hrpt_sync_fb_0, 0), (self.noaa_hrpt_deframer_0, 0))
def set_decim(self, decim):
self.decim = decim
@@ -185,9 +181,9 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
self.sample_rate = sample_rate
self.set_sps(self.sample_rate/self.sym_rate)
self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
- self.rx_fftsink.set_sample_rate(self.sample_rate)
self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
+ self.rx_fftsink.set_sample_rate(self.sample_rate)
def set_sps(self, sps):
self.sps = sps
--
cgit
From e2216220f85d3e9d93db3946aa0e68e59309d1c2 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sun, 20 Sep 2009 09:49:10 -0700
Subject: Reorganization of directories
Moved apps into own directory
Added (empty) python directory
---
gr-noaa/grc/Makefile.am | 7 -
gr-noaa/grc/usrp_rx_hrpt.grc | 1060 ------------------------------
gr-noaa/grc/usrp_rx_hrpt.py | 220 -------
gr-noaa/grc/usrp_rx_lrit.grc | 1477 ------------------------------------------
gr-noaa/grc/usrp_rx_lrit.py | 399 ------------
5 files changed, 3163 deletions(-)
delete mode 100644 gr-noaa/grc/usrp_rx_hrpt.grc
delete mode 100755 gr-noaa/grc/usrp_rx_hrpt.py
delete mode 100644 gr-noaa/grc/usrp_rx_lrit.grc
delete mode 100755 gr-noaa/grc/usrp_rx_lrit.py
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
index 4e4c0bae0..9f1f88195 100644
--- a/gr-noaa/grc/Makefile.am
+++ b/gr-noaa/grc/Makefile.am
@@ -23,15 +23,8 @@ include $(top_srcdir)/Makefile.common
grcblocksdir = $(prefix)/share/gnuradio/grc/blocks
-dist_bin_SCRIPTS = \
- usrp_rx_hrpt.py \
- usrp_rx_lrit.py
-
dist_grcblocks_DATA = \
noaa_hrpt_deframer.xml \
noaa_hrpt_pll_cf.xml \
noaa_hrpt_sync_fb.xml
-EXTRA_DIST = \
- usrp_rx_hrpt.grc \
- usrp_rx_lrit.grc
diff --git a/gr-noaa/grc/usrp_rx_hrpt.grc b/gr-noaa/grc/usrp_rx_hrpt.grc
deleted file mode 100644
index 715846743..000000000
--- a/gr-noaa/grc/usrp_rx_hrpt.grc
+++ /dev/null
@@ -1,1060 +0,0 @@
-
-
- Tue Sep 8 21:03:12 2009
-
- options
-
- id
- usrp_rx_hrpt
-
-
- _enabled
- True
-
-
- title
- USRP HRPT Receiver
-
-
- author
-
-
-
- description
-
-
-
- window_size
- 4096,4096
-
-
- generate_options
- wx_gui
-
-
- category
- Custom
-
-
- run
- True
-
-
- realtime_scheduling
-
-
-
- _coordinate
- (10, 10)
-
-
- _rotation
- 0
-
-
-
- import
-
- id
- import_0
-
-
- _enabled
- True
-
-
- import
- import math
-
-
- _coordinate
- (9, 202)
-
-
- _rotation
- 0
-
-
-
- gr_throttle
-
- id
- throttle
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- samples_per_second
- sample_rate
-
-
- vlen
- 1
-
-
- _coordinate
- (79, 518)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- decim
-
-
- _enabled
- True
-
-
- value
- 16
-
-
- _coordinate
- (186, 10)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- hs
-
-
- _enabled
- True
-
-
- value
- int(sps/2.0)
-
-
- _coordinate
- (589, 13)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sym_rate
-
-
- _enabled
- True
-
-
- value
- 600*1109
-
-
- _coordinate
- (383, 7)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sps
-
-
- _enabled
- True
-
-
- value
- sample_rate/sym_rate
-
-
- _coordinate
- (479, 11)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sample_rate
-
-
- _enabled
- True
-
-
- value
- 64e6/decim
-
-
- _coordinate
- (273, 9)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- pll_alpha
-
-
- _enabled
- True
-
-
- label
- PLL Alpha
-
-
- value
- 0.001
-
-
- min
- 0.0
-
-
- max
- 0.5
-
-
- num_steps
- 500
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (192, 100)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- sync_alpha
-
-
- _enabled
- True
-
-
- label
- SYNC Alpha
-
-
- value
- 0.001
-
-
- min
- 0.0
-
-
- max
- 0.5
-
-
- num_steps
- 500
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 1, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (344, 101)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- max_carrier_offset
-
-
- _enabled
- True
-
-
- value
- 2*math.pi*100e3/sample_rate
-
-
- _coordinate
- (671, 14)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- max_sync_offset
-
-
- _enabled
- True
-
-
- value
- 0.01
-
-
- _coordinate
- (805, 13)
-
-
- _rotation
- 0
-
-
-
- gr_agc_xx
-
- id
- agr
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- rate
- 1e-6
-
-
- reference
- 1.0
-
-
- gain
- 1.0
-
-
- max_gain
- 1.0
-
-
- _coordinate
- (261, 494)
-
-
- _rotation
- 0
-
-
-
- virtual_source
-
- id
- virtual_source_0
-
-
- _enabled
- True
-
-
- stream_id
- bits
-
-
- _coordinate
- (283, 919)
-
-
- _rotation
- 0
-
-
-
- notebook
-
- id
- displays
-
-
- _enabled
- True
-
-
- style
- wx.NB_TOP
-
-
- labels
- ['RX','PLL/SYNC']
-
-
- grid_pos
- 1, 0, 1, 2
-
-
- notebook
-
-
-
- _coordinate
- (9, 99)
-
-
- _rotation
- 0
-
-
-
- noaa_hrpt_pll_cf
-
- id
- noaa_hrpt_pll_cf_0
-
-
- _enabled
- True
-
-
- alpha
- pll_alpha
-
-
- beta
- pll_alpha**2/4.0
-
-
- max_offset
- max_carrier_offset
-
-
- _coordinate
- (639, 502)
-
-
- _rotation
- 0
-
-
-
- virtual_sink
-
- id
- virtual_sink_1
-
-
- _enabled
- True
-
-
- stream_id
- bits
-
-
- _coordinate
- (1126, 518)
-
-
- _rotation
- 0
-
-
-
- gr_char_to_float
-
- id
- gr_char_to_float_0
-
-
- _enabled
- True
-
-
- _coordinate
- (477, 923)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0_0_0_0
-
-
- _enabled
- True
-
-
- type
- float
-
-
- title
- Post-SYNC
-
-
- samp_rate
- sym_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 20.0/sym_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (452, 990)
-
-
- _rotation
- 180
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- RX Waveform
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (433, 570)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0_0
-
-
- _enabled
- True
-
-
- type
- float
-
-
- title
- Post-PLL
-
-
- samp_rate
- sample_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 20.0/sample_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- False
-
-
- num_inputs
- 1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (618, 335)
-
-
- _rotation
- 180
-
-
-
- noaa_hrpt_sync_fb
-
- id
- noaa_hrpt_sync_fb_0
-
-
- _enabled
- True
-
-
- alpha
- 0.001
-
-
- beta
- 0.001**2/4.0
-
-
- sps
- sps
-
-
- max_offset
- max_sync_offset
-
-
- _coordinate
- (856, 494)
-
-
- _rotation
- 0
-
-
-
- noaa_hrpt_deframer
-
- id
- noaa_hrpt_deframer_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1110, 631)
-
-
- _rotation
- 0
-
-
-
- gr_file_source
-
- id
- src
-
-
- _enabled
- True
-
-
- file
- poes-d16.dat
-
-
- type
- complex
-
-
- repeat
- True
-
-
- vlen
- 1
-
-
- _coordinate
- (34, 423)
-
-
- _rotation
- 0
-
-
-
- gr_add_const_vxx
-
- id
- gr_add_const_vxx_0
-
-
- _enabled
- False
-
-
- type
- float
-
-
- const
- 48.0
-
-
- vlen
- 1
-
-
- _coordinate
- (692, 919)
-
-
- _rotation
- 0
-
-
-
- gr_float_to_char
-
- id
- gr_float_to_char_0
-
-
- _enabled
- False
-
-
- _coordinate
- (848, 923)
-
-
- _rotation
- 0
-
-
-
- gr_file_sink
-
- id
- gr_file_sink_0
-
-
- _enabled
- False
-
-
- file
- bits.dat
-
-
- type
- byte
-
-
- vlen
- 1
-
-
- _coordinate
- (1020, 919)
-
-
- _rotation
- 0
-
-
-
- wxgui_fftsink2
-
- id
- rx_fftsink
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- RX Spectrum
-
-
- samp_rate
- sample_rate
-
-
- baseband_freq
- 1698e6
-
-
- y_per_div
- 5
-
-
- y_divs
- 8
-
-
- ref_level
- -5
-
-
- ref_scale
- 2.0
-
-
- fft_size
- 1024
-
-
- fft_rate
- 30
-
-
- peak_hold
- False
-
-
- average
- True
-
-
- avg_alpha
- 0.1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (434, 269)
-
-
- _rotation
- 0
-
-
-
- src
- throttle
- 0
- 0
-
-
- throttle
- agr
- 0
- 0
-
-
- agr
- rx_fftsink
- 0
- 0
-
-
- agr
- wxgui_scopesink2_0
- 0
- 0
-
-
- agr
- noaa_hrpt_pll_cf_0
- 0
- 0
-
-
- noaa_hrpt_pll_cf_0
- wxgui_scopesink2_0_0
- 0
- 0
-
-
- virtual_source_0
- gr_char_to_float_0
- 0
- 0
-
-
- noaa_hrpt_pll_cf_0
- noaa_hrpt_sync_fb_0
- 0
- 0
-
-
- noaa_hrpt_sync_fb_0
- virtual_sink_1
- 0
- 0
-
-
- gr_char_to_float_0
- wxgui_scopesink2_0_0_0_0
- 0
- 0
-
-
- gr_char_to_float_0
- gr_add_const_vxx_0
- 0
- 0
-
-
- gr_add_const_vxx_0
- gr_float_to_char_0
- 0
- 0
-
-
- gr_float_to_char_0
- gr_file_sink_0
- 0
- 0
-
-
- noaa_hrpt_sync_fb_0
- noaa_hrpt_deframer_0
- 0
- 0
-
-
diff --git a/gr-noaa/grc/usrp_rx_hrpt.py b/gr-noaa/grc/usrp_rx_hrpt.py
deleted file mode 100755
index 40cc517fc..000000000
--- a/gr-noaa/grc/usrp_rx_hrpt.py
+++ /dev/null
@@ -1,220 +0,0 @@
-#!/usr/bin/env python
-##################################################
-# Gnuradio Python Flow Graph
-# Title: USRP HRPT Receiver
-# Generated: Tue Sep 8 21:03:12 2009
-##################################################
-
-from gnuradio import eng_notation
-from gnuradio import gr
-from gnuradio import noaa
-from gnuradio.eng_option import eng_option
-from gnuradio.gr import firdes
-from gnuradio.wxgui import fftsink2
-from gnuradio.wxgui import forms
-from gnuradio.wxgui import scopesink2
-from grc_gnuradio import wxgui as grc_wxgui
-from optparse import OptionParser
-import math
-import wx
-
-class usrp_rx_hrpt(grc_wxgui.top_block_gui):
-
- def __init__(self):
- grc_wxgui.top_block_gui.__init__(self, title="USRP HRPT Receiver")
-
- ##################################################
- # Variables
- ##################################################
- self.decim = decim = 16
- self.sym_rate = sym_rate = 600*1109
- self.sample_rate = sample_rate = 64e6/decim
- self.sps = sps = sample_rate/sym_rate
- self.sync_alpha = sync_alpha = 0.001
- self.pll_alpha = pll_alpha = 0.001
- self.max_sync_offset = max_sync_offset = 0.01
- self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
- self.hs = hs = int(sps/2.0)
-
- ##################################################
- # Notebooks
- ##################################################
- self.displays = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
- self.displays.AddPage(grc_wxgui.Panel(self.displays), "RX")
- self.displays.AddPage(grc_wxgui.Panel(self.displays), "PLL/SYNC")
- self.GridAdd(self.displays, 1, 0, 1, 2)
-
- ##################################################
- # Controls
- ##################################################
- _sync_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
- self._sync_alpha_text_box = forms.text_box(
- parent=self.GetWin(),
- sizer=_sync_alpha_sizer,
- value=self.sync_alpha,
- callback=self.set_sync_alpha,
- label="SYNC Alpha",
- converter=forms.float_converter(),
- proportion=0,
- )
- self._sync_alpha_slider = forms.slider(
- parent=self.GetWin(),
- sizer=_sync_alpha_sizer,
- value=self.sync_alpha,
- callback=self.set_sync_alpha,
- minimum=0.0,
- maximum=0.5,
- num_steps=500,
- style=wx.SL_HORIZONTAL,
- cast=float,
- proportion=1,
- )
- self.GridAdd(_sync_alpha_sizer, 0, 1, 1, 1)
- _pll_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
- self._pll_alpha_text_box = forms.text_box(
- parent=self.GetWin(),
- sizer=_pll_alpha_sizer,
- value=self.pll_alpha,
- callback=self.set_pll_alpha,
- label="PLL Alpha",
- converter=forms.float_converter(),
- proportion=0,
- )
- self._pll_alpha_slider = forms.slider(
- parent=self.GetWin(),
- sizer=_pll_alpha_sizer,
- value=self.pll_alpha,
- callback=self.set_pll_alpha,
- minimum=0.0,
- maximum=0.5,
- num_steps=500,
- style=wx.SL_HORIZONTAL,
- cast=float,
- proportion=1,
- )
- self.GridAdd(_pll_alpha_sizer, 0, 0, 1, 1)
-
- ##################################################
- # Blocks
- ##################################################
- self.agr = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
- self.gr_char_to_float_0 = gr.char_to_float()
- self.noaa_hrpt_deframer_0 = noaa.hrpt_deframer()
- self.noaa_hrpt_pll_cf_0 = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
- self.noaa_hrpt_sync_fb_0 = noaa.hrpt_sync_fb(0.001, 0.001**2/4.0, sps, max_sync_offset)
- self.rx_fftsink = fftsink2.fft_sink_c(
- self.displays.GetPage(0).GetWin(),
- baseband_freq=1698e6,
- y_per_div=5,
- y_divs=8,
- ref_level=-5,
- ref_scale=2.0,
- sample_rate=sample_rate,
- fft_size=1024,
- fft_rate=30,
- average=True,
- avg_alpha=0.1,
- title="RX Spectrum",
- peak_hold=False,
- )
- self.displays.GetPage(0).GridAdd(self.rx_fftsink.win, 0, 0, 1, 1)
- self.src = gr.file_source(gr.sizeof_gr_complex*1, "poes-d16.dat", True)
- self.throttle = gr.throttle(gr.sizeof_gr_complex*1, sample_rate)
- self.wxgui_scopesink2_0 = scopesink2.scope_sink_c(
- self.displays.GetPage(0).GetWin(),
- title="RX Waveform",
- sample_rate=sample_rate,
- v_scale=0,
- t_scale=20.0/sample_rate,
- ac_couple=False,
- xy_mode=False,
- num_inputs=1,
- )
- self.displays.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 0, 1, 1)
- self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_f(
- self.displays.GetPage(1).GetWin(),
- title="Post-PLL",
- sample_rate=sample_rate,
- v_scale=0.5,
- t_scale=20.0/sample_rate,
- ac_couple=False,
- xy_mode=False,
- num_inputs=1,
- )
- self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0.win, 0, 0, 1, 1)
- self.wxgui_scopesink2_0_0_0_0 = scopesink2.scope_sink_f(
- self.displays.GetPage(1).GetWin(),
- title="Post-SYNC",
- sample_rate=sym_rate,
- v_scale=0.5,
- t_scale=20.0/sym_rate,
- ac_couple=False,
- xy_mode=False,
- num_inputs=1,
- )
- self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0_0_0.win, 1, 0, 1, 1)
-
- ##################################################
- # Connections
- ##################################################
- self.connect((self.src, 0), (self.throttle, 0))
- self.connect((self.throttle, 0), (self.agr, 0))
- self.connect((self.agr, 0), (self.rx_fftsink, 0))
- self.connect((self.agr, 0), (self.wxgui_scopesink2_0, 0))
- self.connect((self.agr, 0), (self.noaa_hrpt_pll_cf_0, 0))
- self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.wxgui_scopesink2_0_0, 0))
- self.connect((self.noaa_hrpt_sync_fb_0, 0), (self.gr_char_to_float_0, 0))
- self.connect((self.noaa_hrpt_pll_cf_0, 0), (self.noaa_hrpt_sync_fb_0, 0))
- self.connect((self.gr_char_to_float_0, 0), (self.wxgui_scopesink2_0_0_0_0, 0))
- self.connect((self.noaa_hrpt_sync_fb_0, 0), (self.noaa_hrpt_deframer_0, 0))
-
- def set_decim(self, decim):
- self.decim = decim
- self.set_sample_rate(64e6/self.decim)
-
- def set_sym_rate(self, sym_rate):
- self.sym_rate = sym_rate
- self.set_sps(self.sample_rate/self.sym_rate)
- self.wxgui_scopesink2_0_0_0_0.set_sample_rate(self.sym_rate)
-
- def set_sample_rate(self, sample_rate):
- self.sample_rate = sample_rate
- self.set_sps(self.sample_rate/self.sym_rate)
- self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
- self.wxgui_scopesink2_0.set_sample_rate(self.sample_rate)
- self.wxgui_scopesink2_0_0.set_sample_rate(self.sample_rate)
- self.rx_fftsink.set_sample_rate(self.sample_rate)
-
- def set_sps(self, sps):
- self.sps = sps
- self.set_hs(int(self.sps/2.0))
-
- def set_sync_alpha(self, sync_alpha):
- self.sync_alpha = sync_alpha
- self._sync_alpha_slider.set_value(self.sync_alpha)
- self._sync_alpha_text_box.set_value(self.sync_alpha)
-
- def set_pll_alpha(self, pll_alpha):
- self.pll_alpha = pll_alpha
- self._pll_alpha_slider.set_value(self.pll_alpha)
- self._pll_alpha_text_box.set_value(self.pll_alpha)
- self.noaa_hrpt_pll_cf_0.set_alpha(self.pll_alpha)
- self.noaa_hrpt_pll_cf_0.set_beta(self.pll_alpha**2/4.0)
-
- def set_max_sync_offset(self, max_sync_offset):
- self.max_sync_offset = max_sync_offset
- self.noaa_hrpt_sync_fb_0.set_max_offset(self.max_sync_offset)
-
- def set_max_carrier_offset(self, max_carrier_offset):
- self.max_carrier_offset = max_carrier_offset
- self.noaa_hrpt_pll_cf_0.set_max_offset(self.max_carrier_offset)
-
- def set_hs(self, hs):
- self.hs = hs
-
-if __name__ == '__main__':
- parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
- (options, args) = parser.parse_args()
- tb = usrp_rx_hrpt()
- tb.Run(True)
-
diff --git a/gr-noaa/grc/usrp_rx_lrit.grc b/gr-noaa/grc/usrp_rx_lrit.grc
deleted file mode 100644
index 55fe39787..000000000
--- a/gr-noaa/grc/usrp_rx_lrit.grc
+++ /dev/null
@@ -1,1477 +0,0 @@
-
-
- Sat Aug 29 11:26:03 2009
-
- options
-
- id
- usrp_rx_lrit
-
-
- _enabled
- True
-
-
- title
- USRP LRIT Receiver
-
-
- author
-
-
-
- description
-
-
-
- window_size
- 4095, 4095
-
-
- generate_options
- wx_gui
-
-
- category
- Custom
-
-
- run
- True
-
-
- realtime_scheduling
-
-
-
- _coordinate
- (10, 10)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- samp_rate
-
-
- _enabled
- True
-
-
- value
- 64e6/decim
-
-
- _coordinate
- (10, 81)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- symbol_rate
-
-
- _enabled
- True
-
-
- value
- 293e3
-
-
- _coordinate
- (11, 148)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- sps
-
-
- _enabled
- True
-
-
- value
- samp_rate/symbol_rate
-
-
- _coordinate
- (12, 214)
-
-
- _rotation
- 0
-
-
-
- variable_text_box
-
- id
- decim
-
-
- _enabled
- True
-
-
- label
- Decim
-
-
- value
- saved_decim
-
-
- converver
- int_converter
-
-
- formatter
- None
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (243, 13)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Waveform
-
-
- samp_rate
- samp_rate
-
-
- v_scale
- 0.5
-
-
- t_scale
- 20.0/samp_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- True
-
-
- num_inputs
- 1
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (434, 551)
-
-
- _rotation
- 0
-
-
-
- gr_agc_xx
-
- id
- gr_agc_xx_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- rate
- 1e-6
-
-
- reference
- 1.0
-
-
- gain
- 1.0/32767.0
-
-
- max_gain
- 1.0
-
-
- _coordinate
- (261, 493)
-
-
- _rotation
- 0
-
-
-
- root_raised_cosine_filter
-
- id
- root_raised_cosine_filter_0
-
-
- _enabled
- False
-
-
- type
- fir_filter_ccf
-
-
- decim
- 1
-
-
- interp
- 1
-
-
- gain
- 1
-
-
- samp_rate
- samp_rate
-
-
- sym_rate
- symbol_rate
-
-
- alpha
- 0.5
-
-
- ntaps
- 50
-
-
- _coordinate
- (618, 373)
-
-
- _rotation
- 0
-
-
-
- usrp_simple_source_x
-
- id
- usrp_simple_source_x_0
-
-
- _enabled
- False
-
-
- type
- complex
-
-
- format
-
-
-
- which
- 0
-
-
- decimation
- decim
-
-
- frequency
- freq
-
-
- lo_offset
- float('inf')
-
-
- gain
- gain
-
-
- side
- B
-
-
- rx_ant
- RXA
-
-
- hb_filters
-
-
-
- _coordinate
- (11, 477)
-
-
- _rotation
- 0
-
-
-
- wxgui_fftsink2
-
- id
- wxgui_fftsink2_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Spectrum
-
-
- samp_rate
- samp_rate
-
-
- baseband_freq
- freq
-
-
- y_per_div
- 10
-
-
- y_divs
- 10
-
-
- ref_level
- 50
-
-
- fft_size
- 1024
-
-
- fft_rate
- 30
-
-
- peak_hold
- False
-
-
- average
- False
-
-
- avg_alpha
- 0
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 0
-
-
- _coordinate
- (434, 337)
-
-
- _rotation
- 0
-
-
-
- gr_throttle
-
- id
- gr_throttle_0
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- samples_per_second
- samp_rate
-
-
- vlen
- 1
-
-
- _coordinate
- (181, 663)
-
-
- _rotation
- 0
-
-
-
- wxgui_scopesink2
-
- id
- wxgui_scopesink2_1
-
-
- _enabled
- True
-
-
- type
- complex
-
-
- title
- Scope Plot
-
-
- samp_rate
- samp_rate
-
-
- v_scale
- 0.4
-
-
- t_scale
- 20.0/samp_rate
-
-
- ac_couple
- False
-
-
- xy_mode
- True
-
-
- num_inputs
- 1
-
-
- grid_pos
- 0, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (1126, 251)
-
-
- _rotation
- 0
-
-
-
- gr_probe_mpsk_snr_c
-
- id
- gr_probe_mpsk_snr_c_0
-
-
- _enabled
- True
-
-
- type
- snr
-
-
- alpha
- 0.0001
-
-
- probe_rate
- 10
-
-
- _coordinate
- (1126, 723)
-
-
- _rotation
- 0
-
-
-
- wxgui_numbersink2
-
- id
- wxgui_numbersink2_0
-
-
- _enabled
- True
-
-
- type
- float
-
-
- title
- SNR
-
-
- units
- dB
-
-
- samp_rate
- 10
-
-
- min_value
- 0
-
-
- max_value
- 30
-
-
- factor
- 1.0
-
-
- decimal_places
- 1
-
-
- ref_level
- 0
-
-
- number_rate
- 10
-
-
- peak_hold
- False
-
-
- average
- False
-
-
- avg_alpha
- 0
-
-
- show_gauge
- True
-
-
- grid_pos
- 2, 0, 1, 1
-
-
- notebook
- displays, 1
-
-
- _coordinate
- (1335, 651)
-
-
- _rotation
- 0
-
-
-
- gr_mpsk_receiver_cc
-
- id
- gr_mpsk_receiver_cc_0
-
-
- _enabled
- True
-
-
- M
- 2
-
-
- theta
- 0
-
-
- alpha
- costas_alpha
-
-
- beta
- costas_alpha*costas_alpha/4.0
-
-
- fmin
- -0.05
-
-
- fmax
- 0.05
-
-
- mu
- 0.5
-
-
- gain_mu
- gain_mu
-
-
- omega
- sps
-
-
- gain_omega
- gain_mu*gain_mu/4.0
-
-
- omega_relative_limit
- 0.05
-
-
- _coordinate
- (881, 437)
-
-
- _rotation
- 0
-
-
-
- gr_complex_to_real
-
- id
- gr_complex_to_real_0
-
-
- _enabled
- True
-
-
- vlen
- 1
-
-
- _coordinate
- (1133, 521)
-
-
- _rotation
- 0
-
-
-
- gr_char_to_float
-
- id
- gr_char_to_float_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1523, 521)
-
-
- _rotation
- 0
-
-
-
- gr_binary_slicer_fb
-
- id
- gr_binary_slicer_fb_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1343, 521)
-
-
- _rotation
- 0
-
-
-
- gr_add_const_vxx
-
- id
- gr_add_const_vxx_0
-
-
- _enabled
- True
-
-
- type
- float
-
-
- const
- 48.0
-
-
- vlen
- 1
-
-
- _coordinate
- (1707, 517)
-
-
- _rotation
- 0
-
-
-
- gr_float_to_char
-
- id
- gr_float_to_char_0
-
-
- _enabled
- True
-
-
- _coordinate
- (1878, 521)
-
-
- _rotation
- 0
-
-
-
- gr_file_sink
-
- id
- gr_file_sink_0
-
-
- _enabled
- True
-
-
- file
- bits.dat
-
-
- type
- byte
-
-
- vlen
- 1
-
-
- _coordinate
- (2059, 517)
-
-
- _rotation
- 0
-
-
-
- gr_file_source
-
- id
- gr_file_source_0
-
-
- _enabled
- True
-
-
- file
- lrit.dat
-
-
- type
- complex
-
-
- repeat
- False
-
-
- vlen
- 1
-
-
- _coordinate
- (11, 655)
-
-
- _rotation
- 0
-
-
-
- notebook
-
- id
- displays
-
-
- _enabled
- True
-
-
- style
- wx.NB_TOP
-
-
- labels
- ['USRP RX', 'Costas Output']
-
-
- grid_pos
- 2, 0, 1, 3
-
-
- notebook
-
-
-
- _coordinate
- (14, 351)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_decim
-
-
- _enabled
- True
-
-
- value
- 160
-
-
- type
- int
-
-
- config_file
- config_filename
-
-
- section
- main
-
-
- option
- decim
-
-
- writeback
- decim
-
-
- _coordinate
- (246, 172)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- gain
-
-
- _enabled
- True
-
-
- label
- Gain
-
-
- value
- saved_gain
-
-
- min
- 0
-
-
- max
- 115
-
-
- num_steps
- 115
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 1, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (411, 11)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_gain
-
-
- _enabled
- True
-
-
- value
- 33
-
-
- type
- real
-
-
- config_file
- config_filename
-
-
- section
- main
-
-
- option
- gain
-
-
- writeback
- gain
-
-
- _coordinate
- (412, 172)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- freq
-
-
- _enabled
- True
-
-
- label
- Frequency
-
-
- value
- saved_freq
-
-
- min
- 135e6
-
-
- max
- 139e6
-
-
- num_steps
- 400
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 0, 2, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (574, 12)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_freq
-
-
- _enabled
- True
-
-
- value
- 137e6
-
-
- type
- real
-
-
- config_file
- config_filename
-
-
- section
- main
-
-
- option
- freq
-
-
- writeback
- freq
-
-
- _coordinate
- (576, 170)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- costas_alpha
-
-
- _enabled
- True
-
-
- label
- Costas Alpha
-
-
- value
- saved_costas_alpha
-
-
- min
- 0
-
-
- max
- 0.5
-
-
- num_steps
- 100
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 1, 0, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (738, 13)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_costas_alpha
-
-
- _enabled
- True
-
-
- value
- 0.005
-
-
- type
- real
-
-
- config_file
- config_filename
-
-
- section
- main
-
-
- option
- costas_alpha
-
-
- writeback
- costas_alpha
-
-
- _coordinate
- (739, 170)
-
-
- _rotation
- 0
-
-
-
- variable_config
-
- id
- saved_gain_mu
-
-
- _enabled
- True
-
-
- value
- 0.005
-
-
- type
- real
-
-
- config_file
- config_filename
-
-
- section
- main
-
-
- option
- gain_mu
-
-
- writeback
- gain_mu
-
-
- _coordinate
- (900, 170)
-
-
- _rotation
- 0
-
-
-
- variable_slider
-
- id
- gain_mu
-
-
- _enabled
- True
-
-
- label
- Gain Mu
-
-
- value
- saved_gain_mu
-
-
- min
- 0
-
-
- max
- 0.5
-
-
- num_steps
- 100
-
-
- style
- wx.SL_HORIZONTAL
-
-
- converver
- float_converter
-
-
- grid_pos
- 1, 1, 1, 1
-
-
- notebook
-
-
-
- _coordinate
- (902, 13)
-
-
- _rotation
- 0
-
-
-
- variable
-
- id
- config_filename
-
-
- _enabled
- True
-
-
- value
- "usrp_rx_lrit.cfg"
-
-
- _coordinate
- (13, 283)
-
-
- _rotation
- 0
-
-
-
- usrp_simple_source_x_0
- gr_agc_xx_0
- 0
- 0
-
-
- gr_agc_xx_0
- wxgui_scopesink2_0
- 0
- 0
-
-
- gr_file_source_0
- gr_throttle_0
- 0
- 0
-
-
- gr_throttle_0
- gr_agc_xx_0
- 0
- 0
-
-
- gr_probe_mpsk_snr_c_0
- wxgui_numbersink2_0
- 0
- 0
-
-
- gr_mpsk_receiver_cc_0
- gr_probe_mpsk_snr_c_0
- 0
- 0
-
-
- gr_agc_xx_0
- gr_mpsk_receiver_cc_0
- 0
- 0
-
-
- gr_mpsk_receiver_cc_0
- wxgui_scopesink2_1
- 0
- 0
-
-
- gr_agc_xx_0
- wxgui_fftsink2_0
- 0
- 0
-
-
- gr_mpsk_receiver_cc_0
- gr_complex_to_real_0
- 0
- 0
-
-
- gr_complex_to_real_0
- gr_binary_slicer_fb_0
- 0
- 0
-
-
- gr_binary_slicer_fb_0
- gr_char_to_float_0
- 0
- 0
-
-
- gr_char_to_float_0
- gr_add_const_vxx_0
- 0
- 0
-
-
- gr_add_const_vxx_0
- gr_float_to_char_0
- 0
- 0
-
-
- gr_float_to_char_0
- gr_file_sink_0
- 0
- 0
-
-
diff --git a/gr-noaa/grc/usrp_rx_lrit.py b/gr-noaa/grc/usrp_rx_lrit.py
deleted file mode 100755
index bc313e3af..000000000
--- a/gr-noaa/grc/usrp_rx_lrit.py
+++ /dev/null
@@ -1,399 +0,0 @@
-#!/usr/bin/env python
-##################################################
-# Gnuradio Python Flow Graph
-# Title: USRP LRIT Receiver
-# Generated: Sat Aug 29 11:26:03 2009
-##################################################
-
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.wxgui import fftsink2
-from gnuradio.wxgui import forms
-from gnuradio.wxgui import numbersink2
-from gnuradio.wxgui import scopesink2
-from grc_gnuradio import blks2 as grc_blks2
-from grc_gnuradio import wxgui as grc_wxgui
-from optparse import OptionParser
-import ConfigParser
-import wx
-
-class usrp_rx_lrit(grc_wxgui.top_block_gui):
-
- def __init__(self):
- grc_wxgui.top_block_gui.__init__(self, title="USRP LRIT Receiver")
-
- ##################################################
- # Variables
- ##################################################
- self.config_filename = config_filename = "usrp_rx_lrit.cfg"
- self._saved_decim_config = ConfigParser.ConfigParser()
- self._saved_decim_config.read(config_filename)
- try: saved_decim = self._saved_decim_config.getint("main", "decim")
- except: saved_decim = 160
- self.saved_decim = saved_decim
- self.decim = decim = saved_decim
- self.symbol_rate = symbol_rate = 293e3
- self._saved_gain_mu_config = ConfigParser.ConfigParser()
- self._saved_gain_mu_config.read(config_filename)
- try: saved_gain_mu = self._saved_gain_mu_config.getfloat("main", "gain_mu")
- except: saved_gain_mu = 0.005
- self.saved_gain_mu = saved_gain_mu
- self._saved_gain_config = ConfigParser.ConfigParser()
- self._saved_gain_config.read(config_filename)
- try: saved_gain = self._saved_gain_config.getfloat("main", "gain")
- except: saved_gain = 33
- self.saved_gain = saved_gain
- self._saved_freq_config = ConfigParser.ConfigParser()
- self._saved_freq_config.read(config_filename)
- try: saved_freq = self._saved_freq_config.getfloat("main", "freq")
- except: saved_freq = 137e6
- self.saved_freq = saved_freq
- self._saved_costas_alpha_config = ConfigParser.ConfigParser()
- self._saved_costas_alpha_config.read(config_filename)
- try: saved_costas_alpha = self._saved_costas_alpha_config.getfloat("main", "costas_alpha")
- except: saved_costas_alpha = 0.005
- self.saved_costas_alpha = saved_costas_alpha
- self.samp_rate = samp_rate = 64e6/decim
- self.sps = sps = samp_rate/symbol_rate
- self.gain_mu = gain_mu = saved_gain_mu
- self.gain = gain = saved_gain
- self.freq = freq = saved_freq
- self.costas_alpha = costas_alpha = saved_costas_alpha
-
- ##################################################
- # Notebooks
- ##################################################
- self.displays = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
- self.displays.AddPage(grc_wxgui.Panel(self.displays), "USRP RX")
- self.displays.AddPage(grc_wxgui.Panel(self.displays), "Costas Output")
- self.GridAdd(self.displays, 2, 0, 1, 3)
-
- ##################################################
- # Controls
- ##################################################
- self._decim_text_box = forms.text_box(
- parent=self.GetWin(),
- value=self.decim,
- callback=self.set_decim,
- label="Decim",
- converter=forms.int_converter(),
- )
- self.GridAdd(self._decim_text_box, 0, 0, 1, 1)
- _gain_mu_sizer = wx.BoxSizer(wx.VERTICAL)
- self._gain_mu_text_box = forms.text_box(
- parent=self.GetWin(),
- sizer=_gain_mu_sizer,
- value=self.gain_mu,
- callback=self.set_gain_mu,
- label="Gain Mu",
- converter=forms.float_converter(),
- proportion=0,
- )
- self._gain_mu_slider = forms.slider(
- parent=self.GetWin(),
- sizer=_gain_mu_sizer,
- value=self.gain_mu,
- callback=self.set_gain_mu,
- minimum=0,
- maximum=0.5,
- num_steps=100,
- style=wx.SL_HORIZONTAL,
- cast=float,
- proportion=1,
- )
- self.GridAdd(_gain_mu_sizer, 1, 1, 1, 1)
- _gain_sizer = wx.BoxSizer(wx.VERTICAL)
- self._gain_text_box = forms.text_box(
- parent=self.GetWin(),
- sizer=_gain_sizer,
- value=self.gain,
- callback=self.set_gain,
- label="Gain",
- converter=forms.float_converter(),
- proportion=0,
- )
- self._gain_slider = forms.slider(
- parent=self.GetWin(),
- sizer=_gain_sizer,
- value=self.gain,
- callback=self.set_gain,
- minimum=0,
- maximum=115,
- num_steps=115,
- style=wx.SL_HORIZONTAL,
- cast=float,
- proportion=1,
- )
- self.GridAdd(_gain_sizer, 0, 1, 1, 1)
- _freq_sizer = wx.BoxSizer(wx.VERTICAL)
- self._freq_text_box = forms.text_box(
- parent=self.GetWin(),
- sizer=_freq_sizer,
- value=self.freq,
- callback=self.set_freq,
- label="Frequency",
- converter=forms.float_converter(),
- proportion=0,
- )
- self._freq_slider = forms.slider(
- parent=self.GetWin(),
- sizer=_freq_sizer,
- value=self.freq,
- callback=self.set_freq,
- minimum=135e6,
- maximum=139e6,
- num_steps=400,
- style=wx.SL_HORIZONTAL,
- cast=float,
- proportion=1,
- )
- self.GridAdd(_freq_sizer, 0, 2, 1, 1)
- _costas_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
- self._costas_alpha_text_box = forms.text_box(
- parent=self.GetWin(),
- sizer=_costas_alpha_sizer,
- value=self.costas_alpha,
- callback=self.set_costas_alpha,
- label="Costas Alpha",
- converter=forms.float_converter(),
- proportion=0,
- )
- self._costas_alpha_slider = forms.slider(
- parent=self.GetWin(),
- sizer=_costas_alpha_sizer,
- value=self.costas_alpha,
- callback=self.set_costas_alpha,
- minimum=0,
- maximum=0.5,
- num_steps=100,
- style=wx.SL_HORIZONTAL,
- cast=float,
- proportion=1,
- )
- self.GridAdd(_costas_alpha_sizer, 1, 0, 1, 1)
-
- ##################################################
- # Blocks
- ##################################################
- self.gr_add_const_vxx_0 = gr.add_const_vff((48.0, ))
- self.gr_agc_xx_0 = gr.agc_cc(1e-6, 1.0, 1.0/32767.0, 1.0)
- self.gr_binary_slicer_fb_0 = gr.binary_slicer_fb()
- self.gr_char_to_float_0 = gr.char_to_float()
- self.gr_complex_to_real_0 = gr.complex_to_real(1)
- self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "bits.dat")
- self.gr_file_source_0 = gr.file_source(gr.sizeof_gr_complex*1, "lrit.dat", False)
- self.gr_float_to_char_0 = gr.float_to_char()
- self.gr_mpsk_receiver_cc_0 = gr.mpsk_receiver_cc(2, 0, costas_alpha, costas_alpha*costas_alpha/4.0, -0.05, 0.05, 0.5, gain_mu, sps, gain_mu*gain_mu/4.0, 0.05)
- self.gr_probe_mpsk_snr_c_0 = grc_blks2.probe_mpsk_snr_c(
- type='snr',
- alpha=0.0001,
- probe_rate=10,
- )
- self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
- self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
- self.displays.GetPage(0).GetWin(),
- baseband_freq=freq,
- y_per_div=10,
- y_divs=10,
- ref_level=50,
- sample_rate=samp_rate,
- fft_size=1024,
- fft_rate=30,
- average=False,
- avg_alpha=None,
- title="Spectrum",
- peak_hold=False,
- )
- self.displays.GetPage(0).GridAdd(self.wxgui_fftsink2_0.win, 0, 0, 1, 1)
- self.wxgui_numbersink2_0 = numbersink2.number_sink_f(
- self.displays.GetPage(1).GetWin(),
- unit="dB",
- minval=0,
- maxval=30,
- factor=1.0,
- decimal_places=1,
- ref_level=0,
- sample_rate=10,
- number_rate=10,
- average=False,
- avg_alpha=None,
- label="SNR",
- peak_hold=False,
- show_gauge=True,
- )
- self.displays.GetPage(1).GridAdd(self.wxgui_numbersink2_0.win, 2, 0, 1, 1)
- self.wxgui_scopesink2_0 = scopesink2.scope_sink_c(
- self.displays.GetPage(0).GetWin(),
- title="Waveform",
- sample_rate=samp_rate,
- v_scale=0.5,
- t_scale=20.0/samp_rate,
- ac_couple=False,
- xy_mode=True,
- num_inputs=1,
- )
- self.displays.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 0, 1, 1)
- self.wxgui_scopesink2_1 = scopesink2.scope_sink_c(
- self.displays.GetPage(1).GetWin(),
- title="Scope Plot",
- sample_rate=samp_rate,
- v_scale=0.4,
- t_scale=20.0/samp_rate,
- ac_couple=False,
- xy_mode=True,
- num_inputs=1,
- )
- self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_1.win, 0, 0, 1, 1)
-
- ##################################################
- # Connections
- ##################################################
- self.connect((self.gr_agc_xx_0, 0), (self.wxgui_scopesink2_0, 0))
- self.connect((self.gr_file_source_0, 0), (self.gr_throttle_0, 0))
- self.connect((self.gr_throttle_0, 0), (self.gr_agc_xx_0, 0))
- self.connect((self.gr_probe_mpsk_snr_c_0, 0), (self.wxgui_numbersink2_0, 0))
- self.connect((self.gr_mpsk_receiver_cc_0, 0), (self.gr_probe_mpsk_snr_c_0, 0))
- self.connect((self.gr_agc_xx_0, 0), (self.gr_mpsk_receiver_cc_0, 0))
- self.connect((self.gr_mpsk_receiver_cc_0, 0), (self.wxgui_scopesink2_1, 0))
- self.connect((self.gr_agc_xx_0, 0), (self.wxgui_fftsink2_0, 0))
- self.connect((self.gr_mpsk_receiver_cc_0, 0), (self.gr_complex_to_real_0, 0))
- self.connect((self.gr_complex_to_real_0, 0), (self.gr_binary_slicer_fb_0, 0))
- self.connect((self.gr_binary_slicer_fb_0, 0), (self.gr_char_to_float_0, 0))
- self.connect((self.gr_char_to_float_0, 0), (self.gr_add_const_vxx_0, 0))
- self.connect((self.gr_add_const_vxx_0, 0), (self.gr_float_to_char_0, 0))
- self.connect((self.gr_float_to_char_0, 0), (self.gr_file_sink_0, 0))
-
- def set_config_filename(self, config_filename):
- self.config_filename = config_filename
- self._saved_decim_config = ConfigParser.ConfigParser()
- self._saved_decim_config.read(self.config_filename)
- if not self._saved_decim_config.has_section("main"):
- self._saved_decim_config.add_section("main")
- self._saved_decim_config.set("main", "decim", str(self.decim))
- self._saved_decim_config.write(open(self.config_filename, 'w'))
- self._saved_gain_config = ConfigParser.ConfigParser()
- self._saved_gain_config.read(self.config_filename)
- if not self._saved_gain_config.has_section("main"):
- self._saved_gain_config.add_section("main")
- self._saved_gain_config.set("main", "gain", str(self.gain))
- self._saved_gain_config.write(open(self.config_filename, 'w'))
- self._saved_freq_config = ConfigParser.ConfigParser()
- self._saved_freq_config.read(self.config_filename)
- if not self._saved_freq_config.has_section("main"):
- self._saved_freq_config.add_section("main")
- self._saved_freq_config.set("main", "freq", str(self.freq))
- self._saved_freq_config.write(open(self.config_filename, 'w'))
- self._saved_costas_alpha_config = ConfigParser.ConfigParser()
- self._saved_costas_alpha_config.read(self.config_filename)
- if not self._saved_costas_alpha_config.has_section("main"):
- self._saved_costas_alpha_config.add_section("main")
- self._saved_costas_alpha_config.set("main", "costas_alpha", str(self.costas_alpha))
- self._saved_costas_alpha_config.write(open(self.config_filename, 'w'))
- self._saved_gain_mu_config = ConfigParser.ConfigParser()
- self._saved_gain_mu_config.read(self.config_filename)
- if not self._saved_gain_mu_config.has_section("main"):
- self._saved_gain_mu_config.add_section("main")
- self._saved_gain_mu_config.set("main", "gain_mu", str(self.gain_mu))
- self._saved_gain_mu_config.write(open(self.config_filename, 'w'))
-
- def set_saved_decim(self, saved_decim):
- self.saved_decim = saved_decim
- self.set_decim(self.saved_decim)
-
- def set_decim(self, decim):
- self.decim = decim
- self.set_samp_rate(64e6/self.decim)
- self._decim_text_box.set_value(self.decim)
- self._saved_decim_config = ConfigParser.ConfigParser()
- self._saved_decim_config.read(self.config_filename)
- if not self._saved_decim_config.has_section("main"):
- self._saved_decim_config.add_section("main")
- self._saved_decim_config.set("main", "decim", str(self.decim))
- self._saved_decim_config.write(open(self.config_filename, 'w'))
-
- def set_symbol_rate(self, symbol_rate):
- self.symbol_rate = symbol_rate
- self.set_sps(self.samp_rate/self.symbol_rate)
-
- def set_saved_gain_mu(self, saved_gain_mu):
- self.saved_gain_mu = saved_gain_mu
- self.set_gain_mu(self.saved_gain_mu)
-
- def set_saved_gain(self, saved_gain):
- self.saved_gain = saved_gain
- self.set_gain(self.saved_gain)
-
- def set_saved_freq(self, saved_freq):
- self.saved_freq = saved_freq
- self.set_freq(self.saved_freq)
-
- def set_saved_costas_alpha(self, saved_costas_alpha):
- self.saved_costas_alpha = saved_costas_alpha
- self.set_costas_alpha(self.saved_costas_alpha)
-
- def set_samp_rate(self, samp_rate):
- self.samp_rate = samp_rate
- self.set_sps(self.samp_rate/self.symbol_rate)
- self.wxgui_scopesink2_0.set_sample_rate(self.samp_rate)
- self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)
- self.wxgui_scopesink2_1.set_sample_rate(self.samp_rate)
-
- def set_sps(self, sps):
- self.sps = sps
- self.gr_mpsk_receiver_cc_0.set_omega(self.sps)
-
- def set_gain_mu(self, gain_mu):
- self.gain_mu = gain_mu
- self.gr_mpsk_receiver_cc_0.set_gain_mu(self.gain_mu)
- self.gr_mpsk_receiver_cc_0.set_gain_omega(self.gain_mu*self.gain_mu/4.0)
- self._saved_gain_mu_config = ConfigParser.ConfigParser()
- self._saved_gain_mu_config.read(self.config_filename)
- if not self._saved_gain_mu_config.has_section("main"):
- self._saved_gain_mu_config.add_section("main")
- self._saved_gain_mu_config.set("main", "gain_mu", str(self.gain_mu))
- self._saved_gain_mu_config.write(open(self.config_filename, 'w'))
- self._gain_mu_slider.set_value(self.gain_mu)
- self._gain_mu_text_box.set_value(self.gain_mu)
-
- def set_gain(self, gain):
- self.gain = gain
- self._gain_slider.set_value(self.gain)
- self._gain_text_box.set_value(self.gain)
- self._saved_gain_config = ConfigParser.ConfigParser()
- self._saved_gain_config.read(self.config_filename)
- if not self._saved_gain_config.has_section("main"):
- self._saved_gain_config.add_section("main")
- self._saved_gain_config.set("main", "gain", str(self.gain))
- self._saved_gain_config.write(open(self.config_filename, 'w'))
-
- def set_freq(self, freq):
- self.freq = freq
- self.wxgui_fftsink2_0.set_baseband_freq(self.freq)
- self._freq_slider.set_value(self.freq)
- self._freq_text_box.set_value(self.freq)
- self._saved_freq_config = ConfigParser.ConfigParser()
- self._saved_freq_config.read(self.config_filename)
- if not self._saved_freq_config.has_section("main"):
- self._saved_freq_config.add_section("main")
- self._saved_freq_config.set("main", "freq", str(self.freq))
- self._saved_freq_config.write(open(self.config_filename, 'w'))
-
- def set_costas_alpha(self, costas_alpha):
- self.costas_alpha = costas_alpha
- self.gr_mpsk_receiver_cc_0.set_alpha(self.costas_alpha)
- self.gr_mpsk_receiver_cc_0.set_beta(self.costas_alpha*self.costas_alpha/4.0)
- self._costas_alpha_slider.set_value(self.costas_alpha)
- self._costas_alpha_text_box.set_value(self.costas_alpha)
- self._saved_costas_alpha_config = ConfigParser.ConfigParser()
- self._saved_costas_alpha_config.read(self.config_filename)
- if not self._saved_costas_alpha_config.has_section("main"):
- self._saved_costas_alpha_config.add_section("main")
- self._saved_costas_alpha_config.set("main", "costas_alpha", str(self.costas_alpha))
- self._saved_costas_alpha_config.write(open(self.config_filename, 'w'))
-
-if __name__ == '__main__':
- parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
- (options, args) = parser.parse_args()
- tb = usrp_rx_lrit()
- tb.Run(True)
-
--
cgit
From 2628e9cddc43d57a3346e240c8f7e58722bc61f1 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sun, 20 Sep 2009 12:47:34 -0700
Subject: Add HRPT word output to deframer
Put in half bit width matched filter
Change default sync_alpha to 0.05
---
gr-noaa/grc/noaa_hrpt_deframer.xml | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/noaa_hrpt_deframer.xml b/gr-noaa/grc/noaa_hrpt_deframer.xml
index bc68f71d3..af36abf2a 100644
--- a/gr-noaa/grc/noaa_hrpt_deframer.xml
+++ b/gr-noaa/grc/noaa_hrpt_deframer.xml
@@ -9,4 +9,8 @@
in
byte
+
+ out
+ short
+
--
cgit
From f8fcb642dabca11870886c53dfdff66c86774db0 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan
Date: Sun, 20 Sep 2009 19:32:30 -0700
Subject: Added skeleton HRPT decoder block
---
gr-noaa/grc/Makefile.am | 1 +
gr-noaa/grc/noaa_hrpt_decoder.xml | 12 ++++++++++++
2 files changed, 13 insertions(+)
create mode 100644 gr-noaa/grc/noaa_hrpt_decoder.xml
(limited to 'gr-noaa/grc')
diff --git a/gr-noaa/grc/Makefile.am b/gr-noaa/grc/Makefile.am
index 9f1f88195..1f056473c 100644
--- a/gr-noaa/grc/Makefile.am
+++ b/gr-noaa/grc/Makefile.am
@@ -24,6 +24,7 @@ include $(top_srcdir)/Makefile.common
grcblocksdir = $(prefix)/share/gnuradio/grc/blocks
dist_grcblocks_DATA = \
+ noaa_hrpt_decoder.xml \
noaa_hrpt_deframer.xml \
noaa_hrpt_pll_cf.xml \
noaa_hrpt_sync_fb.xml
diff --git a/gr-noaa/grc/noaa_hrpt_decoder.xml b/gr-noaa/grc/noaa_hrpt_decoder.xml
new file mode 100644
index 000000000..183d72aba
--- /dev/null
+++ b/gr-noaa/grc/noaa_hrpt_decoder.xml
@@ -0,0 +1,12 @@
+
+
+ HRPT Decoder
+ noaa_hrpt_decoder
+ NOAA
+ from gnuradio import noaa
+ noaa.hrpt_decoder()
+
+ in
+ short
+
+
--
cgit