 |
 |
LAMBDAの点像分布記述言語で利用するキーワードは,以下の種類に分類されます.
設計パラーメータ |
フィルタサイズや,物体距離,最大反復回数などを指定します. |
フィルタタイプ |
利用する設計アルゴリズム,回折の型などを指定します. |
点像分布図形 |
点,四角形,ビットマップファイルなどの点像分布を与えます. |
フォーマットは,以下の構成をしています.(記号<>は,実際には書きません)
<デフォルト設計パラメータ>
<フィルタタイプ> <フィルタの名前>[
<このフィルタだけの(ローカル)設計パラメータ>]
{
<点像分布図形>
}
<デフォルト設計パラメータ>,<このフィルタだけの設計パラメータ>, <点像分布図形>の箇所には,複数のキーワードを記述できます.また,キーワードは記号セミコロン;で終わります.
<デフォルト設計パラメータ>に記述した設計パラメータは,以下の全てのフィルタ設計に適用されます.<このフィルタだけの設計パラメータ>
例)
loop_max(100);
candidate_number(2);
dim2 monochromatic fraunhofer spot_array[
phase_type(analog_level);
data_size(256);
p_grid_center_x(128);
p_grid_center_y(128);
p_grid_pitch_x(8);
p_grid_pitch_y(8);]
{
p_box_fill(-10, -10, 10, 10, 1.0);
}
Topへ
左の欄に○がついていないキーワードは,現バージョンではまだサポートされていません.今後,順次対応予定です.
※ 座標,サイズは,「p_」で始まるものはピクセルを単位とする離散座標,それ以外のものはm単位の実数です.
設計パラメータ
設計条件 |
○
|
loop_max(<整数>) |
設計時の最大反復回数を指定します.ORA法およびGSアルゴリズムで,アナログフィルタを設計する場合に有効です. |
○ |
candidate_number(<整数>) |
設計の初期値依存性の影響を低減するために,ここで指定した回数だけ,異なる初期値から設計を行います. |
光学条件 |
○ |
wavelength(<実数>) |
単一波長フィルタを設計する場合の,波長をm単位で指定します. |
○
|
focal_length(<実数>) |
Fraunhofer型フィルタに用いるレンズの焦点距離を指定します. |
○ |
filter_position_from_lens |
ORAを用いてデフォーカスフィルタを設計する場合 (ORA
defocus)に,フィルタをレンズからどれだけ手前に配置するかを指定します. |
フィルタパターン関連 |
ピクセルサイズ |
必ず指定して下さい. |
○ |
filter_pixel_size(<実数>) |
フィルタのピクセルサイズを,縦・横同じ値に指定します. |
|
filter_pixel_size_x(<実数>) |
フィルタのピクセルの横方向のサイズを指定します. |
|
filter_pixel_size_x(<実数>) |
フィルタのピクセルの縦方向のサイズを指定します. |
フィルタサイズ(ピクセル数) |
○ |
p_filter_size(<整数>) |
フィルタ全体の縦・横方向のサイズを,ピクセル単位で同じ値に指定します. |
|
p_filter_size_x(<整数>) |
フィルタ全体の横方向のサイズを,ピクセル数で指定します. |
|
p_filter_size_y(<整数>) |
フィルタ全体の縦方向のサイズを,ピクセル数で指定します. |
フィルタサイズ(実寸) |
○ |
filter_size(<実数>) |
フィルタ全体の縦・横方向のサイズの両方を,同じ値に設定します. |
|
filter_size_x(<実数>) |
フィルタ全体の横方向のサイズを,m単位の実サイズで同じ値に指定します. |
|
filter_size_y(<実数>) |
フィルタ全体の縦方向のサイズを,m単位の実サイズで同じ値に指定します. |
出力パターン |
ピクセルサイズ |
○ |
output_pixel_size(<実数>) |
出力像のピクセルサイズを,m単位で,縦・横同じ値に指定します.GSアルゴリズムにおいてのみ有効です. |
|
output_pixel_size_x(<実数>) |
出力像のピクセルの横方向のサイズを,m単位で指定します.GSアルゴリズムにおいてのみ有効です. |
|
output_pixel_size_y(<実数>) |
出力像のピクセルの縦方向のサイズを,m単位で指定します.GSアルゴリズムにおいてのみ有効です. |
出力パターンサイズ(ピクセル数) |
○
|
p_output_size() |
|
|
p_output_size_x() |
|
|
p_output_size_y() |
|
出力パターンサイズ(実寸) |
ピクセル系描画プリミティブ (p_で始まる描画プリミティブ)
を利用する場合には,このパラメータとグリッドを設定する必要があります. |
|
output_size(<実数>) |
出力像の最大サイズを,m単位で,縦・横方向同じ値に指定します. |
|
output_size_x(<実数>) |
出力像の横方向の最大サイズを,m単位で指定します. |
|
output_size_y(<実数>) |
出力像の縦方向の最大サイズを,m単位で指定します. |
位相 |
○ |
phase_max(<実数>) |
最大位相量を,πを単位として与えます.例えば,2πの場合には,2を与えます.
備考: 波長多重フィルタ (multiwavelength) の場合のみ有効.単一波長では,自動的に2になります. |
○ |
phase_level(<整数>) |
位相レベルを指定します.
備考: phase_typeにmulti_levelを指定した場合に有効になります.binary_levelの場合には自動的に2になります.
また,phase_levelに0を指定すると,phase_typeは自動的にanalog_levelになります. |
○ |
phase_division_number(<整数>) |
ORAにおいて,位相の最小変化量を指定します.最小変化量は,最大位相量を,ここで指定した値で割った値になります. |
量子化 |
○ |
start_quantization(<整数>) |
量子化を開始する反復回数を指定します. |
○ |
quantization_repeat_number(<整数>) |
LAMBDAでは,10段階のプロセスから成る量子化を行います.各段階における反復回数を指定します. |
出力像の誤差 |
○ |
err_tolerance_times(<整数>) |
アナログレベルのフィルタを設計する場合,理想的な点像分布に対する設計フィルタの出力像の誤差が,増加,または変わらない場合が,ここで指定した数以上生じたところで,設計を終了します. |
○ |
err_improvement_ratio(<実数>) |
アナログレベルのフィルタを設計する場合,理想的な点像分布に対する設計フィルタの出力像の誤差が,1回前の反復時の誤差に対して,ここで指定した割合よりも減少が少なかった場合,出力パターンの品質は改善されなかったとみなします. |
出力ファイルの制御 |
○ |
write_only_best_filter(<スイッチ>) |
スイッチにはyesまたはnoを指定します.yesを指定した場合,最良のフィルタとその出力像のみがファイルに保存されます.noを指定すると,candidate_numberで指定した数のフィルタと出力像が保存されます. |
グリッド |
ピクセル単位 |
output_pixel_sizeをあらかじめ指定しておく必要があります. |
○
|
p_grid_center_x(<整数>) |
|
○ |
p_grid_center_y(<整数>) |
|
○ |
p_grid_pitch(<整数>) |
|
○ |
p_grid_pitch_x(<整数>) |
|
○ |
p_grid_pitch_y(<整数>) |
|
実寸 |
|
grid_center_x(<実数>) |
|
|
grid_center_y(<実数>) |
|
|
grid_pitch(<実数>) |
|
|
grid_pitch_x(<実数>) |
|
|
grid_pitch_y(<実数>) |
|
フィルタタイプ |
これは,フィルタタイプのデフォルトを指定するために利用します.個々のフィルタに対しては,ファイル名の直前に指定します.下のフィルタタイプの項目を参照. |
○ |
dimenstion_type(<次元>) |
出力像の次元を指定します.dim1 (1次元), dim2 (2次元), circular (1次元の回転体)を指定できます. |
○ |
wavelength_type(<波長>) |
波長数を指定します.monochromatic (単一波長), multiwavelength (多波長)
を指定できます. |
○ |
diffraction_type(<回折>) |
回折型を指定します.fraunhofer, fresnelが指定できます. |
○ |
transmission_type(<透過か反射>) |
透過型フィルタの場合transmissive, 反射型フィルタの場合reflectiveを指定します. |
○ |
phase_type(<位相>) |
位相型を指定します.analog_level(アナログ), multi_level(マルチレベル),
binary_level(バイナリレベル)を指定できます.
備考: binary_levelを指定すると,自動的にphase_levelは2になります. |
○ |
output_control_type(<スイッチ>) |
フィルタ設計を行うか,抑制するかを指定します.cancelの場合,全てのフィルタは設計されません.activeの場合,全てのフィルタが設計されます.ただし,フィルタ名の直前に指定したフィルタタイプが優先されます. |
○ |
design_algorithm_type(<設計アルゴリズム>) |
設計アルゴリズムを指定します.gs, oraが指定できます.ただし,wavelength_typeにmultiwavelengthを指定した場合は,oraしか利用できません. |
Topへ
出力像の次元 |
○
|
dim1 |
1次元出力像の位相フィルタを設計します. |
○
|
dim2 |
2次元出力像の位相フィルタを設計します. |
○
|
dim3 |
3次元出力像の位相フィルタを設計します.ORA法を用いたフレネル回折の設計でのみ指定できます. |
|
circular |
回転対称像(2次元)を設計します. |
波長 |
○
|
monochromatic |
単一波長に対するフィルタを設計します. |
○
|
multiwavelength |
波長多重フィルタを設計します.波長ごとに異なる像を出力することができます. |
回折 |
○
|
fraunhofer |
位相フィルタと出力像の間は,光はフラウンホーファ回折で伝播するとします. |
○
|
fresnel |
位相フィルタと出力像の間は,光はフレネル回折で伝播するとします. |
○ |
defocus |
レンズを用いたフラウンホーファ回折において,フィルタ位置をレンズからfilter_position_from_lensだけ手前にずらした場合の光伝播を計算します.(フラウンホーファ回折とフレネル回折の中間になる) |
透過型か反射型 |
○
|
transmissive |
位相フィルタは透過型とします.
備考: 現バージョンではGSのみ対応 |
○
|
reflective |
位相フィルタは反射型とします.
備考: 現バージョンではGSのみ対応 |
位相 |
○
|
binary_level |
2レベル |
○
|
multi_level |
位相レベルは,4, 8, 16, 32レベルから選択できます.レベル数は,phase_levelで指定します. |
○
|
analog_level |
位相レベルは連続値になります. |
設計 |
○
|
cancel |
これを指定したフィルタは,設計しません. |
○
|
active |
これを指定したフィルタは,設計します. |
設計アルゴリズム |
○
|
gs |
GSアルゴリズムで,位相フィルタを設計します. |
○
|
ora |
ORA法で,位相フィルタを設計します. |
点像分布 pで始まる描画キーワードは,ピクセル単位,またはグリッドが指定されているときには,グリッドを単位として座標を指定します.
備考: dimension_typeにdim3を指定した場合,座標は3次元で与えます.
ピクセル・グリッド系 |
○ |
p_image("<filename>", <x>, <y>, <intensity>) |
filenameで指定した画像ファイルを,座標(x, y)に配置します.読み込める画像は,グレイ256レベルのWindows
BMPファイルのみです.階調値255がintensityに対応します.
x, y: 整数, intensity: 実数
対応次元: dim2
対応アルゴリズム: GS |
○ |
p_oal_point(<x1>, <y1>, <x2>, <y2>) |
特殊用途向け.光アレイロジック用.
対応次元: dim2
対応アルゴリズム: GS |
○ |
p_point(<x>, <y>, <intensity>)
p_point(<x>, <y>, <z>, <intensity>) |
座標(x, y)に,intensityで指定した強度をもつ点を配置します. |
|
p_line(<x1>, <y1>, <x2>, <y2>, <intensity>) |
|
|
p_box(<x1>, <y1>, <x2>, <y2>, <intensity>) |
|
○ |
p_box_fill(<x1>, <y1>, <x2>, <y2>, <intensity>)
p_box_fill(<x1>, <y1>, <z1>, <x2>, <y2>, <z2>, <intensity>) |
(x1, y1)を始点,(x2, y2)を終点とする矩形領域を,強度intensityで塗りつぶします. |
実寸系 |
|
image("<filename>", <x>, <y>, <intensity>) |
|
○
|
point(<x>, <y>, <intensity>)
point(<x>, <y>, <z>, <intensity>) |
現在ORAのみのサポート |
|
line(<x1>, <y1>, <x2>, <y2>, <step>, <intensity>) |
|
|
box(<x1>, <y1>, <x2>, <y2>, <step>, <intensity>) |
|
|
box_fill(<x1>, <y1>, <x2>, <y2>, <step>, <intensity>)
box_fill(<x1>, <y1>, <z1>, <x2>, <y2>, <z2>, <step>, <intensity>) |
|
|
|
|
Topへ
連絡先:ogura@ist.osaka-u.ac.jp
|