Переход назад
Оглавление

Файл BxOptics.h

Библиотека основных оптических преобразований CAAM. Подробнее...

См. исходные тексты.

Функции

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)
 Преобразование Ханкеля и производные.


Подробное описание

Библиотека основных оптических преобразований CAAM.

Здесь содержатся базовые преобразования оптических изображений TOptics.

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

Функции

void BesselExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes,
unsigned short  Param 
)

ДОЭ обеспечивающий построение мод бесселевого пучка.

Дифракционнооптический элемент, т.е. пучок на нулевом расстоянии:

\[ U(\rho , \varphi , z)= \sum_{\alpha , n} J_n(\alpha \rho) \exp (in \varphi), \]

где $ k = 2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. $ \alpha , n $ - параметры мод.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
Param - параметры пучка. Пример :
 Param = NORMAL_BESSEL=0; 
- построение пучка с функцией $ J_n $ .
 Param = PHASE_BESSEL=1; 
- построение пучка с функцией $ \mathsf{sign} (J_n) $
См. также:
WaveExe , EllipsExe , VortexExe .

void BesselNonParaxialFresnelImagingExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes,
unsigned short  Param,
double  lamda,
double  a,
double  z 
)

Идеальный бесселевый пучок, прошедший через линзу.

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

\[ U(\rho , \varphi , z)= \sum_{\alpha , n=0} \frac{a}{z} \exp \left[ i \frac{k \rho ^2}{2z} \left( 1 + \frac{a}{z} \right) \right] J_0 \left( \frac{\alpha \rho a}{z} \right) \exp (in \varphi), \]

где $ k = 2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. $ \alpha , n = 0 $ - параметры мод.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
Param - параметры пучка. Пример :
 Param = NORMAL_BESSEL=0; 
- построение пучка с функцией $ J_n $ .
 Param = PHASE_BESSEL=1; 
- построение пучка с функцией $ \mathsf{sign} (J_n) $
lamda - длинна волны лазера в нм [ $ \lambda $ ].
a - расстояние от входного распределения до линзы в мм.
z - расстояние от входного до выходного распределения в мм.
См. также:
BesselExe , Frenel , FastKirhgof2Exe , ThinLensExe .

void BesselNonParaxialFresnelTransformExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes,
unsigned short  Param,
double  lamda,
double  z 
)

Непараксиальный бесселевый пучок прошедший расстояние z.

после формирующего ДОЭ вычислен по аналитическому решению идеального непараксиального бесселевого пучка:

\[ U(\rho , \varphi , z)= \sum_{\alpha , n} \exp \left[ -i \frac{z \alpha ^2}{2k} \right] J_n(\alpha \rho) \exp (in \varphi), \]

где $ k = 2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. $ \alpha , n $ - параметры мод.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
Param - параметры пучка. Пример :
 Param = NORMAL_BESSEL=0; 
- построение пучка с функцией $ J_n $ .
 Param = PHASE_BESSEL=1; 
- построение пучка с функцией $ \mathsf{sign} (J_n) $
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
См. также:
BesselExe , FastKirhgof2Exe .

void BesselParaxialFresnelTransformExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes,
unsigned short  Param,
double  lamda,
double  z 
)

Параксиальный бесселевый пучок прошедший расстояние z.

после формирующего ДОЭ вычислен по аналитическому решению параксиального бесселевого пучка цилендрической волны:

\[ U(\rho , \varphi , z)= \sum_{\alpha , n} (-i)^{n+1} \sqrt{\frac{\rho_0}{2 \pi}} \frac{k}{z} \exp \left[ i \frac{k}{2z} (\rho ^2 + \rho_0^2)\right] J_n \left( \frac{k\rho \rho_0}{z} \right) \exp (in \varphi), \]

где $ k = 2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. $ \rho_0 , n $ - параметры мод.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
Param - параметры пучка. Пример :
 Param = NORMAL_BESSEL=0; 
- построение пучка с функцией $ J_n $ .
 Param = PHASE_BESSEL=1; 
- построение пучка с функцией $ \mathsf{sign} (J_n) $
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
См. также:
BesselExe , Frenel .

void Diafragma ( TOptics  InOptics,
TOptics  OutOptics,
double  DiafragmaX,
double  DiafragmaY 
)

Оптическое преобразование Диафрагмы.

