SDRSharper/SDRSharper.Radio/SDRSharp.Radio/DecimationKernels.cs
SDRSharpR c07e6e6034 SDRSharper (SDRSharp Remake) Full Source (VS2017)
SDRSharper (SDRSharp Remake) Full Source (VS2017)
2018-03-26 14:02:05 -07:00

415 lines
5.6 KiB
C#

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
};
}
}