GNU Radio 3.6.1 C++ API
atsci_equalizer_lms2.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_LMS2_H_
24
#define _ATSC_EQUALIZER_LMS2_H_
25
26
#include <
atsc_api.h
>
27
#include <
atsci_equalizer.h
>
28
#include <vector>
29
#include <stdio.h>
30
31
class
ATSC_API
atsci_equalizer_lms2
:
public
atsci_equalizer
32
{
33
public
:
34
atsci_equalizer_lms2
();
35
virtual
~
atsci_equalizer_lms2
();
36
37
virtual
void
reset
();
38
virtual
int
ntaps
()
const
;
39
virtual
int
npretaps
()
const
;
40
41
protected
:
42
FILE *
trainingfile
;
43
virtual
void
filter_normal
(
const
float
*input_samples,
44
float
*output_samples,
45
int
nsamples);
46
47
virtual
void
filter_data_seg_sync
(
const
float
*input_samples,
48
float
*output_samples,
49
int
nsamples,
50
int
offset);
51
52
virtual
void
filter_field_sync
(
const
float
*input_samples,
53
float
*output_samples,
54
int
nsamples,
55
int
offset,
56
int
which_field);
57
58
private
:
59
std::vector<double> d_taps_ff;
60
std::vector<double> d_taps_fb;
61
std::vector<float> d_old_output;
62
63
int
d_output_ptr;
64
65
void
filterN (
const
float
*input_samples,
66
float
*output_samples,
67
int
nsamples);
68
69
void
adaptN (
const
float
*input_samples,
70
const
float
*training_pattern,
71
float
*output_samples,
72
int
nsamples);
73
74
float
filter1 (
const
float
input[]);
75
float
adapt1 (
const
float
input[],
float
ideal_output);
76
77
};
78
79
80
#endif
/* _ATSC_EQUALIZER_LMS2_H_ */
gr-atsc
src
lib
atsci_equalizer_lms2.h
Generated on Mon Jun 18 2012 11:18:07 for GNU Radio 3.6.1 C++ API by
1.8.1