Сглаживание цифровых сигналов

Введение


Данную статью меня заставил написать пост habrahabr.ru/post/183986, где не совсем правильно используется некоторый алгоритм сглаживания изображения.

Сразу перейдём к сути дела.

Математические модели цифровых сигналов — вектора и матрицы, элементами которых являются числа. Числа могут быть двоичными (бинарный сигнал), десятичными («обычный» сигнал) и так далее. Любой звук, любое изображение и видео могут быть преобразованы в цифровой сигнал1: звук — в вектор, изображение — в матрицу, а видео — в последовательный набор матриц. Поэтому цифровой сигнал — это, можно сказать, универсальный объект для представления информации.

Задача сглаживания — это, по сути, задача фильтрации сигнала от скачкообразных (ступенчатых) изменений. Считается, что полезный сигнал их не содержит. Ступенчатый сигнал за счёт множества резких, но небольших по амплитуде, перепадов уровня содержит высокочастотные составляющие, которых нет в сглаженном сигнале. Поэтому для некоторого алгоритма сглаживания в первую очередь необходимо определить как сильно ослабляются разные частотные составляющие. Другими словами, необходимо построить амплитудно-частотную характеристику соответствующего фильтра, иначе велика вероятность «нарваться» на артефакты.

Задача сглаживания может использоваться при прореживании сигналов, то есть когда, например, необходимо отобразить большую картинку на небольшой экран. Или когда частота дискретизации звука снижается, например, с 48000 Гц до 44100 Гц. Понижение частоты выборок — коварная операция, требующая предварительной обработки сигнала (низкочастотной фильтрации), но это — тема отдельного разговора…

Приведём пример «плохого» сглаживания


Казалось бы, обычное усреднение и сигнал на выходе должен быть «гладким». Но как определить, насколько он стал «глаже»? Не переборщили ли мы? А может быть некоторые коэффициенты выбрать не по 1/3? А может быть усреднить по пяти точкам? Как определить насколько ослабляются частотные составляющие в сигнале? Как найти свой (то есть для конкретной задачи) оптимум?
На эти и некоторые другие вопросы я постараюсь ответить так, чтобы «обычный» программист смог обосновать свой алгоритм, — надеюсь, не только алгоритм на тему «Сглаживание», так как идеи будут излагаться весьма общие, заставляющие думать самому


Сигналы



В этом параграфе под сигналом понимается вектор, то есть массив из определённого количества чисел. Например, вектор из четырёх элементов s = (2,5; 5; 0; -5).

Для простоты будут рассматриваться только десятичные вещественные числа.

Одним из наиболее распространённых и понятных сигналов является оцифрованный звук. Размер сигнала зависит от длительности звука и от частоты, с которой делают выборки (от частоты дискретизации). Элементы-числа сигнала зависят от текущей амплитуды звука, измеряемой устройством выборки и хранения.

Как уже было сказано, один из самых простых способов сглаживания, это
(1)
где s — исходный сигнал, v — сглаженный сигнал.

Способ (1) основан на сглаживающем свойстве суммирования, ведь каждому ясно, что средняя величина, вычисляемая как сумма многих случайных чисел, с ростом количества суммируемых чисел становится всё менее и менее похожей на случайную величину 2, которая, попросту говоря, и есть шум 3.

Но на чём основан выбор коэффициентов в уравнении (1)? На том, что так вычисляется среднее? Вроде бы да, но… А если взять не три слагаемых, а шестнадцать? А тридцать два?.. Почему всё более отстоящие от центрального элемента s[i] отсчёты должны браться с одинаковым весом? Ведь может оказаться так, что связь между отсчётами будет постепенно ослабевать с ростом расстояния 4 между ними?

