0% found this document useful (0 votes)
264 views12 pages

OpenFilters Open-Source Software For The Design, Optimization, and Synthesis of Optical Filters

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
264 views12 pages

OpenFilters Open-Source Software For The Design, Optimization, and Synthesis of Optical Filters

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

OpenFilters: open-source software for the design,

optimization, and synthesis of optical filters

Stéphane Larouche* and Ludvik Martinu


Regroupement québécois sur les matériaux de pointe (RQMP) and Department of Engineering Physics,
École polytechnique de Montréal, P.O. Box 6079, Station Centre-Ville, Montréal, Québec H3C 3A7, Canada
*Corresponding author: [email protected]

Received 18 September 2007; revised 19 October 2007; accepted 19 October 2007;


posted 1 November 2007 (Doc. ID 87410); published 23 January 2008

The design of optical filters relies on powerful computer-assisted methods. Many of these methods are
provided by commercial programs, but, in order to adapt and improve them, or to develop new methods,
one needs to create his own software. To help people interested in such a process, we decided to release
our in-house software, called OpenFilters, under the GNU General Public License, an open-source
license. It is programmed in Python and C⫹⫹, and the graphical user interface is implemented with
wxPython. It allows creation of multilayer and graded-index filters and calculation of reflection, trans-
mission, absorption, phase, group delay, group delay dispersion, color, ellipsometric variables, admit-
tance diagram, circle diagram, electric field distribution, and generation of reflection, transmission, and
ellipsometric monitoring curves. It also provides the refinement, needle, step, and Fourier transform
methods. © 2008 Optical Society of America
OCIS codes: 310.0310, 310.1620, 310.4165, 310.5696, 310.6805.

1. Introduction while commercial programs, by their nature, are less


The conception of optical filters was revolutionized customizable.
when, 50 years ago, Baumeister demonstrated the At the Functional Coating and Surface Engineer-
possibility to optimize optical filters using a computer ing Laboratory (FCSEL) we developed an expertise in
program [1]. Before then, most optical filters con- the design and fabrication of graded-index and inter-
sisted of quarter wave layers, and their design relied mediate index optical filters and found that commer-
on graphical methods. Since then, a large variety of cial programs offer only limited capabilities for the
complex design procedures have been developed that design of such filters. Also in recent years we devel-
rely on sophisticated numerical methods and the use oped new design methods, and we wanted to incor-
of computers [2]. Nowadays, we have at our disposal porate them in a complete design environment,
very powerful synthesis methods, such as the needle including popular design methods and an easy-to-use
method, that allow one to design optical filters for any graphical user interface. This brought us to the cre-
physically sound problem. ation, from scratch, of a new design program, a pro-
Many commercial programs are available to design cess that took us many years.
optical filters; the most important ones were re- In the hope of helping other groups with similar
viewed in 2003 by Kruschwitz [3]. Despite the high goals to avoid the same troubles, we decided to re-
quality of these commercial programs, many compa- lease this program, called OpenFilters, as open-
nies and research institutions continue to develop source software under the GNU General Public
their own in-house software. In-house software can License (GPL). It is freely available on our web-
be rapidly modified when a new problem arises and site, http://www.polymtl.ca/larfis. We believe that the
adapted to fit the specific needs of the organization, availability of such open-source software is a signifi-
cant advance for the optical coating community. It
will reduce the barrier encountered by people enter-
0003-6935/08/130C219-12$15.00/0 ing the community by giving them the opportunity to
© 2008 Optical Society of America start developing new features from a fully functional

1 May 2008 兾 Vol. 47, No. 13 兾 APPLIED OPTICS C219


program. We hope that this will stimulate the im-
provement of existing analysis and design methods
as well as the creation of new ones.
Our aim is to present what OpenFilters offers so
the reader can decide whether there is interest in
using it to justify the choices we made during its
creation, to show how to use it, to explain under what
conditions it can be used or modified, and to describe
its implementation so that one can determine if it can
be adapted to fit his or her specific needs.
We first present the GPL, followed by a review of
the methods used by OpenFilters to calculate the
properties of optical filters, as well as the design,
optimization, and synthesis methods it proposes.
Contrary to our other publications about the design
and synthesis methods we developed, we do not at- Fig. 1. Multilayer optical filter.
tempt to provide a complete development of the de-

冋 册
sign methods; we present only the main equations
used by OpenFilters and give references for inter- cos ␸i (i兾␩i)sin ␸i
Mi ⫽ , (1)
ested readers to learn more. We then present a very i␩i sin ␸i cos ␸i
short user guide and the structure of the implemen-
tation of OpenFilters. Finally, we outline some plans where
for the future development of OpenFilters and indi-


cate how one can collaborate in its development.
Ni cos ␪i s polarization
␩i ⫽ (2)
Ni兾cos ␪i p polarization
2. GNU General Public License
The GPL [4] is an open source license, or free software is the pseudoindex of the layer,
license. It gives the user the freedom to access the
source code of the program and to modify it to suit its 2␲
needs. The user does not need to distribute the mod- ␸i ⫽ N d cos ␪i (3)
ifications made to OpenFilters. But, if one decides to ␭ i i
do so, the derived work must also be released under
the GPL. One should carefully read the GPL before is the phase shift of the wave inside the layer, ␪i is the
distributing any work derived from OpenFilters. angle of propagation in the layer, and ␭ is the wave-
The GPL does not apply to the results obtained length of light in vacuum.
with OpenFilters. It can be used to design filters for According to the Snell–Descartes’ law, ␣ ⫽ Ni
commercial applications, and the results can be pub- sin ␪i is constant [7]. To avoid computer intensive
lished under different conditions. However, we would trigonometric function calculations, the pseudoindi-
be grateful if you refer to this article or our website ces and phase shift can be calculated using
when publishing results obtained with OpenFilters.

3. What OpenFilters Offers: a Review of the


