atsc_equalizer_lms.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef _ATSC_EQUALIZER_LMS_H_
00024
#define _ATSC_EQUALIZER_LMS_H_
00025
00026
#include <atsc_equalizer.h>
00027
#include <vector>
00028
#include <stdio.h>
00029
00030 class atsc_equalizer_lms :
public atsc_equalizer
00031 {
00032
public:
00033
atsc_equalizer_lms ();
00034
virtual ~atsc_equalizer_lms ();
00035
00036
virtual void reset ();
00037
virtual int ntaps ()
const;
00038
virtual int npretaps ()
const;
00039
00040
protected:
00041 FILE *
trainingfile;
00042
virtual void filter_normal (
const float *input_samples,
00043
float *output_samples,
00044
int nsamples);
00045
00046
virtual void filter_data_seg_sync (
const float *input_samples,
00047
float *output_samples,
00048
int nsamples,
00049
int offset);
00050
00051
virtual void filter_field_sync (
const float *input_samples,
00052
float *output_samples,
00053
int nsamples,
00054
int offset,
00055
int which_field);
00056
00057
private:
00058 std::vector<double>
d_taps;
00059
00060
void filterN (
const float *input_samples,
00061
float *output_samples,
00062
int nsamples);
00063
00064
void adaptN (
const float *input_samples,
00065
const float *training_pattern,
00066
float *output_samples,
00067
int nsamples);
00068
00069
float filter1 (
const float input[]);
00070
float adapt1 (
const float input[],
float ideal_output);
00071
00072 };
00073
00074
00075
#endif
Generated on Wed Aug 4 02:22:03 2004 for GNU Radio by
1.3.8