Если рассмотреть пример произношения слова «арбуз» десять раз подряд и попытаться отследить связь между отсчётами записанного сигнала, то можно обнаружить ослабление зависимости между всё более отстоящими друг от друга отсчётами. Естественно, что если рассмотреть «большие расстояния», то звуки будут повторяться за счёт повтора одного и того же слова и зависимость будет нарастать и снова спадать, и так далее. Но, как правило, «большие расстояния» при сглаживании не рассматривают, так как шумы проявляются в окрестности отдельных звуков, а не слов, фраз и предложений. Шум, действующий на уровне слов или даже фраз — это явно искусственный (звуковые эффекты) или экзотический естественный (эхо). Это — уже «неслучайный» шум, требующий отдельного исследования. Здесь рассматривается «чистый» шум, который, говоря простым языком, раздражающе шумит и нисколько не похож на какой-либо полезный сигнал.

На основании простых рассуждений становится очевидным, что количество слагаемых в (1) (порядок фильтра) должно зависеть от того, насколько сильно зависят друг от друга соседние отсчёты. Например, нет смысла брать фильтр тридцатого порядка, если наблюдается зависимость только лишь десяти отсчётов, следующих друг за другом. На самом деле даже не то, что «нет смысла», а — нельзя, так как если отсчёты практически не связаны, то начнётся чрезмерное сглаживание полезного сигнала («съедение» слогов). Но и фильтр третьего порядка здесь не будет оптимальным по степени использования информации о полезном сигнале, так как, как уже было сказано, наблюдается зависимость порядка десяти соседних отсчётов. Поэтому можно «попытать счастья» с помощью фильтра девятого порядка, естественно, увеличив нагрузку на процессор-вычислитель. Здесь уже требуется определить, скорее всего экспериментально, а стоит ли данная игра свеч?..

Как оценить насколько сильно связаны соседние отсчёты? Вычислить автокорреляционную функцию (АКФ). Желающим можно предложить провести эксперимент по записи разных слов, фраз, повторов фраз и последующему построению АКФ (благо, например, программа Matlab позволяет это сделать, особо не задумываясь над кодом и формулами).

Так как всё-таки выбрать коэффициенты фильтра в (1)?

В данном случае удобно рассмотреть реакцию фильтра на единичное воздействие, то есть на сигнал вида


Например, фильтр (1) даст следующий отклик (импульсную характеристику)

откуда мы можем сделать вывод, что после сглаживания длительность сигнала стала равна трём элементам. А если взять фильтр из пяти элементов?.. Правильно, длительность выходного сигнала будет равна пяти элементам. Насколько это полезно, определяется конкретной ситуацией (задачей).

Кстати, а долгожданный артефакт уже налицо! Импульсная характеристика (1) — это, по сути, прямоугольный импульс, нисколько не являющийся гладким!.. Странно, да? А если взять пятиточечный фильтр? Тогда на выходе получим более длинный прямоугольный импульс, но с меньшей амплитудой. Не очень хорошо выходит… Простейший тест говорит о непригодности простого усреднения для сглаживания.

Посмотрим на фильтр (1) с частотной стороны (с временной мы уже посмотрели).

Если сигнал звуковой, то он достаточно хорошо описывается набором гармонических сигналов 5 («синусоид») и степень ослабления конкретной синусоиды зависит от её частоты. Опять же, при грамотном выборе сглаживающего фильтра никакая из полезных синусоид не должна пропадать полностью, то есть амплитудно-частотная характеристика фильтра в рабочем диапазоне частот должна быть достаточно равномерной.

Пропустим через рассматриваемый фильтр один однотональный сигнал определённой частоты, естественно, не выходя за пределы теоремы отсчётов. Пусть шаг дискретизации по времени Td равен единице, то есть отсчёты идут с шагом одна секунда. Возьмём сигнал с частотой f = 1/(3Td) = 1/3 Гц, то есть


Ограничимся двумя периодами


Отклик фильтра (1) будет равен


Как ни странно, получили почти ноль… Получается, можно потерять некоторые составляющие полезного сигнала.

Проверим отклик на несколько более высокочастотный сигнал


Как видим, форму сигнала не потеряли. В чём же дело?..

Дело в том, что амплитудно-частотная характеристика фильтра (1) не является монотонной в рабочей полосе частот (в полосе от нуля до половины частоты дискретизации) и имеет один нуль на частоте, в три раза меньшей частоты дискретизации. Как это показать?