Calculation, Design, Optimization, and Synthesis of
␩i ⫽ 再 冑Ni2 ⫺ ␣2
Ni2兾冑Ni2 ⫺ ␣2
s polarization
p polarization
, (4)

Optical Filters
2␲ 2
In this section we provide basic information to un- ␸i ⫽

冑Ni ⫺ ␣2di (5)
derstand how OpenFilters designs, optimizes, syn-
thesizes, and calculates the optical properties of
interference filters. instead of Eqs. (2) and (3), respectively.
The characteristic matrix describing the multi-
A. Calculation of the Optical Properties layer is

冋 册
As shown in Fig. 1, a classical optical filter consists of
m11 m12 1
a stack of layers of thicknesses di and indices of re- M⫽ ⫽ 兿 Mi, (6)
fraction Ni between an incidence and an exit media of m21 m22 i⫽q
indices of refraction Ninc and Nex, respectively.
OpenFilters calculates the filter properties using where q is the number of layers, and the product is
the characteristic matrix approach developed by taken in reverse order since the matrices of upper
Abelès [5] and presented in detail in most optical layers must be multiplied on the left.
coating textbooks such as Macleod’s [6]. In this exact The amplitude reflection and transmission coeffi-
approach, the ith layer is represented by cients of the multilayer are

C220 APPLIED OPTICS 兾 Vol. 47, No. 13 兾 1 May 2008


␩incm11 ⫺ ␩exm22 ⫹ ␩inc␩exm12 ⫺ m21 culates GD and GDD numerically from the ␾r or ␾t
r⫽ , (7) spectrum.
␩incm11 ⫹ ␩exm22 ⫹ ␩inc␩exm12 ⫹ m21
Since ellipsometry is commonly used to charac-
2␩inc terize optical filters, OpenFilters can generate the
t⫽ , (8) ellipsometric spectrum of a filter. Following the con-
␩incm11 ⫹ ␩exm22 ⫹ ␩inc␩exm12 ⫹ m21
vention most commonly used in the optical thin film
where ␩inc and ␩ex are the pseudoindices of the inci- community [8], the ellipsometric angles ⌿ and ⌬ are
dence and exit media, respectively. The reflectance defined by
and transmittance are
⫺rp
R ⫽ rr* ⫽ ⱍrⱍ2, (9) ␳⫽ ⫽ tan ⌿ei⌬, (16)
rs

Re Nex Re Nex where rs and rp are the amplitude reflection coeffi-


Re Ninc ⱍ ⱍ
T⫽ tt* ⫽ t 2, (10) cients for s- and p-polarized light, respectively.
Re Ninc
Therefore,
where Re is the real part and * denotes the complex
conjugate. The absorptance is simply
⌿ ⫽ arctan
ⱍrpⱍ , ⌬ ⫽ arg(⫺rp) ⫺ arg(rs). (17)
A ⫽ 1 ⫺ R ⫺ T. (11)
ⱍrsⱍ
There also are applications, such as color shifting
When dealing with a rapidly changing signal, such security devices, where the color of a filter is of
as a pulse train, one also needs to know the dispersive interest. To calculate it, one must multiply the spec-
properties of the filter. The global phase shifts on trum of an illuminant by that of the filter and color
reflection and transmission modulo 2␲, ␾r, and ␾t are matching functions representing the sensitivity of
the angles made by r and t in the complex plane so the eye. OpenFilters strictly follows the CIE 15:
that 2004 standard [9]. OpenFilters also offers tools that
provide an intuitive understanding of some filters:
Im r the admittance diagram [6,10], the circle diagram
␾r ⫽ arg r ⫽ arctan , (12) [11], and the electric field distribution [12].
Re r
Finally, to prepare the filter deposition, OpenFil-
ters can generate the reflection, transmission, or el-
Im t lipsometric monitoring curves. To do so, it simply
␾t ⫽ arg t ⫽ arctan , (13) grows the filter by separating it in thin sublayers that
Re t
are successively added and by calculating the prop-
where Im is the imaginary part and the signs of the erties after the addition of each of these sublayers.
numerator and the denominator must be evaluated B. Consideration of the Backside
separately.
By themselves, the phase shifts do not provide Up to this point we have considered the case of a
much information about the behavior of the filter. semi-infinite exit medium. This is clearly unrealistic,
One is usually more interested in the delay intro- and it is necessary to account for the effect of the
duced when a pulse is reflected or transmitted by the substrate backside. Since the coherence length of
filter, the group delay (GD), or in the deformation of light is usually shorter than the substrate thickness,
a finite bandwidth pulse caused by the variation of this case must be treated differently from that of a
GD with the wavelength, the group delay dispersion layer. As shown in Fig. 2, one can simply add multiple
(GDD). GD and GDD are obtained from the phase reflections and transmissions occurring in the sub-
using strate. They follow geometric series whose sums are

d␾ TFTFRRB exp 4␤i


GD ⫽ ⫺ , (14) R ⫽ RF ⫹ , (18)
d␻ 1 ⫺ RFRRB exp 4␤i

d2␾ TFTB exp 2␤i


GDD ⫽ ⫺ , (15) T⫽ , (19)
d␻2 1 ⫺ RFRRB exp 4␤i

where ␻ ⫽ 2␲c兾␭ is the angular frequency and c is the where RF and TF are the reflectance and transmit-
speed of light in vacuum. There are analytical formu- tance of the front side, RFR and TFR are the reflectance
las to calculate the GD and GDD, but it is impossible to and transmittance of the front side in reverse direc-
calculate them analytically from the characteristic ma- tion, RB and TB are the reflectance and transmittance
trix of a multilayer. For that reason, OpenFilters cal- of the backside,

1 May 2008 兾 Vol. 47, No. 13 兾 APPLIED OPTICS C221


Fig. 3. Discretization of the refractive index profile of a graded-
Fig. 2. Optical filter with backside.
index filter (see text for details).

␤i ⫽ Im 冉 2␲ 2

