Вверх ↑
Ответов: 19
Рейтинг: 0
#1: 2024-10-18 08:21:49 ЛС | профиль | цитата
Gunta Спасибо за быстрый ответ, но это не есть цифровой фильтр. Для упрощения схемы вместо генератора чисел можно поставить две кнопки, формирующие числа 100 и 105 (значение не принципиально). Если по очереди нажимать кнопки 1 и 2, то будет генерироваться последовательность чисел 100 и 105, поступающая на элемент MathParse. В результате фильтрации через определённое число итераций должно получиться число, близкое к среднему, то есть 102,5. Этого не получается.

Формула filVal = filVal + (newVal - filVal) * k означает, что имеется переменная filVal, в которой накапливается усреднённый результат. На вход поступает переменная newVal (в нашем случае ряд чисел 100 и 105). Если filVal изначально равно 0, то при k=0,1 должны последовательно получаться числа: filVal = 0 + (100 – 0)*0,1 = 10; filVal = 10 + (105 – 10)*0,1 = 19,5; filVal = 19,5 + (100 – 19,5)*0,1 = 27,55 и т. д.

Add(MainForm,7345118,126,252)
{
Width=579
Caption="RunningAverage"
}
Add(Label,11097072,420,301)
{
Width=563
Height=60
Font=[MS Sans Serif,16,0,0,1]
AutoSize=1
}
Add(Label,14996953,420,252)
{
Top=115
Width=563
Height=47
Font=[MS Sans Serif,16,0,0,1]
AutoSize=1
}
Add(MathParse,11086776,364,252)
{
MathStr="( %1 - %0 ) * %2"
link(onResult,14996953:doText,[])
link(X2,15609717:Value,[])
}
Add(Hub,2023453,322,252)
{
InCount=2
link(onEvent1,11086776:doCalc,[])
link(onEvent2,11097072:doText,[(354,265)(354,307)])
}
Add(Memory,15609717,371,189)
{
@Hint=#31:коэффициент фильтрации, 0.0-1.0|
Default=Real(0.1)
AddHint(164,-8,187,13,@Hint)
}
Add(Edit,472500,252,189)
{
@Color=16777130
Left=267
Top=187
Height=19
Color=16777215
Font=[MS Sans Serif,8,1,0,1]
ParentFont=0
Text="100"
Alignment=2
Point(doVisible)
}
Add(Button,8303377,189,252)
{
Left=180
Top=190
Caption="Button_1"
Data=String()
link(onClick,10514528:doData,[])
}
Add(DoData,10514528,252,252)
{
Data=Real(0.001)
link(onEventData,2023453:doEvent1,[])
link(Data,472500:Text,[])
}
Add(Edit,815006,245,308)
{
@Color=16777130
Left=267
Top=217
Height=19
Color=16777215
Font=[MS Sans Serif,8,1,0,1]
ParentFont=0
Text="105"
Alignment=2
Point(doVisible)
}
Add(Button,10382153,182,371)
{
Left=180
Top=215
Caption="Button_2"
link(onClick,1975013:doData,[])
}
Add(DoData,1975013,245,371)
{
Data=Real(0.001)
link(onEventData,2023453:doEvent2,[(299,377)(299,265)])
link(Data,815006:Text,[])
}

карма: 0

0
Редактировалось 1 раз(а), последний 2024-10-18 08:22:36