Опять про волновой фронт...
May. 28th, 2013 11:27 pmСегодня у меня уже пошли первые успехи: действительно, вроде бы незамеченная статья Жао оказалась вполне серьезной. Я взял простенький тестовый "волновой фронт" (легко раскладывающийся на полиномы до N-й степени) и его градиент (т.к. "фронт" вычислялся аналитически, с градиентом проблем не было). И на первых двух порядках получил вполне приличные результаты: коэффициенты полиномов Цернике, полученные из разложения градиентов к волновому фронту по "полиномам Жао" один-в-один соответствовали коэффициентам разложения самого волнового фронта по полиномам Цернике.
Правда, на третьем и высших порядках всплыли "косяки": то коэффициент "чуть-чуть" отличался (в результате чего вылезала систематическая ошибка), то вообще нужного коэффициента не было, а вылезал посторонний. Чует мое сердце, это все из-за кривой нормировки (т.к. "полиномы Жао" являются непрерывными функциями, для перехода к дискретным значениям пришлось вводить еще дополнительный нормирующий множитель). Ну и я еще не до конца проработал преобразование коэффициентов высших порядков "полиномов Жао" к коэффициентам Цернике.
Завтра, надеюсь, смогу добить (а то уже второй день спокойно поработать не дают, все отвлекают).
P.S. А еще надо бы почитать про ортогональные полиномы на полусфере "с дыркой": очень уж хочется в АСУ БТА перейти от СКН к более однозначным коэффициентам (у СКН проблема в том, что они не являются линейно независимыми, хоть и имеют физический смысл). Ну и интересно подумать над методикой поверки зеркала без привлечения такого ненадежного источника света, как звезды (из-за плохого расположения БТА волновой фронт от звезд никогда не бывает идеальным, поэтому точность восстановления поверхности зеркала по волновому фронту от звезды даже в хорошую погоду будет низкой).
Правда, на третьем и высших порядках всплыли "косяки": то коэффициент "чуть-чуть" отличался (в результате чего вылезала систематическая ошибка), то вообще нужного коэффициента не было, а вылезал посторонний. Чует мое сердце, это все из-за кривой нормировки (т.к. "полиномы Жао" являются непрерывными функциями, для перехода к дискретным значениям пришлось вводить еще дополнительный нормирующий множитель). Ну и я еще не до конца проработал преобразование коэффициентов высших порядков "полиномов Жао" к коэффициентам Цернике.
Завтра, надеюсь, смогу добить (а то уже второй день спокойно поработать не дают, все отвлекают).
P.S. А еще надо бы почитать про ортогональные полиномы на полусфере "с дыркой": очень уж хочется в АСУ БТА перейти от СКН к более однозначным коэффициентам (у СКН проблема в том, что они не являются линейно независимыми, хоть и имеют физический смысл). Ну и интересно подумать над методикой поверки зеркала без привлечения такого ненадежного источника света, как звезды (из-за плохого расположения БТА волновой фронт от звезд никогда не бывает идеальным, поэтому точность восстановления поверхности зеркала по волновому фронту от звезды даже в хорошую погоду будет низкой).
Вычисление ортогональных на кольце полиномов
Date: 2017-01-28 11:33 am (UTC)ZernikeCalc
Date: 2017-01-28 11:37 am (UTC)https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/33330/versions/2/download/zip/ZernikeCalc.zip
Re: ZernikeCalc
Date: 2017-01-28 01:09 pm (UTC)no subject
Date: 2017-01-28 03:16 pm (UTC)код на с++ был написан, но много пота пришлось пролить чтобы заработало. В открытый доступ код не уходил.
И остались некоторые проблемы.
Удачи!
+ в этом приложении на Matlab, как я помню, были реализованы все сложные зрачки по В.Махаджану.