冑Nsub ⫺ ␣2dsub 冊 (20)
multiple points in each index interval. Then, for each
index interval, linear interpolation is used to deter-
mine the points a and b, where the index profile
crosses the predefined index levels nj and nj⫹1, defin-
is related to the absorption in the substrate, and Nsub
ing a small section of the index profile. Finally, that
is the index of refraction of the substrate.
section of the index profile is replaced by two sublay-
The different reflection and transmission coeffi-
ers of thicknesses dj and dj⫹1 so that
cients can be calculated from Eqs. (9) and (10) while
considering appropriate incidence and exit media. It
should also be noted that, since the characteristic dj ⫹ dj⫹1 ⫽ b ⫺ a, (21)
matrices Eq. (6) are persymmetric, the product
兿i⫽1 Mi can be obtained from 兿i⫽q

q 1 b
Mi by simply inter-
changing the diagonal elements. njdj ⫹ nj⫹1dj⫹1 ⫽ n(z)dz, (22)
The situation is more complicated for ellipsometry a
since the incoherent effect of the front side and back-
side phase shifts must be considered. In that case, where the integral is evaluated using the trapezoidal
OpenFilters uses the formalism of Yang and Abelson rule. This guarantees that the discretized filter pre-
[13]. serves both the physical thickness and the optical
thickness of the original index profile.
C. Graded-Index Filters
The index of refraction of graded-index filters varies D. Optimization of Multilayer Filters
continuously throughout the thickness. It is possible It is often difficult, or even impossible, to manually
to treat some simple cases analytically, but this ap- design a filter respecting all the specifications for a
proach is very limited. A more general approach con- given application. However, it is possible to optimize a
sists in approximating the index gradient by a series filter using refinement [1]. In this method, the designer
of very thin sublayers [14]. The thickness of the sub- provides a starting design whose properties are suffi-
layers must be small enough to correctly represent ciently close to the specifications. Then, an optimiza-
the index profile, but large enough to limit calculation tion algorithm is used to adjust the thickness of the
time and avoid numerical errors. layers and eventually their index of refraction.
The discretization of the index profile is usually In addition to the starting design, the designer
accomplished by a series of sublayers with constant must provide targets describing the specifications.
physical or optical thickness. This approach is simple The targets can be any property computable from the
since the software needs to calculate only the function parameters of the filter; usually, these are the reflec-
generating the index profile at equally spaced points. tion, the transmission, phase properties, or the color
However, when one wants to calculate the properties defined for some polarization and angle of incidence.
of a filter made of real materials with dispersive re- Depending on the application, it may be necessary to
fractive index, it is necessary to calculate the disper- define a target at a single wavelength or over a range
sion of the index for every sublayer. To avoid these of wavelengths. In the latter case, the target must in
repeated calculations, OpenFilters discretizes the in- fact be discretized and defined at a finite number of
dex profile using predefined index levels. wavelengths. Using the targets, it is possible to define
The discretization process is shown in Fig. 3. First, a merit function (MF), representing the quality of a
the index profile n共z兲 is calculated at a large number design, that the refinement must minimize. OpenFil-
of points with a thickness interval chosen to provide ters uses

C222 APPLIED OPTICS 兾 Vol. 47, No. 13 兾 1 May 2008


␹ ⫽兺2
m

i⫽1
冉 Bi ⫺ B
⌬Bi 冊
៮i
,
2

(23)
According to Eq. (6), the derivative of the matrix of
the multilayer relative to a parameter ak of the jth
layer is
where m is the number of targets, Bi is a property of
៮ i is the target value for that property, and dM j⫹1 dMj 1
interest, B ⫽ 兿 Mi 兿 Mi. (31)
⌬Bi is the tolerance for that property. dak i⫽q dak i⫽j⫺1
The optimization algorithm used by OpenFilters is
the Levenberg–Marquardt algorithm [15]. The prop- If parameter ak is the thickness dj of the layer, Eqs.
erties of a filter that are optimized, the thickness and (1) and (5) give
the index of refraction of the layers, are represented
by a vector a ⫽ 关a1, a2, . . .兴. The Levenberg– dMj dMj d␸j
Marquardt algorithm calculates the first derivatives ⫽ , (32)
ddj d␸j ddj
of the merit function with regard to every parame-
ter ak, where

d␹2
dak
⫽ 2兺
m

i⫽1 (⌬Bi)
៮ i dBi
Bi ⫺ B
2 da
k
, 册 (24)
dMj
d␸j

i␩ 冋
⫺sin ␸j (i兾␩j)cos ␸j
j cos ␸j ⫺sin ␸j
, 册 (33)

and it uses these derivatives to determine the point d␸j 2␲ 2


where the MF is the lowest in a trust region centered ddj


冑Nj ⫺ ␣2. (34)
around the present value of a. Repeated improve-
ments of the MF allow the Levenberg–Marquardt Similarly, if ak is the index of refraction of the layer,
algorithm to find a local minimum.
Following van der Laan and Frankena [16], let us
now show how to calculate dBi兾dak in the case where dMj dMj d␸j dMj d␩j
⫽ ⫹ , (35)
Bi is the reflection or the transmission. According to dNj d␸j dNj d␩j dNj
Eqs. (9) and (10),
where dMj兾d␸j is given by Eq. (33),
dR dr
dak
⫽ 2r*
dak
, (25) dMj
d␩j
⫽ 冋 0
i sin ␸j
⫺(i兾␩j2)sin ␸j
0
, 册 (36)
dT Re(Ns) dt
⫽2 t* . (26)


dak Re(Nm) dak Nj
s polarization
d␩j 冑N 2
⫺ ␣2

冉 冊
j
According to Verly [17], the derivative of the am- ⫽ ,
plitude reflection coefficient r relative to the param- dNj Nj Nj2
2⫺ p polarization
eter ak can be calculated using 冑Nj2 ⫺ ␣2 Nj2 ⫺ ␣2

冉 冊
dr dM (37)
⫽ Tr ␺ , (27)
dak dak r d␸j 2␲ Nj
⫽ d. (38)
where Tr is the trace and dNj ␭ 冑N2 ⫺ ␣2 j
j