Попросту говоря, чтобы определить частотную характеристику фильтра, необходимо найти отношение спектра на выходе фильтра к спектру на входе.

Обозначим спектр сигнала s[i] на входе как S( f ), тогда спектр задержанного на один такт Td сигнала s[i-1] выразится через спектр исходного сигнала как
(2)
где j — мнимая единица.

Спектр опережённого сигнала s[i+1] выразится как
(3)

Что означает мнимая единица? И как можно обосновать (2) и (3)?
Если записать известные [1, 2] ряды для синуса, косинуса и экспоненты
(4)
то подобрав число j, такое, что j2 = –1, можно последний ряд выразить через два первых
(5)
что означает то, что любое комплексное число можно записать через экспоненту с мнимым показателем. Модуль числа (5) равен единице (корень квадратный из суммы квадратов мнимой и реальной частей), поэтому для записи любого комплексного числа в форме (5) его необходимо разделить и умножить на свой модуль
(6)

Из (5) и (6) следует, что если в показателе экспоненты можно выделить мнимую единицу, умноженную на некоторое действительное число, то это число является аргументом комплексного числа.

В данном случае рассматриваются сигналы, поэтому модулю комплексного числа соответствует амплитуда гармонического сигнала, а аргументу — фаза. Если, например, взять сигнал вида
(7)
то можно выделить амплитуду A и фазу Ф. Множитель — это также фаза, и в некоторых случаях её выносят за скобки. Например, при прохождении сигнала (7) через некоторый фильтр важно знать разность фаз сигналов на входе и выходе, которую вносит фильтр на заданной частоте f.

Если сигнал (7) задержать на величину t0, то получится тот же самый сигнал, но сдвинутый по фазе на постоянную величину
(8)
то есть при задержке произвольного сигнала все его частотные составляющие сдвигаются по фазе на величину, зависящую от текущей частоты и величины задержки. Этим можно объяснить формулы (2) и (3). Поэтому при анализе какого-либо алгоритма важна и фазо-частотная характеристика, которая показывает на какое время задерживает фильтр (алгоритм) каждую частотную составляющую входного сигнала. Низкие частоты и высокие в общем случае будут иметь разную задержку в фильтре.

Из (1), (2) и (3) следует, что частотная характеристика фильтра (передаточная функция) будет иметь вид
(9)

Так как спектр выходного сигнала линейно выражается через спектр входного, то при выводе (9) спектр входного сигнала успешно сокращается. Далее замечаем, что частотная характеристика фильтра (1) — действительная, то есть данный фильтр не вносит фазовых искажений 6. Этого мы достигли (скорее всего, неосознанно) за счёт симметричности формулы (1): каждый отсчёт на выходе фильтра равен сумме текущего и двух соседних отсчётов.

Физически такой алгоритм реализуем только при наличии запоминающих устройств, так как в нём используются опережающие отсчёты (для вычисления отсчёта s[i] требуется отсчёт s[i+1]). В настоящее время это не является большой проблемой и, как правило, используют симметричные алгоритмы. Если фазовые искажения окажутся полезными, то — пожалуйста, главное осознанно применять какой-либо алгоритм и смотреть на него с разных сторон: с частотной и временной.

Построить график зависимости (9) от частоты не составляет труда. Для упрощения вводят нормированную частоту f0  = f Td , полезный диапазон изменения которой [0…0,5]. Составляющие сигнала с частотами выше половины частоты дискретизации по теореме отсчётов должны отсутствовать (перед оцифровкой сигнал пропускают через соответствующие фильтры нижних частот). Частота дискретизации показывает количество выдаваемых цифровым устройством отсчётов в секунду. Если, например, один такт Td равен одной миллисекунде, то за одну секунду должна быть выдана тысяча отсчётов.

