namespace SDRSharp.Radio { public static class DecimationKernels { public const float Cic3Max = 0.00150001049f; public const float Hb11TapMax = 0.025000006f; public const float Hb15TapMax = 0.048999995f; public const float Hb19TapMax = 0.072f; public const float Hb23TapMax = 0.09099999f; public const float Hb27TapMax = 0.10800001f; public const float Hb31TapMax = 0.122000009f; public const float Hb35TapMax = 0.134f; public const float Hb39TapMax = 0.144f; public const float Hb43TapMax = 0.153f; public const float Hb47TapMax = 0.16f; public const float Hb51TapMax = 0.167f; public static readonly float[] Kernel11 = new float[11] { 0.006043103f, 0f, -0.0493725166f, 0f, 0.293329448f, 0.5f, 0.293329448f, 0f, -0.0493725166f, 0f, 0.006043103f }; public static readonly float[] Kernel15 = new float[15] { -0.0014422033f, 0f, 0.0130175129f, 0f, -0.06165328f, 0f, 0.300077915f, 0.5f, 0.300077915f, 0f, -0.06165328f, 0f, 0.0130175129f, 0f, -0.0014422033f }; public static readonly float[] Kernel19 = new float[19] { 0.000423665275f, 0f, -0.00407173345f, 0f, 0.0198956542f, 0f, -0.07074004f, 0f, 0.3044925f, 0.5f, 0.3044925f, 0f, -0.07074004f, 0f, 0.0198956542f, 0f, -0.00407173345f, 0f, 0.000423665275f }; public static readonly float[] Kernel23 = new float[23] { -0.00014987652f, 0f, 0.00147486338f, 0f, -0.00744169438f, 0f, 0.0261635222f, 0f, -0.0775937f, 0f, 0.307546824f, 0.5f, 0.307546824f, 0f, -0.0775937f, 0f, 0.0261635222f, 0f, -0.00744169438f, 0f, 0.00147486338f, 0f, -0.00014987652f }; public static readonly float[] Kernel27 = new float[27] { 6.37304256E-05f, 0f, -0.0006198519f, 0f, 0.00315125054f, 0f, -0.0111731514f, 0f, 0.0317188874f, 0f, -0.08291786f, 0f, 0.309777051f, 0.5f, 0.309777051f, 0f, -0.08291786f, 0f, 0.0317188874f, 0f, -0.0111731514f, 0f, 0.00315125054f, 0f, -0.0006198519f, 0f, 6.37304256E-05f }; public static readonly float[] Kernel31 = new float[31] { -3.0957337E-05f, 0f, 0.000292719924f, 0f, -0.00147703814f, 0f, 0.00525390869f, 0f, -0.0148563785f, 0f, 0.03640665f, 0f, -0.08699863f, 0f, 0.311409682f, 0.5f, 0.311409682f, 0f, -0.08699863f, 0f, 0.03640665f, 0f, -0.0148563785f, 0f, 0.00525390869f, 0f, -0.00147703814f, 0f, 0.000292719924f, 0f, -3.0957337E-05f }; public static readonly float[] Kernel35 = new float[35] { 1.70177173E-05f, 0f, -0.000154250432f, 0f, 0.00076219684f, 0f, -0.00269161467f, 0f, 0.00759275f, 0f, -0.0183257274f, 0f, 0.0403510034f, 0f, -0.0901982263f, 0f, 0.3126469f, 0.5f, 0.3126469f, 0f, -0.0901982263f, 0f, 0.0403510034f, 0f, -0.0183257274f, 0f, 0.00759275f, 0f, -0.00269161467f, 0f, 0.00076219684f, 0f, -0.000154250432f, 0f, 1.70177173E-05f }; public static readonly float[] Kernel39 = new float[39] { -1.01750829E-05f, 0f, 8.803642E-05f, 0f, -0.000423708349f, 0f, 0.00147725572f, 0f, -0.00414684368f, 0f, 0.009957912f, 0f, -0.0214335267f, 0f, 0.0435989648f, 0f, -0.09269595f, 0f, 0.313588f, 0.5f, 0.313588f, 0f, -0.09269595f, 0f, 0.0435989648f, 0f, -0.0214335267f, 0f, 0.009957912f, 0f, -0.00414684368f, 0f, 0.00147725572f, 0f, -0.000423708349f, 0f, 8.803642E-05f, 0f, -1.01750829E-05f }; public static readonly float[] Kernel43 = new float[43] { 6.766674E-06f, 0f, -5.527522E-05f, 0f, 0.000256540749f, 0f, -0.00087481254f, 0f, 0.0024249875f, 0f, -0.005777519f, 0f, 0.0122998338f, 0f, -0.0242440514f, 0f, 0.046354305f, 0f, -0.0947299f, 0f, 0.3143392f, 0.5f, 0.3143392f, 0f, -0.0947299f, 0f, 0.046354305f, 0f, -0.0242440514f, 0f, 0.0122998338f, 0f, -0.005777519f, 0f, 0.0024249875f, 0f, -0.00087481254f, 0f, 0.000256540749f, 0f, -5.527522E-05f, 0f, 6.766674E-06f }; public static readonly float[] Kernel47 = new float[47] { -4.52983159E-06f, 0f, 3.53337055E-05f, 0f, -0.000159347765f, 0f, 0.0005340788f, 0f, -0.001466795f, 0f, 0.003479209f, 0f, -0.00737943547f, 0f, 0.014393786f, 0f, -0.0265866034f, 0f, 0.0485386737f, 0f, -0.0962911546f, 0f, 0.314906746f, 0.5f, 0.314906746f, 0f, -0.0962911546f, 0f, 0.0485386737f, 0f, -0.0265866034f, 0f, 0.014393786f, 0f, -0.00737943547f, 0f, 0.003479209f, 0f, -0.001466795f, 0f, 0.0005340788f, 0f, -0.000159347765f, 0f, 3.53337055E-05f, 0f, -4.52983159E-06f }; public static readonly float[] Kernel51 = new float[51] { 3.33592538E-06f, 0f, -2.45841547E-05f, 0f, 0.000106777778f, 0f, -0.000348907226f, 0f, 0.0009423913f, 0f, -0.00221183f, 0f, 0.004657503f, 0f, -0.009013098f, 0f, 0.016383674f, 0f, -0.02869728f, 0f, 0.0504329242f, 0f, -0.0976119f, 0f, 0.31538105f, 0.5f, 0.31538105f, 0f, -0.0976119f, 0f, 0.0504329242f, 0f, -0.02869728f, 0f, 0.016383674f, 0f, -0.009013098f, 0f, 0.004657503f, 0f, -0.00221183f, 0f, 0.0009423913f, 0f, -0.000348907226f, 0f, 0.000106777778f, 0f, -2.45841547E-05f, 0f, 3.33592538E-06f }; } }