␺r ⫽
t
冋 Ninc(1 ⫺ r) ⫺(1 ⫹ r)
2Ninc NincNex(1 ⫺ r) ⫺Nex(1 ⫹ r)
. 册 (28)
Note that the index of refraction of a layer is usually
defined by its real part nj,0 ⫽ Re共Nj,0兲 at a reference
wavelength ␭0. In that case,
Using a similar formalism, the derivative of the am-
plitude transmission coefficient can be calculated us- dMj dMj dNj
⫽ , (39)
ing dnj,0 dNj dnj,0

dt
dak
⫽ Tr
dM
␺ ,
dak t 冉 冊 (29)
where dNj兾dnj,0 is determined from the dispersion of
the refractive index of the material.
OpenFilters also offers the possibility to refine the
where index of refraction of a layer while keeping its optical
thickness constant [18]. Details will be published in
an upcoming article.
␺t ⫽ ⫺
t2 Ninc
冋 1
2Ninc NincNex Ninc
. 册 (30)
Finally, the effect of the backside must be consid-
ered. According to Eqs. (18) and (19), the derivatives

1 May 2008 兾 Vol. 47, No. 13 兾 APPLIED OPTICS C223


of the reflectance and transmittance by a parameter ␸j ⫽ ␸j,2 ⫹ ␸j,1. These two sublayers are separated by
ak of the front stack are a needle represented by the matrix Mn and Mj ⫽
Mj,2MnMj,1. The effect of the addition of the needle of


dR dRF TFTFRRB exp 4␤i 1 dTF 1 dTR index Nn and infinitesimal thickness dn is, therefore,
⫽ ⫹ ⫹
dak dak 1 ⫺ RFRRB exp 4␤i TF dak TR dak


RB exp 4␤i dRFR
1 ⫺ RFRRB exp 4␤i dak
, 冊
(40)
dMj
ddn 冏dn⫽0
⫽ Mj,2
dMn
ddn 冏
dn⫽0
Mj,1. (42)

dT
dak
⫽T 冉
1 dTF

RB exp 4␤i dRFR
TF dak 1 ⫺ RFRRB exp 4␤i dak
. 冊 (41)
To speed up the calculations, Eq. (42) can be rewrit-
ten as

E. Synthesis of Multilayer Filters


Even after being refined, the filter does not always
dMj
ddn 冏
dn⫽0

1
2 冋冉 冊
␩j ␩n dMj

␩n ␩j d␸j

␩j ␩n

␩n ␩j 冉 冊
冋 册 册
fully respect the specifications. Or it can be difficult 1 0 dMj(⌬␸j) d␸n
for the designer to provide a starting design. In that ⫻ , (43)
case, one must resort to synthesis methods. The 0 ⫺1 d⌬␸j ddn
most commonly used synthesis method is the needle
method. OpenFilters also offers the step method that where ␩n is the pseudoindex of the needle, ␸n ⫽
we developed. 共2␲兾␭兲冑Nn2 ⫺ ␣2dn is the phase shift in the needle, and
dMj共⌬␸j兲兾d⌬␸j is identical to Eq. (33) in which ␸j is
1. Needle Method replaced by ⌬␸j ⫽ ␸j,1 ⫺ ␸j,2. Equation (43) is faster to
The needle method was first described by Tikhonra- compute than Eq. (42) because there is no matrix
vov in 1982 [19]. However, it only began to be widely multiplication, dMj兾d␸j and dMj共⌬␸j兲兾d⌬␸j do not de-
used in the middle of the 1990s [20,21]. As shown in pend on the needle material, and dMj兾d␸j does not
Fig. 4(a), it consists of adding thin layers at optimal depend on the position of the needle.
positions in the filter and then adjusting their thick-
ness by refinement. Needles are added until a satis- 2. Step Method
factory solution is found or the addition of more When materials with a continuous range of index of
needles does not improve the filter. refraction are available, Verly proposed to determine
The optimal position to add needles is determined both the optimal position and the index of refraction
by calculating the derivative of the MF with regard to of the added needle [17]. On our side, we proposed to
the thickness of an infinitesimally thin layer as a add steps in the index profile instead of needles [22].
function of the position where it is added. Where the As shown in Fig. 4(b), the step method consists of
derivative is negative, it is favorable to add a needle. adding infinitesimal steps in the index profile and
Usually, one needle at a time is added at the position then refining the index of refraction and the thick-
where the derivative of the MF is the most negative. ness of the separated layers.
The addition of a needle in the jth layer repre- Similar to the needle method, the optimal position
sented by the matrix Mj, which has a thickness cor- to add steps is determined by calculating the deriv-
responding to a phase shift ␸j, creates two sublayers ative of the MF with regard to the addition of a
represented by matrices Mj,2 and Mj,1 with thick- step as a function of the position where the step is
nesses corresponding to phases ␸j,2 and ␸j,1 such that added.

Fig. 4. Schematic representation of (a) the needle method and (b) the step method.

C224 APPLIED OPTICS 兾 Vol. 47, No. 13 兾 1 May 2008


The jth layer is separated in two sublayers, and the is twice the optical thickness measured from the cen-
refractive index of the first sublayer is increased ter of the filter, where z is the physical thickness and
while that of the second sublayer is decreased (or vice u is an integration variable. Note that in real appli-
versa). If the index change is equally distributed on cations, the Q function is defined at a finite number of
both sublayers, the effect of the addition of a step is wavelengths in a limited range, and the integral of
Eq. (46) is replaced by a sum.
dMj
d⌬Nj 冏 ⌬Nj⫽0

1 dMj,2
2 dNj
Mj,1 ⫺ Mj,2
1 dMj,1
2 dNj
. (44)
Multiple Q functions have been proposed [23–32],
and OpenFilters offers many of them. However, since
the Q functions are only approximate, there will be
To speed up the calculation, this equation can be discrepancies between the target and the obtained
rewritten as filter. This problem can be solved by iteratively cor-
recting the Q function [33]. OpenFilters also consid-

