00001 #include "afw.h"
00002 #include "flt.h"
00003
00004
00005
00006
00007
00008
00009 namespace afw{
00010
00011
00012
00013 const int taps = 63;
00014
00015
00016
00017
00018
00019
00020 shortfract coeff[taps] = {
00021 0.0084404r,
00022 - 0.0385608r,
00023 0.0121594r,
00024 0.0162905r,
00025 0.0098998r,
00026 0.0015264r,
00027 - 0.0060037r,
00028 - 0.0104836r,
00029 - 0.0101162r,
00030 - 0.0046826r,
00031 0.0037032r,
00032 0.0111361r,
00033 0.0135995r,
00034 0.0089985r,
00035 - 0.0013166r,
00036 - 0.0125649r,
00037 - 0.0186849r,
00038 - 0.0154366r,
00039 - 0.0027980r,
00040 0.0139928r,
00041 0.0262920r,
00042 0.0262934r,
00043 0.0109027r,
00044 - 0.0151293r,
00045 - 0.0401840r,
00046 - 0.0495764r,
00047 - 0.0318173r,
00048 0.0158958r,
00049 0.0850927r,
00050 0.1579760r,
00051 0.2132524r,
00052 0.2338423r,
00053 0.2132524r,
00054 0.1579760r,
00055 0.0850927r,
00056 0.0158958r,
00057 - 0.0318173r,
00058 - 0.0495764r,
00059 - 0.0401840r,
00060 - 0.0151293r,
00061 0.0109027r,
00062 0.0262934r,
00063 0.0262920r,
00064 0.0139928r,
00065 - 0.0027980r,
00066 - 0.0154366r,
00067 - 0.0186849r,
00068 - 0.0125649r,
00069 - 0.0013166r,
00070 0.0089985r,
00071 0.0135995r,
00072 0.0111361r,
00073 0.0037032r,
00074 - 0.0046826r,
00075 - 0.0101162r,
00076 - 0.0104836r,
00077 - 0.0060037r,
00078 0.0015264r,
00079 0.0098998r,
00080 0.0162905r,
00081 0.0121594r,
00082 - 0.0385608r,
00083 0.0084404r
00084 };
00085
00086
00087
00088
00089
00090 flt::CFilter* filter;
00091
00092
00093
00094
00095
00096
00097 void initProcessData(void)
00098 {
00099
00100 filter = new flt::CFIRFilter( coeff, taps );
00101 }
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 void processData(
00117 const shortfract leftIn[],
00118 const shortfract rightIn[],
00119 shortfract leftOut[],
00120 shortfract rightOut[],
00121 int count
00122 )
00123 {
00124
00125 filter->run( leftIn, leftOut, count );
00126
00127
00128 for( int i=0; i<count; i++ )
00129 rightOut[i] = leftIn[i];
00130 }
00131
00132 };