Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Revision:
84:80b15993944e
Child:
114:554fa3a956b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SnSigProcDataTable.cpp	Fri Oct 30 04:49:40 2015 +0000
@@ -0,0 +1,48 @@
+#include "SnSigProcDataTable.h"
+
+// save RAM by not implementing data tables that won't be used
+// (altho I guess they will be optimized away in any case)
+#if CHIPBOARD==SST4CH
+// hard code the number here because these tables are only valid for this value.
+// use kNsamps when instantiating it, though, so a compiler error will happen
+// if there's no data table for that number of samples.
+
+// these are the pairs: (j, m) at each step of the loop over odd
+// values of i in DiscreteCpxFFT
+const SnSigProcDataTable<256>::DfftDivideIndicies_t SnSigProcDataTable<256>::kDfftDivideIndicies[256] = {
+    129, 128, 65, 64, 193, 128, 33, 32, 161, 128, 97, 64, 225, 128, 17, 16, 145, 128, 81, 64, 209, 128, 49, 32, 177, 128, 113, 64, 241, 128, 9, 8, 137, 128, 73, 64, 201, 128, 41, 32, 169, 128, 105, 64, 233, 128, 25, 16, 153, 128, 89, 64, 217, 128, 57, 32, 185, 128, 121, 64, 249, 128, 5, 4, 133, 128, 69, 64, 197, 128, 37, 32, 165, 128, 101, 64, 229, 128, 21, 16, 149, 128, 85, 64, 213, 128, 53, 32, 181, 128, 117, 64, 245, 128, 13, 8, 141, 128, 77, 64, 205, 128, 45, 32, 173, 128, 109, 64, 237, 128, 29, 16, 157, 128, 93, 64, 221, 128, 61, 32, 189, 128, 125, 64, 253, 128, 3, 2, 131, 128, 67, 64, 195, 128, 35, 32, 163, 128, 99, 64, 227, 128, 19, 16, 147, 128, 83, 64, 211, 128, 51, 32, 179, 128, 115, 64, 243, 128, 11, 8, 139, 128, 75, 64, 203, 128, 43, 32, 171, 128, 107, 64, 235, 128, 27, 16, 155, 128, 91, 64, 219, 128, 59, 32, 187, 128, 123, 64, 251, 128, 7, 4, 135, 128, 71, 64, 199, 128, 39, 32, 167, 128, 103, 64, 231, 128, 23, 16, 151, 128, 87, 64, 215, 128, 55, 32, 183, 128, 119, 64, 247, 128, 15, 8, 143, 128, 79, 64, 207, 128, 47, 32, 175, 128, 111, 64, 239, 128, 31, 16, 159, 128, 95, 64, 223, 128, 63, 32, 191, 128, 127, 64, 255, 128, 2, 1
+};
+
+// these are the twidle factors: wr, wi used in DiscreteCpxFFT
+const SnSigProcDataTable<256>::DfftTwidleFactor_t SnSigProcDataTable<256>::kDfftTwidleFactors[254] = {
+    1.00000000000000e+00, 0.00000000000000e+00, 1.00000000000000e+00, 0.00000000000000e+00, 2.22044604925031e-16, 1.00000000000000e+00, 1.00000000000000e+00, 0.00000000000000e+00, 7.07106781186547e-01, 7.07106781186547e-01, 0.00000000000000e+00, 1.00000000000000e+00, -7.07106781186547e-01, 7.07106781186547e-01, 1.00000000000000e+00, 0.00000000000000e+00, 9.23879532511287e-01, 3.82683432365090e-01, 7.07106781186547e-01, 7.07106781186548e-01, 3.82683432365090e-01, 9.23879532511287e-01, -5.55111512312578e-17, 1.00000000000000e+00, -3.82683432365090e-01, 9.23879532511287e-01, -7.07106781186548e-01, 7.07106781186547e-01, -9.23879532511287e-01, 3.82683432365090e-01, 1.00000000000000e+00, 0.00000000000000e+00, 9.80785280403230e-01, 1.95090322016128e-01, 9.23879532511287e-01, 3.82683432365090e-01, 8.31469612302545e-01, 5.55570233019602e-01, 7.07106781186548e-01, 7.07106781186547e-01, 5.55570233019602e-01, 8.31469612302545e-01, 3.82683432365090e-01, 9.23879532511287e-01, 1.95090322016128e-01, 9.80785280403230e-01, 1.38777878078145e-16, 1.00000000000000e+00, -1.95090322016128e-01, 9.80785280403230e-01, -3.82683432365090e-01, 9.23879532511287e-01, -5.55570233019602e-01, 8.31469612302545e-01, -7.07106781186547e-01, 7.07106781186547e-01, -8.31469612302545e-01, 5.55570233019602e-01, -9.23879532511286e-01, 3.82683432365090e-01, -9.80785280403230e-01, 1.95090322016128e-01, 1.00000000000000e+00, 0.00000000000000e+00, 9.95184726672197e-01, 9.80171403295606e-02, 9.80785280403231e-01, 1.95090322016128e-01, 9.56940335732209e-01, 2.90284677254462e-01, 9.23879532511287e-01, 3.82683432365090e-01, 8.81921264348355e-01, 4.71396736825998e-01, 8.31469612302545e-01, 5.55570233019602e-01, 7.73010453362737e-01, 6.34393284163646e-01, 7.07106781186548e-01, 7.07106781186548e-01, 6.34393284163646e-01, 7.73010453362737e-01, 5.55570233019602e-01, 8.31469612302545e-01, 4.71396736825998e-01, 8.81921264348355e-01, 3.82683432365090e-01, 9.23879532511287e-01, 2.90284677254462e-01, 9.56940335732209e-01, 1.95090322016128e-01, 9.80785280403231e-01, 9.80171403295606e-02, 9.95184726672197e-01, 0.00000000000000e+00, 1.00000000000000e+00, -9.80171403295606e-02, 9.95184726672197e-01, -1.95090322016128e-01, 9.80785280403231e-01, -2.90284677254462e-01, 9.56940335732209e-01, -3.82683432365090e-01, 9.23879532511287e-01, -4.71396736825998e-01, 8.81921264348355e-01, -5.55570233019602e-01, 8.31469612302545e-01, -6.34393284163646e-01, 7.73010453362737e-01, -7.07106781186548e-01, 7.07106781186548e-01, -7.73010453362737e-01, 6.34393284163646e-01, -8.31469612302545e-01, 5.55570233019602e-01, -8.81921264348355e-01, 4.71396736825998e-01, -9.23879532511287e-01, 3.82683432365090e-01, -9.56940335732209e-01, 2.90284677254462e-01, -9.80785280403231e-01, 1.95090322016128e-01, -9.95184726672197e-01, 9.80171403295606e-02, 1.00000000000000e+00, 0.00000000000000e+00, 9.98795456205172e-01, 4.90676743274180e-02, 9.95184726672197e-01, 9.80171403295606e-02, 9.89176509964781e-01, 1.46730474455362e-01, 9.80785280403231e-01, 1.95090322016128e-01, 9.70031253194544e-01, 2.42980179903264e-01, 9.56940335732209e-01, 2.90284677254462e-01, 9.41544065183021e-01, 3.36889853392220e-01, 9.23879532511287e-01, 3.82683432365090e-01, 9.03989293123443e-01, 4.27555093430282e-01, 8.81921264348355e-01, 4.71396736825998e-01, 8.57728610000272e-01, 5.14102744193222e-01, 8.31469612302545e-01, 5.55570233019602e-01, 8.03207531480645e-01, 5.95699304492433e-01, 7.73010453362737e-01, 6.34393284163645e-01, 7.40951125354959e-01, 6.71558954847018e-01, 7.07106781186548e-01, 7.07106781186548e-01, 6.71558954847018e-01, 7.40951125354959e-01, 6.34393284163645e-01, 7.73010453362737e-01, 5.95699304492433e-01, 8.03207531480645e-01, 5.55570233019602e-01, 8.31469612302545e-01, 5.14102744193222e-01, 8.57728610000272e-01, 4.71396736825998e-01, 8.81921264348355e-01, 4.27555093430282e-01, 9.03989293123443e-01, 3.82683432365090e-01, 9.23879532511287e-01, 3.36889853392220e-01, 9.41544065183021e-01, 2.90284677254462e-01, 9.56940335732209e-01, 2.42980179903264e-01, 9.70031253194544e-01, 1.95090322016128e-01, 9.80785280403231e-01, 1.46730474455362e-01, 9.89176509964781e-01, 9.80171403295605e-02, 9.95184726672197e-01, 4.90676743274180e-02, 9.98795456205172e-01, -6.24500451351651e-17, 1.00000000000000e+00, -4.90676743274181e-02, 9.98795456205172e-01, -9.80171403295607e-02, 9.95184726672197e-01, -1.46730474455362e-01, 9.89176509964781e-01, -1.95090322016128e-01, 9.80785280403231e-01, -2.42980179903264e-01, 9.70031253194544e-01, -2.90284677254462e-01, 9.56940335732209e-01, -3.36889853392220e-01, 9.41544065183021e-01, -3.82683432365090e-01, 9.23879532511287e-01, -4.27555093430282e-01, 9.03989293123443e-01, -4.71396736825998e-01, 8.81921264348355e-01, -5.14102744193222e-01, 8.57728610000272e-01, -5.55570233019602e-01, 8.31469612302545e-01, -5.95699304492433e-01, 8.03207531480645e-01, -6.34393284163645e-01, 7.73010453362737e-01, -6.71558954847018e-01, 7.40951125354959e-01, -7.07106781186548e-01, 7.07106781186548e-01, -7.40951125354959e-01, 6.71558954847018e-01, -7.73010453362737e-01, 6.34393284163645e-01, -8.03207531480645e-01, 5.95699304492433e-01, -8.31469612302545e-01, 5.55570233019602e-01, -8.57728610000272e-01, 5.14102744193222e-01, -8.81921264348355e-01, 4.71396736825998e-01, -9.03989293123443e-01, 4.27555093430282e-01, -9.23879532511287e-01, 3.82683432365090e-01, -9.41544065183021e-01, 3.36889853392220e-01, -9.56940335732209e-01, 2.90284677254462e-01, -9.70031253194544e-01, 2.42980179903264e-01, -9.80785280403231e-01, 1.95090322016128e-01, -9.89176509964781e-01, 1.46730474455362e-01, -9.95184726672197e-01, 9.80171403295605e-02, -9.98795456205172e-01, 4.90676743274180e-02
+};
+
+// these are the twidle factors: wr, wi used in RealFFT
+const SnSigProcDataTable<256>::RealDfftTwidleFactor_t SnSigProcDataTable<256>::kRealDfftTwidleFactor[126] = {
+    9.99698818696204e-01, 2.45412285229123e-02, 9.98795456205172e-01, 4.90676743274180e-02, 9.97290456678690e-01, 7.35645635996674e-02, 9.95184726672197e-01, 9.80171403295606e-02, 9.92479534598710e-01, 1.22410675199216e-01, 9.89176509964781e-01, 1.46730474455362e-01, 9.85277642388941e-01, 1.70961888760301e-01, 9.80785280403231e-01, 1.95090322016128e-01, 9.75702130038529e-01, 2.19101240156870e-01, 9.70031253194544e-01, 2.42980179903264e-01, 9.63776065795440e-01, 2.66712757474898e-01, 9.56940335732209e-01, 2.90284677254462e-01, 9.49528180593037e-01, 3.13681740398891e-01, 9.41544065183021e-01, 3.36889853392220e-01, 9.32992798834739e-01, 3.59895036534988e-01, 9.23879532511287e-01, 3.82683432365090e-01, 9.14209755703531e-01, 4.05241314004990e-01, 9.03989293123444e-01, 4.27555093430282e-01, 8.93224301195516e-01, 4.49611329654607e-01, 8.81921264348355e-01, 4.71396736825998e-01, 8.70086991108712e-01, 4.92898192229784e-01, 8.57728610000272e-01, 5.14102744193222e-01, 8.44853565249707e-01, 5.34997619887097e-01, 8.31469612302545e-01, 5.55570233019602e-01, 8.17584813151584e-01, 5.75808191417845e-01, 8.03207531480645e-01, 5.95699304492433e-01, 7.88346427626607e-01, 6.15231590580627e-01, 7.73010453362737e-01, 6.34393284163645e-01, 7.57208846506485e-01, 6.53172842953777e-01, 7.40951125354959e-01, 6.71558954847018e-01, 7.24247082951467e-01, 6.89540544737067e-01, 7.07106781186548e-01, 7.07106781186548e-01, 6.89540544737067e-01, 7.24247082951467e-01, 6.71558954847019e-01, 7.40951125354959e-01, 6.53172842953777e-01, 7.57208846506485e-01, 6.34393284163646e-01, 7.73010453362737e-01, 6.15231590580627e-01, 7.88346427626606e-01, 5.95699304492433e-01, 8.03207531480645e-01, 5.75808191417845e-01, 8.17584813151584e-01, 5.55570233019602e-01, 8.31469612302545e-01, 5.34997619887097e-01, 8.44853565249707e-01, 5.14102744193222e-01, 8.57728610000272e-01, 4.92898192229784e-01, 8.70086991108712e-01, 4.71396736825998e-01, 8.81921264348355e-01, 4.49611329654607e-01, 8.93224301195515e-01, 4.27555093430282e-01, 9.03989293123443e-01, 4.05241314004990e-01, 9.14209755703531e-01, 3.82683432365090e-01, 9.23879532511287e-01, 3.59895036534988e-01, 9.32992798834739e-01, 3.36889853392220e-01, 9.41544065183021e-01, 3.13681740398892e-01, 9.49528180593037e-01, 2.90284677254462e-01, 9.56940335732209e-01, 2.66712757474899e-01, 9.63776065795440e-01, 2.42980179903264e-01, 9.70031253194544e-01, 2.19101240156870e-01, 9.75702130038529e-01, 1.95090322016128e-01, 9.80785280403231e-01, 1.70961888760301e-01, 9.85277642388941e-01, 1.46730474455362e-01, 9.89176509964781e-01, 1.22410675199216e-01, 9.92479534598710e-01, 9.80171403295608e-02, 9.95184726672197e-01, 7.35645635996676e-02, 9.97290456678690e-01, 4.90676743274182e-02, 9.98795456205172e-01, 2.45412285229125e-02, 9.99698818696204e-01
+};
+
+#endif // SST4CH
+
+
+#if CHIPBOARD==ATWD4CH
+// these are the pairs: (j, m) at each step of the loop over odd
+// values of i in DiscreteCpxFFT
+const SnSigProcDataTable<128>::DfftDivideIndicies_t SnSigProcDataTable<128>::kDfftDivideIndicies[128] = {
+65, 64, 33, 32, 97, 64, 17, 16, 81, 64, 49, 32, 113, 64, 9, 8, 73, 64, 41, 32, 105, 64, 25, 16, 89, 64, 57, 32, 121, 64, 5, 4, 69, 64, 37, 32, 101, 64, 21, 16, 85, 64, 53, 32, 117, 64, 13, 8, 77, 64, 45, 32, 109, 64, 29, 16, 93, 64, 61, 32, 125, 64, 3, 2, 67, 64, 35, 32, 99, 64, 19, 16, 83, 64, 51, 32, 115, 64, 11, 8, 75, 64, 43, 32, 107, 64, 27, 16, 91, 64, 59, 32, 123, 64, 7, 4, 71, 64, 39, 32, 103, 64, 23, 16, 87, 64, 55, 32, 119, 64, 15, 8, 79, 64, 47, 32, 111, 64, 31, 16, 95, 64, 63, 32, 127, 64, 2, 1
+};
+
+// these are the twidle factors: wr, wi used in DiscreteCpxFFT
+const SnSigProcDataTable<128>::DfftTwidleFactor_t SnSigProcDataTable<128>::kDfftTwidleFactors[126] = {
+1.00000000000000e+00, 0.00000000000000e+00, 1.00000000000000e+00, 0.00000000000000e+00, 2.22044604925031e-16, 1.00000000000000e+00, 1.00000000000000e+00, 0.00000000000000e+00, 7.07106781186547e-01, 7.07106781186547e-01, 0.00000000000000e+00, 1.00000000000000e+00, -7.07106781186547e-01, 7.07106781186547e-01, 1.00000000000000e+00, 0.00000000000000e+00, 9.23879532511287e-01, 3.82683432365090e-01, 7.07106781186547e-01, 7.07106781186548e-01, 3.82683432365090e-01, 9.23879532511287e-01, -5.55111512312578e-17, 1.00000000000000e+00, -3.82683432365090e-01, 9.23879532511287e-01, -7.07106781186548e-01, 7.07106781186547e-01, -9.23879532511287e-01, 3.82683432365090e-01, 1.00000000000000e+00, 0.00000000000000e+00, 9.80785280403230e-01, 1.95090322016128e-01, 9.23879532511287e-01, 3.82683432365090e-01, 8.31469612302545e-01, 5.55570233019602e-01, 7.07106781186548e-01, 7.07106781186547e-01, 5.55570233019602e-01, 8.31469612302545e-01, 3.82683432365090e-01, 9.23879532511287e-01, 1.95090322016128e-01, 9.80785280403230e-01, 1.38777878078145e-16, 1.00000000000000e+00, -1.95090322016128e-01, 9.80785280403230e-01, -3.82683432365090e-01, 9.23879532511287e-01, -5.55570233019602e-01, 8.31469612302545e-01, -7.07106781186547e-01, 7.07106781186547e-01, -8.31469612302545e-01, 5.55570233019602e-01, -9.23879532511286e-01, 3.82683432365090e-01, -9.80785280403230e-01, 1.95090322016128e-01, 1.00000000000000e+00, 0.00000000000000e+00, 9.95184726672197e-01, 9.80171403295606e-02, 9.80785280403231e-01, 1.95090322016128e-01, 9.56940335732209e-01, 2.90284677254462e-01, 9.23879532511287e-01, 3.82683432365090e-01, 8.81921264348355e-01, 4.71396736825998e-01, 8.31469612302545e-01, 5.55570233019602e-01, 7.73010453362737e-01, 6.34393284163646e-01, 7.07106781186548e-01, 7.07106781186548e-01, 6.34393284163646e-01, 7.73010453362737e-01, 5.55570233019602e-01, 8.31469612302545e-01, 4.71396736825998e-01, 8.81921264348355e-01, 3.82683432365090e-01, 9.23879532511287e-01, 2.90284677254462e-01, 9.56940335732209e-01, 1.95090322016128e-01, 9.80785280403231e-01, 9.80171403295606e-02, 9.95184726672197e-01, 0.00000000000000e+00, 1.00000000000000e+00, -9.80171403295606e-02, 9.95184726672197e-01, -1.95090322016128e-01, 9.80785280403231e-01, -2.90284677254462e-01, 9.56940335732209e-01, -3.82683432365090e-01, 9.23879532511287e-01, -4.71396736825998e-01, 8.81921264348355e-01, -5.55570233019602e-01, 8.31469612302545e-01, -6.34393284163646e-01, 7.73010453362737e-01, -7.07106781186548e-01, 7.07106781186548e-01, -7.73010453362737e-01, 6.34393284163646e-01, -8.31469612302545e-01, 5.55570233019602e-01, -8.81921264348355e-01, 4.71396736825998e-01, -9.23879532511287e-01, 3.82683432365090e-01, -9.56940335732209e-01, 2.90284677254462e-01, -9.80785280403231e-01, 1.95090322016128e-01, -9.95184726672197e-01, 9.80171403295606e-02
+};
+
+// these are the twidle factors: wr, wi used in RealFFT
+const SnSigProcDataTable<128>::RealDfftTwidleFactor_t SnSigProcDataTable<128>::kRealDfftTwidleFactor[62] = {
+9.98795456205172e-01, 4.90676743274180e-02, 9.95184726672197e-01, 9.80171403295606e-02, 9.89176509964781e-01, 1.46730474455362e-01, 9.80785280403231e-01, 1.95090322016128e-01, 9.70031253194544e-01, 2.42980179903264e-01, 9.56940335732209e-01, 2.90284677254462e-01, 9.41544065183021e-01, 3.36889853392220e-01, 9.23879532511287e-01, 3.82683432365090e-01, 9.03989293123443e-01, 4.27555093430282e-01, 8.81921264348355e-01, 4.71396736825998e-01, 8.57728610000272e-01, 5.14102744193222e-01, 8.31469612302545e-01, 5.55570233019602e-01, 8.03207531480645e-01, 5.95699304492433e-01, 7.73010453362737e-01, 6.34393284163645e-01, 7.40951125354959e-01, 6.71558954847018e-01, 7.07106781186548e-01, 7.07106781186548e-01, 6.71558954847018e-01, 7.40951125354959e-01, 6.34393284163645e-01, 7.73010453362737e-01, 5.95699304492433e-01, 8.03207531480645e-01, 5.55570233019602e-01, 8.31469612302545e-01, 5.14102744193222e-01, 8.57728610000272e-01, 4.71396736825998e-01, 8.81921264348355e-01, 4.27555093430282e-01, 9.03989293123443e-01, 3.82683432365090e-01, 9.23879532511287e-01, 3.36889853392220e-01, 9.41544065183021e-01, 2.90284677254462e-01, 9.56940335732209e-01, 2.42980179903264e-01, 9.70031253194544e-01, 1.95090322016128e-01, 9.80785280403231e-01, 1.46730474455362e-01, 9.89176509964781e-01, 9.80171403295605e-02, 9.95184726672197e-01, 4.90676743274180e-02, 9.98795456205172e-01
+};
+
+#endif // ATWD4CH
+
+ 
\ No newline at end of file