Необходима для усечения входного пучка. Сама диафрагма находится в центре экрана, следовательно усекаться будут края светового поля.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы.
OutOptics TOptics [out] - результирующее комплексное поле.
DiafragmaX - ширина диафрагмы в мм.
DiafragmaY - высота диафрагмы в мм.
Прим.:
Если DiafragmaY = 0 то усечение идет округлым с диаметром DiafragmaX.
См. также:
FastDiafragma .

double Energy ( TOptics  Optics  ) 

Получение энергии сосредоточеной в оптическом поле.

Производит интегрирование светового поля по сосредоточенной в нем интенсивности.

Аргументы:
Optics TOptics [in] - исследуемое комплексное поле.
См. также:
SKO .

void FastDiafragma ( TOptics  InOptics,
TOptics  OutOptics,
double  DiafragmaX,
double  DiafragmaY 
)

Ускоренное оптическое преобразование Диафрагмы.

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

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы.
OutOptics TOptics [out] - результирующее комплексное поле.
DiafragmaX - ширина диафрагмы в мм.
DiafragmaY - высота диафрагмы в мм.
Прим.:
Если DiafragmaY = 0 то усечение идет округлым с диаметром DiafragmaX.
См. также:
Diafragma .

void FastFourier ( TOptics  InOptics,
TOptics  OutOptics,
int  zeros,
double  lamda,
double  f 
)

Оптическое преобразование Фурье через быстрое дискретное.

для расчета распространения светового поля на бесконечном расстоянии после линзы с фокусом f

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
zeros - дополнительное наполнение матрицы нулями для экстраполяции выходных данных. Кратно 2-м, т.е. 2,4,6,8...
lamda - длинна волны лазера в нм [ $ \lambda $ ].
f - это фокусное расстояние линзы f.
См. также:
fftFrenel , Frenel , FastKirhgof2Exe .

void FastKirhgof2Exe ( TOptics  InOptics,
TOptics  OutOptics,
int  ExpCount,
bool  RadialDevelopment,
double  lamda,
double  z 
)

Распространение светового поля на любые расстояния.

Быстрый алгоритм интегрального преобразования Релея-Зомерфельда первого рода,, ускоренный при помощи табуляции (память-скорость) используется в непараксиальных областях распространения: Когда расстояния распространения много меньше апертуры пучка. Преобразования Релея-Зомерфельда первого рода (в литературе часто называют преобразованием Кирхгофа):

\[ U(x,y,z)= - \frac{z} {2\pi} \int\int_{D} U(\xi ,\eta)\frac{e^{ikr}} {r^2} \left(ik-\frac{1}{r} \right) d\xi d\eta , \]

где $ r=\sqrt{(x-\xi)^2+(y-\eta)^2+z^2} , k = 2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. Данный алгоритм имеет ограничения "входные и выходные поля должны быть одинакого размера" как по точкам дискретизации так по физическим размерам

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
ExpCount - число внутриэкспоненциальных разбиений используется для увеличения точности в соответствии с алгоритмом Г.
RadialDevelopment - дополнительное ускорение алгоритма. радиальной разверткой пучка (до 8 раз быстрее).
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
Предупреждения:
входные и выходные поля должны быть одинакого размера, иначе система выдаст ошибку при запуске функции
См. также:
Frenel .

void FastKirhgof2UnilateralExe ( TOptics  InOptics,
TOptics  OutOptics,
int  ExpCount,
bool  RadialDevelopment,
double  lamda,
double  z,
int  OutX,
int  OutY 
)

Распространение светового поля на любые расстояния.

Повторяет алгоритм FastKirhgof2Exe , однако может использоваться для отысканя конкретных значений оптического поля, что может давольно сильно сократить время выполнения задачи.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
ExpCount - число внутриэкспоненциальных разбиений используется для увеличения точности в соответствии с алгоритмом Г.
RadialDevelopment - дополнительное ускорение алгоритма. радиальной разверткой пучка (до 8 раз быстрее).
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
OutX - горизонтальная координата точки вычисляемого изображения.
OutY - вертикальная координата точки вычисляемого изображения.
Предупреждения:
входные и выходные поля должны быть одинакого размера, иначе система выдаст ошибку при запуске функции
Прим.:
С помощью этой функции можно вычислять срузу 1D массив изображения для этого переменная по которой будет набираться массив должна иметь значение -1. Например если задать [OutX=2, OutY=-1] то на выходе получим вычисленный столбик по вертикали.
См. также:
FastKirhgof2Exe , FrenelUnilateral .

void fftFrenel ( TOptics  InOptics,
TOptics  OutOptics,
int  zeros,
double  lamda,
double  z 
)

Оптическое преобразование Френеля через БПФ.

т.е. через Быстрое преобразование Фурье (БПФ). Разработанна для расчета распространения светового поля на расстояние z, согласно ограничениям в Frenel . Как приемущество - быстрота выполнения, недостаток - неопределенность масштабирования выходного поля после экстраполяции. Формула имеет вид:

\[ U(x,y,z)= \frac{k e^{ikz} } {2 \pi z i} \exp \left( \frac{ik(x^2 + y^2)} {2z} \right) W\left[ U(\xi , \eta) \exp \left( \frac{ik( \xi ^2 + \eta ^2 )} {2z} \right) \right], \]

где $ k=2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. $ W(U) $ - БПФ.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
zeros - дополнительное наполнение матрицы нулями для экстраполяции выходных данных. Кратно 2-м, т.е. 2,4,6,8...
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
См. также:
Fourier , Frenel , FastKirhgof2Exe .

void Fourier ( TOptics  InOptics,
TOptics  OutOptics,
double  lamda,
double  f 
)

Оптическое преобразование Фурье через быстрое дискретное.

для расчета распространения светового поля на бесконечном расстоянии после линзы с фокусом f

Интеграл Фурье и имеет вид:

\[ U(x,y,f)= \frac{k} {f} \int\int_{D} U(\xi , \eta) \exp \left[ -ik \frac{ik(x \xi + y \eta )} {f} \right] d\xi d\eta , \]

где $ k=2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. f - фокусное расстояние линзы.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
f - это фокусное расстояние линзы f.
См. также:
fftFrenel , hankelFrenel2D , FastFourier .

void Frenel ( TOptics  InOptics,
TOptics  OutOptics,
double  lamda,
double  z 
)

Оптическое преобразование Френеля в интегральном исполнении.

выполнено по алгоритму взятия повторного двойного интеграла для расчета распространения светового поля на расстояние z. Используется при соблюдении условия ближней зоны Френеля: $ N_f \geq 1, $ где $ N_f=D^2 / (\lambda z) $ - число Френеля, где $ D $ - диаметр пучка. В противных случаях используют преобразование Фурье (Fourier). Кроме того есть ограничение снизу, должно выполняться условие : $ \sqrt{ (x - \xi )^2 + (y - \eta )^2 } \gg D $ , в противном случае используется преобразование Кирхгофа (FastKirhgof2Exe).

Интеграл Френеля был получен из допущения средней зоны из оператора Кирхгофа описанном в FastKirhgof2Exe и имеет вид:

\[ U(x,y,z)= \frac{k} {2 \pi z i} \int\int_{D} U(\xi , \eta) \exp \left( \frac{ik} {2z} \left[ (x-\xi)^2 + (y-\eta)^2 \right] \right) d\xi d\eta , \]

где $ k=2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
См. также:
fftFrenel , FrenelUnilateral , Fourier , FastKirhgof2Exe .

void FrenelUnilateral ( TOptics  InOptics,
TOptics  OutOptics,
double  lamda,
double  z,
int  OutX,
int  OutY 
)

Оптическое преобразование Френеля в интегральном исполнении.

Повторяет алгоритм Frenel , однако может использоваться для отысканя конкретных значений оптического поля, что может давольно сильно сократить время выполнения задачи.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
OutX - горизонтальная координата точки вычисляемого изображения.
OutY - вертикальная координата точки вычисляемого изображения.
Прим.:
С помощью этой функции можно вычислять срузу 1D массив изображения для этого переменная по которой будет набираться массив должна иметь значение -1. Например если задать [OutX=2, OutY=-1] то на выходе получим вычисленный столбик по вертикали.
См. также:
Frenel , FastKirhgof2UnilateralExe .

void hankelFourier1D ( TComplex1D  InOptics,
TComplex1D  OutOptics,
double  lamda,
double  f,
int  m 
)

Преобразование Ханкеля и производные.

"Преобразование Ханкеля"

В математике, преобразование Ханкеля порядка $ \nu $ функции $ f(r) $ является выражение:

\[ F_\nu(k) = \int_0^\infty f(r)J_\nu(kr)\,r\,dr \]

где $ J_\nu $ является функцией Бесселя первого приближения порядка $ \nu $ имеющего значения $ \nu >= 1/2 $ . Обратное преобразование Ханкеля $ F_\nu(k) $ известно как выражение:

\[ f(r) =\int_0^\infty F_\nu(k)J_\nu(kr) k~dk \]

"Соответствие с преобразованием Фурье"

Преобразование Ханкеля 0-го порядка может служить каркасом двухмерного непрерывного преобразования Фурье для радиально симметричных функций. Рассмотрим двухмерную функцию $ F(\mathbf{k}) $ в зависимости от радиус-вектора $ \mathbf{r} $ . Это преобразование Фурье выглядит так:

\[ F(\mathbf{k})=\frac{1}{2\pi}\int\int f(\mathbf{r}) e^{-i\mathbf{k}\cdot\mathbf{r}}\,d\mathbf{r} \]

Рассматривая в пределах общего случая, можно привести уравнение для полярной системы координат $ (r, \theta) $ оставляя тот же вектор $ \mathbf{k} $ для оси $ \theta = 0 $ . Преобразование Фурье в данной полярной системе координат примет вид:

\[ F(\mathbf{k}) = \frac{1}{2\pi}\int_{r=0}^{\infty}\int_{\theta=0}^{2\pi}f(r,\theta)e^{-ikr\cos(\theta)}\,r\,dr\,d\theta \]

где $ \theta $ является углом между векторами $ \mathbf{k} $ и $ \mathbf{r} $ . Входная функция $ f $ является радиально симметричной, она не должна зависеть от угла $ \theta $ и может быть записана как $ f(r) $ . Параметр интегрирования $ \theta $ можно исключить из формулы, то преобразование Фурье можно записать в виде:

\[ F(\mathbf{k})=F(k)= \int_0^\infty f(r) J_0(kr) r\,dr \]

данная форма записи как раз является преобразованим Ханкеля 0-го порядка функции $ f(r) $ .

См. также:
Hankel transform , hankelFourier2D .

void hankelFourier2D ( TComplex1D  InOptics,
TOptics  OutOptics,
double  lamda,
double  f,
int  m 
)

Оптическое преобразование Фурье через Ханкеля для однмодового 1D распределения.

Выполнено по алгоритму взятия одномерного интеграла Ханкеля для расчета двумерного распространения светового поля для фокусного расстояния z.

Интеграл Ханкеля для преобразования Фурье получен для функции имеющей вид:

\[ f(r, \phi)= R(r) \exp(i m \phi) . \]

Исходное непрерывное преобразование Фурье выглядит так:

\[ F(u,v,f)=\frac{k}{f} \int\int f(x,y) \exp \left[ - \frac{ik}{f}(xu + yv) \right] \,dx,dy \]

Если его представить в полярной системе координат то получим:

\[ F_m(\rho,\theta,f) = 2\pi \exp(i m \theta) \frac{k}{f} \int_0^\infty R(r) J_m \left( \frac{k r \rho} {f} \right) r\,dr \]

Само преобразование имеет вид:

\[ F_m(\rho,\theta,z) = \exp(i m \theta) \frac{k} {z} \frac{k} {2 \pi z i}\exp(ikz) \exp \left( \frac{i k \rho^2} {2 z} \right) \int^{\infty}_{0} R(r) \exp \left( \frac{i k r^2} {2 z} \right) J_m \left( \frac{i k r \rho} {z} \right) r dr , \]

где $ k=2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля.

Аргументы:
InOptics TComplex1D [in] - комплексное поле на входе системы [ $ R(r) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ F_m(\rho,\theta,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
f - фокусное расстояние линзы для фурье образа в мм.
m - порядок вихревой закрутки для одномодового пучка
См. также:
fftFrenel , FrenelUnilateral , Fourier , FastKirhgof2Exe , Frenel .

void hankelFrenel1D ( TComplex1D  InOptics,
TComplex1D  OutOptics,
double  lamda,
double  z,
int  m 
)

Оптическое преобразование Френеля через Ханкеля для однмодового 1D распределения.

Аргументы:
InOptics TComplex1D [in] - комплексное поле на входе системы [ $ R(r) $ ].
OutOptics TComplex1D [out] - результирующее комплексное поле на расстоянии z [ $ F_m(\rho,\theta,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
m - порядок вихревой закрутки для одномодового пучка
См. также:
hankelFrenel2D , fftFrenel , FrenelUnilateral , Fourier , FastKirhgof2Exe , Frenel .

void hankelFrenel2D ( TComplex1D  InOptics,
TOptics  OutOptics,
double  lamda,
double  z,
int  m 
)

Оптическое преобразование Френеля через Ханкеля для однмодового 1D распределения.

Выполнено по алгоритму взятия одномерного интеграла Ханкеля для расчета двумерного распространения светового поля на расстояние z. Используется при соблюдении условия ближней зоны Френеля: $ N_f \geq 1, $ где $ N_f=D^2 / (\lambda z) $ - число Френеля, где $ D $ - диаметр пучка. В противных случаях используют преобразование Фурье (Fourier). Кроме того есть ограничение снизу, должно выполняться условие : $ \sqrt{ (x - \xi )^2 + (y - \eta )^2 } \gg D $ , в противном случае используется преобразование Кирхгофа (FastKirhgof2Exe).

Интеграл Ханкеля для преобразования Френеля получен для функции имеющей вид:

\[ f(r, \phi)= R(r) \exp(i m \phi) . \]

Само преобразование имеет вид:

\[ F_m(\rho,\theta,z) = \exp(i m \theta) \frac{k} {z} \frac{k} {2 \pi z i}\exp(ikz) \exp \left( \frac{i k \rho^2} {2 z} \right) \int^{\infty}_{0} R(r) \exp \left( \frac{i k r^2} {2 z} \right) J_m \left( \frac{i k r \rho} {z} \right) r dr , \]

где $ k=2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля.

Аргументы:
InOptics TComplex1D [in] - комплексное поле на входе системы [ $ R(r) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ F_m(\rho,\theta,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
z - расстояние от входного до выходного распределения в мм.
m - порядок вихревой закрутки для одномодового пучка
См. также:
fftFrenel , FrenelUnilateral , Fourier , FastKirhgof2Exe , Frenel .

void Kirhgof2Exe ( TOptics  InOptics,
TOptics  OutOptics,
int  ExpCount,
double  lamda,
double  z 
)

Распространение светового поля на любые расстояния.

Уст.:
Решение реализуется с помощю преобразования Кирхгофа, однако алгоритм работает крайне медленее чем FastKirhgof2Exe.
См. также:
FastKirhgof2Exe , Frenel.

void NullBessel1D ( TComplex1D  out,
TModes  Modes,
unsigned short  Param 
)

double SKO ( TOptics  TestOptics,
TOptics  StandardOptics 
)

Получение среднеквадратичного отклонения (СКО).

СКО вычисляется по формуле:

\[ \delta= \sqrt{ \frac{\int\int_{D}(|U_{std}(x,y,z)| -|U_{tst}(x,y,z)|)^2dxdy} {\int\int_{D}|U_{std}(x,y,z)|^2dxdy} } \]

Возвращает:
Вещественное число [0..1]. Среднеквадратичное отклонение поля TestOptics относительно поля StandardOptics.
Аргументы:
TestOptics TOptics [in] - испытываемое комплексное поле ($U_{tst}$).
StandardOptics TOptics [in] - эталонное комплексное поле ($U_{std}$).
Прим.:
Иногда для сравнения полей удобно сначало их нормировать с помощью NormalOptics .

void ThickLensExe ( TOptics  InOptics,
TOptics  OutOptics,
double  lambda,
double  n,
double  delta,
double  R1,
double  R2 
)

Преобразование толстой линзы.

Расчитывает комплексное поле после прохождения пучка через толстую сферическую линзу. Транспорант тонкой линзы:

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
n - коэффецент преломления стекла линзы.
delta - коэффецент кривизны линзы.
R1 - внутренний радиус линзы в мм.
R2 - внешний радиус линзы в мм.
См. также:
ThinLensExe .

void ThinLensExe ( TOptics  InOptics,
TOptics  OutOptics,
double  lamda,
double  f 
)

Преобразование тонкой линзы.

Расчитывает комплексное поле после прохождения пучка через тонкую линзу. Транспорант тонкой линзы:

\[ U(x,y,f)= U(\xi ,\eta) \exp \left[-\frac{ik}{2f} (\xi ^2 + \eta ^2)\right] , \]

где $ k = 2\pi / \lambda $ - волновое число, $ \lambda $ - длинна волны светового поля. f - фокусное расстояние.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
lamda - длинна волны лазера в нм [ $ \lambda $ ].
f - фокусное расстояние линзы в мм.
См. также:
BesselNonParaxialFresnelImagingExe , ThickLensExe .

Документация по системе CAAM. © Все права защищены БайтериКС 2005-2015. BYTERIX.COM byterix