Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

atsc_equalizer.h

Go to the documentation of this file.
00001 /* -*- c++ -*- */ 00002 /* 00003 * Copyright 2002 Free Software Foundation, Inc. 00004 * 00005 * This file is part of GNU Radio 00006 * 00007 * GNU Radio is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2, or (at your option) 00010 * any later version. 00011 * 00012 * GNU Radio is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with GNU Radio; see the file COPYING. If not, write to 00019 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00020 * Boston, MA 02111-1307, USA. 00021 */ 00022 00023 #ifndef _ATSC_EQUALIZER_H_ 00024 #define _ATSC_EQUALIZER_H_ 00025 00026 #include <atsc_syminfo.h> 00027 00031 class atsc_equalizer { 00032 00033 private: 00034 00035 /* 00036 * have we seen a field sync since the last reset or problem? 00037 */ 00038 bool d_locked_p; 00039 00040 /* 00041 * sample offset from the beginning of the last field sync we saw 00042 * to the beginning of our current input stream. When we're locked 00043 * this will be in [0, 313*832] i.e., [0, 260416] 00044 */ 00045 int d_offset_from_last_field_sync; 00046 00047 int d_current_field; // [0,1] 00048 00049 00050 public: 00051 00052 // CREATORS 00053 atsc_equalizer (); 00054 virtual ~atsc_equalizer (); 00055 00056 // MANIPULATORS 00057 00063 virtual void reset (); 00064 00080 virtual void filter (const float *input_samples, 00081 const atsc::syminfo *input_tags, 00082 float *output_samples, 00083 int nsamples); 00084 00085 // ACCESSORS 00086 00093 virtual int ntaps () const = 0; 00094 00108 virtual int npretaps () const = 0; 00109 00110 00111 protected: 00112 00123 virtual void filter_normal (const float *input_samples, 00124 float *output_samples, 00125 int nsamples) = 0; 00126 00137 virtual void filter_data_seg_sync (const float *input_samples, 00138 float *output_samples, 00139 int nsamples, 00140 int offset) = 0; 00141 00155 virtual void filter_field_sync (const float *input_samples, 00156 float *output_samples, 00157 int nsamples, 00158 int offset, 00159 int which_field) = 0; 00160 }; 00161 00162 00163 #endif /* _ATSC_EQUALIZER_H_ */

Generated on Wed Aug 4 02:22:03 2004 for GNU Radio by doxygen 1.3.8