冏 冋 冉
dMj 1 dMj d⌬␸j dMj(⌬␸j) 1 ers the dispersion of the index of refraction in the
⫽ ⫹ ⫹ (cos ␸j Fourier transform method using a method we devel-
d⌬Nj ⌬Nj⫽0
2 d␸j dNj d␩j ␩j oped [34].

⫺ cos ⌬␸j) 冋 ⫺1 0
0 1 册冊 册
d␩j
dNj
, (45) 2. Rugate Filters
A direct application of the Fourier transform method
is the design of single- or multiple-wavelength reflec-
where dMj共⌬兲兾d␩j is identical to Eq. (36), where ␸j is tors called rugate filters [26]. It can easily be under-
replaced by ⌬␸j. stood that the Fourier transform of a Q function
If the index of refraction of the layer where the step defined for a single wavelength gives a sinusoidal
is added is at a limit of the available index range, it index profile. Furthermore, a multiband rugate filter
is impossible to distribute the change of index can easily be designed by multiplying multiple sinu-
equally, and the calculation must be slightly modi- soidal profiles:
fied. Details about the step method will be published
in an upcoming article. n(x)
ln ៮ i sin(2␲x兾␭i ⫹ ␸i)w(x),
⫽兿 Q (49)
F. Design of Graded-Index Filters nm i

We have seen how to design, optimize, and synthe-


where ␭i are the wavelengths of the band, ␸i are
size multilayer filters. We now turn to the design of
phase shifts that allow one to center the index profile,
graded-index filters. We present the Fourier trans-
and
form method and a direct application, the design of
rugate filters, as well as quintic antireflective layers. 1 nm ⫹ ⌬ni兾2
៮ i⫽
Q ln (50)
1. Fourier Transform Method 2 nm ⫺ ⌬ni兾2
The Fourier transform method for the design of op-
tical filters was developed by Delano [23] and Sossi are the reduced Q functions that control the ampli-
[24], and later popularized by Dobrowolski and Lowe tude ⌬ni of the index profile.
[25]. It directly relates the desired reflection or trans- Since the sinusoidal index profile cannot be infi-
mission spectra with the index profile of the filter nite, it is necessary to multiply it by a finite envelope
through the use of an amplitude and phase functions, w共x兲. The spectrum of the filter is the convolution of
Q and ⌿, respectively, called the Q function. The the Fourier transform of the sinus and that of the
index depth profile n共x兲 is obtained by using the in- envelope. Therefore, if that envelope is simply a rect-
verse Fourier transform [25] angular function, the bands are convoluted with a
sinus cardinal, causing sidelobes. An envelope pro-


⬁ viding apodization is the Kaiser function,
n(x) 2 Q(␴)
⫽ sin(⌿(␴) ⫺ ␴x)d␴,
I0(␤冑1 ⫺ 4x2)
ln (46)
nm ␲ ␴
0 w(x) ⫽ ⌸(x), (51)
I0(␤)
where x is the double-centered optical thickness, ␴ ⫽
2␲兾␭ is the wavenumber, ␭ is the wavelength, and where I0 is the modified Bessel function of the first
kind and zeroth order, ⌸共x兲 is a rectangular function,
nm ⫽ 冑nminnmax (47) and ␤ is a parameter that controls the amount of
apodization.
The bandwidth of a band, ⌬␭i, is related to the
is the geometric mean index of the filter. The double- amplitude of its index profile, while the reflecting
centered optical thickness power is related to the amplitude of the index profile
and the number of periods. According to Bovard [30],


z

x⫽2
0
n(u)du (48)
⌬n ⫽ 2nm sin 冉 冊
␲ ⌬␭i
4 ␭i
, (52)

1 May 2008 兾 Vol. 47, No. 13 兾 APPLIED OPTICS C225


x⫽
Q
៮ i W0 兾␭i
␲Q ⱍ ⱍ
, (53) 冋
n(u) ⫽ n1 exp ln
1 ⫹ (n2 ⫺ n1)
n1 册
(10u3 ⫺ 15u4 ⫹ 6u5) ,
(55)
where W0 is the continuous component of the Fourier
transform of w共x兲. which we have found to give even better results.
OpenFilters’ rugate module corrects for the disper-
sion of the material using the method that Poitras 4. Very Short User Guide
and we have developed [35]. It consists of (1) design- Now that we have shown what OpenFilters offers, we
ing separate single-band rugate filters for each band succinctly present how to use it. All the functions of
(2), converting the index profiles to a common wave- OpenFilters are accessible through a graphical user
length using the dispersion of the material, and (3) interface (GUI), which is designed so that the vast
multiplying the index profiles. majority of the information is presented in a single
main window, as shown in Fig. 5.
3. Quintic Layers OpenFilters comes with a bank of materials from
Graded-index layers can also be used as antireflective Palik [37,38] or characterized in our laboratory. More
layers. Indeed, when the index change is continuous materials can be added to fit the user’s needs by use
and very slow, there is almost no reflection in a layer. of the GUI. At this moment, OpenFilters offers three
One particularly effective antireflective layer to avoid ways to enter the dispersion of the index of refraction:
reflection between two materials of indices n1 and n2 a single complex value for dispersionless materials, a
is the quintic index profile [36] table of complex values as a function of wavelength,
or a Cauchy dispersion model with an Urbach absorp-
tion tail. The material dispersion formulas are saved
n(u) ⫽ n1 ⫹ (n2 ⫺ n1)(10u3 ⫺ 15u4 ⫹ 6u5), (54) in text files.
In OpenFilters, material mixtures are described
where u ⫽ z兾d, z is the physical depth, and d is the using the real properties of the materials, instead of
total physical thickness of the filter. mixing laws such as the effective medium approxi-
OpenFilters also offers to scale the thickness opti- mation. To do so, the user must enter the dispersion
cally (u ⫽ x兾2OT) and the index exponentially, giving of the index of refraction for multiple mixtures, and

