Main menu

Численное решение уравнений в свертках и алгоритмы деконволюции

Искажение сигналов и размытие изображений

В физике, астрономии, оптике и цифровой обработке сигналов мы постоянно сталкиваемся с тем, что измерительная аппаратура несовершенна. Любой прибор (будь то телескоп, микроскоп или сейсмограф) неизбежно искажает истинный физический сигнал. Математически процесс искажения линейной стационарной системой (LTI-системой) описывается операцией свертки: истинный сигнал «сворачивается» с так называемой аппаратной функцией прибора (функцией рассеяния точки, PSF). В результате мы получаем размытую, сглаженную картину реальности.

Обратная математическая задача — восстановить истинный, первоначальный сигнал по искаженному результату измерений и известной аппаратной функции — называется задачей деконволюции (обратной свертки). С математической точки зрения, деконволюция сводится к решению интегрального уравнения Фредгольма первого рода со специфическим ядром, зависящим от разности аргументов. Эта задача является классическим примером некорректно поставленной проблемы: малейший шум в измерительных данных (а он есть всегда) при попытке прямой деконволюции приводит к катастрофическому разрушению результата, топя истинный сигнал в высокочастотных осцилляциях.

Деление в частотной области и фильтр Винера

Благодаря теореме о свертке, сложная интегральная операция свертки в физическом времени (или пространстве) превращается в простое алгебраическое умножение в частотной области (спектральном пространстве). Соответственно, кажется, что деконволюцию можно выполнить элементарно: применить Быстрое Преобразование Фурье (БПФ) к измеренному сигналу и аппаратной функции, поделить первый спектр на второй, а затем применить обратное БПФ. Этот метод называется обратной фильтрацией.

Однако на практике метод прямого деления спектров абсолютно не работает. Высокие частоты аппаратной функции обычно стремятся к нулю (прибор срезает резкие скачки). При делении зашумленного спектра на числа, близкие к нулю, мы получаем гигантские значения (умножение шума на бесконечность). Для стабилизации алгоритма Норберт Винер разработал оптимальный стохастический фильтр (фильтр Винера). В спектр знаменателя математически добавляется специальное слагаемое, пропорциональное отношению мощности шума к мощности полезного сигнала. Этот регуляризующий член не дает знаменателю обратиться в ноль, подавляя частоты, где доминирует шум, и пропуская частоты, где доминирует полезный сигнал. Фильтр Винера до сих пор является золотым стандартом для восстановления расфокусированных цифровых фотографий и очистки старых аудиозаписей.

Итерационная деконволюция Ричардсона-Люси

В астрономии и медицинской микроскопии, где измеряются интенсивности света (которые по физическому смыслу не могут быть отрицательными), фильтр Винера дает сбои, так как часто порождает отрицательные «волны» (артефакты звона) вокруг ярких объектов. В 1970-х годах Уильям Ричардсон и Леон Люси независимо друг от друга вывели мощный итерационный алгоритм деконволюции, основанный на теореме Байеса и максимизации функции правдоподобия в предположении пуассоновской статистики фотонного шума.

Алгоритм Ричардсона-Люси работает итеративно: на каждом шаге он берет текущее приближение истинного изображения, сворачивает его с аппаратной функцией (симулируя искажение), сравнивает полученный результат с реальной размытой фотографией путем деления, а затем использует эту разность для коррекции приближения на следующем шаге. Гениальность метода состоит в том, что он математически гарантирует неотрицательность пикселей на любой итерации и отлично сохраняет полную энергию сигнала. Именно алгоритм Ричардсона-Люси стал спасением для космического телескопа «Хаббл» в 1990 году, когда выяснилось, что его главное зеркало отполировано с ошибкой (имеет сферическую аберрацию): численные методы деконволюции позволили ученым получать резкие снимки галактик еще до прибытия ремонтной экспедиции с корректирующей оптикой.

Подробнее

Методы фиктивных областей и погруженных границ (Immersed Boundary Method)

Проклятие подвижных сеток в гидродинамике

Классическая вычислительная гидродинамика (CFD) требует создания согласованной (конформной) сетки. Границы сетки должны строго совпадать с твердыми стенками обтекаемого объекта. Если мы рассчитываем течение воздуха вокруг неподвижного крыла самолета, создание такой сетки — сложная, но разовая задача. Однако что делать, если геометрия задачи непрерывно меняется? Как смоделировать поток крови через бьющийся сердечный клапан, падение тысяч камней в воду, вращение турбины или полет машущего крыла насекомого?

