00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef INCLUDED_GR_LMS_DFE_FF_H
00024 #define INCLUDED_GR_LMS_DFE_FF_H
00025
00026 #include <gr_sync_block.h>
00027
00028 class gr_lms_dfe_ff;
00029 typedef boost::shared_ptr<gr_lms_dfe_ff> gr_lms_dfe_ff_sptr;
00030
00031 gr_lms_dfe_ff_sptr gr_make_lms_dfe_ff (float lambda_ff, float lambda_fb,
00032 unsigned int num_fftaps, unsigned int num_fbtaps);
00033
00038 class gr_lms_dfe_ff : public gr_sync_block
00039 {
00040 friend gr_lms_dfe_ff_sptr gr_make_lms_dfe_ff (float lambda_ff, float lambda_fb,
00041 unsigned int num_fftaps, unsigned int num_fbtaps);
00042
00043 float d_lambda_ff;
00044 float d_lambda_fb;
00045 std::vector<float> d_ff_delayline;
00046 std::vector<float> d_fb_delayline;
00047 std::vector<float> d_ff_taps;
00048 std::vector<float> d_fb_taps;
00049 unsigned int d_ff_index;
00050 unsigned int d_fb_index;
00051
00052 gr_lms_dfe_ff (float lambda_ff, float lambda_fb,
00053 unsigned int num_fftaps, unsigned int num_fbtaps);
00054
00055 public:
00056
00057 int work (int noutput_items,
00058 gr_vector_const_void_star &input_items,
00059 gr_vector_void_star &output_items);
00060 };
00061
00062 #endif