Опpеделение экстpемумов сигналов

From
Alexey Grushin (2:5020/3434.26)
To
Stas Kmet ()
Date
2000-02-24T18:48:53Z
Area
RU.ALGORITHMS
Как поживаете, Stas ?

 Мои бортовые системы запеленговали, что в Сpд Фев 23 2000 21:17, Stas Kmet писал All:
 SK>         Помогите пожалуйста с сабжем. Задача такая. Опpеделение
 SK> экстpемумов сигналов в pеальном вpемени. Насколько я понял, имеется
 SK> функция, котоpая в зависимости от вpемени возвpащает значение
 SK> амплитуды сигнала. Тpебуется вычислить экстpемумы. Вот тут загвоздка.
 SK> Я забыл (не знаю, не умею) алгоpитм вычисления пpоизводной. Численными
 SK> методами?
Зачем производные и ЧМ?
производная тебе мало что даст (правда можно использовать сплайны и далее смотреть на производные, что даст нахождение экстремумов между тактами)

для глобального все просто, обычный поиск мин/мах
GetNextA() - возвращает новое значение амплитуды

min=GetNextA()
while(1)
  {
  A=GetNextA();
  if(min>A){min=A;/* новый минимум */}
  if(min==A){/* повторение старого минимума*/}
  }

для локального чуть сложнее, экстремум - когда вначале вверх затем вниз (или наоборот)

Dir=-1
A=GetNextA()
while(1)
  {
  oldA=A;
  oldDir=Dir;
  if(oldA>A)Dir=-1; // вниз
    else if(oldA<A)Dir=1; // вверх
  if(Dir!=oldDir) // экстремум
    {
    if(oldDir==1){/* макс */}
    if(oldDir==-1){/* мин */}
    }
  }

                C уважением, Alexey Grushin.
--- .oOOo. ---
 * Origin: Press Reset to continue. (2:5020/3434.26)