位相差から光路差を求める計算ツール
この計算ツールは、符号付きの位相差をラジアンで受け取り、一方の波が他方より進んだ等価距離へ換算します。正の波長を任意の長さ単位で入力すると、結果も同じ単位で表示されます。使用する関係式は ΔL = Δφλ/(2π) です。2π ラジアンの1周期は1波長に、半周期は半波長に相当します。
無料で実行
角度としての位相を物理的な距離に結び付けます
位相は周期的な波のどの位置にあるかを表し、光路差は一方の波が他方よりどれだけ長く進んだかを表します。この二つを結ぶ量が波長です。1周期は 2π ラジアンで、空間的には正確に1波長に相当するため、Δφ/(2π) は二つの波のずれを周期数で示します。これに λ を掛けると ΔL = Δφλ/(2π) が得られます。たとえば π/2 ラジアンは4分の1周期なので、光路差も4分の1波長です。このツールは入力した位相差、波長、周期数に換算した位相差、得られた光路差を返します。位相を 2π の剰余に丸めないため、方向と整数周期の情報が保たれます。負の位相差からは負の光路差が得られます。大きさだけが必要な場合は、使用する符号規約で方向が不要であることを確認したうえで絶対値をご利用ください。
波長の単位と符号の意味を確認します
波長はメートル、ナノメートル、マイクロメートル、ミリメートルなど任意の長さ単位で入力でき、出力は入力と同じ単位になります。632.8 をナノメートルとして入力すれば光路差もナノメートルで、6.328 × 10⁻⁷ をメートルとして入力すればメートルで得られます。単位の推測や自動変換は行いません。そのため、可視光、赤外線、マイクロ波など、波長が既知のコヒーレント波に同じ方法を利用できます。波長は物理的な空間周期なので正の値が必要です。一方、位相差の符号規約は装置や導出方法によって異なるため、位相差には符号を認めています。実験値と比較する前に、どちらの光線からどちらを引いた値か、また装置が −π から π などの範囲に折り返した位相を出力するかをご確認ください。折り返された位相だけでは、未知の整数波長分のずれは特定できません。
干渉計測の結果として正しく利用します
干渉計測では位相が直接観測されても、求めたい量は変位、厚さ、または光路長であることがよくあります。このツールが行うのは、位相から等価な光路差への基本換算だけです。反射による往復、屈折率、入射角、装置固有の幾何学条件は自動では補正しません。これらは光路差と実際の寸法を結ぶ別のモデルに含める必要があります。たとえば単純なマイケルソン干渉計では、鏡の移動が往復光路を変えるため、通常の垂直入射条件では鏡の実変位が光路差の半分になる場合があります。また媒質内では幾何学的長さ L だけでなく光路長 nL を使うので、観測位相には厚さと屈折率の影響が同時に含まれ得ます。まず入力波長での等価光路差 ΔL を求め、その後に実験系の幾何学条件を適用してください。手順を分けることで仮定が明確になり、係数2の誤りを防ぎやすくなります。
活用例
干渉計の位相測定を解釈する
測定位相を光路差へ換算してから、装置の幾何学条件や往復係数を適用できます。
位相シミュレーションを検算する
設定した位相遅れが意図した波長の端数分の光路ずれに対応するか確認できます。
膜の位相を等価距離で表す
反射または透過のモデル位相を、選択した波長での等価な光路長として表せます。
よくある質問
位相差を光路差へ変換する式は何ですか?
ΔL = Δφλ/(2π) を使います。Δφ はラジアン単位の位相差、λ は波長です。
光路差はどの単位で表示されますか?
波長と同じ長さ単位です。波長をナノメートルで入力すると、結果もナノメートルになります。
負の位相差を入力できますか?
はい。採用した位相規約の方向を表せるよう、結果でも符号を保持します。
位相は 2π の範囲に折り返されますか?
いいえ。入力した符号付きの値をそのまま使うため、複数周期なら複数波長分の光路差になります。
鏡の変位を直接計算できますか?
常に直接求められるわけではありません。反射の往復配置では、得られた光路差に別途係数2を考慮する場合があります。
API での計算料金はいくらですか?
API の各リクエストは $0.002 です。ブラウザー計算では値をサーバーへ送らずに利用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/phase-to-path-difference \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"phase_difference":1.5707963267948966,"wavelength":6.328e-7}'const res = await fetch("https://api.kit.forhosting.com/optics/phase-to-path-difference", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"phase_difference": 1.5707963267948966,
"wavelength": 6.328e-7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/phase-to-path-difference",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"phase_difference": 1.5707963267948966,
"wavelength": 6.328e-7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/phase-to-path-difference", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"phase_difference":1.5707963267948966,"wavelength":6.328e-7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"phase_difference":1.5707963267948966,"wavelength":6.328e-7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/phase-to-path-difference", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"phase_difference": 1.5707963267948966,
"wavelength": 6.328e-7
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.phase_to_path_difference",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs_phase_radians | 1000000000000000 |
max_wavelength | 1000000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |