Поскольку этот вид фильтра (Laplace) очень специализирован для определенной области Engineering
и нуждается в человеке, который хорошо понимает как язык программирования (в данном случае это C#), так и сам фильтр, я бы рекомендовал вам используйте такой код source, а не код фильтра самостоятельно.
Вот фрагмент исходного кода:
class Laplace
{
const int DefaultStehfest = 14;
public delegate double FunctionDelegate(double t);
static double[] V; // Stehfest coefficients
static double ln2; // log of 2
public static void InitStehfest(int N)
{
ln2 = Math.Log(2.0);
int N2 = N/2;
int NV = 2 * N2;
V = new double[NV];
int sign = 1;
if ((N2 % 2) != 0)
sign = -1;
for (int i = 0; i < NV; i++)
{
int kmin = (i + 2)/2;
int kmax = i + 1;
if (kmax > N2)
kmax = N2;
V[i] = 0;
sign = -sign;
for (int k = kmin; k <= kmax; k++)
{
V[i] = V[i] + (Math.Pow(k, N2)/Factorial(k)) * (Factorial(2 * k)
/Factorial(2 * k - i - 1))/Factorial(N2 - k)
/Factorial(k - 1)/Factorial(i + 1 - k);
}
V[i] = sign * V[i];
}
}
public static double InverseTransform(FunctionDelegate f, double t)
{
double ln2t = ln2/t;
double x = 0;
double y = 0;
for (int i = 0; i < V.Length; i++)
{
x += ln2t;
y += V[i] * f(x);
}
return ln2t * y;
}
public static double Factorial(int N)
{
double x = 1;
if (N > 1)
{
for (int i = 2; i <= N; i++)
x = i * x;
}
return x;
}
}
кодируются г Уолта Fair младший в CodeProject.
Это похоже на проблему Control/DSP ... «получить наиболее частое значение из моего массива», возможно, вы можете прояснить, что это означает, предоставив образец ввода - ожидаемую пару. Таким образом, легче понять проблему или предложить решение. Например, каковы значения для x = [30 значений] и каков ожидаемый результат – Ian
Например: x = [301,302,306,301,305, _512_, 308,301,302, _616_, 306 ...] Мне нужно использовать преобразование Лапласа для получения частотные значения координаты x в случае понимания значений 301-308 являются наиболее точными числами. Но как я могу реализовать массив с помощью уравнения? –
О, о, не здесь ... Вы можете обновить вопрос. И все может стать намного проще, если вы не требуете, чтобы фильтр был Лапласом, но любой фильтр (например, медианный/средний). – Ian