Оп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)