Fig. 5. (Color online) Main window of OpenFilters.

C226 APPLIED OPTICS 兾 Vol. 47, No. 13 兾 1 May 2008


the index of refraction of intermediate mixtures is It is possible to add layers to the filter individually
interpolated using a cubic spline. OpenFilters also or through the use of a stack formula. When mixtures
provides a mechanism to account for the limited res- are used, in addition to the thickness of the layer, the
olution of the index of refraction during the eventual user must specify its index of refraction. Layers can
deposition of graded-index filters. When the optical be added, removed, or modified at the will of the user.
properties are entered, the user must assign a num- OpenFilters comes with modules to design rugate
ber to every mixture. Then, OpenFilters considers and quintic filters. The rugate module offers the pos-
that only intermediate mixtures represented by sibility to design single-band and multiband rugates
whole numbers are possible to deposit. and to specify the number of periods and the ampli-
The operations in OpenFilters are centered around tude of the index profile either directly or from the
projects. A project allows the user to design and com- bandwidth and the reflection power of the bands. It
pare multiple solutions to the same problem by re- also offers the possibility to multiply the index profile
grouping a set of filters designed to meet the same set by a Kaiser apodization envelope. In the quintic mod-
of targets. After the creation of a project, the user can ule, the starting and ending indices can be selected
add filters and targets to it and modify or remove manually or automatically matched to the surround-
them in the order wanted. ing layers. The index can be linearly or exponentially
When the user adds a new filter to the project, a scaled, while the thickness can be physically or opti-
dialog is presented that makes it necessary for the cally scaled.
user to specify the substrate material and thickness, After a filter has been created, it is possible to
the front and back media, the reference wavelength, calculate many of its properties: transmission, reflec-
the wavelength range, and the graded-index step tion, absorption, phase, GD, GDD, ellipsometric vari-
spacing. The reference wavelength is the wavelength ables ⌿ and ⌬, color, the circle and admittance
at which the index of refraction of mixtures is defined diagrams, and the electric field distribution. The color
and is used when calculating the optical thickness of is calculated in XYZ, xyY, L*a*b*, and L*u*v* color
the layers. The step spacing is used in the discreti- spaces using the CIE1931 or CIE1964 colorimetric
zation of the index profile of graded-index filters as observers and one of the 38 illuminants defined by
explained in Subsection 3.C. The user may choose to the Commission Internationale de l’Éclairage [9].
discretize graded-index filters according to the depo- OpenFilters can also generate photometric or ellipso-
sition steps as described in the material file. All these metric monitoring curves. When the user asks the
properties may be changed later if necessary. software to calculate a property, a dialog is presented

Fig. 6. (Color online) Needle method dialog.

1 May 2008 兾 Vol. 47, No. 13 兾 APPLIED OPTICS C227


for selection of the conditions at which to calculate to solve linear equation systems using Gauss–
the property, such as the angle of incidence and the Jordan elimination or QR decomposition, interpola-
polarization. tion methods (mainly the cubic spline), and a few
To design, optimize, or synthesize a filter, the user more tools. The Levenberg–Marquardt code is similar
must define targets. OpenFilters offers single wave- to MINPACK [41] but allows the use of inequality
length and spectral reflection and transmission tar- targets and the bounding of the fitted parameters (to
gets, and color targets. In the case of spectral targets, avoid negative thicknesses and bound the index of
the user must set a range of wavelengths and a res- refraction to acceptable values).
olution for the target, and then define the value of the Each kind of material is represented by a different
target at some wavelengths. The values between class that derives from the material base class. At
those wavelengths are linearly interpolated. It is pos- this moment, there are six derived classes for simple
sible for the user to specify that the target is an materials and mixtures, and for the three dispersion
equality or an inequality. For color targets, the user models previously described. All these classes include
has the choice of the same color spaces, observers, a common set of methods to set the dispersion for-
and illuminants already mentioned. mula of the material and to obtain its index of refrac-
Once targets are set, the user can optimize an ex- tion for a single wavelength or a spectrum. Many of
isting filter using refinement, synthesize a filter us- the calculations are delegated to the abeles module.
ing the needle or step methods, or design one using More dispersion models can be easily added by simply
the Fourier transform method. When the user selects creating more derived classes without needing to
one of these methods, a dialog is presented that al- modify other parts of the code.
lows control of the design, optimization, or synthesis. Projects are instances of the project class. It is a
For example, the needle method dialog, presented in very plain class that simply implements methods to
Fig. 6, offers the possibility to select the materials of add or remove filters and targets.
the needles, to refine the filter, to add a selectable All offered kinds of target derive from the target
number of needles, or to remove thin layers. The user base class. Derived classes are implemented for sin-
can also select the automatic mode in which refine- gle wavelength and spectral reflection or transmis-
ment, addition of needles, and removal of thin layers sion, and for color. They include methods to set the
are automatically done until an acceptable solution is
target and to interact with optimization methods. If
found or the addition of more needles is no longer
new target classes are added, it will also be necessary
helpful.
to modify the optimization methods accordingly.
Finally, the project can be saved in a text file and
The optical filter class implements methods to add
reopened later. All the results given by OpenFilters
and remove homogeneous and graded-index layers,
can be exported to text files to allow the user to plot
and to calculate the properties of a filter with the help
them with a software of his or her choice.
of the abeles package. When a property is calculated
5. Under the Hood at a given angle of incidence, the matrices for that
If the user is interested in modifying OpenFilters to angle of incidence are saved. Therefore, it is not nec-
fit specific needs and to collaborate on its develop- essary to recalculate them when determining another
ment, it is necessary to understand the structure of property at the same angle of incidence.
its implementation. The classes implementing design, optimization,
OpenFilters is written in Python [39] and C⫹⫹ and synthesis methods derive from the optimization
using object oriented programming. Major logical el- base class. The refinement and the Fourier transform
ements of the software (materials, projects, filters, method classes are directly derived from the optimi-
targets, design兾optimization兾synthesis routines) are zation class. The refinement class is further derived
represented by classes programmed in Python. To to create the needle and step method classes. Opti-
speed up the calculations, most of the computation- mization methods use the abeles and moremath mod-
ally intensive tasks are performed by two modules ules intensively during the calculations.
implemented in C⫹⫹: the abeles and moremath mod- All the files in which materials, illuminants, ob-
ules. The GUI is programmed using the wxPython servers, or projects are saved are text files in an easily
toolkit [40]. understandable format.
The abeles module is named after Florin Abelès The GUI is clearly separated from the rest of the
who first presented the characteristic matrix ap- implementation to allow creation of another user
proach to calculate the optical properties of optical interface if necessary. OpenFilters is somewhat
coatings [5]. It implements classes to calculate the multithreaded: computationally intensive tasks are
index of refraction of materials from their dispersion done in a separate thread to preserve the GUI re-
formulas, computes the characteristic matrices of lay- sponsiveness, and it is possible to stop most of these
ers, multiplies these matrices, calculates the proper- operations. However, at this moment, these opera-
ties of the filter, and evaluates the derivatives used in tions are done in a single thread.
refinement, needle, and step methods. Finally, rugate and quintic modules are self-
The moremath module, named to differentiate contained. This implementation was selected to allow
it from the standard Python module math, imple- the creation of modules without having to modify any
ments the Levenberg–Marquardt algorithm routines other part of the code. The modules are loaded when

