GNU Radio's AIS Package: msk_timing_recovery_cc_impl.h Source File

GNU Radio's AIS Package

msk_timing_recovery_cc_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2014 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
23#ifndef INCLUDED_DIGITAL_MSK_TIMING_RECOVERY_CC_IMPL_H
24#define INCLUDED_DIGITAL_MSK_TIMING_RECOVERY_CC_IMPL_H
25
26#include <ais/msk_timing_recovery_cc.h>
27#include <gnuradio/filter/mmse_fir_interpolator_cc.h>
28#include <boost/circular_buffer.hpp>
29#include <gnuradio/filter/fir_filter_with_buffer.h>
30
31namespace gr {
32 namespace ais {
33
34 class msk_timing_recovery_cc_impl : public msk_timing_recovery_cc
35 {
36 private:
37 float d_sps;
38 float d_gain;
39 float d_limit;
40 filter::mmse_fir_interpolator_cc *d_interp;
41 filter::kernel::fir_filter_with_buffer_fff *d_decim;
42 gr_complex d_dly_conj_1, d_dly_conj_2, d_dly_diff_1;
43 float d_mu, d_omega, d_gain_omega;
44 int d_div;
45 int d_osps;
46 int d_loop_rate;
47
48 public:
49 msk_timing_recovery_cc_impl(float sps, float gain, float limit, int osps);
50 ~msk_timing_recovery_cc_impl();
51
52 // Where all the action really happens
53 void forecast (int noutput_items, gr_vector_int &ninput_items_required);
54
55 int general_work(int noutput_items,
56 gr_vector_int &ninput_items,
57 gr_vector_const_void_star &input_items,
58 gr_vector_void_star &output_items);
59 void set_gain(float gain);
60 float get_gain(void);
61
62 void set_limit(float limit);
63 float get_limit(void);
64
65 void set_sps(float sps);
66 float get_sps(void);
67 };
68 } // namespace ais
69} // namespace gr
70
71#endif /* INCLUDED_DIGITAL_MSK_TIMING_RECOVERY_CC_IMPL_H */
72
gr::ais::msk_timing_recovery_cc_impl
Definition: msk_timing_recovery_cc_impl.h:35
gr::ais::msk_timing_recovery_cc_impl::msk_timing_recovery_cc_impl
msk_timing_recovery_cc_impl(float sps, float gain, float limit, int osps)
gr::ais::msk_timing_recovery_cc_impl::general_work
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
gr::ais::msk_timing_recovery_cc_impl::get_sps
float get_sps(void)
gr::ais::msk_timing_recovery_cc_impl::~msk_timing_recovery_cc_impl
~msk_timing_recovery_cc_impl()
gr::ais::msk_timing_recovery_cc_impl::get_limit
float get_limit(void)
gr::ais::msk_timing_recovery_cc_impl::set_sps
void set_sps(float sps)
gr::ais::msk_timing_recovery_cc_impl::set_limit
void set_limit(float limit)
gr::ais::msk_timing_recovery_cc_impl::forecast
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
gr::ais::msk_timing_recovery_cc_impl::set_gain
void set_gain(float gain)
gr::ais::msk_timing_recovery_cc_impl::get_gain
float get_gain(void)
gr::ais::msk_timing_recovery_cc
MSK/GMSK timing recovery.
Definition: msk_timing_recovery_cc.h:47
msk_timing_recovery_cc.h
gr
Definition: corr_est_cc.h:29