![]() |
|
|
![]()
|
|
| Y-Vladimir |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 16.7.2004 Где: Казань Репутация: 1 Всего: 6 |
Вот какая задача - у нас есть звуковой файл, небольшой кусочек данных которого испорчен (помеха там или щелчок). Вопрос, как наиболее правильно восстановить этот фрагмент? Интерполяцию сразу отметаем, т.к. получается гладкая линия, чего в действительности не наблюдается (если только этот участок не совсем уж маленький).
Первой пришла идея использовать информацию окрестности поврежденного фрагмента, найдя ее спектр. Ведь если у нас была чистая синусоида в окрестности, то можно с большой уверенностью сказать, что в поврежденном участке тоже была синусоида. Вот только как это можно сделать? Может есть еще какие подходы? Можно ли данные рассуждения применить, скажем, к испорченному фрагменту изображения? |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Очень зависит от типа помехи. Щелчок - импульсная помеха. Если щелчок авторучкой - она более высокочастотная. Удар кувалдой - более низкочастотная. Ну и амплитуда помехи - немаловажный фактор. Здесь нужны очень хорошие фильтры.
|
|||
|
||||
| Y-Vladimir |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 16.7.2004 Где: Казань Репутация: 1 Всего: 6 |
Вопрос в другом - я знаю, где точно находится помеха, и этот фрагмент фильтрами не восстановишь, (например если полное отсутствие сигнала в этом участке).
Нужно на основании оставшегося сигнала воостановить этот фрагмент, по-возможности наиболее корректно. Вот я и подумал, что наиболее правильно взять некоторую окрестность около дефектного участка и попытаться реконструировать форму сигнала на основе этой информации. Какой способ лучше подходит для этой задачи? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
рассматриваем звуковой сигнал, как случайный процесс
используя окрестность сигнала, набираем статистику по ней делаем предположение о законе распределения (для всего процесса) далее берем конкретный участок с помехой +/- небольшая окрестность (меньше той, на которой набирали статистику), представляем его в виде вектора считаем те координаты, на которых помеха неизвестными по остальным известным координатам проводим оценивание неизвестных критерий можно брать, например, наибольшего правдоподобия или мат.ожидания ошибки Добавлено @ 15:15 P.S. честно говоря, не знаю, лучше ли всего этот способ подходит для данной задачи, но это - первое, что пришло в голову... -------------------- qqq |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Подойдет GARCH-модель (Generalized Autoregressive Conditional Heteroscedasticity). Она же модель обобщенной регрессии с условной гетероскедастичностью.
Страшно? Это такая регрессионная модель, в которой можно дисперсию представить изменяемой во времени. Но если быть проще, то можно обойтись и более простыми. Традиционная модель линейного предсказания, например, для речи подойдет. В остальном так: - оцениваем параметры модели по чистым участкам сигнала; - в области помехи моделируем сигнал. |
|||
|
||||
| Y-Vladimir |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 16.7.2004 Где: Казань Репутация: 1 Всего: 6 |
Я вот тут придумал способ - зацените, плиз.
Пусть у нас длительность помехи dt. Тогда берем два участка звука длиной dt: до поврежденного фрагмента и после. Затем находим спектр этих двух кусочков. А далее вычисляем их средне арифметический спектр (находим средние значения амплитуды для каждой частоты из двух получившихся спектров). Это мы значит получили предполагаемый спектр поврежденного участка, делаем обратное преобразование Фурье для него и получаем реконструированный дефектный фрагмент. Как думаете, прокатит? И корректно ли так восстанавливать? По идее должно давать хорошие результаты. |
|||
|
||||
| maxim1000 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
значение спектра на каждой частоте - комплексное число для восстановления сигнала кроме модуля спектра нужна еще его фаза можно попробовать подобрать фазу так, чтоб сгладить переход от оригинального кусочка сигнала к восстановленному (хотя сомнительно...)
конечно же нет о корректности можно говорить, когда способ выводится из каких-то обоснованных данных, а не придумывается просто так (хотя это абсолютно не значит, что этот способ будет давать плохие результаты -------------------- qqq |
||||
|
|||||
| Y-Vladimir |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 16.7.2004 Где: Казань Репутация: 1 Всего: 6 |
podval , такой вопрос - если у меня исходный сигнал, это смесь из нескольких синусоид разной частоты, но постоянной амплитуды, и из этого сигнала вырезан какой-то кусочек, то сможет ли GARCH-модель восстановить этот кусочек таким образом, чтобы в нем опять была такая же смесь частот?
Интересно почитать про эту модель, если не трудно кинь пару толковых ссылок. |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Мне кажется, что использование стандартного подхода с вычислением т.н. А-параметров (авторегрессионый подход) на неиспорченном участке сигнала и восстановление с их помощью испорченного + полосовые фильтры неплохое решение задачки...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Y-Vladimir
В принципе, чтобы не иметь дело с очень уж заумными статьями, можно просто открыть Help к системе Matlab от версии 6.0 и выше. Там это есть. Достаточно, чтобы понять и решить, надо ли это. Все же в обобщенном виде много очень вычислений. Попробуй для начала обычные LPC-коэффициенты, а дальше усложняй. |
|||
|
||||
| Y-Vladimir |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 16.7.2004 Где: Казань Репутация: 1 Всего: 6 |
Спасибо всем! Надо будет посмотреть подробнее о этих подходах.
А интересно, какой будет результат если эти методы применить для изображения? Типа например есть у нас испорченный клок изображения (пятно или трещина), можно ли восстановть это в атоматическом режиме, выделив лишь испорченную область? В Фотошопе это конечно делается с помощью заплятки, если есть донорская область достаточного размера, а если нету, то придется помучится... может в таком случае данные методы помогут? |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |