Кейс по интерференции: при помещении тонкой плёнки с переменной толщиной под белый свет наблюдается радужная картина — как из её спектрального распределения восстановить профиль толщины плёнки и индекс преломления
Кратко: нужно измерить спектр отражения (или пропускания) R(λ,x,y)R(\lambda,x,y)R(λ,x,y) (гиперспектральная съёмка), затем решить обратную задачу на основе волновой модели тонкой плёнки (Fresnel + многолучевая интерференция). Ниже — необходимые формулы, алгоритмы и практические замечания. 1) Основные уравнения (нормальное падение) - Амплитудный коэффициент отражения для однослойной плёнки (воздух n0n_0n0, плёнка n1n_1n1, подложка n2n_2n2): r(λ)=r01+r12e2iβ(λ)1+r01r12e2iβ(λ),rij=ni−njni+nj,β(λ)=2πn1(λ)dλ.
r(\lambda)=\frac{r_{01}+r_{12}e^{2i\beta(\lambda)}}{1+r_{01}r_{12}e^{2i\beta(\lambda)}}, \qquad r_{ij}=\frac{n_i-n_j}{n_i+n_j}, \qquad \beta(\lambda)=\frac{2\pi n_1(\lambda)d}{\lambda}. r(λ)=1+r01r12e2iβ(λ)r01+r12e2iβ(λ),rij=ni+njni−nj,β(λ)=λ2πn1(λ)d.
Интенсивность: R(λ)=∣r(λ)∣2.
R(\lambda)=|r(\lambda)|^2. R(λ)=∣r(λ)∣2.
- Условия максимумов/минумов (приблизительно, в терминах оптической толщины): если между отражениями добавляется фазовый сдвиг π\piπ ровно один раз, конструктивный максимум при 2n1d=(m+12)λ,
2 n_1 d = \left(m+\tfrac12\right)\lambda, 2n1d=(m+21)λ,
если сдвигов 0 или 2 (и т.п.) — при 2n1d=mλ,
2 n_1 d = m\lambda, 2n1d=mλ,
где m∈Zm\in\mathbb{Z}m∈Z. 2) Прямой способ извлечения толщины при известном n1(λ)n_1(\lambda)n1(λ)
- Найдите локальные максимум(ы) спектра в точке: λm, λm+1, ...\lambda_m,\ \lambda_{m+1},\ ...λm,λm+1,.... - Для двух соседних максимумов (разность порядка = 1) из уравнений 2n(λm)d=pmλm2 n(\lambda_m)d = p_m\lambda_m2n(λm)d=pmλm и 2n(λm+1)d=pm+1λm+12 n(\lambda_{m+1})d = p_{m+1}\lambda_{m+1}2n(λm+1)d=pm+1λm+1 получаем 2d (n(λm)λm−n(λm+1)λm+1)=pm−pm+1=±1,
2d\!\left(\frac{n(\lambda_m)}{\lambda_m}-\frac{n(\lambda_{m+1})}{\lambda_{m+1}}\right)=p_m-p_{m+1}=\pm1, 2d(λmn(λm)−λm+1n(λm+1))=pm−pm+1=±1,
откуда d=121∣n(λm)λm−n(λm+1)λm+1∣.
d=\frac{1}{2}\frac{1}{\left|\dfrac{n(\lambda_m)}{\lambda_m}-\dfrac{n(\lambda_{m+1})}{\lambda_{m+1}}\right|}. d=21λmn(λm)−λm+1n(λm+1)1.
(Если пики несмещены на единицу порядка — использовать соответствующую разность порядков.) 3) Обратная задача, когда n1(λ)n_1(\lambda)n1(λ) неизвестно - Ввести параметрическую модель дисперсии, например Cauchy или Sellmeier: n1(λ)=A+Bλ2+Cλ4, или более сложная модель (включая k(λ) при поглощении).
n_1(\lambda)=A+\frac{B}{\lambda^2}+\frac{C}{\lambda^4},\ \text{или более сложная модель (включая }k(\lambda)\text{ при поглощении)}. n1(λ)=A+λ2B+λ4C,илиболеесложнаямодель (включаяk(λ)припоглощении).
- Сформулировать невязку для каждой точки (пикселя) или для всей карты: mind(x,y), {A,B,… }∑x,y∑λ[Rmeas(λ,x,y)−Rmodel(λ;d(x,y),n1(λ; A,B,… ))]2+рег.
\min_{d(x,y),\,\{A,B,\dots\}}\sum_{x,y}\sum_{\lambda}\bigl[R_\text{meas}(\lambda,x,y)-R_\text{model}(\lambda;d(x,y),n_1(\lambda;\!A,B,\dots))\bigr]^2 + \text{рег.} d(x,y),{A,B,…}minx,y∑λ∑[Rmeas(λ,x,y)−Rmodel(λ;d(x,y),n1(λ;A,B,…))]2+рег.
- Решать нелинейную задачу методом наименьших квадратов (Levenberg–Marquardt) или байесовским выводом. Регуляризация по гладкости d(x,y)d(x,y)d(x,y) помогает разрешить неоднозначности порядка. 4) Как снять неоднозначность порядка (m) - Использовать непрерывность профиля: соседние пиксели обычно различаются на малое число порядков -> фазовая развёртка (unwrap) по толщине. - Измерения при нескольких углах падения или поляризациях дают независимые уравнения для тех же ddd и nnn. - Дополнительно измерить спектр пропускания T(λ)T(\lambda)T(λ) или использовать эллипсометрию — тогда n(λ)n(\lambda)n(λ) и ddd определимы однозначно. 5) Практические замечания и ограничения - При значительной поглощаемости учитывайте комплексный показатель n~=n+ik \tilde n = n+ikn~=n+ik. - При большом числе порядков в видимой области цвета быстро меняются и возможны многозначности — нужны дополнительные данные или априорные предположения. - Освещение и угол коллекции (NA объектива) усредняют угловой спектр; модель должна учитывать угловое распределение. - Шум спектра и пересекающиеся пики уменьшают точность: предварительная фильтрация и хорошая калибровка спектрометра обязательны. 6) Резюме алгоритма (порядок действий) - Сделать гиперспектральную карту отражения R(λ,x,y)R(\lambda,x,y)R(λ,x,y) (или одновременно R и T). - При известной дисперсии n(λ)n(\lambda)n(λ): извлечь пики λm\lambda_mλm и по формулам выше вычислить d(x,y)d(x,y)d(x,y) с развёрткой порядков. - При неизвестной n(λ)n(\lambda)n(λ): предположить параметрическую форму n(λ;θ)n(\lambda;\theta)n(λ;θ), решить совместную подгонку по всем точкам для d(x,y)d(x,y)d(x,y) и θ\thetaθ с регуляризацией. - При необходимости дополнить измерениями под разными углами/поляризациями или воспользоваться эллипсометрией. Если нужно, могу расписать конкретную реализацию (по шагам, с кодом/псевдокодом) для ваших данных: какие данные у вас есть (R или T, спектральный диапазон, разрешение, известна ли подложка и её nnn)?
1) Основные уравнения (нормальное падение)
- Амплитудный коэффициент отражения для однослойной плёнки (воздух n0n_0n0 , плёнка n1n_1n1 , подложка n2n_2n2 ):
r(λ)=r01+r12e2iβ(λ)1+r01r12e2iβ(λ),rij=ni−njni+nj,β(λ)=2πn1(λ)dλ. r(\lambda)=\frac{r_{01}+r_{12}e^{2i\beta(\lambda)}}{1+r_{01}r_{12}e^{2i\beta(\lambda)}},
\qquad r_{ij}=\frac{n_i-n_j}{n_i+n_j},
\qquad \beta(\lambda)=\frac{2\pi n_1(\lambda)d}{\lambda}.
r(λ)=1+r01 r12 e2iβ(λ)r01 +r12 e2iβ(λ) ,rij =ni +nj ni −nj ,β(λ)=λ2πn1 (λ)d . Интенсивность:
R(λ)=∣r(λ)∣2. R(\lambda)=|r(\lambda)|^2.
R(λ)=∣r(λ)∣2. - Условия максимумов/минумов (приблизительно, в терминах оптической толщины):
если между отражениями добавляется фазовый сдвиг π\piπ ровно один раз, конструктивный максимум при
2n1d=(m+12)λ, 2 n_1 d = \left(m+\tfrac12\right)\lambda,
2n1 d=(m+21 )λ, если сдвигов 0 или 2 (и т.п.) — при
2n1d=mλ, 2 n_1 d = m\lambda,
2n1 d=mλ, где m∈Zm\in\mathbb{Z}m∈Z.
2) Прямой способ извлечения толщины при известном n1(λ)n_1(\lambda)n1 (λ) - Найдите локальные максимум(ы) спектра в точке: λm, λm+1, ...\lambda_m,\ \lambda_{m+1},\ ...λm , λm+1 , ....
- Для двух соседних максимумов (разность порядка = 1) из уравнений 2n(λm)d=pmλm2 n(\lambda_m)d = p_m\lambda_m2n(λm )d=pm λm и 2n(λm+1)d=pm+1λm+12 n(\lambda_{m+1})d = p_{m+1}\lambda_{m+1}2n(λm+1 )d=pm+1 λm+1 получаем
2d (n(λm)λm−n(λm+1)λm+1)=pm−pm+1=±1, 2d\!\left(\frac{n(\lambda_m)}{\lambda_m}-\frac{n(\lambda_{m+1})}{\lambda_{m+1}}\right)=p_m-p_{m+1}=\pm1,
2d(λm n(λm ) −λm+1 n(λm+1 ) )=pm −pm+1 =±1, откуда
d=121∣n(λm)λm−n(λm+1)λm+1∣. d=\frac{1}{2}\frac{1}{\left|\dfrac{n(\lambda_m)}{\lambda_m}-\dfrac{n(\lambda_{m+1})}{\lambda_{m+1}}\right|}.
d=21 λm n(λm ) −λm+1 n(λm+1 ) 1 . (Если пики несмещены на единицу порядка — использовать соответствующую разность порядков.)
3) Обратная задача, когда n1(λ)n_1(\lambda)n1 (λ) неизвестно
- Ввести параметрическую модель дисперсии, например Cauchy или Sellmeier:
n1(λ)=A+Bλ2+Cλ4, или более сложная модель (включая k(λ) при поглощении). n_1(\lambda)=A+\frac{B}{\lambda^2}+\frac{C}{\lambda^4},\ \text{или более сложная модель (включая }k(\lambda)\text{ при поглощении)}.
n1 (λ)=A+λ2B +λ4C , или более сложная модель (включая k(λ) при поглощении). - Сформулировать невязку для каждой точки (пикселя) или для всей карты:
mind(x,y), {A,B,… }∑x,y∑λ[Rmeas(λ,x,y)−Rmodel(λ;d(x,y),n1(λ; A,B,… ))]2+рег. \min_{d(x,y),\,\{A,B,\dots\}}\sum_{x,y}\sum_{\lambda}\bigl[R_\text{meas}(\lambda,x,y)-R_\text{model}(\lambda;d(x,y),n_1(\lambda;\!A,B,\dots))\bigr]^2 + \text{рег.}
d(x,y),{A,B,…}min x,y∑ λ∑ [Rmeas (λ,x,y)−Rmodel (λ;d(x,y),n1 (λ;A,B,…))]2+рег. - Решать нелинейную задачу методом наименьших квадратов (Levenberg–Marquardt) или байесовским выводом. Регуляризация по гладкости d(x,y)d(x,y)d(x,y) помогает разрешить неоднозначности порядка.
4) Как снять неоднозначность порядка (m)
- Использовать непрерывность профиля: соседние пиксели обычно различаются на малое число порядков -> фазовая развёртка (unwrap) по толщине.
- Измерения при нескольких углах падения или поляризациях дают независимые уравнения для тех же ddd и nnn.
- Дополнительно измерить спектр пропускания T(λ)T(\lambda)T(λ) или использовать эллипсометрию — тогда n(λ)n(\lambda)n(λ) и ddd определимы однозначно.
5) Практические замечания и ограничения
- При значительной поглощаемости учитывайте комплексный показатель n~=n+ik \tilde n = n+ikn~=n+ik.
- При большом числе порядков в видимой области цвета быстро меняются и возможны многозначности — нужны дополнительные данные или априорные предположения.
- Освещение и угол коллекции (NA объектива) усредняют угловой спектр; модель должна учитывать угловое распределение.
- Шум спектра и пересекающиеся пики уменьшают точность: предварительная фильтрация и хорошая калибровка спектрометра обязательны.
6) Резюме алгоритма (порядок действий)
- Сделать гиперспектральную карту отражения R(λ,x,y)R(\lambda,x,y)R(λ,x,y) (или одновременно R и T).
- При известной дисперсии n(λ)n(\lambda)n(λ): извлечь пики λm\lambda_mλm и по формулам выше вычислить d(x,y)d(x,y)d(x,y) с развёрткой порядков.
- При неизвестной n(λ)n(\lambda)n(λ): предположить параметрическую форму n(λ;θ)n(\lambda;\theta)n(λ;θ), решить совместную подгонку по всем точкам для d(x,y)d(x,y)d(x,y) и θ\thetaθ с регуляризацией.
- При необходимости дополнить измерениями под разными углами/поляризациями или воспользоваться эллипсометрией.
Если нужно, могу расписать конкретную реализацию (по шагам, с кодом/псевдокодом) для ваших данных: какие данные у вас есть (R или T, спектральный диапазон, разрешение, известна ли подложка и её nnn)?