GrIIRfilter.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 _GRIIRFILTER_H_
00024
#define _GRIIRFILTER_H_
00025
00026
#include <VrDecimatingSigProc.h>
00027
#include <gr_iir.h>
00028
00036
template<
class iType,
class oType,
class taptype>
00037 class GrIIRfilter :
public VrDecimatingSigProc<iType,oType>
00038 {
00039
public:
00043
GrIIRfilter (
int decimation_factor,
const vector<taptype> intaps,
00044
const vector<taptype> outtaps);
00045
00046 virtual const char *
name () {
return "GrIIRfilter"; }
00047
virtual void initialize ();
00048
virtual int work (
VrSampleRange output,
void *o[],
00049
VrSampleRange inputs[],
void *i[]);
00050
00051
protected:
00052 gr_iir<oType,iType,taptype> _iir;
00053 };
00054
00055
00056
template<
class iType,
class oType,
class taptype>
00057 GrIIRfilter<iType, oType, taptype>::GrIIRfilter (
int decimation_factor,
00058
const vector <taptype> intaps,
00059
const vector <taptype> outtaps)
00060 :
VrDecimatingSigProc<
iType,
oType>(1, decimation_factor),
00061 _iir (intaps,outtaps)
00062
00063 {
00064 }
00065
00066
template<
class iType,
class oType,
class taptype>
void
00067 GrIIRfilter<iType, oType, taptype>::initialize ()
00068 {
00069 }
00070
00071
template<
class iType,
class oType,
class taptype>
int
00072 GrIIRfilter<iType, oType, taptype>::work (
VrSampleRange output,
void *ao[],
00073
VrSampleRange inputs[],
void *ai[])
00074 {
00075
iType *in = (
iType *) ai[0];
00076
oType *out = (
oType *) ao[0];
00077
00078
_iir.
filterN (out, in, output.
size);
00079
00080
return output.
size;
00081 }
00082
00083
00084
#endif
Generated on Wed Aug 4 02:22:04 2004 for GNU Radio by
1.3.8