Анализируя (9) можно заметить, что на некотором промежутке коэффициент передачи меньше нуля, а амплитуда — это по определению положительная величина… Выход из ситуации — построить модуль передаточной функции, убрав знак минус в фазовую характеристику, которая, всё-таки, не является константой (нулём). Если взять число «минус единица», то его по формуле (5) можно представить как
(10)
то есть комплексным числом, имеющим модуль «единица» и фазу «180 градусов» («пи»).

Таким образом, трёхточечный симметричный алгоритм (1) для некоторых «высоких» частот вносит сдвиг по фазе на 180 градусов, то есть попросту инвертирует входной сигнал. Этот эффект можно заметить, анализируя рассмотренный выше отклик на нормированную частоту 2/5 Гц.


Рис. 1. Амплитудно-частотная и фазо-частотная характеристики трёхточечного симметричного алгоритма сглаживания (1)

Из рис. 1 сразу следует, что сигнал с частотой 1/3 будет данным алгоритмом подавлен, а сигналы, имеющие частоту выше 1/3 будут инвертированы. Таким образом, полезный рабочий диапазон частот можно смело сократить с [0…0,5] до [0…1/3]. Если нас не устраивает быстрое спадание коэффициента передачи, придётся определять другой алгоритм, имеющий более прямоугольную амплитудно-частотную характеристику и при этом — ещё неизвестно какую фазовую…

По сути, полученная немонотонная частотная характеристика — следствие прямоугольной формы импульсной характеристики …, 0, 0, …, 1/3, 1/3, 1/3, 0, 0, …. Поэтому импульсная характеристика — простой способ заметить грубые изъяны в алгоритмах. Частотная характеристика, несмотря на некоторую сложность её вычисления, удобна тем, что позволяет заметить и устранить более тонкие изъяны, чем мы и займёмся.

Если теперь записать алгоритм (1) в более общем виде
(11)
то, основываясь на знании частотной характеристики, можно попытаться подобрать коэффициенты так,
чтобы амплитудно-частотная характеристика стала монотонной в рабочем диапазоне частот (0…0,5). Для этого, как минимум, необходимо отсутствие нулей внутри рабочего диапазона.

Так как у нас нет оснований выделять запаздывающий отсчёт s[i–1] по отношению к опережающему s[i+1], то приравняем коэффициенты a1 и a3. После запишем коэффициент передачи
(12)

Попытаемся переместить первый нуль на частоту f0 = 0,5. Для этого должно выполняться равенство a2 = 2a1 , то есть вес у боковых отсчётов должен быть в два раза меньше веса центрального. Тогда более оптимальный алгоритм будет выглядеть так
(13)

Как в (13) выбрать единственный коэффициент a1?

Взглянем на алгоритм (13) с точки зрения импульсной переходной характеристики. Для этого найдём отклик на единичный скачок :
(14)

Как видим, чтобы сохранить выходную амплитуду в установившемся режиме, равную единице, требуется выбрать коэффициент a1=1/4. То есть сумма всех коэффициентов должна быть равна единице.

Наконец, для готового алгоритма
(16)
можно построить (рис. 2) частотные характеристики: амплитудную и фазовую.


Рис. 2. Амплитудно-частотная и фазо-частотная характеристики трёхточечного симметричного алгоритма сглаживания (16)

Анализ рис. 2 показывает, что фазовые искажения исчезли, а амплитудная характеристика стала монотонной в рабочей полосе частот [0…0,5]. В каком-то смысле мы выжали из трёхточечного фильтра «всё».

Теперь становится очевидно, что простое усреднение далеко не всегда является оптимальным, особенно когда усредняемых отсчётов много.

Изображения



Что касается изображений, то здесь в какой-то мере всё то же самое, что и для сигналов: амплитудные и фазовые искажения, импульсные характеристики, энергия сигнала, — основное отличие заключается в том, что используются матрицы вместо векторов. Также следует учесть, что для изображений нет координаты времени, а есть координата пространства, поэтому есть пространственные частоты дискретизации. Данное отличие скорее формальное, так как на математику алгоритмов оно не влияет вообще.

Рассмотрим теперь «самый простой» алгоритм сглаживания изображения по соседним точкам (рис. 3). Отсчёт v00 на выходе фильтра
(17)


