summaryrefslogtreecommitdiff
path: root/gr-noaa/lib/noaa_hrpt_pll_cf.h
diff options
context:
space:
mode:
authorJohnathan Corgan2009-09-23 18:17:15 -0700
committerJohnathan Corgan2009-09-23 18:17:15 -0700
commitd3a651aa194620d83dc61cac23f6887b6e4fd23e (patch)
treee92497af81512bce1b0d965dcf1dc5be2975413a /gr-noaa/lib/noaa_hrpt_pll_cf.h
parent18cd6228abbd66d5be283745b5e8f8fca94c3ad2 (diff)
parent2afcae4f01e19d3973f3fc0eb6db50dc9dcb7098 (diff)
downloadgnuradio-d3a651aa194620d83dc61cac23f6887b6e4fd23e.tar.gz
gnuradio-d3a651aa194620d83dc61cac23f6887b6e4fd23e.tar.bz2
gnuradio-d3a651aa194620d83dc61cac23f6887b6e4fd23e.zip
Merge branch 'wip/gr-noaa' of http://gnuradio.org/git/jcorgan into master
* 'wip/gr-noaa' of http://gnuradio.org/git/jcorgan: Added README and updated configuration requirements Split HRPT script into live receive and post-processing Dumps HRPT frames to text file similar to specification document Added skeleton HRPT decoder block Updated HRPT receiver to read files recorded as shorts Add HRPT word output to deframer Reorganization of directories Added HRPT deframer block Changed synchronizer to output sliced bits. Updated HRPT blocks/scripts for testing. Seeing good minor frame sync's. Implemented crude timing recovery using zero crossings but no resampling Work in progress, incomplete Update rx_poes script to filter prior to PLL. Created new gr-noaa top-level component.
Diffstat (limited to 'gr-noaa/lib/noaa_hrpt_pll_cf.h')
-rw-r--r--gr-noaa/lib/noaa_hrpt_pll_cf.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/gr-noaa/lib/noaa_hrpt_pll_cf.h b/gr-noaa/lib/noaa_hrpt_pll_cf.h
new file mode 100644
index 000000000..507d47fe7
--- /dev/null
+++ b/gr-noaa/lib/noaa_hrpt_pll_cf.h
@@ -0,0 +1,55 @@
+/* -*- c++ -*- */
+/*
+ * 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.
+ */
+
+#ifndef INCLUDED_NOAA_HRPT_PLL_CF_H
+#define INCLUDED_NOAA_HRPT_PLL_CF_H
+
+#include <gr_sync_block.h>
+
+class noaa_hrpt_pll_cf;
+typedef boost::shared_ptr<noaa_hrpt_pll_cf> noaa_hrpt_pll_cf_sptr;
+
+noaa_hrpt_pll_cf_sptr
+noaa_make_hrpt_pll_cf(float alpha, float beta, float max_offset);
+
+class noaa_hrpt_pll_cf : public gr_sync_block
+{
+ friend noaa_hrpt_pll_cf_sptr noaa_make_hrpt_pll_cf(float alpha, float beta, float max_offset);
+ noaa_hrpt_pll_cf(float alpha, float beta, float max_offset);
+
+ float d_alpha; // 1st order loop constant
+ float d_beta; // 2nd order loop constant
+ float d_max_offset; // Maximum frequency offset, radians/sample
+ float d_phase; // Instantaneous carrier phase
+ float d_freq; // Instantaneous carrier frequency, radians/sample
+
+ public:
+ virtual int work(int noutput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items);
+
+ void set_alpha(float alpha) { d_alpha = alpha; }
+ void set_beta(float beta) { d_beta = beta; }
+ void set_max_offset(float max_offset) { d_max_offset = max_offset; }
+};
+
+#endif /* INCLUDED_NOAA_HRPT_PLL_CF_H */