Если использовать классический метод конечных объемов, нам придется на каждом крошечном шаге по времени заново перестраивать всю вычислительную сетку (ремешинг), чтобы она подстраивалась под новые границы объекта. Перестроение объемной 3D-сетки — это невероятно медленная, тяжелая алгоритмическая задача, которая съедает до 90% всего процессорного времени, а сильные деформации ячеек быстро разрушают точность вычислений. Для решения этой фундаментальной проблемы механики сплошных сред был разработан радикальный подход — отказ от согласования сеток. Этот подход известен как Метод фиктивных областей (Fictitious Domain Method) и его знаменитая вариация — Метод погруженных границ (Immersed Boundary Method, IBM).

Идея метода погруженных границ Чарльза Пескина

Метод погруженных границ был изобретен в 1970-х годах выдающимся математиком Чарльзом Пескиным специально для моделирования потока крови в сердце. Гениальность идеи Пескина заключается в использовании двух абсолютно разных и независимых сеток, которые наложены друг на друга.

Первая сетка — эйлерова. Она представляет собой простую, неподвижную, равномерную и строгую прямоугольную (картезианскую) сетку, натянутую на весь объем пространства. В ней решаются уравнения течения жидкости (Навье-Стокса). Она никогда не меняется, что позволяет использовать сверхбыстрые решатели на базе БПФ. Вторая сетка — лагранжева. Это эластичная, подвижная сетка, состоящая только из одномерных кривых или двумерных поверхностей, которая описывает само движущееся тело (например, створку клапана). Эта сетка «плавает» сквозь неподвижную жидкостную сетку, совершенно не обращая внимания на ее узлы.

Взаимодействие через дельта-функции Дирака

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

Поверхностная лагранжева сетка (тело) вычисляет упругие силы, возникающие при ее деформации. Затем эти поверхностные силы с помощью специальной сглаженной дельта-функции «размазываются» (интерполируются) на ближайшие узлы неподвижной жидкостной сетки, превращаясь в объемные источники силы в уравнениях Навье-Стокса. Жидкость, получив этот силовой толчок, меняет свое поле скоростей. Затем жидкость диктует свою новую скорость точкам мембраны, заставляя их сместиться на новый шаг по времени. Этот изящный алгоритм взаимодействия (Fluid-Structure Interaction, FSI) исключает необходимость перестроения сеток. Сегодня методы погруженных границ являются мощнейшим инструментом для моделирования гемодинамики, движения клеточных мембран, создания цифровых двойников кровеносной системы человека и расчетов сложной многофазной промышленной химии.

Подробнее

Метод сплайн-коллокации: гладкие решения краевых задач без интегрирования

Альтернатива Галеркину: сила точечного совпадения

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

Да, этот подход называется проекционным методом коллокации. В отличие от Галеркина, требующего равенства нулю интеграла невязки, метод коллокации невероятно прямолинеен: мы берем нашу искомую аппроксимирующую функцию, подставляем ее в дифференциальное уравнение и жестко требуем, чтобы это уравнение выполнялось строго и точно (с нулевой ошибкой), но не везде, а лишь в заранее выбранном конечном наборе дискретных точек. Эти точки называются точками коллокации (узлами сшивки). Решение получается быстрым и изящным, так как никаких интегралов брать не нужно.

Базис B-сплайнов: локальность и высокая гладкость

Теоретически в качестве пробной функции можно взять один длинный глобальный полином (многочлен). Но, как мы помним из феномена Рунге, глобальные многочлены высоких степеней сильно осциллируют и ведут себя нестабильно. Идеальным базисом для метода коллокации оказались B-сплайны (базисные сплайны), разработанные Исааком Шёнбергом и Карлом де Бором.

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

Оптимальные узлы: корни полиномов Чебышева и Гаусса

Самым критическим моментом в методе сплайн-коллокации является выбор расположения самих точек коллокации. Если расставить эти точки равномерно, метод может потерять устойчивость или сходиться очень медленно. Математический анализ, проведенный Карлом де Бором и Ричардом Сварцем в 1973 году, доказал потрясающую вещь: точность метода кардинально возрастает (явление суперсходимости), если в качестве точек коллокации внутри каждого сеточного интервала использовать корни ортогональных полиномов (узлы Гаусса-Лежандра или Чебышева).

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

Подробнее

Соц. сети