GNU Radio 3.7.1.1 C++ API
fs_correlator_naive_impl.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2002 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 _ATSC_FS_CORRELATOR_NAIVE_H_
24
#define _ATSC_FS_CORRELATOR_NAIVE_H_
25
26
#include <
gnuradio/atsc/api.h
>
27
#include <
gnuradio/atsc/fs_correlator_impl.h
>
28
29
/*!
30
* \brief Naive concrete implementation of field sync correlator
31
*/
32
class
ATSC_API
atsci_fs_correlator_naive
:
public
atsci_fs_correlator
{
33
34
private
:
35
static
const
int
SRSIZE = 1024;
// must be power of two
36
int
d_index;
// points at oldest sample
37
float
d_sample_sr[SRSIZE];
// sample shift register
38
unsigned
char
d_bit_sr[SRSIZE];
// binary decision shift register
39
40
static
const
int
OFFSET_511 = 0;
// offset to PN 511 pattern
41
static
const
int
LENGTH_511 = 511 + 4;
// length of PN 511 pattern (+ 4 seg sync)
42
static
const
int
OFFSET_2ND_63 = 578;
// offset to second PN 63 pattern
43
static
const
int
LENGTH_2ND_63 = 63;
// length of PN 63 pattern
44
45
static
unsigned
char
s_511[LENGTH_511];
// PN 511 pattern
46
static
unsigned
char
s_63[LENGTH_2ND_63];
// PN 63 pattern
47
48
inline
static
int
wrap (
int
index){
return
index & (SRSIZE - 1); }
49
inline
static
int
incr (
int
index){
return
wrap (index + 1); }
50
inline
static
int
decr (
int
index){
return
wrap (index - 1); }
51
52
public
:
53
54
// CREATORS
55
atsci_fs_correlator_naive
();
56
~
atsci_fs_correlator_naive
();
57
58
// MANIPULATORS
59
virtual
void
reset
();
60
void
filter
(
float
input_sample,
float
*output_sample,
float
*output_tag);
61
62
// ACCESSORS
63
64
//! return delay in samples from input to output
65
int
delay
()
const
;
66
67
};
68
69
70
#endif
/* _ATSC_FS_CORRELATOR_NAIVE_H_ */
gnuradio
gr-atsc
include
gnuradio
atsc
fs_correlator_naive_impl.h
Generated by
1.8.3.1