GNU Radio 3.7.0 C++ API
equalizer_lms_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_EQUALIZER_LMS_H_
24
#define _ATSC_EQUALIZER_LMS_H_
25
26
#include <
gnuradio/atsc/api.h
>
27
#include <
gnuradio/atsc/equalizer_impl.h
>
28
#include <vector>
29
#include <stdio.h>
30
31
class
ATSC_API
atsci_equalizer_lms
:
public
atsci_equalizer
32
{
33
public
:
34
atsci_equalizer_lms
();
35
virtual
~
atsci_equalizer_lms
();
36
37
virtual
void
reset
();
38
virtual
int
ntaps
()
const
;
39
virtual
int
npretaps
()
const
;
40
std::vector<double>
taps
() {
41
return
d_taps;
42
}
43
44
protected
:
45
FILE *
trainingfile
;
46
virtual
void
filter_normal
(
const
float
*input_samples,
47
float
*output_samples,
48
int
nsamples);
49
50
virtual
void
filter_data_seg_sync
(
const
float
*input_samples,
51
float
*output_samples,
52
int
nsamples,
53
int
offset);
54
55
virtual
void
filter_field_sync
(
const
float
*input_samples,
56
float
*output_samples,
57
int
nsamples,
58
int
offset,
59
int
which_field);
60
61
private
:
62
std::vector<double> d_taps;
63
64
void
filterN (
const
float
*input_samples,
65
float
*output_samples,
66
int
nsamples);
67
68
void
adaptN (
const
float
*input_samples,
69
const
float
*training_pattern,
70
float
*output_samples,
71
int
nsamples);
72
73
float
filter1 (
const
float
input[]);
74
float
adapt1 (
const
float
input[],
float
ideal_output);
75
76
};
77
78
79
#endif
/* _ATSC_EQUALIZER_LMS_H_ */
gr-atsc
include
gnuradio
atsc
equalizer_lms_impl.h
Generated on Tue Aug 13 2013 19:48:05 for GNU Radio 3.7.0 C++ API by
1.8.4