Рис. 3. Схема сглаживания изображения по соседним точкам

В формуле (17) специально выделены три слагаемых A, B и C, так как четыре соответствующих внутренних слагаемых у B и C имеют свои расстояния от центрального отсчёта s00. Здесь естественно предположить, что максимальный вес будет у слагаемого A, затем в порядке убывания — у B и C.

Для изображений спектр и коэффициент передачи будут двумерными, то есть будут зависеть от двух частот: первая частота — по горизонтали, вторая — по вертикали (здесь всё условно, для определённости).

Фильтр (17) имеет следующий коэффициент передачи
(18)

Если взять, например, около тридцати дискретных частот и построить (рис. 4) контурный график модуля частотной характеристики (18), то можно увидеть искажения, аналогичные искажениям на рис. 1. Левому нижнему углу соответствуют самые низкие частоты. Наблюдается провал частотной характеристики на частотах, составляющих 1/3 от частоты дискретизации (частоты дискретизации в данном случае равны 64 по обеим координатам).


Рис. 4. Амплитудно-частотная характеристика девятиточечного симметричного алгоритма сглаживания (17)

Перетасовывая коэффициенты для отсчётов на рис. 3, можно получить следующий алгоритм сглаживания
(19)

Причём если единичное воздействие поместить в центре изображения, то отклик фильтра (19) будет иметь вид
(20)

По сути, (20) является импульсной характеристикой фильтра (это девять главных отсчётов, так как остальные равны нулю). Сумма всех отсчётов импульсной характеристики равна единице. Частотная характеристика фильтра (19) имеет вид, показанный на рис. 5.


Рис. 5. Амплитудно-частотная характеристика девятиточечного симметричного алгоритма сглаживания (19)

Опять мы видим (сравни рис. 4 и рис. 5) улучшение алгоритма обычного усреднения.

Резюме



При разработке алгоритмов обработки цифровых сигналов (сглаживания и не только) не следует доверять интуитивным алгоритмам вроде простого усреднения.

Более общим подходом является техника весового суммирования (рассматривались только линейные алгоритмы, когда отсчёты только лишь умножаются на константы, а результаты — складываются).

Весовое суммирование, когда более отдалённым от центрального элемента отсчётам ставятся меньшие веса, оправдано как статистически (естественная природа ослабления зависимости с ростом расстояния), так и функционально (возможно строго математически подобрать коэффициенты, обеспечив монотонность амплитудно-частотной характеристики).

Большую роль играют амплитудно-частотные характеристики фильтров, которые определяются коэффициентами весового суммирования. Они позволяют доказать, что заданный фильтр пропускает определённый диапазон частот и заграждает другой. Причём можно определить неравномерность в полосе пропускания, в полосе заграждения и так далее. Чем больше порядок фильтра, тем больше степеней свободы и тем лучше можно подобрать форму амплитудно-частотной характеристики.

Важную роль играют и фазо-частотные характеристики, которые, в основном, определяются степенью симметричности алгоритма. Алгоритмы реального времени, когда в момент прихода первого отсчёта появляется отсчёт на выходе фильтра, не могут обеспечить равномерную фазовую характеристику (константу, чаще всего «нуль»), так как они не могут быть симметричными. Такие алгоритмы вносят задержку во входной сигнал: например, сглаженное изображение может в целом сместиться по обеим координатам. Если изображение сложное (то есть имеет много частотных составляющих), то фазовые искажения его могут заметно исказить, а не просто сместить по координатам, что приближённо справедливо для простых изображений.

Также следует обратить внимание на импульсную характеристику фильтра, соответствующего некоторому алгоритму. Это позволяет простым способом взглянуть на работу фильтра напрямую, то есть в масштабе времени для сигнала или в масштабе пространственных координат — для изображения.

И, наконец, необходим энергетический анализ алгоритма, позволяющий определить потери сигнала на выходе соответствующего фильтра. Данный анализ удобно провести в рамках импульсной переходной характеристики.

Сноски


