[Joe, Rana]
Filter definitions for the decimation filters to epics readback channels (like _OUT16) can be found in the fm10Gen.c code (in /opt/rtcds/caltech/c1/core/advLigoRTS/src/include/drv).
At the moment, the code is broken for systems running at 32k, 64k as they look to be defaulting to the 16k filter. I'd like to also figure out the notation and plot the actual filter used for the 16k.
Rana has suggested a 2nd order, 2db ripple low pass Cheby1 filter at 1 Hz.
51 #if defined(SERVO16K) || defined(SERVOMIXED) || defined(SERVO32K) || defined(SERVO64K) || defined(SERVO128K) || defined(SERVO256K)
52 static double sixteenKAvgCoeff[9] = {1.9084759e-12,
53 -1.99708675982420, 0.99709029700517, 2.00000005830747, 1.00000000739582,
54 -1.99878510620232, 0.99879373895648, 1.99999994169253, 0.99999999260419};
55 #endif
56
57 #if defined(SERVO2K) || defined(SERVOMIXED) || defined(SERVO4K)
58 static double twoKAvgCoeff[9] = {7.705446e-9,
59 -1.97673337437048, 0.97695747524900, 2.00000006227141, 1.00000000659235,
60 -1.98984125831661, 0.99039139954634, 1.99999993772859, 0.99999999340765};
61 #endif
62
63 #ifdef SERVO16K
64 #define avgCoeff sixteenKAvgCoeff
65 #elif defined(SERVO32K) || defined(SERVO64K) || defined(SERVO128K) || defined(SERVO256K)
66 #define avgCoeff sixteenKAvgCoeff
67 #elif defined(SERVO2K)
68 #define avgCoeff twoKAvgCoeff
69 #elif defined(SERVO4K)
70 #define avgCoeff twoKAvgCoeff
71 #elif defined(SERVOMIXED)
72 #define filterModule(a,b,c,d) filterModuleRate(a,b,c,d,16384)
73 #elif defined(SERVO5HZ)
74 #else
75 #error need to define 2k or 16k or mixed
76 #endif |