|
|
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Неподскажите уважаемый All метод распознования синусоид. Т.е есть график, нужно определить синусоида это или нет (какая синусоида - неважно ). Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 11:43 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Преобразования Фурье? --- "Raffiniert ist der Herr Gott, aber boshaft ist Er nicht." Albert Einstein ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 12:04 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Я конечно не специалист, но как бы стал делять я: Есть график - значит надо понимать есть двумерный массив точек (x;y). Во-первых, точно определить по нему не удастся в любом случае, поскольку количество точек конечное. И даже что происходит с функцией между двумя соседними точками неизвестно. Т.е. определить можно будет только с определенной погрешностью. 1) под "любой" синусоидой понимаем y=A*sin(k*x+b)+M? 2) Найти минимум YMin и максимум YMax функции. Вообще говоря любой максимум и минимум но чтобы между ними не было других минимумов и максимумов. В идеальном графике максимумы у синусоиды все одинаковые (минимумы тоже), в реальном могут отличаются на допустимую погрешность, т.е. в массиве может просто не быть точке настоящего максимума, а только точка близкая к нему. Также запомнить значение аргумента функции при котором имеем эти минимум и максимум Xmin и Xmax. 2)Разницу между минимумом и максимумом делим пополам и получаем амплитуду A=(YMax-YMin)/2. 3) M=YMax-A 4) Период синусоиды получим как T=2*abs(XMax-XMin); соответственно k=T/(2*pi) 5) b=pi/2-Xmax Теперь получены все параметры - A, k, b, M. Подставляем их в исходную формулу и получаем формулу конкретной синусоиды. проверяешь подходят ли остальные точки графика под эту формулу. Если да - значит синусоида; нет - значит нет Вроде так :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 12:42 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
DmitryЯ конечно не специалист, но как бы стал делять я: Есть график - значит надо понимать есть двумерный массив точек (x;y). Во-первых, точно определить по нему не удастся в любом случае, поскольку количество точек конечное. И даже что происходит с функцией между двумя соседними точками неизвестно. Т.е. определить можно будет только с определенной погрешностью. 1) под "любой" синусоидой понимаем y=A*sin(k*x+b)+M? 2) Найти минимум YMin и максимум YMax функции. Вообще говоря любой максимум и минимум но чтобы между ними не было других минимумов и максимумов. В идеальном графике максимумы у синусоиды все одинаковые (минимумы тоже), в реальном могут отличаются на допустимую погрешность, т.е. в массиве может просто не быть точке настоящего максимума, а только точка близкая к нему. Также запомнить значение аргумента функции при котором имеем эти минимум и максимум Xmin и Xmax. 2)Разницу между минимумом и максимумом делим пополам и получаем амплитуду A=(YMax-YMin)/2. 3) M=YMax-A 4) Период синусоиды получим как T=2*abs(XMax-XMin); соответственно k=T/(2*pi) 5) b=pi/2-Xmax Теперь получены все параметры - A, k, b, M. Подставляем их в исходную формулу и получаем формулу конкретной синусоиды. проверяешь подходят ли остальные точки графика под эту формулу. Если да - значит синусоида; нет - значит нет Вроде так :-) идея, реально правда массив одномерный :) и график может и не быть синусоидой, но этот подход можно использовать для построение шаблона и вычисления коэф. корреляции с исходным графиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 14:04 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 15:35 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
2 Dmitry Расчет периода у тебя - неверный. Из постановки никак не вытекает что массив точек задан для 1 периода. 2 C955 Анализ Фурье будет самым верным решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 15:57 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Ну если задано точек для меньше чем одного периода то вполне может и не работать Если меньше полупериода, то не будет работать точно. А если период и более, то тогда будет работать правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 16:40 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
mayton2 C955 Анализ Фурье будет самым верным решением. непонял, а как можно использовать для распознования синусоидного графика преобразование Фурье ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 09:08 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
2C955: Преобразование Фурье для этого и существует - "распознавать" в сигнале различные синусоиды... ;-). Возьмите какой-нибудь Маткад, Матлаб и попробуййте сами. все наши на www.corba.kubsu.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 10:12 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Есть еще вариант - вычислить 2-ю производную, и сравнить с исходным графиком ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:00 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасЕсть еще вариант - вычислить 2-ю производную, и сравнить с исходным графиком ... а подробнее ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 19:06 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
sin''(x)=-sin(x) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 09:17 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасЕсть еще вариант - вычислить 2-ю производную, и сравнить с исходным графиком ... А если точки довольно дискретные то как производную считать? Слишком большая ошибка будет при вычисление второй производной. Разложение в ряд Фурье получше будет. Но мне кажется период все-равно самому придется высчитывать... Походу самый лучший выход, из простых, предложен Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 23:27 |
|
||
|
Распознование синусоид
|
|||
|---|---|---|---|
|
#18+
YRinat Карабас БарабасЕсть еще вариант - вычислить 2-ю производную, и сравнить с исходным графиком ... А если точки довольно дискретные то как производную считать? Слишком большая ошибка будет при вычисление второй производной. Разложение в ряд Фурье получше будет. Но мне кажется период все-равно самому придется высчитывать... Походу самый лучший выход, из простых, предложен Dmitry а если синусоида затухающая или период переменный, а если это вообще кривая у которой только часть имеет вид синусоиды ? :) Вообщем, разрулила все автокорреляционная функция, которая для таких графиков имеет вполне определенный вид - затухающей синусоиды с равными периодами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2005, 08:54 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33075616&tid=2033282]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 407ms |

| 0 / 0 |