1. Всегда с потерями, так как частота работы и разрядность цифровых устройств ограничены
2. Стабилизирующее свойство средней величины справедливо при неизменности характеристик генератора случайных чисел, то есть в идеале генератор должен выдавать случайную величину с заданным законом распределения
3. Если, конечно, наблюдаемый шум — это не зашифрованный полезный сигнал, который становится случайным для тех, кто не имеет ключа…
4. Для звукового сигнала расстояние между отсчётами — это некоторый промежуток времени
5. Можно считать, что любой сигнал можно представить в виде суммы синусоид кратных частот, но звуковой по природе обязан «хорошо» раскладываться в ряд по частотам
6. Упрощённо можно сказать и так, подробности смотри ниже по тексту

Источники



1. Тригонометрические функции [Электронный ресурс], режим доступа: свободный, ru.wikipedia.org/wiki/%D2%F0%E8%E3%EE%ED%EE%EC%E5%F2%F0%E8%F7%E5%F1%EA%E8%E5_%F4%F3%ED%EA%F6%E8%E8
2. Экспонента [Электронный ресурс], режим доступа: свободный, ru.wikipedia.org/wiki/%DD%EA%F1%EF%EE%ED%E5%ED%F2%E0
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 31

    +5
    А мне в первую очередь пришло в голову что-то вроде k/(T*s + 1), а не обычное усреднение. Кое-какие знания из института все же пригождаются :-)
      +3
      И кто заминусовал?
      Человек ведь не совсем ошибся :)
      Апериодическое звено записано. Вполне себе усреднение.
      Только вот это для непрерывных (аналоговых) сигналов (s-преобразование), в цифровой форме оперируют z-преобразованием.
        +1
        Да, я не очень помню, как для z-передаточные функции выглядят, что-то вроде 1/(z^-1+1) по-моему.
        Для применения к цифровому сигналу я бы просто заменил конечно-разностной схемой и получил бы в итоге выражение для усредненного значения в текущей временной точке.
        0
        Обычное усреднение, скорее всего, будет лучше: оно, во-первых, FIR (любой всплеск быстро и достоверно гасится), во-вторых частотная характеристика обычно удобнее, если считать, что шум в n раз меньше частоты дискретизации.
          0
          Ну, вот, и Вы туда же.
          Какой шум-то? Почему шум?
          Если Вы о высокочастотной информации, которую можно подавить на 20-40 дБ усредением (НЧ-фильтром), то почему она вдруг является шумом? Окружающие шумы в аудио записях, например, по большей части низкочастотные…
          любой всплеск быстро и достоверно гасится

          Вы о том, что импульсный отклик конечной длины?
          частотная характеристика обычно удобнее, если считать, что шум в n раз меньше частоты дискретизаци

          Вы не могли бы перевести на понятный язык, что значит «шум меньше частоты»?
          Это что-то в духе килограммы меньше децибелов?
            0
            Потому что вы твердите о том, что термина нет, хотя он есть и весьма узкий/однозначный. Сглаживание применяется для избавления от высокочастотного шума там, где сигнал достаточно медленный (например, en.wikipedia.org/wiki/File:NNSmoother.svg). Применений тьма.
            Если мы говорим о сглаживании, вид шума сразу понятен — он по частоте сильно выше сигнала.
            Вы не могли бы перевести на понятный язык, что значит «шум меньше частоты»?
            Это что-то в духе килограммы меньше децибелов?

            Вы не могли бы оставить этот дартаньянский тон?
              0
              сигнал достаточно медленный

              Мда…
              А быстрый — он насколько быстрее медленного должен быть, чтобы высокочастотный шум надо было убирать?
              Модемный сигнал на 2.4кбит/с — медленный? Может, уберем «высокочастотный шум» и попробуем декодировать?
              Употребляйте термины корректно, пожалуйста, а то я действительно не вполне понимаю, о чем речь — только смутно догадываюсь.
              Честно, я не ёрничаю!

              Вы не могли бы перевести на понятный язык, что значит «шум меньше частоты»?
              Это что-то в духе килограммы меньше децибелов?

              Вы не могли бы оставить этот дартаньянский тон?

              Не очень понял, что значит «дартаньянский тон», но раз на вопрос про «шум в разы меньше частоты» ответить нечего, то в общем-то можно не продолжать.
                0
                Не очень понял, что значит «дартаньянский тон»

                Все вы поняли. Нахамили и делаете вид, что не видите этого.
                  0
                  Вы на вопросы ответите?
                  Или продолжите путать «теплое с мягким»?
                    0
                    Хамить и не собирался, кстати, извините :)
                    Но вот пытаться меня «осекать», применяя столь странную терминологию и настолько некорректно построенные фразы, что смысл их теряется в облаках, пожалуйста, больше не надо.
            0
            Ну, тогда это не для Вас.
              0
              Хорошо, что пришло.
              0
              Но на чём основан выбор коэффициентов в уравнении (1)

              А где там коэффициенты?
                +1
                1/3, нет? :)
                В общем случае 1/N.
                  +1
                  Всё-таки знания линейной алгебры первого курса ВУЗа здесь необходимы. Да, 1/3. В статье есть указание на 1/3.
                  +3
                  Странная терминология в статье. Первый раз вижу, чтобы инженер(?) фильтрацию «сглаживанием» называл.
                  Да и что такое «шум» в понимании автора — понять сложно.
                  Может, поясните, какой «шум» Вы пытаетесь убрать усреднением по соседним отсчетам?
                    0
                    Терминология нормальная; не всякая фильтрация — сглаживание
                      +2
                      Нет такого термина — сглаживание.
                      Интерполяция, децимация, фильтрация, аппроксимация — есть, сглаживание — нет.
                      Или с Вас пруф-линк на нормальный источник, и я извинюсь :)
                      0
                      1. Многие называют сглаживанием… Я специально не стал усложнять фильтрацией.
                      Цитата из Вики:
                      Сгла́живание — технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских, или объёмных изображений. Сглаживание было придумано в 1972 в Массачусетском технологическом институте в Architecture Machine Group, которая позже стала основной частью Media Lab.

                      2. Белый шум (но опять я не стал вводить такого термина...).

                        0
                        1. Ну, даже приведенная Вами цитата описывает другое «сглаживание» :)
                        Это ближе к межкадровой фильтрации.
                        2. Ну, на звуковом сигнале Вы его не уберете усреднением, там все-таки получается НЧ-фильтр, характеристика которого зависит от длины.
                        Для звука усреднение применяется, как я отписался, для оценки его характеристик, например, мощности, среднего уровня, пик-фактора и т.п.
                        А вот белый шум обычно убирают Винеровской фильтрацией. Причем, желательно с адаптивными коэффициентами.
                        На видеоизображении — да, там просто принято считать, что высокочастотные сигналы — шумовые. Хотя для некоторых видов изображения это и не вполне корректно (песок, листва и т.п.), в целом работает, особенно, если не увлекаться.
                        0
                        Согласен, немного переделаю. Сглаживание — это фильтрация скачков (резких перепадов) и шум здесь специфический. Это была первая итерация, рецензия всегда полезна.
                        Термин «сглаживание», всё-таки, есть.
                        0
                        В Вашей статье не хватает ссылок и сравнения с теми статьями, что уже опубликованы на Хабре. Не так давно была фильтрация Калмана. Еще раньше фильтрация на основе сингулярности матрицы.
                          0
                          Еще раз отдельно хотел бы сказать автору.
                          «Сглаживание» сигнала — термин в специализированной статье некорректный.
                          В лучшем случае в специальной литературе можно отыскать «сглаживающий фильтр», причем его задачей обычно является не убрать некий «шум», а получить усредненные характеристики сигнала, например, среднюю мощность и амплитуду сигнала на выбранном интервале времени.

                          Подавление шума — задача комплексная, в первую очередь решается, исходя, собственно, из того, с чем мы боремся. Для нестационарных шумов, к слову, вообще сложно подобрать эффективный метод подавления.
                          Если мы говорим о простых случаях, то для устранения импульсных шумов, например, часто применяются медианные фильтры (по принципу дешево и сердито).
                          Для подавления помехи по питанию в оцифрованном звуковом сигнале — узкополосные БИХ-фильтры (для России, например, с подавлением на 50, 100 и 150Гц).
                          Если говорить о звуке (воспринимаемом человеком), то высокочастотные сигналы, которые Вы называете шумом, чаще всего таковым не являются и несут информацию. В таких сигналах шум в большинстве случаев низкочастотный. Попробуйте для разнообразия отфильтровать один и тот же звуковой сигнал НЧ и ВЧ фильтрами (с частотой среза 0.5) и послушать результат.
                          В оцифрованном видео сигнале, напротив, шумы могут быть высокочастотными, вызванными неравномерностью характеристик светочувствительных элементов. Вот их как раз относительно легко можно убрать усреднением (сглаживанием) по соседним сэмплам, но в общем-то этот метод выбирают не из-за эффективности, а из-за вычислительной «дешевизны».

                          Если целью статьи было объяснить на пальцах человеку «не в теме», как можно обрабатывать сигналы, то, возможно, Вы ее добились. Но неточностей и объяснений «от себя» и «на пальцах» все-таки слишком много.
                            0
                            Да, цель — объяснить на пальцах, так как прочитав заметку habrahabr.ru/post/183986/ я увидел простой алгоритм сглаживания изображения по девяти точкам и вспомнил, что здесь есть подводные камни.
                            Я понимаю, что есть строгие определения и так далее; эта статья — для программиста, разрабатывающего/использующего какие-либо алгоритмы, и не всегда имеющего представления о частотных, импульсных характеристиках, об энергии сигнала, о корреляции.
                            Специалистам в области ЦОС её читать особо не имеет смысла, хотя для обучения стилю преподавания, объяснения — думаю, можно.
                            Я здесь специально ушёл от z-преобразования, от интегралов.
                              0
                              Ну, тогда стоило вообще отказаться от введения в математику и сразу переходить к практике :)
                              Т.е. рассказывать в духе: надо убрать неравномерность сигнала (усреднить) — делаем так. И без всяких спектров и пр.
                              В любом случае такие статьи полезны, потому что поддерживают интерес к области.
                              Далеко не многие вообще задумываются, что они в действительности делают, применяя различные преобразования к сигналам.
                                0
                                Без спектров никак, так как это тонкий инструмент, позволяющий доказать «правильность» какого-либо алгоритма (подробности — в переделанной статье).
                                Как раз-таки, наоборот, я хотел акцентировать внимание на то, что на алгоритмы полезно смотреть с разных точек зрения и соотносить это со своей целью.
                                Способ построения частотной характеристики для любого линейного алгоритма дан, импульсной — думаю, он очевиден, способ расчёта энергии — дан, и всё это без рядов Фурье, интегралов, свёрток, z-образов, апериодических звеньев, а только лишь на основании знания комплексных чисел и рядов Тэйлора.
                            0
                            Кто это достал из песочницы? закопайте обратно!

                            Зачем на Хабр постить свои лабараторки и рефераты?
                            Хотите рассказать что то новое о Сигнал Процессинге — пишите в соответствующий журнал… а еще лучше в свой твиттер, чтоб никто не видел.

                              0
                              Это не лабораторная и не реферат, хотя никто не запрещает сделать на этой основе какую-нибудь лабораторную (-ые).
                                0
                                Если бы новое, можно и сюда.
                                  0
                                  Как я понял, хабрахабр — это научно-популярный ресурс, одна из целей которого — разжёвывание чего-либо.
                                  Нового я бы здесь не стал выкладывать (для нового есть патентные ведомства, наконец, читаемые журналы).
                                0
                                Исправил ошибку, связанную с сохранением уровня сигнала на выходе сглаживающего фильтра: должна быть равна единице сумма коэффициентов фильтра, а не сумма их квадратов… Никто из комментировавших не поправил… Какое тут новое, понять бы старое!

                                Only users with full accounts can post comments. Log in, please.