Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
AD |
20.10.2010, 9:11
Сообщение
#21
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
То есть самая первая подзадача - это найти критерий определения шума. Ну то есть, тот предел, по которому можно будет ориентироваться является ли число в последовательности шумом или нет!
|
|
|
|
|
Алексей1153 |
20.10.2010, 9:35
Сообщение
#22
|
|||
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(AD @ 20.10.2010, 11:56) Link Я правильно понимаю, что __acc, n_acc - пределы, по которым определяются "шумы"? да, __acc - это точность (1000 ~ 3 порядка) , а n_acc - величина, обратная к __acc . Это далее для сравнения "больше на 3 порядка" или "меньше на 3 порядка". Поскольку деление - операция "тяжёлая", я вынес её за цикл Цитата(AD @ 20.10.2010, 11:56) Link Сильно ли усложнит задачку следующее добавление, что пределы должны определяться в зависимости от массива/вектора? да ни грамма не усложнит Цитата(kwisp @ 20.10.2010, 11:58) Link Как поведет себя предложенный метод если к примеру первые 2 значения числа больше 1000 и 2000, а остальные 1 2 3 4 5. - какие значения удалятся из интервала? я код не тестировал. А по алгоритму, щас посмотрим: ага, дебаг показал уже два косяка: 1) условие проверяется по 2 раза. Сократить до одного раза 2) значение нельзя просто удалять. Его надо заменять на следующее, а затем шагнуть один шаг назад и продолжить оттуда: и ещё один баг: если сканировать с начала, приоритет отдаётся последним значениям. И "низкая волна" в конце перекроет "высокую " в начале. Тут можно попробовать заранее просмотреть данные и ориентироваться на некий уровень. а ещё, кстати! я у себя делал сглаживание ступенчатого сигнала, наверное такой метод тоже может подойти, сейчас скрины для примера сделаю, прикреплю без сглаживания одна итерация 10 итераций Сообщение отредактировал Алексей1153 - 20.10.2010, 9:33 |
|||
|
|
||||
|
kwisp |
20.10.2010, 10:04
Сообщение
#23
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(Алексей1153 @ 20.10.2010, 10:35) Link Тут можно попробовать заранее просмотреть данные и ориентироваться на некий уровень. уже интереснее. а потом еще окажется что нужно учитывать тенденцию роста функции. |
|
|
|
|
Алексей1153 |
20.10.2010, 10:24
Сообщение
#24
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
kwisp, а как ты хотел
|
|
|
|
|
kwisp |
21.10.2010, 14:38
Сообщение
#25
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
вот моя попытка.
к сожалению определить полностью автоматически лишние значения для меня оказалось очень сложно. Все же нужен критерий оценки от пользователя. Понятно что можно расширить и улучшить. находим мат. ожидание(в данном случае = ср.арифметическому), к примеру, так: upthrow.h или просто с использованием accumulate и distance неважно пример использования следующий: main.cpp Раскрывающийся текст в данном примере критерий удаления - это разница значения элемента с мат.ожиданием больше чем 2,5 мат.ожидания, взят для примера. на самом деле придется хоть немного знать о хранимых значениях чтобы выбрать критерий правильно для своей задачи. |
|
|
|
|
Алексей1153 |
21.10.2010, 17:57
Сообщение
#26
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
[offtop]
kwisp, кстати, специализацию можно не указывать тут std::distance<InputIterator>(first,last); - она очевидна. Можно вот так std::distance(first,last); [/offtop] |
|
|
|
|
kwisp |
21.10.2010, 18:12
Сообщение
#27
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
самому себе для наглядности написал.
|
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 30.12.2025, 0:49 |