C228 APPLIED OPTICS 兾 Vol. 47, No. 13 兾 1 May 2008


OpenFilters starts, so it is possible to add modules 8. R. H. Muller, “Definitions and conventions in ellipsometry,”
without recompiling it. Surf. Sci. 16, 14 –33 (1969).
9. CIE, Colorimetry, 3rd ed. CIE 15:2004 (Commission Interna-
tionale de l’Éclairage, 2004).
6. Conclusions and Future Plans 10. P. J. Leurgans, “The impedance concept in thin film optics,” J.
We have developed OpenFilters, an open-source pro- Opt. Soc. Am. 41, 714 –717 (1951).
gram for the design of optical filters. It offers new 11. J. H. Apfel, “Graphics in optical coating design,” Appl. Opt. 11,
features such as the step method and the consider- 1303–1312 (1972).
ation of dispersion in the Fourier transform method 12. V. V. Veremei and I. M. Minkov, “Distribution of light intensity
as well as popular methods such as refinement and within a dielectric mirror,” Opt. Spectrosc. (USSR) 33, 1175–
1178 (1972); translation, Opt. Spectrosc. 33, 640 – 641 (1972).
the needle method. It was recently used in the OIC
13. Y. H. Yang and J. R. Abelson, “Spectroscopic ellipsometry of
2007 design contest and provided a result comparable thin films on transparent substrates: a formalism for data
to the winning design [42]. interpretation,” J. Vac. Sci. Technol. A 13, 1145–1149 (1995).
We plan to continue the development of Open- 14. P. Baumeister, “Simulation of a rugate filter via a stepped-
Filters and would be pleased to find collaborators. index dielectric multilayer,” Appl. Opt. 25, 2644 –2645
Following the open-source philosophy, we therefore (1986).
invite you not only to use OpenFilters but also to 15. J. J. Moré, “The Levenberg-Marquardt algorithm: implemen-
modify it to fit your needs and to collaborate on its tation and theory,” Lect. Notes Math. 630, 105–116 (1978).
development. If you send us the modifications, and 16. C. J. van der Laan and H. J. Frankena, “Fast computation
we believe they are of interest to the community, we method for derivatives of multilayer stack reflectance,” Appl.
will be glad to include them in the distribution of Opt. 17, 538 –541 (1978).
17. P. G. Verly, “Modified needle method with simultaneous thick-
OpenFilters.
ness and refractive-index refinement for the synthesis of inho-
In the near future we plan to include gradual evo- mogeneous and multilayer optical thin films,” Appl. Opt. 40,
lution [43– 45], design cleaning [45], and preproduc- 5718 –5725 (2001).
tion analysis [46 – 49] to OpenFilters. In the longer 18. S. Larouche and L. Martinu, “Optical filters with constant
term, we would like to extend the OpenFilters project optical thickness and refined refractive indices,” in Optical
to develop a reverse-engineering software. Interference Coatings on CD-ROM (Optical Society of America,
We would also like to build a large database of 2007), p. TuD8.
materials’ refractive index. To help us, we invite you 19. A. V. Tikhonravov, “A method of synthesis of optical coverings
to send us the index of refraction of the materials that which uses the necessary optimality conditions,” Vestn. Mosk.
you measure as well as a description of the fabrica- Univ. Fiz. Astronomiya 37, 91–93 (1982); translation, Mosc.
Univ. Phys. Bull. 37, 108 –110 (1982).
tion condition and measurement setup.
20. A. V. Tikhonravov, M. K. Trubetskov, and G. W. DeBell,
We acknowledge the financial support of the Na- “Application of the needle optimization technique to the design
tional Sciences and Engineering Research Council of of optical coatings,” Appl. Opt. 35, 5493–5508 (1996).
Canada (NSERC), and we thank our colleagues of the 21. B. T. Sullivan and J. A. Dobrowolski, “Implementation of a
FCSEL, particularly Marie-Maude de Denus Baillar- numerical needle method for thin-film design,” Appl. Opt. 35,
5484 –5492 (1996).
geon and Bill Baloukas, who tested early versions of
22. S. Larouche and L. Martinu, “A new step method for the syn-
OpenFilters, for their feedback. Stéphane Larouche thesis of optical filters with arbitrary indices,” in 49th Annual
also thanks the NSERC for its scholarship. Technical Conference Proceedings (Society of Vacuum Coaters,
A preliminary version of this work was presented 2006), pp. 305–308.
23. E. Delano, “Fourier synthesis of multilayer filters,” J. Opt. Soc.
at the Optical Society of America’s Tenth Topical
Am. 57, 1529 –1533 (1967).
Meeting on Optical Interference Coatings held in 24. L. Sossi, “A method for the synthesis of multilayer dielectric
Tucson, Arizona, USA, 3– 8 June 2007 [50]. interference coatings,” Eesti NSV Teaduste Akadeemia To-
imetised Füüsika, Matemaatika 23, 229 –237 (1974). English
References translation available from the Translation Services of the
1. P. Baumeister, “Design of multilayer filters by successive ap- Canada Institute for Scientific and Technical Information
proximations,” J. Opt. Soc. Am. 48, 955–958 (1958). (CISTI).
2. J. A. Dobrowolski, “The impact of computers on the design and 25. J. A. Dobrowolski and D. Lowe, “Optical thin film synthesis
manufacture of optical multilayer coatings during the past program based on the use of Fourier transforms,” Appl. Opt.
50 years,” in 50th Annual Technical Conference Proceedings 17, 3039 –3050 (1978).
(Society of Vacuum Coaters, 2008), pp. 289 –301. 26. B. G. Bovard, “Rugate filter theory: an overview,” Appl. Opt.
3. J. Kruschwitz, “Software tools speed optical thin-film design,” 32, 5427–5442 (1993).
Laser Focus World 39, 153–157 (2003). 27. L. Sossi, “On the theory of the synthesis of multilayer di-
4. Free Software Foundation, “GNU general public license,” electric light filters,” Eesti NSV Teaduste Akadeemia Toime-
http://fsf.org/. tised Füüsika, Matemaatika 25, 171–176 (1976). English
5. F. Abelès, “Recherches sur la propagation des ondes électro- translation available from the Translation Services of the
magnétiques sinusoïdales dans les milieux stratifiés. Appli- Canada Institute for Scientific and Technical Information
cation aux couches minces,” Ann. Phys. (Paris) 5, 596 – 640, (CISTI).
706 –782 (1950). 28. P. G. Verly, J. A. Dobrowolski, W. J. Wild, and R. L. Burton,
6. H. A. Macleod, Thin-Film Optical Filters, 3rd ed. (Institute of “Synthesis of high rejection filters with the Fourier transform
Physics Publishing, 2001). method,” Appl. Opt. 28, 2864 –2875 (1989).
7. Sh. A. Furman and A. V. Tikhonravov, Basics of Optics of 29. B. G. Bovard, “Derivation of a matrix describing a rugate
Multilayer Systems (Éditions Frontières, 1992). dielectric thin film,” Appl. Opt. 27, 1998 –2005 (1988).

