| ||
Функции | |
void | BesselExe (TOptics InOptics, TOptics OutOptics, TModes Modes, unsigned short Param) |
ДОЭ обеспечивающий построение мод бесселевого пучка. | |
void | NullBessel1D (TComplex1D out, TModes Modes, unsigned short Param) |
void | BesselNonParaxialFresnelTransformExe (TOptics InOptics, TOptics OutOptics, TModes Modes, unsigned short Param, double lamda, double z) |
Непараксиальный бесселевый пучок прошедший расстояние z. | |
void | BesselParaxialFresnelTransformExe (TOptics InOptics, TOptics OutOptics, TModes Modes, unsigned short Param, double lamda, double z) |
Параксиальный бесселевый пучок прошедший расстояние z. | |
void | BesselNonParaxialFresnelImagingExe (TOptics InOptics, TOptics OutOptics, TModes Modes, unsigned short Param, double lamda, double a, double z) |
Идеальный бесселевый пучок, прошедший через линзу. | |
void | FastKirhgof2Exe (TOptics InOptics, TOptics OutOptics, int ExpCount, bool RadialDevelopment, double lamda, double z) |
Распространение светового поля на любые расстояния. | |
void | Kirhgof2Exe (TOptics InOptics, TOptics OutOptics, int ExpCount, double lamda, double z) |
Распространение светового поля на любые расстояния. | |
void | FastKirhgof2UnilateralExe (TOptics InOptics, TOptics OutOptics, int ExpCount, bool RadialDevelopment, double lamda, double z, int OutX, int OutY) |
Распространение светового поля на любые расстояния. | |
void | ThinLensExe (TOptics InOptics, TOptics OutOptics, double lamda, double f) |
Преобразование тонкой линзы. | |
void | ThickLensExe (TOptics InOptics, TOptics OutOptics, double lambda, double n, double delta, double R1, double R2) |
Преобразование толстой линзы. | |
double | SKO (TOptics TestOptics, TOptics StandardOptics) |
Получение среднеквадратичного отклонения (СКО). | |
void | FastFourier (TOptics InOptics, TOptics OutOptics, int zeros, double lamda, double f) |
Оптическое преобразование Фурье через быстрое дискретное. | |
void | Fourier (TOptics InOptics, TOptics OutOptics, double lamda, double f) |
Оптическое преобразование Фурье через быстрое дискретное. | |
void | fftFrenel (TOptics InOptics, TOptics OutOptics, int zeros, double lamda, double z) |
Оптическое преобразование Френеля через БПФ. | |
void | Frenel (TOptics InOptics, TOptics OutOptics, double lamda, double z) |
Оптическое преобразование Френеля в интегральном исполнении. | |
void | FrenelUnilateral (TOptics InOptics, TOptics OutOptics, double lamda, double z, int OutX, int OutY) |
Оптическое преобразование Френеля в интегральном исполнении. | |
void | hankelFrenel2D (TComplex1D InOptics, TOptics OutOptics, double lamda, double z, int m) |
Оптическое преобразование Френеля через Ханкеля для однмодового 1D распределения. | |
void | hankelFrenel1D (TComplex1D InOptics, TComplex1D OutOptics, double lamda, double z, int m) |
Оптическое преобразование Френеля через Ханкеля для однмодового 1D распределения. | |
void | hankelFourier2D (TComplex1D InOptics, TOptics OutOptics, double lamda, double f, int m) |
Оптическое преобразование Фурье через Ханкеля для однмодового 1D распределения. | |
void | Diafragma (TOptics InOptics, TOptics OutOptics, double DiafragmaX, double DiafragmaY) |
Оптическое преобразование Диафрагмы. | |
void | FastDiafragma (TOptics InOptics, TOptics OutOptics, double DiafragmaX, double DiafragmaY) |
Ускоренное оптическое преобразование Диафрагмы. | |
double | Energy (TOptics Optics) |
Получение энергии сосредоточеной в оптическом поле. | |
void | hankelFourier1D (TComplex1D InOptics, TComplex1D OutOptics, double lamda, double f, int m) |
Преобразование Ханкеля и производные. |
Здесь содержатся базовые преобразования оптических изображений TOptics.
ДОЭ обеспечивающий построение мод бесселевого пучка.
Дифракционнооптический элемент, т.е. пучок на нулевом расстоянии:
где - волновое число, - длинна волны светового поля. - параметры мод.
InOptics | TOptics [in] - комплексное поле на входе системы (умножение). | |
OutOptics | TOptics [out] - результирующее комплексное поле после ДОЭ. | |
Modes | TModes [in] - параметры мод, для формирования определенного вида пучка. | |
Param | - параметры пучка. Пример : Param = NORMAL_BESSEL=0; Param = PHASE_BESSEL=1; |
void BesselNonParaxialFresnelImagingExe | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
TModes | Modes, | |||
unsigned short | Param, | |||
double | lamda, | |||
double | a, | |||
double | z | |||
) |
Идеальный бесселевый пучок, прошедший через линзу.
схема изображена на рисунке. Вычислен по аналитическому решению непараксиального бесселевого пучка через сферическую линзу. Только к сожалению оно получено для бесселя нулевого порядка:
где - волновое число, - длинна волны светового поля. - параметры мод.
InOptics | TOptics [in] - комплексное поле на входе системы (умножение). | |
OutOptics | TOptics [out] - результирующее комплексное поле после ДОЭ. | |
Modes | TModes [in] - параметры мод, для формирования определенного вида пучка. | |
Param | - параметры пучка. Пример : Param = NORMAL_BESSEL=0; Param = PHASE_BESSEL=1; | |
lamda | - длинна волны лазера в нм [ ]. | |
a | - расстояние от входного распределения до линзы в мм. | |
z | - расстояние от входного до выходного распределения в мм. |
void BesselNonParaxialFresnelTransformExe | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
TModes | Modes, | |||
unsigned short | Param, | |||
double | lamda, | |||
double | z | |||
) |
Непараксиальный бесселевый пучок прошедший расстояние z.
после формирующего ДОЭ вычислен по аналитическому решению идеального непараксиального бесселевого пучка:
где - волновое число, - длинна волны светового поля. - параметры мод.
InOptics | TOptics [in] - комплексное поле на входе системы (умножение). | |
OutOptics | TOptics [out] - результирующее комплексное поле после ДОЭ. | |
Modes | TModes [in] - параметры мод, для формирования определенного вида пучка. | |
Param | - параметры пучка. Пример : Param = NORMAL_BESSEL=0; Param = PHASE_BESSEL=1; | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. |
void BesselParaxialFresnelTransformExe | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
TModes | Modes, | |||
unsigned short | Param, | |||
double | lamda, | |||
double | z | |||
) |
Параксиальный бесселевый пучок прошедший расстояние z.
после формирующего ДОЭ вычислен по аналитическому решению параксиального бесселевого пучка цилендрической волны:
где - волновое число, - длинна волны светового поля. - параметры мод.
InOptics | TOptics [in] - комплексное поле на входе системы (умножение). | |
OutOptics | TOptics [out] - результирующее комплексное поле после ДОЭ. | |
Modes | TModes [in] - параметры мод, для формирования определенного вида пучка. | |
Param | - параметры пучка. Пример : Param = NORMAL_BESSEL=0; Param = PHASE_BESSEL=1; | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. |
Оптическое преобразование Диафрагмы.
Необходима для усечения входного пучка. Сама диафрагма находится в центре экрана, следовательно усекаться будут края светового поля.
InOptics | TOptics [in] - комплексное поле на входе системы. | |
OutOptics | TOptics [out] - результирующее комплексное поле. | |
DiafragmaX | - ширина диафрагмы в мм. | |
DiafragmaY | - высота диафрагмы в мм. |
Ускоренное оптическое преобразование Диафрагмы.
Необходима для усечения входного пучка. Сама диафрагма находится в центре экрана, следовательно усекаться будут края светового поля. Ускорение достигается за счет исключительного обнуления амплитуды.
InOptics | TOptics [in] - комплексное поле на входе системы. | |
OutOptics | TOptics [out] - результирующее комплексное поле. | |
DiafragmaX | - ширина диафрагмы в мм. | |
DiafragmaY | - высота диафрагмы в мм. |
Оптическое преобразование Фурье через быстрое дискретное.
для расчета распространения светового поля на бесконечном расстоянии после линзы с фокусом f
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
zeros | - дополнительное наполнение матрицы нулями для экстраполяции выходных данных. Кратно 2-м, т.е. 2,4,6,8... | |
lamda | - длинна волны лазера в нм [ ]. | |
f | - это фокусное расстояние линзы f. |
void FastKirhgof2Exe | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
int | ExpCount, | |||
bool | RadialDevelopment, | |||
double | lamda, | |||
double | z | |||
) |
Распространение светового поля на любые расстояния.
Быстрый алгоритм интегрального преобразования Релея-Зомерфельда первого рода,, ускоренный при помощи табуляции (память-скорость) используется в непараксиальных областях распространения: Когда расстояния распространения много меньше апертуры пучка. Преобразования Релея-Зомерфельда первого рода (в литературе часто называют преобразованием Кирхгофа):
где - волновое число, - длинна волны светового поля. Данный алгоритм имеет ограничения "входные и выходные поля должны быть одинакого размера" как по точкам дискретизации так по физическим размерам
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
ExpCount | - число внутриэкспоненциальных разбиений используется для увеличения точности в соответствии с алгоритмом Г. | |
RadialDevelopment | - дополнительное ускорение алгоритма. радиальной разверткой пучка (до 8 раз быстрее). | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. |
void FastKirhgof2UnilateralExe | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
int | ExpCount, | |||
bool | RadialDevelopment, | |||
double | lamda, | |||
double | z, | |||
int | OutX, | |||
int | OutY | |||
) |
Распространение светового поля на любые расстояния.
Повторяет алгоритм FastKirhgof2Exe , однако может использоваться для отысканя конкретных значений оптического поля, что может давольно сильно сократить время выполнения задачи.
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
ExpCount | - число внутриэкспоненциальных разбиений используется для увеличения точности в соответствии с алгоритмом Г. | |
RadialDevelopment | - дополнительное ускорение алгоритма. радиальной разверткой пучка (до 8 раз быстрее). | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. | |
OutX | - горизонтальная координата точки вычисляемого изображения. | |
OutY | - вертикальная координата точки вычисляемого изображения. |
Оптическое преобразование Френеля через БПФ.
т.е. через Быстрое преобразование Фурье (БПФ). Разработанна для расчета распространения светового поля на расстояние z, согласно ограничениям в Frenel . Как приемущество - быстрота выполнения, недостаток - неопределенность масштабирования выходного поля после экстраполяции. Формула имеет вид:
где - волновое число, - длинна волны светового поля. - БПФ.
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
zeros | - дополнительное наполнение матрицы нулями для экстраполяции выходных данных. Кратно 2-м, т.е. 2,4,6,8... | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. |
Оптическое преобразование Фурье через быстрое дискретное.
для расчета распространения светового поля на бесконечном расстоянии после линзы с фокусом f
Интеграл Фурье и имеет вид:
где - волновое число, - длинна волны светового поля. f - фокусное расстояние линзы.
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
f | - это фокусное расстояние линзы f. |
Оптическое преобразование Френеля в интегральном исполнении.
выполнено по алгоритму взятия повторного двойного интеграла для расчета распространения светового поля на расстояние z. Используется при соблюдении условия ближней зоны Френеля: где - число Френеля, где - диаметр пучка. В противных случаях используют преобразование Фурье (Fourier). Кроме того есть ограничение снизу, должно выполняться условие : , в противном случае используется преобразование Кирхгофа (FastKirhgof2Exe).
Интеграл Френеля был получен из допущения средней зоны из оператора Кирхгофа описанном в FastKirhgof2Exe и имеет вид:
где - волновое число, - длинна волны светового поля.
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. |
void FrenelUnilateral | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
double | lamda, | |||
double | z, | |||
int | OutX, | |||
int | OutY | |||
) |
Оптическое преобразование Френеля в интегральном исполнении.
Повторяет алгоритм Frenel , однако может использоваться для отысканя конкретных значений оптического поля, что может давольно сильно сократить время выполнения задачи.
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. | |
OutX | - горизонтальная координата точки вычисляемого изображения. | |
OutY | - вертикальная координата точки вычисляемого изображения. |
void hankelFourier1D | ( | TComplex1D | InOptics, | |
TComplex1D | OutOptics, | |||
double | lamda, | |||
double | f, | |||
int | m | |||
) |
Преобразование Ханкеля и производные.
"Преобразование Ханкеля"
В математике, преобразование Ханкеля порядка функции является выражение:
где является функцией Бесселя первого приближения порядка имеющего значения . Обратное преобразование Ханкеля известно как выражение:
"Соответствие с преобразованием Фурье"
Преобразование Ханкеля 0-го порядка может служить каркасом двухмерного непрерывного преобразования Фурье для радиально симметричных функций. Рассмотрим двухмерную функцию в зависимости от радиус-вектора . Это преобразование Фурье выглядит так:
Рассматривая в пределах общего случая, можно привести уравнение для полярной системы координат оставляя тот же вектор для оси . Преобразование Фурье в данной полярной системе координат примет вид:
где является углом между векторами и . Входная функция является радиально симметричной, она не должна зависеть от угла и может быть записана как . Параметр интегрирования можно исключить из формулы, то преобразование Фурье можно записать в виде:
данная форма записи как раз является преобразованим Ханкеля 0-го порядка функции .
Оптическое преобразование Фурье через Ханкеля для однмодового 1D распределения.
Выполнено по алгоритму взятия одномерного интеграла Ханкеля для расчета двумерного распространения светового поля для фокусного расстояния z.
Интеграл Ханкеля для преобразования Фурье получен для функции имеющей вид:
Исходное непрерывное преобразование Фурье выглядит так:
Если его представить в полярной системе координат то получим:
Само преобразование имеет вид:
где - волновое число, - длинна волны светового поля.
InOptics | TComplex1D [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
f | - фокусное расстояние линзы для фурье образа в мм. | |
m | - порядок вихревой закрутки для одномодового пучка |
void hankelFrenel1D | ( | TComplex1D | InOptics, | |
TComplex1D | OutOptics, | |||
double | lamda, | |||
double | z, | |||
int | m | |||
) |
Оптическое преобразование Френеля через Ханкеля для однмодового 1D распределения.
InOptics | TComplex1D [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TComplex1D [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. | |
m | - порядок вихревой закрутки для одномодового пучка |
Оптическое преобразование Френеля через Ханкеля для однмодового 1D распределения.
Выполнено по алгоритму взятия одномерного интеграла Ханкеля для расчета двумерного распространения светового поля на расстояние z. Используется при соблюдении условия ближней зоны Френеля: где - число Френеля, где - диаметр пучка. В противных случаях используют преобразование Фурье (Fourier). Кроме того есть ограничение снизу, должно выполняться условие : , в противном случае используется преобразование Кирхгофа (FastKirhgof2Exe).
Интеграл Ханкеля для преобразования Френеля получен для функции имеющей вид:
Само преобразование имеет вид:
где - волновое число, - длинна волны светового поля.
InOptics | TComplex1D [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
z | - расстояние от входного до выходного распределения в мм. | |
m | - порядок вихревой закрутки для одномодового пучка |
Распространение светового поля на любые расстояния.
void NullBessel1D | ( | TComplex1D | out, | |
TModes | Modes, | |||
unsigned short | Param | |||
) |
Получение среднеквадратичного отклонения (СКО).
СКО вычисляется по формуле:
TestOptics | TOptics [in] - испытываемое комплексное поле (). | |
StandardOptics | TOptics [in] - эталонное комплексное поле (). |
void ThickLensExe | ( | TOptics | InOptics, | |
TOptics | OutOptics, | |||
double | lambda, | |||
double | n, | |||
double | delta, | |||
double | R1, | |||
double | R2 | |||
) |
Преобразование толстой линзы.
Расчитывает комплексное поле после прохождения пучка через толстую сферическую линзу. Транспорант тонкой линзы:
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
n | - коэффецент преломления стекла линзы. | |
delta | - коэффецент кривизны линзы. | |
R1 | - внутренний радиус линзы в мм. | |
R2 | - внешний радиус линзы в мм. |
Преобразование тонкой линзы.
Расчитывает комплексное поле после прохождения пучка через тонкую линзу. Транспорант тонкой линзы:
где - волновое число, - длинна волны светового поля. f - фокусное расстояние.
InOptics | TOptics [in] - комплексное поле на входе системы [ ]. | |
OutOptics | TOptics [out] - результирующее комплексное поле на расстоянии z [ ]. | |
lamda | - длинна волны лазера в нм [ ]. | |
f | - фокусное расстояние линзы в мм. |