1 May 2008 兾 Vol. 47, No. 13 兾 APPLIED OPTICS C229


30. B. G. Bovard, “Fourier transform technique applied to quar- 41. J. Moré, B. Garbow, and K. Hillstrom, “MINPACK,”
terwave optical coatings,” Appl. Opt. 27, 3062–3063 (1988). http://www.netlib.org/minpack.
31. R. Szipöcs and A. Köházi-Kis, “Theory and design of chirped 42. M. Tilsch and K. Hendrix, “Optical Interference Coatings de-
dielectric laser mirrors,” Appl. Phys. B 65, 115–135 (1997). sign contest 2007: triple bandpass and nonpolarizing beam
32. H. Chang, S.-S. Lee, M. R. Chol, and S. Lim, “Inhomogeneous splitter,” Appl. Opt. 47, C55–C69 (2008).
optical filter design with the use of a Riccati equation,” Micro- 43. J. A. Dobrowolski, “Completely automatic synthesis of optical
wave Opt. Technol. Lett. 22, 140 –144 (1999). thin film systems,” Appl. Opt. 4, 937–946 (1965).
33. P. G. Verly and J. A. Dobrowolski, “Iterative correction process 44. J. A. Dobrowolski, “Versatile computer program for absorbing
for optical thin film synthesis with the Fourier transform optical thin film systems,” Appl. Opt. 20, 74 – 81 (1981).
method,” Appl. Opt. 29, 3672–3684 (1990). 45. A. V. Tikhonravov, M. K. Trubetskov, and G. W. DeBell,
“Optical coating design approaches based on the needle opti-
34. S. Larouche and L. Martinu, “Dispersion implementation in
mization technique,” Appl. Opt. 46, 704 –710 (2007).
optical filter design by the Fourier transform method using
46. P. W. Baumeister, “Methods of altering the characteristics of a
correction factors,” Appl. Opt. 46, 7436 –7441 (2007).
multilayer stack,” J. Opt. Soc. Am. 52, 1149 –1152 (1962).
35. D. Poitras, S. Larouche, and L. Martinu, “Design and plasma
47. W. P. Thoeni, “Deposition of optical coatings: process control
deposition of dispersion-corrected multiband rugate filters,” and automation,” Thin Solid Films 88, 385–397 (1982).
Appl. Opt. 41, 5249 –5255 (2002). 48. H. Zorc, “Optimum multilayer design selection in relation to
36. W. H. Southwell, “Gradient-index antireflection coatings,” production errors,” Vacuum 37, 101–102 (1987).
Opt. Lett. 8, 584 –586 (1983). 49. A. V. Tikhonravov and M. K. Trubetskov, “Computational
37. E. D. Palik, ed., Handbook of Optical Constants of Solids manufacturing as a bridge between design and production,”
(Academic, 1985). Appl. Opt. 44, 6877– 6884 (2005).
38. E. D. Palik, ed., Handbook of Optical Constants of Solids II 50. S. Larouche and L. Martinu, “OpenFilters: an open source
(Academic, 1991). software for the design and optimization of optical coatings,” in
39. “Python,” http://www.python.org/. Optical Interference Coatings on CD-ROM (Optical Society of
40. “wxpython,” http://wxpython.org/. America, 2007), p. WB6.

C230 APPLIED OPTICS 兾 Vol. 47, No. 13 兾 1 May 2008

You might also like