🌐 JP | 🇬🇧 EN | Last sync: 2026-08-13
量子センサとは、別の問いを投げかけられた2準位系です。姉妹コース量子ハードウェア入門は、2準位系に環境を気づかせないようにする方法に5章を費やします。環境に気づいてしまった計算機はエラーを起こしたことになるからです。本コースはその文の符号を反転させます。ここでは環境が信号であり、デコヒーレンスが測定であり、性能指標は位相がどれだけ長く生き延びたかではなく、死ぬ前に場についてどれだけの情報が書き込まれたかです。
この反転は比喩ではありません。同じハミルトニアン、同じ $\pi/2$ パルス、同じRamsey系列、同じ $T_2$ であり、変わったのは意図だけです。だからこそ本章は2準位系の物理については短く済ませられます — $T_1$、$T_2$、$T_2^\ast$、Ramsey測定、エコーはハードウェア編が確立済みであり、その第1章がそれらすべての参照先として、再導出せずに用いられます。そして計算機科学者は必要としないが計測科学者は必要とする3つのこと — 単位をもつ感度、平均が効くかどうかを述べる安定度の記述、そして何をどの空間分解能で測れるかの地図 — については長く書きます。
本章の役目は、第2章・第3章・第4章がその3つの変奏となるテンプレートを確立することです。ダイヤモンドNV中心の磁気計測、dc SQUID、光時計、原子干渉計は4つの別々の分野に見えますし、実験室ではまさに別物です。しかし干渉計として書き出せば、それは4組のハードウェアをもつ1つの分野であり、そのすべてが報告する量は位相を結合定数で割ったものです。1.2節でその主張を正確に述べ、残りの4章がそれを現金化していきます。
学習目標
本章を修了すると、以下のことができるようになります。
- 量子系を良い計測器にする2つの性質 — 周波数標準としてはたらく離散遷移と、場を積分する位相 — を説明し、本コースの各方式でその両方を指摘できる
- 本コースの4つの計測方式のいずれもRamsey干渉計として書き、それぞれのビームスプリッタ・位相・読み出しを名指しできる
- 二項統計から射影ノイズ限界 $\delta\phi = 1/(C\sqrt{N})$ を導出し、$1/\sqrt{N}$ スケーリングを数値的に検証し、標準量子限界が何を禁じ何を禁じていないかを述べられる
- 感度 $\eta$ を「単位ルートヘルツあたりの信号」として定義し、指定した平均時間後に到達する分解能を正しく予測し、デッドタイム補正を含めて最適干渉時間 $\tau \approx T_2/2$ を導出できる
- Allan偏差を計算し、その傾きから白色・フリッカー・ランダムウォークの各領域を判別し、安定度曲線なしに引用された感度が不完全な仕様である理由を説明できる
- パルス系列のフィルター関数を使って測定帯域を選択し、同じ機構を両方向に読める — ノイズからのデカップリングとして、そしてノイズの分光として
- 計測課題を「感度対空間分解能」の地図の上に置き、スケーリング則だけから量子センサがそれに対処できるかを判断できる
記法と単位
ここで固定し、以降のコース全体で変更せずに用いる5つの規約です。3つはハードウェア編からの継承で、2つはセンシングが必要とするため新設したものです。
継承: 換算単位、角周波数と循環周波数、コヒーレンス時間。 ハミルトニアンは $\hbar = 1$ で書きます。$\Omega$(Rabi周波数)、$\Delta$(離調)、$\gamma$(回転比)などの記号は角量であり、単位は rad/s または rad s$^{-1}$ T$^{-1}$ です。数値として引用するのは循環量であり、$\Omega/2\pi$ や $\gamma/2\pi$ と書きます。$T_1$、$T_2$、$T_2^\ast$、限界 $T_2 \le 2T_1$、Ramsey系列とHahnエコー系列、そしてフィルター関数の形式は量子ハードウェア編第1章1.4節と厳密に同じ意味であり、本コースはこれらを再定義しません。
新設: 感度 $\eta$。 本コース全体で「単位ルートヘルツあたりの信号振幅」として書きます — 磁力計なら T/$\sqrt{\mathrm{Hz}}$、電場計なら V m$^{-1}$/$\sqrt{\mathrm{Hz}}$、温度計なら K/$\sqrt{\mathrm{Hz}}$ です。定義は1.3節で一度だけ固定します。$\eta = \delta X_\mathrm{min}\sqrt{T}$ であり、$\delta X_\mathrm{min}$ は総平均時間 $T$ 後の不確かさです。これは振幅スペクトル密度であってパワースペクトル密度ではなく、両者は2乗だけ違います。この区別は毎回確認する価値があります。文献には両方の規約が現れ、それらは桁で食い違うからです。
新設: コントラスト $C$。 実際に達成された縞の振幅 $0 < C \le 1$ であり、理想的な干渉計と記録された信号の間にあるあらゆる不完全性 — デコヒーレンス、不完全な初期化、不完全なパルス、2つの結果を完全に分離できない読み出し — を吸収します。$C$ はあらゆる感度の式の分母に入り、たいていの場合これが最も安く改善できる量です。
1.1 量子系を良い計測器にするもの
性質は1つではなく2つ
あらゆる計測器は基準と変換器を必要とします。定規はその両方をもっています。刻まれた目盛が基準であり、対象に沿えるという行為が変換器です。量子2準位系はたまたまその両方を同時に供給しており、だからこそ不当なほど良い計測器になります。
基準は離散遷移です。 エネルギー $\hbar\omega_0$ だけ隔たった2準位は1つの周波数を定めます。そしてその準位は作製工程ではなくハミルトニアンから来るので、その周波数は再現します。すべての $^{87}\mathrm{Rb}$ 原子は同じ基底状態超微細分裂をもち、ダイヤモンド中のすべてのNV中心は同じゼロ磁場分裂をもち、すべての超伝導ループは同じ磁束量子 $\Phi_0 = h/2e$ で磁束を囲みます。そのような数値に依拠した校正はドリフトしません。ドリフトする要素がそこに無いからです。これが原子時計を可能にしている性質であり、同時に量子磁力計を絶対測定にしている性質でもあります。測定周波数から磁場への換算が基礎物理定数なので、この計測器は基準磁石に対する校正を必要としません。
変換器は位相です。 2準位の重ね合わせを準備すると、相対位相は $\phi(t) = \int_0^t \delta\omega(t')\,dt'$ に従って進みます。$\delta\omega$ は外界が準位間隔に課したずれです。したがって位相は摂動の時間積分であり、系自身が蓄積し、途中に増幅器が入らず、熱雑音が付け加わることもありません。最後に読み出せばその積分が回収されます。系はデコヒーレンスするまで完璧な積分器であり、それがどれだけ続くかが残りすべてを決めます。
どちらか一方だけでは足りません。結合のない安定した基準は読み出せない時計であり、安定した基準のない強い結合は目盛のない温度計です。両者の間の緊張はハードウェア編が冒頭で扱うものとまったく同じ — 孤立と可制御性の対立 — であり、その解消法も同じ、すなわち周波数選択性で、1.4節で展開します。
測る価値のある摂動
準位間隔をずらしうるものは何でしょうか。リストは短く、それが量子センサの測定対象のリストです。
| 摂動 | 結合項 | 準位間隔のずれ | 本コースにおける主役センサ |
|---|---|---|---|
| 磁場 | $-\boldsymbol{\mu}\cdot\mathbf{B}$ | $\delta\omega = \gamma B$、線形 | NV中心(第2章)、SQUID(第3章)、蒸気セル(第4章) |
| 電場 | $-\mathbf{d}\cdot\mathbf{E}$ | 極性欠陥では線形、それ以外は2次(Stark) | NV中心(第2章) |
| 温度 | 格子膨張を通じた $\partial D/\partial T$ | 動作範囲内で $\delta T$ に線形 | NV中心(第2章) |
| ひずみ・圧力 | 結晶場の変化 | ひずみテンソル成分に線形 | NV中心(第2章) |
| 回転・加速度 | 経路依存の作用 | Sagnac位相と重力位相 | 原子干渉計(第4章) |
| 磁束 | $2\pi\Phi/\Phi_0$ | 単に線形ではなく厳密に周期的 | dc SQUID(第3章) |
2つの行についてここで注意しておきます。磁束の行だけが異質なのは、応答が線形ではなく周期的だからです。SQUIDは位相を $2\pi$ を法として報告し、それを展開するにはフィードバックループの中で動作させなければなりません。それが第3章の磁束ロックループです。そして温度とひずみの行は、実験者が望むか否かにかかわらず磁力計を多パラメータ計測器に変えてしまう要素です。測定されたNVの分裂のずれは、熱とひずみの寄与を分離したあとで初めて磁場になります。それが第2章の実務のかなりの部分を占めます。
これがなぜ特性評価技術なのか
本コースは量子系の道場ではなく材料科学基礎道場に置かれており、その理由はすでに見えています。上の表のあらゆる量は、空間分解能をもって測られた瞬間に材料の量になります。薄膜上を50 nmで写した磁場は磁区像です。同じ写像を通電デバイス上で行えば電流密度の再構成です。位置の関数として測った緩和率 $1/T_1$ はギガヘルツ帯の磁気ノイズの地図であり、すなわち試料中のスピン揺らぎの地図です。動作中のトランジスタ内部の100 nmでの温度分布は、どんな熱電対にもできない熱設計の測定です。
この道場にすでに住んでいる計測器 — X線回折、電子顕微鏡、分光、電気・磁気測定 — はそれぞれ構造・組成・バルク応答についての問いに答えます。量子センサはそのどれも答えない問いに答えます。すなわち、試料に触れることなく、試料全体のアンサンブル平均を取ることもなく、いまここの局所的な場は何かという問いです。それが本コースの扱う空白です。
1.2 Ramseyプロトコル: コース全体を貫く1つのテンプレート
3つのステップ、そして縞
本コースのあらゆる測定は同じ3ステップを踏みます。
- 分割。 初期化された状態から、2準位の等重ね合わせを準備します。スピン系ではこれは $\pi/2$ パルスであり、原子干渉計では波束を運動量方向に分割するレーザーパルスであり、SQUIDでは「分割」は空間的かつ恒久的です。超伝導電流がループの両腕を同時に通るからです。
- 蓄積。 重ね合わせを時間 $\tau$ だけ自由に発展させます。相対位相は $\phi = \int_0^\tau \delta\omega\,dt$ として成長し、静的な摂動に対しては単に $\phi = \delta\omega\,\tau$ です。
- 再結合と読み出し。 2番目の $\pi/2$ パルスを掛け、見えない位相を見える占有数差に変換して測定します。2番目の結果が得られる確率は
$$ P = \frac{1}{2}\left[1 - C\cos\phi\right] $$
で、$C$ はコントラストです。$\tau$ か摂動のいずれかを掃引するとRamsey縞が描かれ、この分野の技術のすべては、信号のある場所で縞が急峻になるように仕込むことに尽きます。
ステップ3こそ量子測定問題が片付けられる場所です。位相は観測量ではなく、占有数はそうです。最後のパルスは一方を他方へ写す干渉的再結合であり、位相を蓄積する系がそもそも計測器として使える唯一の理由です。
同じ干渉計を4回
本コースの4方式が1つのプロトコルであるという主張は表として書き出す価値があります。これがシリーズ全体の構成原理だからです。
| ビームスプリッタ | 位相の由来 | 再結合 | 読み出し | |
|---|---|---|---|---|
| NV磁気計測(第2章) | マイクロ波 $\pi/2$ パルス | Zeemanずれ、$\phi = \gamma B \tau$ | 2番目の $\pi/2$ パルス | スピン依存蛍光 |
| dc SQUID(第3章) | ループそれ自体、恒久的に | 磁束、$\phi = 2\pi\Phi/\Phi_0$ | 2番目の接合 | 臨界電流、電圧として読む |
| 原子時計(第4章) | 時計遷移への $\pi/2$ パルス | 局部発振器の離調、$\phi = \Delta\tau$ | 2番目の $\pi/2$ パルス | 蛍光または電子シェルビング |
| 原子干渉計(第4章) | レーザーパルス、運動量分割 | 経路依存の作用($\mathbf{g}$ と $\boldsymbol{\Omega}$ を含む) | 最後のレーザーパルス | 2つの出力ポートの占有数 |
どの行を横に読んでも系列は同じです。どの列を縦に読んでも物理はまったく違います — だから4つの章があるのです。しかし感度の式は行の構造だけに依存しており、だからこそ1.3節で一度導出して4回使えるのです。
第5の行も、本コースが章を割かないとはいえ覚えておく価値があります。核磁気共鳴は核スピンによる同じ干渉計であり、その自由誘導減衰は再結合をパルスではなく検出コイルが行うRamsey測定です。NMR実験をしたことのある人はすでに本節のすべてを実行しています。
RamseyとRabi: 自由区間が勝つ理由
準位間隔を測るもっと古い方法があります。連続駆動を遷移をまたいで掃引し、共鳴を見つける方法です。これがRabi法であり、第2章の連続波ODMRスペクトルがまさにそれです。これは機能しますが、分解能に問題があります。駆動された共鳴の線幅は駆動時間と駆動強度の両方で決まるので、線を細くするには弱く長く駆動しなければならず、その間ずっと駆動そのものが測ろうとしている準位を摂動しています。
Ramseyの洞察は、この2つの機能を時間的に分離することでした。パルスは短く強く、したがって効率的でその摂動も短時間で済みます。パルスの間の区間は長く完全に自由なので、系は測定対象だけの下で発展し、他の何の下でも発展しません。縞間隔はそのとき $1/\tau$ で、自由区間だけで決まります。したがって本コースの高精度測定はすべて分離パルスを用い、連続法が登場するのはRamsey系列が精密化する前に共鳴を見つけるためです。
1.3 どこまでできるのか: 射影ノイズ、標準量子限界、そして $\eta$
量子測定の還元不能なノイズ
1つの2準位系の終状態を読み出すと1ビットが得られます。$\lvert 0 \rangle$ か $\lvert 1 \rangle$ です。$\phi$ についての情報は確率 $P(\phi)$ の中にあり、確率は計数から推定されます。$N$ 個の独立な系をそれぞれ1回測ると — あるいは1つの系を $N$ 回測ると — $\lvert 1 \rangle$ の結果の個数は二項分布に従うので、推定量 $\hat{P} = k/N$ の標準誤差は
$$ \delta P = \sqrt{\frac{P(1-P)}{N}} $$
です。これが射影ノイズ(量子射影ノイズ、スピン射影ノイズとも)です。これは技術的なノイズではありません。測定の公理の帰結です。重ね合わせは測定される前には観測量の値をもたず、結果のランダムさは還元できません。
確率の誤差を位相の誤差に変換するには伝達関数の傾き $|dP/d\phi| = \tfrac{1}{2}C|\sin\phi|$ が必要です。
$$ \delta\phi = \frac{\delta P}{\lvert dP/d\phi \rvert} = \frac{2\sqrt{P(1-P)}}{C\lvert\sin\phi\rvert\sqrt{N}} $$
$P = \tfrac{1}{2}(1 - C\cos\phi)$ を代入すると $4P(1-P) = 1 - C^2\cos^2\phi$ となり、厳密な結果として
$$ \delta\phi = \frac{\sqrt{1 - C^2\cos^2\phi}}{C\lvert\sin\phi\rvert\sqrt{N}} $$
が得られます。この式の読み方が2つ重要です。コントラストが1のときこれは縞の上のどこでも $\delta\phi = 1/\sqrt{N}$ に潰れます。分子と分母がどちらも同じ因子 $|\sin\phi|$ をもち、それが打ち消し合うからです。これは本物の、そして少し意外な事実であり、Code Example 2 がそれを確認します。コントラストが有限のとき打ち消しは破れ、最小値は直交点 $\phi = \pi/2$ に来て
$$ \delta\phi_\mathrm{SQL} = \frac{1}{C\sqrt{N}} $$
となります。これが $N$ 個の無相関プローブによる位相推定の標準量子限界(SQL)です。実際の実験が干渉計を縞の最も急峻な点にバイアスするのはこのためです。理想的な場合に射影ノイズがそこで小さいからではなく、現実のあらゆる不完全性がそこで小さくなるからです。
SQLが何を禁じ何を許すかは注意深く述べる価値があります。両方の半分が誤って引用されるからです。SQLは無相関なプローブとそれぞれ1回の独立な測定で $1/\sqrt{N}$ を超えることを禁じます。$1/\sqrt{N}$ を超えること自体を禁じるのではありません。もつれたプローブは $\delta\phi \sim 1/N$、すなわちHeisenberg限界に到達できます。それが第5章の主題であり — そして第5章が論じるように — 到達することよりも保つことのほうがはるかに困難です。
感度 $\eta$、一度だけの定義
位相の不確かさは有用な仕様ではありません。変換係数で割って磁場の不確かさ $\delta B = \delta\phi/(\gamma\tau)$ にし、さらに実験が繰り返されることを勘案します。総測定時間 $T$ の中で系列は $M = T/(\tau + t_d)$ 回走ります。$t_d$ は1ショットあたり初期化と読み出しに費やすデッドタイムです。$M$ 個の独立な推定を平均すると結果は $\sqrt{M}$ だけ改善するので、
$$ \delta B(T) = \frac{1}{\gamma\,\tau\,C(\tau)\sqrt{N}}\sqrt{\frac{\tau + t_d}{T}} $$
となります。$T$ 依存性はむき出しの $1/\sqrt{T}$ であり、これが計測器に対して1つの数値を引用することを可能にしています。そこで
$$ \boxed{\;\eta \;\equiv\; \delta B(T)\,\sqrt{T} \;=\; \frac{\sqrt{\tau + t_d}}{\gamma\,\tau\,C(\tau)\,\sqrt{N}}\;} \qquad \left[\mathrm{T}/\sqrt{\mathrm{Hz}}\right] $$
と定義すれば、計測器は $\eta$ だけで指定されます。時間 $T$ 平均した後の磁場分解能は $\eta/\sqrt{T}$ です。この定義には3つの警告が付随し、そのすべてが実務で日常的に破られています。
- $\eta$ は振幅スペクトル密度です。 その2乗がパワースペクトル密度です。1 pT/$\sqrt{\mathrm{Hz}}$ と表示された磁力計のノイズパワーは $10^{-24}\ \mathrm{T}^2$/Hz であり、両者の混同は $10^{12}$ 倍の間違いです。
- $\eta$ は $1/\sqrt{T}$ 則を前提します。 ノイズが白色である平均時間の範囲でのみ有効な外挿です。1.4節はまるごとそれが破れる場合の話であり、誰もが望むよりずっと早く破れます。
- $\eta$ は帯域幅もダイナミックレンジも語りません。 素晴らしい $\eta$ をもつセンサが数ナノテスラの範囲でしか使えないことがあります。Ramsey縞は $2\pi$ 周期であり、$\tau$ を長くしたからです。
最適な干渉時間
$\eta$ の式には本物の最適点が含まれています。$\tau$ を長くすると因子 $\gamma\tau$ を通じて線形に効きますが、$C(\tau) = \exp[-(\tau/T_2)^p]$ を通じて指数的に損をします。ここで $p = 1$ は指数減衰、$p = 2$ はガウス減衰です。$t_d = 0$ のとき
$$ \eta \propto \frac{1}{\sqrt{\tau}\,\exp\left[-(\tau/T_2)^p\right]} \quad \Longrightarrow \quad \tau_\mathrm{opt} = \frac{T_2}{(2p)^{1/p}} $$
となり、$p = 1$ と $p = 2$ のどちらでも $T_2/2$ です — 覚えておくに足るほど便利な算術の偶然です。その点でコントラストは $e^{-1/2} = 0.61$(指数)または $e^{-1/4} = 0.78$(ガウス)まで落ちており、
$$ \eta_\mathrm{min} = \frac{\sqrt{2e}}{\gamma\sqrt{N\,T_2}} \qquad (p = 1,\; t_d = 0) $$
です。この結果の構造が本章で最も有用な事柄です。現れるのは積 $N T_2$ だけです。 コヒーレンス時間1秒の1スピンと、ピコ秒のコヒーレンス時間をもつ $10^{12}$ 個のスピンは、この式の上では同一の感度をもちます。第2章から第4章のあらゆる設計判断はその積の中の取引です。密なアンサンブルは $N$ を買い、双極子結合を通じて $T_2$ で支払います。希薄なものはその逆をします。極低温装置は $T_2$ を買い、他のあらゆるもので支払います。
この式は、どこで誠実さを失うかも示しています。デッドタイムは $N T_2$ の対称性を破ります。短い $T_2$ は多数の短いショットを意味し、したがってデューティ比が $t_d$ に支配されるからです。Code Example 3 が両方の主張を定量化し、2番目の主張こそ「スピンを増やせばよい」が戦略ではない理由です。
1.4 ノイズと安定度: 平均はいつ効かなくなるのか
$\eta$ が答えられない問い
ある磁力計が $\eta = 1\ \mathrm{pT}/\sqrt{\mathrm{Hz}}$ と表示されており、測定には 1 fT が必要だとします。素朴な算術は $(10^{-12}/10^{-15})^2 = 10^6$ 秒、すなわち12日間平均して帰宅せよと言います。この算術は間違っており、しかも $\eta$ をいくら改善しても直らない仕方で間違っています。ある平均時間を超えると読み値は改善をやめて悪化し始めます。平均で消そうとしていたノイズより大きく、計測器自身の基準がドリフトしてしまうからです。
これは特定のセンサの欠陥ではありません。あらゆる物理的な基準に共通する振る舞いであり、それを記述する道具がAllan偏差です。これは時間周波数の分野からそのまま借用したもので — 第4章の原子時計こそそれが発明された場所ですから — 適切な借用です。
Allan偏差
各々が時間 $\tau_0$ にわたる平均である測定値の記録 $y_k$ を取ります。それを連続する $m$ 個の組に束ね、各組の平均 $\bar{y}_j$ が平均時間 $\tau = m\tau_0$ を代表するようにします。Allan分散は連続する組平均の差の2乗平均の半分です。
$$ \sigma_y^2(\tau) = \frac{1}{2}\left\langle \left(\bar{y}_{j+1} - \bar{y}_j\right)^2 \right\rangle $$
Allan偏差 $\sigma_y(\tau)$ はその平方根です。これが通常の標準偏差ではなく用いられる理由は2つあります。隣接する組の差しか使わないので、遅いドリフトはひとつの平均区間の間に信号がどれだけ動いたかを通じてしか寄与せず、したがって通常の分散が存在しないノイズ過程 — $1/f$ ノイズを含む — に対しても収束します。そして係数 $\tfrac{1}{2}$ は白色ノイズに対して $\sigma_y(\tau)$ が組平均の通常の標準偏差と一致するように選ばれており、両方が有効な唯一の場合に両者が一致します。
診断能力は傾きにあります。各ノイズ過程は固有のべき則をもち、両対数プロット上で目視で区別できます。
| 領域 | パワースペクトル密度 | $\sigma_y(\tau)$ | 傾き | 物理的な起源 |
|---|---|---|---|---|
| 白色 | $S_y \propto f^0$ | $\propto \tau^{-1/2}$ | $-1/2$ | 射影ノイズ、光子ショットノイズ、増幅器ノイズ |
| フリッカー | $S_y \propto 1/f$ | 一定 | $0$ | 2準位揺動子、温度揺らぎ、あらゆる $1/f$ |
| ランダムウォーク | $S_y \propto 1/f^2$ | $\propto \tau^{+1/2}$ | $+1/2$ | 基準の遅い熱ドリフト、磁気シールドの緩和 |
| 線形ドリフト | 決定論的 | $= D\tau/\sqrt{2}$ | $+1$ | 経年変化、単調な温度上昇 |
白色ノイズ領域は $\eta$ が意味をもつ唯一の領域です。$1/\sqrt{T}$ が成り立つ唯一の領域だからです。フリッカーの平坦部はセンサの床であり、それより下では平均は一切効きません。上昇する枝は無駄より悪く、そこで長く平均することは答えを積極的に劣化させます。
2つの帰結が以降のコース全体を貫きます。第一に、安定度曲線なしの感度仕様は不完全であり、有用な数値の組は $\eta$ と $\sigma_y(\tau)$ が反転する平均時間です。第二に、標準的な逃げ道は長く平均することではなく変調することです。フリッカーの折れ点より高い周波数で信号をチョップすれば、総実験時間がどれだけ長くても測定は白色領域の中で生きます。第2章と第3章の本気の磁気計測はすべてまさにこの理由で変調測定であり、第4章は同じ論理を時計に適用します。
フィルター関数: 同じ機構を両方向に読む
測定を変調することは量子ビットをデカップリングすることと同じ操作であり、その形式はハードウェア編で確立済みのものです。$\pi$ パルス列は蓄積する位相にスイッチング関数 $s(t) \in \lbrace +1, -1 \rbrace$ を課すので、
$$ \phi(\tau) = \int_0^\tau s(t)\,\delta\omega(t)\,dt , \qquad \left\langle\phi^2\right\rangle = \int_0^\infty S(f)\,\left|\tilde{s}(f,\tau)\right|^2 df $$
となります。ここで $\tilde{s}(f,\tau) = \int_0^\tau s(t)e^{-2\pi i f t}dt$ であり、$|\tilde{s}|^2$ がフィルター関数です。量子ハードウェア編第1章1.4節がこれを導出し、自由誘導減衰とHahnエコーの閉形式を与えています。本コースは導出を繰り返さずにそれを使います。新しいのは読み方です。
保護として読むと、CPMG-$N$ 系列は通過帯域を $f \approx N/2\tau$ 付近に置き、直流に零点をもつので、そのままでは $T_2$ を制限していた遅いノイズを排除します。それがハードウェア編の用法です。
測定として読むと、同一のフィルターはロックインアンプです。パルス列と同期して振動する周波数 $f_\mathrm{ac}$ の磁場はもはや平均して零になりません。$\pi$ パルスが蓄積の符号を、ちょうど磁場が符号を変えるときに反転させるので、寄与が整流されて足し合わされます。正弦波に整合した矩形波フィルターの整流効率は $2/\pi$ であり、
$$ \phi = \frac{2}{\pi}\,\gamma\,B_\mathrm{ac}\,\tau \qquad \Longrightarrow \qquad \eta_\mathrm{AC} = \frac{\pi}{2}\,\eta_\mathrm{DC}\Big|_{\tau \to T_2} $$
となります。因子 $\pi/2$ はわずかな損失であり、得られるのは $\tau$ を $T_2^\ast$ ではなく $T_2$ まで伸ばせるという利得です。固体センサではそれは1桁から2桁に相当します。AC磁気計測がDC磁気計測より感度が高い理由はまるごとこれです。
分光として読むと、$N$ を掃引すると通過帯域が環境をまたいで動き、コヒーレンス曲線の族が反転して $S(f)$ を与えます。$S(f) = A/f^{\alpha}$ に対してコヒーレンス時間は $T_2(N) \propto N^{\alpha/(\alpha+1)}$ に従うので、デカップリング曲線の指数がノイズスペクトルの指数を測ります。それはホスト材料中の欠陥集団についての主張です。これがセンサが自分自身の結晶を特性評価するという意味であり、第2章の $T_1$ リラクソメトリの直接の祖先です。
1.5 何が測れるのか、そしてどの分解能で
このトレードオフは交渉不能である
感度と空間分解能は同じ議論であり、その理由は工学ではなく幾何です。線寸法 $d$ のセンサが密度 $n$ でスピンを含み $N = n d^3$ だとします。$\eta \propto 1/\sqrt{N T_2}$ から
$$ \eta_B \;\propto\; \frac{1}{\sqrt{n\,d^3\,T_2}} \;\propto\; d^{-3/2} $$
です。大きいセンサは良い磁力計であり、その指数は $3/2$ です。しかし空間分解能は $d$ そのものなので、分解能を1桁良くすると磁場感度で $10^{3/2} \approx 32$ 倍を失います。同じ物理をどう並べ替えてもこれを避けられません。
関心のある量が場ではなく源であれば、トレードオフは反転します。距離 $z$ にある磁気双極子 $m$ は $B \sim \mu_0 m/4\pi z^3$ をつくるので、$z \approx d$ に座れるほど小さいセンサが検出できる最小モーメントは
$$ m_\mathrm{min} \;\sim\; \frac{4\pi d^3}{\mu_0}\,\eta_B \;\propto\; d^{3/2} $$
です。モーメント感度については小さいほど良い、しかも同じ $3/2$ 乗です。これがこの分野の2つの流派が実務上あれほど違って見える理由です。ミリメートル規模の蒸気セルやSQUIDは広い領域にわたる弱い場を測るのに無敵であり、走査探針の先端にある1個の欠陥は小さな対象を測るのに無敵です。両者は同じ式を逆向きに読んだものです。
スケーリングが止まる場所
それにぶつかる章の前に、2つの限界に名前を付けておきます。
密度は感度を無限には買わない。 $n$ を上げれば $N$ は上がりますが、$T_2$ も短くなります。密なスピンアンサンブルにおける支配的な位相破壊機構は他のスピンの双極子磁場であり、$T_2 \propto 1/n$ を与えるからです。すると積 $N T_2$ は$n$ に依らなくなり、感度の改善は完全に止まります。Code Example 6 がこの打ち消しを明示します。逃げ道はいずれも興味深く、いずれも困難です。アンサンブルを自分自身からデカップリングする、モーメントの小さな種を使う、あるいは不均一性を受け入れてより速く変調する、です。
距離は残酷である。 双極子磁場の $z^{-3}$ 減衰は、距離が1桁増えると信号が3桁減り、したがって必要な $N T_2$ が6桁増えることを意味します。この1本のスケーリング則が、ナノスケール磁気イメージングが表面技術である理由、走査磁気計測のあらゆる論文で最初に報告される数値がセンサ-試料間距離である理由、そして第2章の実務上の困難のかなりの部分が「表面がそれを壊さないまま欠陥をどれだけ結晶表面に近づけられるか」である理由を説明します。
地図
2つの軸を合わせると、本コースが航行に使う地図が得られます。これは意図的に数値ではなくスケーリングと領域として述べられています。数値は動き、スケーリングは動かないからです。
| 構成 | 分解能のスケール | 感度のスケール | 何のためのものか |
|---|---|---|---|
| 走査探針上の単一欠陥 | 距離で決まる、数十 nm | $\eta_B$ は最悪、$m_\mathrm{min}$ は最良 | 磁壁、スキルミオン、単一分子、エッジ電流 |
| 浅い欠陥層による広視野イメージング | 光学的、数百 nm | 中間 | デバイスの電流分布、広視野の磁気テクスチャ |
| バルクアンサンブル、ミリメートル規模 | なし — 平均される | $\eta_B$ は最良 | 磁化率、バルク磁化、非シールド環境での磁場測定 |
| 超伝導ピックアップコイル | ループ寸法 | 単位面積あたりの $\eta_\Phi$ が最良 | 磁束イメージング、磁化率測定、すでに極低温である対象 |
| 蒸気セル | セル寸法、mm | 優秀、極低温不要 | 試料を冷やせない場合の磁場測定 |
| 原子干渉計 | メートル — それが基線である | 慣性量で最良 | 重力、回転、等価原理の検証 |
最後の列を読むことが計測器選択の誠実な方法であり、それが残りのコースの構成です。第2章が最初の2行、第3章が4行目、第4章が5行目と6行目を扱い、第5章はそのいずれに対してもエンタングルメントが何を加えるかを問います。
1.6 数値実験室
6つの例でコース全体が使う道具箱を構築します。最初の3つが感度の式を確立してその統計的な中身を検証し、4番目と5番目が安定度と帯域選択を確立し、6番目が分解能の地図を作ります。すべてNumPyとSciPyであり、以下のあらゆる数値はその上のコードが生成したものです。
Code Example 1: 位相の蓄積、そして感度 $\eta$
出発点は1行の算術 — ある磁場がある系にある時間でどれだけの位相を書き込むか — であり、続いて残りのコースが関数として呼び出す形で $\eta$ を定義します。
import numpy as np
# 基礎物理定数(SI)。本コースに登場する数値はすべて基礎物理定数か粒子の
# 性質であり、装置やベンダーのスペックは一切現れません。
h = 6.62607015e-34 # プランク定数, J s
hbar = 1.054571817e-34 # 換算プランク定数, J s
mu_B = 9.2740100783e-24 # ボーア磁子, J/T
Phi0 = 2.067833848e-15 # 磁束量子, Wb
kB = 1.380649e-23 # ボルツマン定数, J/K
mu0 = 1.25663706212e-6 # 真空の透磁率, N/A^2
NT = 1e-9 # 1ナノテスラ
US = 1e-6 # 1マイクロ秒
# 角回転比(gyromagnetic ratio), rad s^-1 T^-1: 単位時間・単位磁場あたりに
# スピンが蓄積する位相。これらは粒子の性質であり、スペックではありません。
systems = [
("electron spin, S = 1/2", 1.76085963e11),
("Rb-87 ground state, g_F = 1/2", 0.5 * mu_B / hbar),
("proton, 1H", 2.675221874e8),
("Xe-129 nucleus", 7.441e7),
]
tau = 1.0 * US
print("場の積分器としての2準位系: phi = gamma B tau")
hdr = (f"{'system':<32}{'gamma/2pi':>16}{'phi per nT':>17}"
f"{'B for 1 rad':>16}")
print(hdr)
print("-" * len(hdr))
for name, g in systems:
print(f"{name:<32}{g/(2*np.pi)/1e6:>11.4g} MHz/T"
f"{g*NT*tau:>13.3e} rad{1.0/(g*tau)/NT:>12.4g} nT")
print(f"(表全体で干渉時間 tau = {tau/US:.0f} us)")
# 同じ主張を超伝導ループについて述べたもの。位相はZeemanエネルギーではなく
# ループを貫く磁束で決まります: phi = 2 pi Phi/Phi0。
print("\n同じ考えのループ版: phi = 2 pi Phi / Phi0")
hdr2 = f"{'loop side':<14}{'area':>14}{'B for one Phi0':>18}{'phi per nT':>16}"
print(hdr2)
print("-" * len(hdr2))
for label, side in [("10 um", 10e-6), ("100 um", 100e-6), ("1 mm", 1e-3)]:
A = side ** 2
print(f"{label:<14}{A:>11.3e} m2{Phi0/A/NT:>15.4g} nT"
f"{2*np.pi*NT*A/Phi0:>12.3e} rad")
def eta_ramsey(gamma, tau, T2, N=1.0, p=1.0, t_dead=0.0):
"""Ramsey測定の磁場感度を T/sqrt(Hz) 単位で返します。
eta = dB_min * sqrt(T_total): 1秒間平均したあとに残る磁場の不確かさです。
tau は自由歳差時間、T2 は縞のコントラストを C = exp(-(tau/T2)**p) の形で
制限するコヒーレンス時間、N は1ショットで読み出す独立なスピン数、
t_dead は1ショットあたり初期化と読み出しに費やす時間です。
"""
C = np.exp(-(tau / T2) ** p)
return np.sqrt(tau + t_dead) / (gamma * tau * C * np.sqrt(N))
gamma_e = systems[0][1]
print("\n最適な tau = T2/2、N = 1 における単一電子スピンの感度")
hdr3 = (f"{'T2':>10}{'tau = T2/2':>13}{'eta numeric':>18}"
f"{'sqrt(2e)/(gamma sqrt(T2))':>27}")
print(hdr3)
print("-" * len(hdr3))
for label, T2 in [("1 us", 1e-6), ("10 us", 1e-5), ("100 us", 1e-4),
("1 ms", 1e-3), ("1 s", 1.0)]:
num = eta_ramsey(gamma_e, T2 / 2, T2)
ana = np.sqrt(2 * np.e) / (gamma_e * np.sqrt(T2))
print(f"{label:>10}{T2/2/US:>10.4g} us{num/NT:>12.4g} nT/rtHz"
f"{ana/NT:>21.4g} nT/rtHz")
print("eta は 1/sqrt(T2) で改善します。コヒーレンス時間を100倍にして")
print("ようやく感度が1桁改善し、この式の中に無料の項は一つもありません。")
場の積分器としての2準位系: phi = gamma B tau
system gamma/2pi phi per nT B for 1 rad
---------------------------------------------------------------------------------
electron spin, S = 1/2 2.802e+04 MHz/T 1.761e-04 rad 5679 nT
Rb-87 ground state, g_F = 1/2 6998 MHz/T 4.397e-05 rad 2.274e+04 nT
proton, 1H 42.58 MHz/T 2.675e-07 rad 3.738e+06 nT
Xe-129 nucleus 11.84 MHz/T 7.441e-08 rad 1.344e+07 nT
(表全体で干渉時間 tau = 1 us)
同じ考えのループ版: phi = 2 pi Phi / Phi0
loop side area B for one Phi0 phi per nT
--------------------------------------------------------------
10 um 1.000e-10 m2 2.068e+04 nT 3.039e-04 rad
100 um 1.000e-08 m2 206.8 nT 3.039e-02 rad
1 mm 1.000e-06 m2 2.068 nT 3.039e+00 rad
最適な tau = T2/2、N = 1 における単一電子スピンの感度
T2 tau = T2/2 eta numeric sqrt(2e)/(gamma sqrt(T2))
--------------------------------------------------------------------
1 us 0.5 us 13.24 nT/rtHz 13.24 nT/rtHz
10 us 5 us 4.187 nT/rtHz 4.187 nT/rtHz
100 us 50 us 1.324 nT/rtHz 1.324 nT/rtHz
1 ms 500 us 0.4187 nT/rtHz 0.4187 nT/rtHz
1 s 5e+05 us 0.01324 nT/rtHz 0.01324 nT/rtHz
eta は 1/sqrt(T2) で改善します。コヒーレンス時間を100倍にして
ようやく感度が1桁改善し、この式の中に無料の項は一つもありません。
注目すべき点。 最初の表が手元に置いておく換算です。電子スピンは1マイクロ秒あたり1ナノテスラあたり $1.76\times10^{-4}$ rad を蓄積するので、1ラジアンの位相 — 完全に分解された縞 — には $\tau = 1\ \mu$s で約 5.7 $\mu$T、$\tau = 1$ ms なら 5.7 nT が必要です。4つの行は $\gamma$ の3桁半にわたっており、この1つの因子こそ、電子スピンセンサが小体積の磁気計測を支配し、核スピンセンサはそのはるかに長いコヒーレンスがそれを補って余りある場面で使われる理由です。
ループの表は同じ点を第3章の言葉で述べています。1 mm のループは 2.1 nT で1磁束量子を囲むので、ナノテスラに対するSQUIDの位相応答は 3 rad であり、1マイクロ秒干渉させた電子スピンより単位ナノテスラあたり5桁多い位相です。それがSQUIDが史上最も単位体積あたり感度の高い磁力計である理由そのものであり、同時に50 nm分解能では役に立たない理由でもあります。感度は面積から来ていたのです。
最後のブロックは閉形式 $\eta_\mathrm{min} = \sqrt{2e}/(\gamma\sqrt{N T_2})$ が数値的最小値を厳密に再現することを確認し、残りのコースで繰り返し現れるスケールを固定します。ミリ秒のコヒーレンスをもつ単一電子スピンは 0.42 nT/$\sqrt{\mathrm{Hz}}$ の磁力計です。この数値はそれ自体では大したものではありません — 1.5節の地図が、それが数立方ナノメートルの体積で達成されていることを思い出させるまでは。
Code Example 2: 伝達関数、動作点、そして射影ノイズ
標準量子限界は統計的な主張であり、断言よりモンテカルロにふさわしいものです。この例はまず縞のどこに座るべきかを表にし、次に二項標本を引いて得られる位相誤差の $N$ に対するスケーリングを測ります。
"""第1章 Code Example 2: Ramseyの伝達関数、動作点、そして射影ノイズ。
Code Example 1 の続き(同一セッション)。"""
def ramsey_probability(phi, contrast=1.0):
"""Ramsey系列のあとに |1> が得られる確率。
2つの pi/2 パルスが蓄積位相 phi を占有数に変換します。phi には意図的な
バイアス位相も含まれ、それが縞の上のどこを動作点にするかを決めます。
"""
return 0.5 * (1.0 - contrast * np.cos(phi))
def phase_uncertainty(phi, N, contrast=1.0):
"""射影ノイズのみから決まる1ショットの位相不確かさ。
誤差伝播: 測定量は |1> が出た割合であり、その標準誤差は
sqrt(P(1-P)/N) です。これを傾き |dP/dphi| で割ると位相に変換されます。
"""
P = ramsey_probability(phi, contrast)
slope = 0.5 * contrast * np.abs(np.sin(phi))
with np.errstate(divide="ignore", invalid="ignore"):
return np.where(slope > 1e-9, np.sqrt(P * (1 - P) / N) / slope, np.inf)
print("縞のどこに座るべきか: N = 10000 スピン")
hdr = (f"{'bias phase':<12}{'P at C=1':>10}{'|dP/dphi|':>12}"
f"{'d phi, C=1':>13}{'d phi, C=0.3':>15}{'C=0.3 penalty':>15}")
print(hdr)
print("-" * len(hdr))
N_demo = 10000
sql = 1.0 / np.sqrt(N_demo)
for label, phi in [("0", 0.0), ("pi/8", np.pi/8), ("pi/4", np.pi/4),
("pi/2", np.pi/2), ("3pi/4", 3*np.pi/4), ("pi", np.pi)]:
P = ramsey_probability(phi)
slope = 0.5 * np.abs(np.sin(phi))
d1 = phase_uncertainty(phi, N_demo)
d2 = phase_uncertainty(phi, N_demo, contrast=0.3)
print(f"{label:<12}{P:>10.4f}{slope:>12.4f}{d1:>13.5f}{d2:>15.5f}"
f"{d2/(sql/0.3):>15.4f}")
print(f"標準量子限界 1/sqrt(N) = {sql:.5f}")
print("コントラストが1のとき、射影ノイズは縞の上のどこでも同じです。")
print("P(1-P) と傾きがどちらも sin(phi) の因子をもち、それが打ち消し合う")
print("からです。コントラストがこの縮退を解きます。C = 0.3 では直交点")
print("phi = pi/2 だけが 1/(C sqrt(N)) に到達します。")
# --- モンテカルロ: 推定量は本当に 1/sqrt(N) に従うか ------------------------
rng = np.random.default_rng(20260813)
phi_true = 0.05 # 直交点で読む小さな位相
n_repeats = 4000
print(f"\n直交点でのモンテカルロ, phi_true = {phi_true}, "
f"{n_repeats} 回反復")
hdr = (f"{'N spins':>10}{'d phi (MC)':>14}{'1/sqrt(N)':>13}{'ratio':>9}"
f"{'bias':>12}")
print(hdr)
print("-" * len(hdr))
Ns = np.array([10, 100, 1000, 10000, 100000, 1000000])
mc = []
for N in Ns:
P = ramsey_probability(np.pi / 2 + phi_true)
k = rng.binomial(N, P, size=n_repeats)
phi_hat = 2.0 * (k / N - 0.5) # 直交点まわりの線形逆変換
mc.append(phi_hat.std(ddof=1))
print(f"{N:>10d}{mc[-1]:>14.6f}{1/np.sqrt(N):>13.6f}"
f"{mc[-1]*np.sqrt(N):>9.4f}{phi_hat.mean()-phi_true:>12.2e}")
mc = np.array(mc)
slope_fit = np.polyfit(np.log10(Ns), np.log10(mc), 1)[0]
print(f"d phi の N に対する両対数傾き: {slope_fit:.4f} "
f"(標準量子限界: -0.5)")
# --- コントラストの低下は曲線全体をそのままスケールするだけ ------------------
print("\n直交点における有限コントラスト, N = 10000")
print(f"{'contrast C':>12}{'d phi':>12}{'1/(C sqrt(N))':>16}")
print("-" * 40)
for C in [1.0, 0.7, 0.3, 0.1]:
d = phase_uncertainty(np.pi / 2, N_demo, contrast=C)
print(f"{C:>12.2f}{d:>12.6f}{1/(C*np.sqrt(N_demo)):>16.6f}")
# --- そして感度の代償: 縞は 2 pi 周期である --------------------------------
print("\n単一電子スピンにおけるダイナミックレンジと感度の交換")
hdr = f"{'tau':>10}{'B for 2 pi (unambiguous)':>28}{'eta at N = 1':>20}"
print(hdr)
print("-" * len(hdr))
for label, t in [("1 us", 1e-6), ("10 us", 1e-5), ("100 us", 1e-4),
("1 ms", 1e-3)]:
B2pi = 2 * np.pi / (gamma_e * t)
print(f"{label:>10}{B2pi/NT:>23.4g} nT"
f"{np.sqrt(t)/(gamma_e*t)/NT:>13.4g} nT/rtHz")
print("干渉時間を長くすると感度は買えますが一意な測定範囲を失います。")
print("tau のべきがちょうど打ち消し合い、両者の積は一定です。")
縞のどこに座るべきか: N = 10000 スピン
bias phase P at C=1 |dP/dphi| d phi, C=1 d phi, C=0.3 C=0.3 penalty
-----------------------------------------------------------------------------
0 0.0000 0.0000 inf inf inf
pi/8 0.0381 0.1913 0.01000 0.08369 2.5108
pi/4 0.1464 0.3536 0.01000 0.04607 1.3820
pi/2 0.5000 0.5000 0.01000 0.03333 1.0000
3pi/4 0.8536 0.3536 0.01000 0.04607 1.3820
pi 1.0000 0.0000 inf inf inf
標準量子限界 1/sqrt(N) = 0.01000
コントラストが1のとき、射影ノイズは縞の上のどこでも同じです。
P(1-P) と傾きがどちらも sin(phi) の因子をもち、それが打ち消し合う
からです。コントラストがこの縮退を解きます。C = 0.3 では直交点
phi = pi/2 だけが 1/(C sqrt(N)) に到達します。
直交点でのモンテカルロ, phi_true = 0.05, 4000 回反復
N spins d phi (MC) 1/sqrt(N) ratio bias
----------------------------------------------------------
10 0.311725 0.316228 0.9858 -2.65e-03
100 0.099353 0.100000 0.9935 4.70e-04
1000 0.031597 0.031623 0.9992 1.64e-04
10000 0.009952 0.010000 0.9952 -2.25e-04
100000 0.003190 0.003162 1.0087 3.87e-05
1000000 0.001007 0.001000 1.0075 -1.74e-05
d phi の N に対する両対数傾き: -0.4981 (標準量子限界: -0.5)
直交点における有限コントラスト, N = 10000
contrast C d phi 1/(C sqrt(N))
----------------------------------------
1.00 0.010000 0.010000
0.70 0.014286 0.014286
0.30 0.033333 0.033333
0.10 0.100000 0.100000
単一電子スピンにおけるダイナミックレンジと感度の交換
tau B for 2 pi (unambiguous) eta at N = 1
----------------------------------------------------------
1 us 3.568e+04 nT 5.679 nT/rtHz
10 us 3568 nT 1.796 nT/rtHz
100 us 356.8 nT 0.5679 nT/rtHz
1 ms 35.68 nT 0.1796 nT/rtHz
干渉時間を長くすると感度は買えますが一意な測定範囲を失います。
tau のべきがちょうど打ち消し合い、両者の積は一定です。
注目すべき点。 最初の表には、ほとんどの解説が飛ばす結果が入っています。コントラストが1のとき、位相不確かさは2つの極値を除く縞のあらゆるバイアス位相で $1/\sqrt{N}$ です。$\sqrt{P(1-P)} = \tfrac{1}{2}|\sin\phi|$ と $|dP/d\phi| = \tfrac{1}{2}|\sin\phi|$ が同じ関数だからです。したがって「直交点で動作させなければならない」という通説は射影ノイズについての主張ではまったくなく、それ以外のすべてについての主張です。$C = 0.3$ にすると縮退はただちに解け、penalty の列が $\phi = \pi/8$ に座ることの代償として 2.5 倍を示し、$\phi = \pi/2$ だけが $1/(C\sqrt{N})$ に到達し続けます。
モンテカルロが荷重を担う検証です。$N$ の6桁、各 4000 回反復で、測定された標準偏差は全域にわたって $1/\sqrt{N}$ を1%より良く追跡し、両対数の傾きは厳密値 $-1/2$ に対して $-0.4981$ です。bias の列は、直交点まわりの線形逆変換が密かに系統的でないことを保証するためにあります。残留バイアスは $N = 10$ で $2.7\times10^{-3}$ であり $N$ とともに減少します。これは推定量の欠陥ではなく縞の $O(\phi^3)$ の曲率として期待されるものです。これが「標準量子限界」の運用上の意味です — 哲学的な限界ではなく両対数プロット上の傾き $-1/2$ であり、どんな実験でもそれを自分で検証できますし、すべきです。
最後のブロックは感度に値札を付けます。縞は $2\pi$ 周期なので、36 nT を分解できるほど長い干渉時間は、36 nT を 0 nT と混同するほど短い時間でもあります。感度と一意な測定範囲の積は一定で、そこから逃れるには磁場の事前推定か、粗い測定で曖昧性を解いてから精密化する多-$\tau$ プロトコルが必要です。それこそ第2章が未知の背景磁場をもつ実試料を写そうとした瞬間に必要になる位相推定戦略です。
Code Example 3: 最適な干渉時間と、デッドタイムの代償
感度の式には自由パラメータが1つ $\tau$ と、交渉不能なオーバーヘッドが1つ $t_d$ あります。この例は最適点を見つけ、閉形式と照合し、初期化と読み出しを支払ったあとに理想のどれだけが残るかを示します。
"""第1章 Code Example 3: 最適な干渉時間。
Code Example 1、2 の続き(同一セッション)。"""
T2_ref = 100.0 * US
tau_grid = np.logspace(-3, 0.7, 40001) * T2_ref
print(f"最適な干渉時間, T2 = {T2_ref/US:.0f} us, デッドタイムなし")
hdr = (f"{'decay exponent p':>18}{'tau_opt numeric':>18}"
f"{'T2/(2p)^(1/p)':>17}{'contrast there':>17}")
print(hdr)
print("-" * len(hdr))
for p in [1.0, 1.5, 2.0, 3.0]:
eta = eta_ramsey(gamma_e, tau_grid, T2_ref, p=p)
t_opt = tau_grid[np.argmin(eta)]
ana = T2_ref / (2 * p) ** (1.0 / p)
print(f"{p:>18.1f}{t_opt/US:>15.4f} us{ana/US:>14.4f} us"
f"{np.exp(-(t_opt/T2_ref)**p):>17.4f}")
print("p = 1 と p = 2 では最適点がちょうど T2/2 に来ます。これが")
print("「コヒーレンス時間の半分ほど干渉させよ」という定石の根拠です。")
# --- デッドタイムは最適点を動かし、しばしば支配的なコストになる --------------
print(f"\n1ショットあたりのデッドタイム, p = 1, T2 = {T2_ref/US:.0f} us")
hdr = (f"{'t_dead':>10}{'tau_opt':>13}{'duty cycle':>13}"
f"{'eta_min':>18}{'penalty':>10}")
print(hdr)
print("-" * len(hdr))
eta0 = None
for label, td in [("0", 0.0), ("1 us", 1e-6), ("10 us", 1e-5),
("100 us", 1e-4), ("1 ms", 1e-3)]:
eta = eta_ramsey(gamma_e, tau_grid, T2_ref, p=1.0, t_dead=td)
i = int(np.argmin(eta))
t_opt, e_min = tau_grid[i], eta[i]
if eta0 is None:
eta0 = e_min
print(f"{label:>10}{t_opt/US:>10.4g} us{t_opt/(t_opt+td):>13.4f}"
f"{e_min/NT:>12.4g} nT/rtHz{e_min/eta0:>10.2f}")
print("コヒーレンス時間の10倍かかる読み出しは感度を1桁犠牲にし、")
print("T2 をどれだけ改善してもそれは取り戻せません。")
# --- 同じ eta を長寿命の1スピンでも多数のスピンでも達成できる ---------------
print("\n1スピン対アンサンブル: 効くのは積 N T2 だけ")
hdr = (f"{'N spins':>12}{'T2':>10}{'N T2':>10}{'eta, no dead time':>22}"
f"{'eta, t_dead = 1 us':>23}")
print(hdr)
print("-" * len(hdr))
for N, T2 in [(1, 1.0), (1e4, 1e-4), (1e6, 1e-6), (1e12, 1e-12)]:
e0 = eta_ramsey(gamma_e, T2 / 2, T2, N=N)
e1 = eta_ramsey(gamma_e, T2 / 2, T2, N=N, t_dead=1e-6)
print(f"{N:>12.0e}{T2:>10.0e}{N*T2:>10.0e}{e0/NT:>14.4g} nT/rtHz"
f"{e1/NT:>15.4g} nT/rtHz")
print("真ん中の列が設計変数であり、最後の列が落とし穴です。短い T2 と")
print("引き換えに得た大きな N は、デューティ比でその代償を払います。")
最適な干渉時間, T2 = 100 us, デッドタイムなし
decay exponent p tau_opt numeric T2/(2p)^(1/p) contrast there
----------------------------------------------------------------------
1.0 49.9994 us 50.0000 us 0.6065
1.5 48.0778 us 48.0750 us 0.7165
2.0 49.9994 us 50.0000 us 0.7788
3.0 55.0288 us 55.0321 us 0.8465
p = 1 と p = 2 では最適点がちょうど T2/2 に来ます。これが
「コヒーレンス時間の半分ほど干渉させよ」という定石の根拠です。
1ショットあたりのデッドタイム, p = 1, T2 = 100 us
t_dead tau_opt duty cycle eta_min penalty
----------------------------------------------------------------
0 50 us 1.0000 1.324 nT/rtHz 1.00
1 us 50.97 us 0.9808 1.337 nT/rtHz 1.01
10 us 57.41 us 0.8517 1.442 nT/rtHz 1.09
100 us 78.08 us 0.4385 2.119 nT/rtHz 1.60
1 ms 95.64 us 0.0873 5.115 nT/rtHz 3.86
コヒーレンス時間の10倍かかる読み出しは感度を1桁犠牲にし、
T2 をどれだけ改善してもそれは取り戻せません。
1スピン対アンサンブル: 効くのは積 N T2 だけ
N spins T2 N T2 eta, no dead time eta, t_dead = 1 us
-----------------------------------------------------------------------------
1e+00 1e+00 1e+00 0.01324 nT/rtHz 0.01324 nT/rtHz
1e+04 1e-04 1e+00 0.01324 nT/rtHz 0.01337 nT/rtHz
1e+06 1e-06 1e+00 0.01324 nT/rtHz 0.02293 nT/rtHz
1e+12 1e-12 1e+00 0.01324 nT/rtHz 18.73 nT/rtHz
真ん中の列が設計変数であり、最後の列が落とし穴です。短い T2 と
引き換えに得た大きな N は、デューティ比でその代償を払います。
注目すべき点。 最初の表は4つの減衰形について $\tau_\mathrm{opt} = T_2/(2p)^{1/p}$ を4桁まで検証し、その偶然を露わにします。指数減衰とガウス減衰は最適点をちょうど $T_2/2$ に置きます。そこに残るコントラストは違う(0.61 対 0.78)にもかかわらずです。したがってこの定石は導出が明らかに保証しない仕方で頑健であり、減衰形を知らずに使っても安全です。
デッドタイムの表が誠実な補正であり、2つの別のことをしています。最適点をより長い $\tau$ へ動かします — $t_d = T_2$ では最良の干渉時間は $0.5\,T_2$ ではなく $0.96\,T_2$ です。ショットが高価になったので、そのオーバーヘッドに見合う価値をもたせなければならないからです。そして $\eta$ を $\sqrt{(\tau+t_d)/\tau}$ だけ劣化させ、$t_d = 10\,T_2$ では 3.9 倍になります。読み出しのオーバーヘッドが一級の設計パラメータであるという1.3節の主張はこの列のことです。1 ms の読み出しと 100 $\mu$s の $T_2$ をもつ実験者は、結晶よりカメラに4倍多くの感度を失っています。
最後の表が最終列とともに覚えるべきものです。$N$ で12桁、$T_2$ で12桁にわたる4つの構成が同一の感度を与えます。$N T_2$ しか効かないからです。しかし 1 $\mu$s のデッドタイムを入れた同じ4つはそうなりません。$10^{12}$ スピン・ピコ秒コヒーレンスの構成は3桁悪くなります。ずっとリセットに時間を使っているからです。$N T_2$ は物理には正しい性能指標であり装置には誤った性能指標であって、この2つの主張の隙間でこの分野の工学のほとんどが起きています。
Code Example 4: Allan偏差とその3つの領域
次は安定度の問いです。この例は単一の生成器から白色・フリッカー・ランダムウォークのノイズを合成し、それぞれのAllan偏差を計算して3つの特徴的な傾きを回収し、さらにそれらを合成して実際の計測器がもつ床を作り出します。
"""第1章 Code Example 4: Allan偏差とその3つの領域。
Code Example 1 の続き(同一セッション)。"""
def colored_noise(n, alpha, rng):
"""片側PSDが S(f) ~ 1/f**alpha となる分散1のガウスノイズ。
白色ノイズを周波数領域で整形して作ります。alpha = 0 が白色ノイズ、
alpha = 1 がフリッカーノイズ、alpha = 2 がランダムウォークです。
"""
f = np.fft.rfftfreq(n, d=1.0)
amp = np.zeros_like(f)
amp[1:] = f[1:] ** (-alpha / 2.0)
spec = amp * (rng.standard_normal(len(f)) + 1j * rng.standard_normal(len(f)))
x = np.fft.irfft(spec, n)
return x / x.std()
def allan_deviation(y, m_list, tau0=1.0):
"""測定値列の非重複Allan偏差。
sigma_y(tau)**2 = <(ybar_{j+1} - ybar_j)**2> / 2 であり、ybar_j は
連続する m 個の測定値の平均、tau = m tau0 です。係数 1/2 は白色ノイズの
場合にこの推定量が通常の標準偏差と一致するように選ばれています。
"""
out = []
for m in m_list:
n_bins = len(y) // m
ybar = y[:n_bins * m].reshape(n_bins, m).mean(axis=1)
d = np.diff(ybar)
out.append(np.sqrt(0.5 * np.mean(d ** 2)))
return np.array(m_list) * tau0, np.array(out)
rng = np.random.default_rng(20260813)
n = 2 ** 20
m_list = [2 ** k for k in range(0, 12)] # tau は 1 から 2048 サンプル
print(f"{n} 点の測定値のAllan偏差, tau0 = 1 s")
hdr = (f"{'tau (s)':>9}{'white':>13}{'flicker 1/f':>14}"
f"{'random walk':>14}{'drift only':>13}")
print(hdr)
print("-" * len(hdr))
series = {
"white": colored_noise(n, 0.0, rng),
"flicker": colored_noise(n, 1.0, rng),
"walk": colored_noise(n, 2.0, rng),
}
drift_rate = 3e-4 # 1サンプルあたり、決定論的
series["drift"] = drift_rate * np.arange(n)
taus, dev = {}, {}
for key, y in series.items():
taus[key], dev[key] = allan_deviation(y, m_list)
for i, t in enumerate(taus["white"]):
print(f"{t:>9.0f}{dev['white'][i]:>13.5f}{dev['flicker'][i]:>14.5f}"
f"{dev['walk'][i]:>14.5f}{dev['drift'][i]:>13.5f}")
print("\nフィッティングした両対数傾き(最終列が理論値)")
hdr = f"{'process':<16}{'PSD':<14}{'fitted slope':>14}{'expected':>11}"
print(hdr)
print("-" * len(hdr))
expected = {"white": (-0.5, "S ~ f^0"), "flicker": (0.0, "S ~ 1/f"),
"walk": (0.5, "S ~ 1/f^2"), "drift": (1.0, "deterministic")}
for key in ["white", "flicker", "walk", "drift"]:
s = np.polyfit(np.log10(taus[key]), np.log10(dev[key]), 1)[0]
exp_slope, psd = expected[key]
print(f"{key:<16}{psd:<14}{s:>14.4f}{exp_slope:>11.1f}")
# --- 現実的な場合: 3つが同時に存在し、曲線に床ができる ---------------------
amp = {"white": 0.1, "flicker": 0.09, "walk": 0.72}
total = sum(amp[k] * series[k] for k in amp)
t_tot, d_tot = allan_deviation(total, m_list)
print("\n3つの過程がすべて存在するセンサ")
hdr = (f"{'tau (s)':>9}{'sigma_y total':>15}{'white part':>13}"
f"{'flicker part':>15}{'walk part':>12}")
print(hdr)
print("-" * len(hdr))
for i, t in enumerate(t_tot):
print(f"{t:>9.0f}{d_tot[i]:>15.6f}{amp['white']*dev['white'][i]:>13.6f}"
f"{amp['flicker']*dev['flicker'][i]:>15.6f}"
f"{amp['walk']*dev['walk'][i]:>12.6f}")
i_min = int(np.argmin(d_tot))
promise = amp["white"] * dev["white"][0] / np.sqrt(t_tot[-1])
print(f"最小値は tau = {t_tot[i_min]:.0f} s, sigma_y = {d_tot[i_min]:.6f}")
print(f"白色ノイズの外挿は tau = {t_tot[-1]:.0f} s で "
f"{promise:.6f} を約束しますが、")
print(f"実際の値は {d_tot[-1]:.6f} です。願望の入り込む倍率は "
f"{d_tot[-1]/promise:.1f} 倍です。")
1048576 点の測定値のAllan偏差, tau0 = 1 s
tau (s) white flicker 1/f random walk drift only
---------------------------------------------------------------
1 0.99986 0.35842 0.00240 0.00021
2 0.70702 0.34291 0.00323 0.00042
4 0.50006 0.33377 0.00448 0.00085
8 0.35397 0.33000 0.00630 0.00170
16 0.25058 0.32931 0.00891 0.00339
32 0.17696 0.32932 0.01263 0.00679
64 0.12427 0.33024 0.01787 0.01358
128 0.08710 0.32950 0.02511 0.02715
256 0.06147 0.33100 0.03522 0.05431
512 0.04382 0.32736 0.04914 0.10861
1024 0.03024 0.33240 0.06931 0.21722
2048 0.02201 0.33655 0.09879 0.43445
フィッティングした両対数傾き(最終列が理論値)
process PSD fitted slope expected
-------------------------------------------------------
white S ~ f^0 -0.5028 -0.5
flicker S ~ 1/f -0.0055 0.0
walk S ~ 1/f^2 0.4909 0.5
drift deterministic 1.0000 1.0
3つの過程がすべて存在するセンサ
tau (s) sigma_y total white part flicker part walk part
----------------------------------------------------------------
1 0.105086 0.099986 0.032258 0.001726
2 0.077174 0.070702 0.030862 0.002327
4 0.058494 0.050006 0.030039 0.003226
8 0.046479 0.035397 0.029700 0.004539
16 0.039331 0.025058 0.029638 0.006417
32 0.035779 0.017696 0.029638 0.009092
64 0.034676 0.012427 0.029721 0.012865
128 0.036019 0.008710 0.029655 0.018080
256 0.039645 0.006147 0.029790 0.025358
512 0.046361 0.004382 0.029463 0.035378
1024 0.058558 0.003024 0.029916 0.049903
2048 0.077805 0.002201 0.030289 0.071131
最小値は tau = 64 s, sigma_y = 0.034676
白色ノイズの外挿は tau = 2048 s で 0.002209 を約束しますが、
実際の値は 0.077805 です。願望の入り込む倍率は 35.2 倍です。
注目すべき点。 最初の表が3つの領域を並べたものであり、指数 $\alpha$ だけが違う1つの生成器から出ています。列を縦に読むと、白色ノイズは $\tau$ の倍化ごとに $\sqrt{2}$ ずつ落ち、フリッカーノイズは11回の倍化にわたってまったく動かず、ランダムウォークは倍化ごとに $\sqrt{2}$ ずつ上がります。フィッティングした傾きは厳密値 $-1/2$、$0$、$+1/2$ に対して $-0.503$、$-0.006$、$+0.491$ を回収します。決定論的ドリフトの列は $+1.0000$ を返し、$\sigma_y = D\tau/\sqrt{2}$ には統計的な中身がまったくないのでそうなるほかありません。
合成した表が運用上重要なものです。このセンサは 64 s という本物の最適平均時間と $\sigma_y = 0.0347$ の床をもち、最後の2行が罠を定量化しています。白色ノイズの枝を $\tau = 2048$ s まで外挿すると 0.0022 を約束しますが、計測器が実際に届けるのは 0.0778 — 間違った方向に35倍です。$\eta$ を引用して反転点を超えて平均する人は、より精密に測っているのではなく、自分自身の基準のドリフトを測っています。
処方も同じ表の中に見えます。フリッカーの平坦部は 0.0297 にあり、白色の枝はそれを $\tau = 11$ s あたりで横切るので、およそ 0.1 Hz より速いどんな変調でも測定は恒久的に白色領域へ移り、そこでは平均が宣伝どおりに効きます。それがロックイン検出の議論のすべてであり、第2章と第3章のACプロトコルが改良ではなく前提条件である理由です。
Code Example 5: フィルター関数 — 帯域選択、AC感度、ノイズ分光
パルス系列のフィルター関数を、区分的に定数なスイッチング関数から厳密に、時間グリッドも数値積分誤差もなしに計算します。そしてそれを3回使います。通過帯域を特定するため、コヒーレンス曲線をノイズ指数に反転するため、そしてAC磁場を測るためです。
"""第1章 Code Example 5: フィルター関数、帯域選択、AC感度。
Code Example 1 の続き(同一セッション)。"""
def pulse_edges(tau, n_pi):
"""全長 tau の CPMG-n_pi 系列における符号反転時刻。
pi パルスは k = 1..n_pi に対して tau*(k - 1/2)/n_pi に置かれ、これが
CPMG配置です。n_pi = 0 は自由誘導減衰、n_pi = 1 はHahnエコーです。
"""
inner = tau * (np.arange(1, n_pi + 1) - 0.5) / n_pi if n_pi else np.array([])
return np.concatenate(([0.0], inner, [tau]))
def filter_function(f, tau, n_pi):
"""CPMG-n_pi 系列の |s_tilde(f, tau)|**2 を厳密に評価します。
s(t) = +-1 は pi パルスが課す符号反転を記録し、s_tilde はその有限時間
フーリエ変換です。s が区分的に定数なので積分は区間についての閉じた和に
なり、時間グリッドも数値積分誤差も入りません。
"""
edges = pulse_edges(tau, n_pi)
signs = (-1.0) ** np.arange(len(edges) - 1)
f = np.atleast_1d(np.asarray(f, dtype=float))
out = np.empty(f.shape, dtype=complex)
zero = f == 0.0
out[zero] = np.sum(signs * np.diff(edges))
fz = f[~zero]
E = np.exp(-2j * np.pi * np.outer(fz, edges))
out[~zero] = np.sum(signs * (E[:, 1:] - E[:, :-1]), axis=1) / (
-2j * np.pi * fz)
return np.abs(out) ** 2
tau_f, f_test = 1.0, 0.03
print("フィルター関数と姉妹コースの閉形式との比較")
print(f"{'sequence':<10}{'numeric':>14}{'analytic':>14}")
print("-" * 38)
fid_ana = np.sin(np.pi * f_test * tau_f) ** 2 / (np.pi * f_test) ** 2
echo_ana = 4 * np.sin(np.pi * f_test * tau_f / 2) ** 4 / (np.pi * f_test) ** 2
print(f"{'FID':<10}{filter_function(f_test, tau_f, 0)[0]:>14.8f}"
f"{fid_ana:>14.8f}")
print(f"{'echo':<10}{filter_function(f_test, tau_f, 1)[0]:>14.8f}"
f"{echo_ana:>14.8f}")
# --- 各系列が聴いている周波数 ----------------------------------------------
f_scan = np.linspace(1e-4, 20.0, 400000)
print("\n全長 tau = 1 s を固定したときの CPMG-N の通過帯域")
hdr = (f"{'N pulses':>9}{'peak f':>11}{'N/(2 tau)':>12}"
f"{'|s|^2 at peak':>15}{'|s|^2 at f = 0.01':>19}")
print(hdr)
print("-" * len(hdr))
for n_pi in [1, 2, 4, 8, 16, 32]:
ff = filter_function(f_scan, tau_f, n_pi)
i = int(np.argmax(ff))
print(f"{n_pi:>9d}{f_scan[i]:>11.4f}{n_pi/(2*tau_f):>12.4f}"
f"{ff[i]:>15.5f}{filter_function(0.01, tau_f, n_pi)[0]:>19.3e}")
print("比較のため自由誘導減衰: f = 0.01 での |s|^2 は "
f"{filter_function(0.01, tau_f, 0)[0]:.3e}")
# --- 帯域選択はノイズ分光でもある: S = A/f^alpha に対する T2(N) -----------
def coherence(tau, n_pi, A, alpha, decades=6, per_decade=400):
"""C(tau) = exp(-<phi^2>/2)、ただし <phi^2> = int S(f) |s_tilde|^2 df。
積分は 1/tau を中心とする対数グリッド上で行います。フィルター関数の
重みはすべてそこに集まっています。
"""
f = np.logspace(np.log10(1.0 / tau) - decades / 2,
np.log10(1.0 / tau) + decades / 2, decades * per_decade)
S = A / f ** alpha
chi = np.trapezoid(S * filter_function(f, tau, n_pi), f)
return np.exp(-0.5 * chi)
def coherence_time(n_pi, A, alpha):
"""C(tau) が 1/e に落ちる最小の tau を二分法で求めます。"""
lo, hi = 1e-9, 1e3
for _ in range(200):
mid = np.sqrt(lo * hi)
if coherence(mid, n_pi, A, alpha) > np.exp(-1.0):
lo = mid
else:
hi = mid
return np.sqrt(lo * hi)
A_noise = 1.0
print("\nCPMGノイズ分光: S(f) = A/f^alpha, A = 1 に対する T2(N)")
hdr = (f"{'alpha':>7}{'T2(1)':>11}{'T2(64)':>11}{'exponent, N=1-64':>19}"
f"{'exponent, N=4-64':>19}{'alpha/(alpha+1)':>18}")
print(hdr)
print("-" * len(hdr))
Ns = np.array([1, 2, 4, 8, 16, 32, 64])
for alpha in [0.5, 1.0, 1.5, 2.0]:
T2s = np.array([coherence_time(int(nn), A_noise, alpha) for nn in Ns])
beta_all = np.polyfit(np.log(Ns), np.log(T2s), 1)[0]
beta_asy = np.polyfit(np.log(Ns[2:]), np.log(T2s[2:]), 1)[0]
print(f"{alpha:>7.1f}{T2s[0]:>11.5f}{T2s[-1]:>11.5f}{beta_all:>19.4f}"
f"{beta_asy:>19.4f}{alpha/(alpha+1):>18.4f}")
print("この表を逆向きに読むことが測定そのものです。コヒーレンス対 N の")
print("曲線の指数が alpha、すなわち欠陥集団そのものを返します。")
# --- 同じフィルターを、ノイズを捨てるのではなく場を測るために使う -----------
print("\nAC磁場の検出: B(t) = B_ac cos(2 pi f t + q) から拾う位相")
hdr = f"{'N pulses':>9}{'matched f':>12}{'best phase':>13}{'phi/(gamma B tau)':>19}{'2/pi':>8}"
print(hdr)
print("-" * len(hdr))
for n_pi in [1, 2, 4, 8, 16]:
edges = pulse_edges(tau_f, n_pi)
signs = (-1.0) ** np.arange(len(edges) - 1)
f_ac = n_pi / (2 * tau_f)
best = 0.0
for q in np.linspace(0.0, 2 * np.pi, 721):
# 各区間における s(t) cos(2 pi f t + q) の厳密な積分
w = (np.sin(2 * np.pi * f_ac * edges[1:] + q)
- np.sin(2 * np.pi * f_ac * edges[:-1] + q)) / (2 * np.pi * f_ac)
best = max(best, abs(np.sum(signs * w)))
print(f"{n_pi:>9d}{f_ac:>12.2f}{'optimal':>13}{best/tau_f:>19.6f}"
f"{2/np.pi:>8.4f}")
print("同期した矩形波フィルターはAC磁場を効率 2/pi で整流します。")
print("したがってAC感度はDCの式の pi/2 倍になります。")
フィルター関数と姉妹コースの閉形式との比較
sequence numeric analytic
--------------------------------------
FID 0.99704262 0.99704262
echo 0.00221738 0.00221738
全長 tau = 1 s を固定したときの CPMG-N の通過帯域
N pulses peak f N/(2 tau) |s|^2 at peak |s|^2 at f = 0.01
------------------------------------------------------------------
1 0.7420 0.5000 0.52506 2.467e-04
2 1.1478 1.0000 0.44083 1.522e-08
4 2.0825 2.0000 0.41496 9.510e-10
8 4.0428 4.0000 0.40777 5.943e-11
16 8.0216 8.0000 0.40591 3.715e-12
32 16.0108 16.0000 0.40544 2.322e-13
比較のため自由誘導減衰: f = 0.01 での |s|^2 は 9.997e-01
CPMGノイズ分光: S(f) = A/f^alpha, A = 1 に対する T2(N)
alpha T2(1) T2(64) exponent, N=1-64 exponent, N=4-64 alpha/(alpha+1)
-------------------------------------------------------------------------------------
0.5 2.35818 8.63255 0.3150 0.3271 0.3333
1.0 1.69864 12.26899 0.4794 0.4932 0.5000
1.5 1.32943 15.00037 0.5859 0.5956 0.6000
2.0 1.06785 17.07673 0.6666 0.6667 0.6667
この表を逆向きに読むことが測定そのものです。コヒーレンス対 N の
曲線の指数が alpha、すなわち欠陥集団そのものを返します。
AC磁場の検出: B(t) = B_ac cos(2 pi f t + q) から拾う位相
N pulses matched f best phase phi/(gamma B tau) 2/pi
-------------------------------------------------------------
1 0.50 optimal 0.636620 0.6366
2 1.00 optimal 0.636620 0.6366
4 2.00 optimal 0.636620 0.6366
8 4.00 optimal 0.636620 0.6366
16 8.00 optimal 0.636620 0.6366
同期した矩形波フィルターはAC磁場を効率 2/pi で整流します。
したがってAC感度はDCの式の pi/2 倍になります。
注目すべき点。 検証ブロックが姉妹コースの閉形式を8桁まで再現し、それが以降のすべてを保証します。$f\tau = 0.03$ において $|\tilde{s}_\mathrm{FID}|^2 = 0.99704262$、$|\tilde{s}_\mathrm{echo}|^2 = 0.00221738$ であり、量子ハードウェア編第1章の演習4と同一です。2つのコースはこの機構を共有しており、これは共有が正しく行われていることの検証です。
通過帯域の表が帯域選択を定量化したものです。定石 $f_\mathrm{peak} \approx N/2\tau$ はHahnエコーには不出来(0.5 に対して 0.742、48%の誤差)で、$N = 4$ 以上では優秀です(2.000 に対して 2.083、続いて 4.043、8.022、16.011)。最後の列がデカップリングが機能する理由です。$f = 0.01/\tau$ において自由誘導減衰のフィルターは重み 1.0 をもちますが CPMG-32 は $2.3\times10^{-13}$ であり、パルスのタイミングだけで遅いノイズを12桁排除しています。ピークの高さが成長せず $0.405$ に飽和することにも注目してください。デカップリング系列は $N$ が増えると通過帯域でより感度が高くなるのではなく、ただ狭くなり、より良く配置されるだけです。
分光の表が1.4節への輪を閉じます。各ノイズ指数 $\alpha$ に対してコヒーレンス時間はパルス数とともに $T_2(N) \propto N^{\beta}$ で成長し、フィッティングした $\beta$ は予測値 $\alpha/(\alpha+1)$ に下から近づきます。$0.333$ に対して $0.327$、$0.500$ に対して $0.493$、$0.600$ に対して $0.596$、そして $\alpha = 2$ では $0.6667$ に対して厳密に $0.6667$ です。小さい $\alpha$ での残差は誤りではなく有限 $N$ の効果です — スケーリング則は漸近的であり、$N = 1$ から $64$ ではなく $4$ から $64$ でフィッティングすると差のほとんどが回復します。逆に読めばこの表は測定の手順書です。いくつかの $N$ でCPMGを走らせ指数をフィッティングすれば、単一の欠陥を同定することなくホスト結晶中の揺動子集団のスペクトル指数が得られます。
ACのブロックは同じフィルターをロックインとして使ったものです。どの $N$ に対しても、整合周波数 $N/2\tau$ と最適な相対位相をもつ磁場は厳密に $(2/\pi)\gamma B_\mathrm{ac}\tau$ の位相を生みます。正弦波に対する矩形波の整流効率であり、$2/\pi = 0.6366$ に対して $0.636620$、$N$ に依りません。$\pi/2$ のペナルティは入場料であり、買えるのは $\tau \sim T_2^\ast$ ではなく $\tau \sim T_2$ を使う権利です。固体センサではそれは $\eta$ の1桁から2桁に相当します。これが第2章で最も重要な実務上の事実です。
Code Example 6: 感度-分解能の地図
最後の例は1.5節のスケーリングの議論を数値にし、スケーリングが止まる2つの場所を見つけます。
"""第1章 Code Example 6: 感度と空間分解能のトレードオフ地図。
Code Example 1、3 の続き(同一セッション)。"""
n_spin = 1e24 # スピン密度, m^-3: 説明用のきりのよい値
T2_dilute = 1e-3 # 孤立したスピンのコヒーレンス時間, s
print("センサ体積と感度の関係(スピン密度を固定)")
hdr = (f"{'sensor side':<14}{'volume':>12}{'N spins':>12}"
f"{'eta_B':>18}{'min moment':>16}")
print(hdr)
print("-" * len(hdr))
for label, d in [("10 nm", 1e-8), ("100 nm", 1e-7), ("1 um", 1e-6),
("10 um", 1e-5), ("100 um", 1e-4), ("1 mm", 1e-3)]:
V = d ** 3
N = n_spin * V
e = eta_ramsey(gamma_e, T2_dilute / 2, T2_dilute, N=N)
# 距離 d にある点双極子がつくる磁場は B ~ mu0 m / (4 pi d^3)。
m_min = e * 4 * np.pi * d ** 3 / mu0
print(f"{label:<14}{V:>12.2e}{N:>12.3e}{e/NT:>12.4g} nT/rtHz"
f"{m_min/9.2740100783e-24:>11.3g} muB")
print("eta_B は d^(-3/2) で改善し、分解能は d で悪化します。したがって")
print("センサを小さくすると検出可能な*磁気モーメント*は d^(3/2) で改善します。")
print("\nスピン密度を上げても効かなくなる理由: 双極子的な T2 ~ 1/n")
hdr = (f"{'density (m^-3)':>16}{'T2':>13}{'N in (100 nm)^3':>17}"
f"{'N T2':>12}{'eta_B':>18}")
print(hdr)
print("-" * len(hdr))
V = (1e-7) ** 3
n_ref, T2_at_ref = 1e22, 1e-3
for n in [1e22, 1e23, 1e24, 1e25]:
T2 = T2_at_ref * n_ref / n # 双極子律速のスケーリング
N = n * V
e = eta_ramsey(gamma_e, T2 / 2, T2, N=N)
print(f"{n:>16.0e}{T2*1e3:>10.4g} ms{N:>17.4g}{N*T2:>12.3e}"
f"{e/NT:>12.4g} nT/rtHz")
print("この列では N T2 が一定なので eta_B も一定です。スピンが互いを")
print("位相破壊し始めた時点で感度の改善は止まり、誠実な性能指標は")
print("スピン数ではなく常にこの積です。")
print("\n距離: 離れた双極子がセンサに要求するもの")
hdr = (f"{'moment':>10}{'standoff':>10}{'B at sensor':>17}"
f"{'N T2 needed':>16}{'N needed at T2 = 1 ms':>23}")
print(hdr)
print("-" * len(hdr))
for label_m, m in [("1 muB", 9.2740100783e-24),
("1000 muB", 9.2740100783e-21)]:
for label_z, z in [("10 nm", 1e-8), ("100 nm", 1e-7), ("1 um", 1e-6)]:
B = mu0 * m / (4 * np.pi * z ** 3)
# eta = sqrt(2e)/(gamma sqrt(N T2)) が1秒で B に達する必要がある
NT2 = 2 * np.e / (gamma_e * B) ** 2
print(f"{label_m:>10}{label_z:>10}{B/NT:>14.4g} nT{NT2:>13.3e} s"
f"{NT2/1e-3:>23.3e}")
print("z^-3 の減衰こそ、空間分解能と感度が同じ議論である理由です。")
print("距離が1桁増えると磁場は3桁減り、したがって N T2 は6桁必要になります。")
センサ体積と感度の関係(スピン密度を固定)
sensor side volume N spins eta_B min moment
------------------------------------------------------------------------
10 nm 1.00e-24 1.000e+00 0.4187 nT/rtHz 0.000452 muB
100 nm 1.00e-21 1.000e+03 0.01324 nT/rtHz 0.0143 muB
1 um 1.00e-18 1.000e+06 0.0004187 nT/rtHz 0.452 muB
10 um 1.00e-15 1.000e+09 1.324e-05 nT/rtHz 14.3 muB
100 um 1.00e-12 1.000e+12 4.187e-07 nT/rtHz 452 muB
1 mm 1.00e-09 1.000e+15 1.324e-08 nT/rtHz 1.43e+04 muB
eta_B は d^(-3/2) で改善し、分解能は d で悪化します。したがって
センサを小さくすると検出可能な*磁気モーメント*は d^(3/2) で改善します。
スピン密度を上げても効かなくなる理由: 双極子的な T2 ~ 1/n
density (m^-3) T2 N in (100 nm)^3 N T2 eta_B
----------------------------------------------------------------------------
1e+22 1 ms 10 1.000e-02 0.1324 nT/rtHz
1e+23 0.1 ms 100 1.000e-02 0.1324 nT/rtHz
1e+24 0.01 ms 1000 1.000e-02 0.1324 nT/rtHz
1e+25 0.001 ms 1e+04 1.000e-02 0.1324 nT/rtHz
この列では N T2 が一定なので eta_B も一定です。スピンが互いを
位相破壊し始めた時点で感度の改善は止まり、誠実な性能指標は
スピン数ではなく常にこの積です。
距離: 離れた双極子がセンサに要求するもの
moment standoff B at sensor N T2 needed N needed at T2 = 1 ms
----------------------------------------------------------------------------
1 muB 10 nm 927.4 nT 2.039e-10 s 2.039e-07
1 muB 100 nm 0.9274 nT 2.039e-04 s 2.039e-01
1 muB 1 um 0.0009274 nT 2.039e+02 s 2.039e+05
1000 muB 10 nm 9.274e+05 nT 2.039e-16 s 2.039e-13
1000 muB 100 nm 927.4 nT 2.039e-10 s 2.039e-07
1000 muB 1 um 0.9274 nT 2.039e-04 s 2.039e-01
z^-3 の減衰こそ、空間分解能と感度が同じ議論である理由です。
距離が1桁増えると磁場は3桁減り、したがって N T2 は6桁必要になります。
注目すべき点。 最初の表が地図であり、2つの列が逆方向を指しています。センサ寸法の5桁にわたって $\eta_B$ は7桁半改善します — $d^{-3/2}$ 則です — 一方で検出可能な最小モーメントは同じ7桁半だけ劣化します。ミリメートルのセンサは $1.3\times10^{-8}$ nT/$\sqrt{\mathrm{Hz}}$ に達しますが $10^4$ ボーア磁子より小さいものは何も見えません。10 nm のセンサは磁場を測る能力で3000万倍劣りますが 0.0005 $\mu_B$ を見ることができます。どちらが優れているのでもありません。違う問いに答えているのであり、1.5節の地図はどちらがどれかを述べたものです。
真ん中の表が人を驚かせる限界です。スピン密度を3桁上げると $N$ が3桁上がり、そのすべてが $T_2$ の双極子的短縮で打ち消されます。積 $N T_2$ は $10^{-2}$ s で一定であり、$\eta_B$ は1桁も動きません。これはモデルの中の数値的偶然ではなくモデルの中身そのものであり、アンサンブル磁気計測が密度を上げることよりもアンサンブルを自分自身からデカップリングすることに多大な努力を費やしてきた理由です。そしてコヒーレンス時間を伴わずにスピン数を引用する仕様を読むときの警告でもあります。
最後の表は幾何を要求仕様に変換します。距離 100 nm にある1ボーア磁子は 0.93 nT をつくり、それには $N T_2 = 2\times10^{-4}$ s が必要です — 余裕があります。距離を 1 $\mu$m にすると同じモーメントには $N T_2 = 204$ s、6桁多くが必要になります。磁場が3桁落ち、$\eta$ が2乗で入るからです。距離1桁に対するこの $10^{6}$ 倍が走査磁気計測で最も重要な数値であり、センサ-試料間距離が最初に報告され最後に改善される理由です。
演習
演習1: 感度仕様の読み方
ある磁力計が $\eta = 1.324$ nT/$\sqrt{\mathrm{Hz}}$ と表示されています。これは Code Example 1 で $T_2 = 100\ \mu$s のときの単一電子スピンの値です。
- 1 s、100 s、1時間平均したあとに到達する磁場分解能はいくらですか。
- 白色ノイズがそこまで続くと仮定して、1 pT を分解するには何秒平均する必要がありますか。
- 同僚が代わりに $\eta$ を10倍改善することを提案しました。必要な平均時間はどう変わり、その10倍を得るには物理的に何が改善しなければなりませんか。
- 2番の答えが虚構になるのはどんな場合であり、それを明らかにするために追加すべき測定は何ですか。
解答
1. \(\delta B = \eta/\sqrt{T}\) なので、1 s 後に 1324 pT、100 s 後に 132 pT、1時間後に 22.1 pT です。
2. \(T = (\eta/\delta B)^2 = (1.324\times10^{-9}/10^{-12})^2 = 1.75\times10^{6}\) s、すなわち487時間で約20日です。
3. \(T\) は \(\eta^2\) でスケールするので、\(\eta\) が10倍良くなれば平均時間は100分の1、\(1.75\times10^{4}\) s すなわち5時間未満になります。物理的には \(\eta \propto 1/\sqrt{N T_2}\) なので、10倍には \(N T_2\) の100倍が必要です — 同じコヒーレンスで100倍のスピン、あるいは100倍長い \(T_2\)、あるいはその任意の組み合わせです。コントラスト \(C\) の改善やデッドタイムの削減はたいていどちらよりもはるかに安く、しかも両方とも \(\eta\) に線形に入ります。
4. Allan偏差が \(\tau^{-1/2}\) の枝から外れた瞬間に虚構になり、実際の計測器では20日よりずっと手前でそれが起きます。追加すべき測定は安定度曲線そのものです。信号を入れずにセンサ出力を何時間も記録して \(\sigma_y(\tau)\) を計算します。その最小値が平均だけで到達できる最良の分解能であり、それが 1 pT より上にあるなら、どんな平均のスケジュールでも成功せず、測定は代わりに変調しなければなりません。
import numpy as np
eta = 1.324e-9 # T/sqrt(Hz), Code Example 1 より
for T in (1.0, 100.0, 3600.0, 86400.0):
print(f"T = {T:8.0f} s dB = {eta/np.sqrt(T)*1e12:9.3f} pT")
target = 1e-12
print(f"1 pT に達するには: T = {(eta/target)**2:.0f} s "
f"= {(eta/target)**2/3600:.2f} h")
print(f"代わりに eta を10倍改善した場合: T = {(eta/10/target)**2:.2f} s")
# T = 1 s dB = 1324.000 pT
# T = 100 s dB = 132.400 pT
# T = 3600 s dB = 22.067 pT
# T = 86400 s dB = 4.504 pT
# 1 pT に達するには: T = 1752976 s = 486.94 h
# 代わりに eta を10倍改善した場合: T = 17529.76 s
演習2: デッドタイムがあるときの最適点
指数的なコントラスト減衰に対して $\eta(\tau) \propto \sqrt{\tau + t_d}\,e^{\tau/T_2}/\tau$ です。
- $\ln\eta$ を微分し、最適点が $\dfrac{1}{2(\tau + t_d)} - \dfrac{1}{\tau} + \dfrac{1}{T_2} = 0$ を満たすことを示してください。
- $t_d = 0$ が $\tau_\mathrm{opt} = T_2/2$ を回復することを確認してください。
- $T_2 = 100\ \mu$s において $t_d = 10\ \mu$s、$100\ \mu$s、1 ms についてこの方程式を数値的に解き、力ずくのグリッド探索と比較してください。
- $t_d \to \infty$ における $\tau_\mathrm{opt}$ の極限値は何であり、読み出しがコヒーレンスよりはるかに遅い実験に対してその極限は何を意味しますか。
解答
1. \(\ln\eta = \tfrac{1}{2}\ln(\tau + t_d) - \ln\tau + \tau/T_2 + \mathrm{const}\) です。微分すると直ちに \(\tfrac{1}{2(\tau+t_d)} - 1/\tau + 1/T_2 = 0\) が得られます。
2. \(t_d = 0\) では最初の2項が \(-1/(2\tau)\) にまとまるので \(1/(2\tau) = 1/T_2\) となり \(\tau_\mathrm{opt} = T_2/2\) です。
3. 根の探索とグリッド探索は6桁まで一致します。\(57.417\ \mu\mathrm{s}\)、\(78.078\ \mu\mathrm{s}\)、\(95.636\ \mu\mathrm{s}\)、すなわち \(\tau_\mathrm{opt}/T_2 = 0.574,\ 0.781,\ 0.956\) です。オーバーヘッドが増えるにつれて最適点は \(T_2\) に近づきます。
4. \(t_d \to \infty\) では項 \(1/(2(\tau+t_d))\) が消えて条件は \(1/\tau = 1/T_2\) になるので \(\tau_\mathrm{opt} \to T_2\) です。解釈は、1ショットがオーバーヘッドに支配されているときには干渉を早く終える理由がないということです。もう1マイクロ秒歳差させる限界費用はもう1回読み出す費用に比べて無に等しいので、コントラストが本当に尽きるまで干渉させます。実務上の系として、読み出しの遅い実験は \(T_2/2\) の定石が示唆するより長い系列を使うべきであり、\(t_d\) の削減は二重に感度を買います — デューティ比を通じて一度、そして最適点をコントラストの高い位置へ戻すことでもう一度です。
import numpy as np
from scipy.optimize import brentq
T2, gamma = 100e-6, 1.76085963e11
def eta(tau, td):
return np.sqrt(tau + td) / (gamma * tau * np.exp(-tau / T2))
for td in (0.0, 10e-6, 100e-6, 1e-3):
# 停留条件 1/(2(tau+td)) - 1/tau + 1/T2 = 0
root = brentq(lambda t: 1/(2*(t+td)) - 1/t + 1/T2, 1e-9, 50*T2)
grid = np.logspace(-9, np.log10(5*T2), 2000001)
num = grid[np.argmin(eta(grid, td))]
print(f"t_dead = {td*1e6:6.1f} us root = {root*1e6:7.3f} us "
f"grid = {num*1e6:7.3f} us tau/T2 = {root/T2:5.3f}")
# t_dead = 0.0 us root = 50.000 us grid = 50.000 us tau/T2 = 0.500
# t_dead = 10.0 us root = 57.417 us grid = 57.416 us tau/T2 = 0.574
# t_dead = 100.0 us root = 78.078 us grid = 78.077 us tau/T2 = 0.781
# t_dead = 1000.0 us root = 95.636 us grid = 95.636 us tau/T2 = 0.956
演習3: Allan偏差から計測器を診断する
ある磁力計を信号を入れずに走らせ続け、そのAllan偏差をテスラ単位で表にしました。
| $\tau$ (s) | 1 | 10 | 100 | 1000 | 10000 |
|---|---|---|---|---|---|
| $\sigma_y(\tau)$ | $2.0\times10^{-13}$ | $6.3\times10^{-14}$ | $2.0\times10^{-14}$ | $2.2\times10^{-14}$ | $6.5\times10^{-14}$ |
- 各区間の両対数傾きを計算し、それぞれで支配的な過程を挙げてください。
- 白色ノイズ振幅 $w$($\sigma_y = w/\sqrt{\tau}$ で定義)とランダムウォーク振幅 $a$($\sigma_y = a\sqrt{\tau}$ で定義)を取り出してください。この計測器の $\eta$ はいくらですか。
- 全体を $\sigma_y^2 = w^2/\tau + a^2\tau$ としてモデル化し、最適平均時間と床を予測してください。表と比べてください。
- 測定には $5\times10^{-15}$ T が必要です。2つの戦略を挙げ、それぞれがどの物理量を攻めているかを述べてください。
解答
1. 傾きは \(-0.502\)、\(-0.498\)、\(+0.041\)、\(+0.470\) です。最初の2桁は白色ノイズ(射影ノイズまたは光子ショットノイズ)、3番目はフリッカーの平坦部あるいは同義的に反転領域、最後はランダムウォークによる基準のドリフトです。
2. \(w = \sigma_y(1\,\mathrm{s})\sqrt{1\,\mathrm{s}} = 2.0\times10^{-13}\ \mathrm{T}\sqrt{\mathrm{s}}\) であり、これがそのまま \(\eta = 200\) fT/\(\sqrt{\mathrm{Hz}}\) です。白色ノイズ振幅と感度は同じ数値であり、\(\eta\) を引用することに意味があるのはこの領域だけです。\(a = \sigma_y(10^4\,\mathrm{s})/\sqrt{10^4\,\mathrm{s}} = 6.5\times10^{-16}\ \mathrm{T}/\sqrt{\mathrm{s}}\) です。
3. \(w^2/\tau + a^2\tau\) を最小化すると \(\tau^\ast = w/a = 308\) s、\(\sigma_\mathrm{min} = \sqrt{2wa} = 1.61\times10^{-14}\) T です。表の最小値は \(\tau = 100\) s における \(2.0\times10^{-14}\) T で、2項モデルが3番目の区間に見えるフリッカーの寄与を省いていることを考えれば整合します。実際の床は白色+ウォークだけの見積もりより少し高く少し早く来るもので、それは常にそうです。
4. 目標は床より下なので平均では到達できず、答えは「もっと長く平均する」ではありません。戦略1: 変調する。 フリッカーの折れ点 — ここでは数十ミリヘルツ — より高い周波数で信号をチョップし、測定を恒久的に \(\tau^{-1/2}\) の枝に置きます。これは基準のドリフトを攻めるもので、センサについて何も改善する必要がありません。戦略2: \(\eta\) を改善する。 \(w\) を3分の1にすると交点はより短い \(\tau\) へ、床は \(\sqrt{2wa}\) すなわち \(\sqrt{3} = 1.7\) 倍だけ下がります。床は \(\eta\) の平方根で改善するので、これは射影ノイズを攻めて得るものがはるかに少ないのです。誠実な結論は、測定がAllanの床より下にあるときは変調が戦略であり感度は目くらましだということです。
import numpy as np
tau_tab = np.array([1.0, 10.0, 100.0, 1000.0, 10000.0])
sig = np.array([2.0e-13, 6.3e-14, 2.0e-14, 2.2e-14, 6.5e-14])
for i in range(len(tau_tab) - 1):
s = np.log10(sig[i+1]/sig[i]) / np.log10(tau_tab[i+1]/tau_tab[i])
print(f"tau {tau_tab[i]:7.0f} -> {tau_tab[i+1]:7.0f} s slope = {s:+.3f}")
w = sig[0] * np.sqrt(tau_tab[0]) # 白色振幅、sigma = w/sqrt(tau)
a_w = sig[-1] / np.sqrt(tau_tab[-1]) # ランダムウォーク振幅
print(f"白色振幅 w = {w:.3e} ランダムウォーク振幅 a = {a_w:.3e}")
print(f"交点 tau* = {w/a_w:.0f} s")
print(f"予測される床 = {np.sqrt(2*w*a_w):.3e}")
print(f"観測された最小値 = {sig.min():.3e} "
f"(tau = {tau_tab[int(np.argmin(sig))]:.0f} s)")
# tau 1 -> 10 s slope = -0.502
# tau 10 -> 100 s slope = -0.498
# tau 100 -> 1000 s slope = +0.041
# tau 1000 -> 10000 s slope = +0.470
# 白色振幅 w = 2.000e-13 ランダムウォーク振幅 a = 6.500e-16
# 交点 tau* = 308 s
# 予測される床 = 1.612e-14
# 観測された最小値 = 2.000e-14 (tau = 100 s)
演習4: 目標周波数に合わせたフィルター設計
ある試料が 100 kHz で磁気ノイズを出すと期待され、センサの $T_2$ は 1 ms です。
- $N = 1, 8, 32, 128$ の CPMG-$N$ について、通過帯域を 100 kHz に置く系列全長 $\tau$ を選び、そこでの $|\tilde{s}|^2$ を評価してください。
- どの選択が最大の応答を与えますか。単に $N$ を増やせない制約は何ですか。
- 白色ノイズに対しては $\pi$ パルスの本数に関係なく $\langle\phi^2\rangle = S\tau/2$ となることを数値的に示してください。この結果を解析的に説明してください。
- 3番から、環境が到達可能な帯域で白色であるとき、動的デカップリングが $T_2$ を延ばせる最大倍率はいくらですか。
解答
1. \(f_\mathrm{ac} = N/2\tau\) に整合させると \(\tau = N/(2f_\mathrm{ac})\) で、5 \(\mu\)s、40 \(\mu\)s、160 \(\mu\)s、640 \(\mu\)s です。対応する \(|\tilde{s}|^2\) は \(1.01\times10^{-11}\)、\(6.48\times10^{-10}\)、\(1.04\times10^{-8}\)、\(1.66\times10^{-7}\) s\(^2\) で、おおよそ \(\tau^2 \propto N^2\) で成長します。
2. CPMG-128 が最大の応答を与え、制約は \(T_2\) です。系列は \(\tau = 640\ \mu\mathrm{s}\) 続き、これはすでに 1 ms のコヒーレンス時間と同程度なのでコントラストは落ちており、これ以上進んでも何も得られません。実務上の限界はどちらが先に来るか — \(T_2\) そのものか、128パルスにわたるパルス誤差の蓄積 — であり、後者はどのフィルター関数も記述しません。
3. 数値計算は \(\tau = 1\) ms、\(n_\pi = 0, 1, 16\) に対して \(\langle\phi^2\rangle/S = 4.9995\times10^{-4}\)、\(4.9985\times10^{-4}\)、\(4.9833\times10^{-4}\) を与え、すべて積分誤差の範囲で \(\tau/2 = 5\times10^{-4}\) に等しいです。解析的には Parseval の定理から \(\int_0^\infty |\tilde{s}(f)|^2 df = \tfrac{1}{2}\int_{-\infty}^{\infty} |\tilde{s}|^2 df = \tfrac{1}{2}\int_0^\tau s(t)^2 dt = \tau/2\) であり、パルスが何をしようと \(s(t)^2 = 1\) です。パルスはフィルターの重みを周波数上で再配分できますが、その積分を変えることはできません。
4. ありません。ノイズが系列が到達できる帯域で白色なら、蓄積された位相分散は \(\tau\) だけに依存するので \(T_2\) は固定され、パルスを何本入れても変わりません。これはハードウェア編の \(T_2(N) \propto N^{\alpha/(\alpha+1)}\) を \(\alpha = 0\) とした主張と同じであり、動的デカップリングが \(T_2\) を \(2T_1\) より先へ押し出せない理由です。緩和チャネルはパルスが選択できるあらゆる周波数で実質的に白色なのです。
import numpy as np
def s_tilde2(f, tau, n_pi):
inner = tau*(np.arange(1, n_pi+1)-0.5)/n_pi if n_pi else np.array([])
edges = np.concatenate(([0.0], inner, [tau]))
signs = (-1.0)**np.arange(len(edges)-1)
f = np.atleast_1d(np.asarray(f, float))
out = np.empty(f.shape, complex)
z = f == 0.0
out[z] = np.sum(signs*np.diff(edges))
fz = f[~z]
E = np.exp(-2j*np.pi*np.outer(fz, edges))
out[~z] = np.sum(signs*(E[:, 1:]-E[:, :-1]), axis=1)/(-2j*np.pi*fz)
return np.abs(out)**2
f_target = 1e5 # 検出したい 100 kHz のAC磁場
for n_pi in (1, 8, 32, 128):
tau_match = n_pi/(2*f_target)
print(f"CPMG-{n_pi:<4d} tau = {tau_match*1e6:8.2f} us "
f"|s|^2 at 100 kHz = {s_tilde2(f_target, tau_match, n_pi)[0]:.4e}")
f = np.logspace(-3, 6, 900001)
for n_pi in (0, 1, 16):
chi = np.trapezoid(np.ones_like(f)*s_tilde2(f, 1e-3, n_pi), f)
print(f"白色ノイズ S = 1: n_pi = {n_pi:2d} <phi^2>/A = {chi:.6e}")
# CPMG-1 tau = 5.00 us |s|^2 at 100 kHz = 1.0132e-11
# CPMG-8 tau = 40.00 us |s|^2 at 100 kHz = 6.4846e-10
# CPMG-32 tau = 160.00 us |s|^2 at 100 kHz = 1.0375e-08
# CPMG-128 tau = 640.00 us |s|^2 at 100 kHz = 1.6600e-07
# 白色ノイズ S = 1: n_pi = 0 <phi^2>/A = 4.999483e-04
# 白色ノイズ S = 1: n_pi = 1 <phi^2>/A = 4.998480e-04
# 白色ノイズ S = 1: n_pi = 16 <phi^2>/A = 4.983257e-04
演習5: 材料の問題に対する計測器の選択
4つの計測課題です。それぞれセンシングの仕様ではなく材料の問いとして述べてあります。
- A. 5 nm 薄膜中の磁壁の上の漏れ磁場を、磁壁を 50 nm の精度で位置決めできる程度に写像する。
- B. 1 mg の粉末試料の磁化率を温度の関数として測定する。
- C. 2次元磁性体のギガヘルツ帯スピン揺らぎを、10 $\mu$m のフレークを横断する位置の関数として検出する。
- D. 動作中のパワートランジスタ内部の温度を 200 nm の分解能で測定する。
- それぞれについて、1.5節の地図から適合する構成と、本コースでそれを扱う章を挙げてください。
- 課題Aについて、磁壁の漏れ磁場が距離 50 nm で 1 $\mu$T 程度、1画素あたり 1 ms で信号対雑音比 10:1 を望むとして、必要な $\eta_B$ を見積もってください。
- 課題Cについて、$\eta_B$ が誤った性能指標である理由を説明し、正しい指標を述べてください。
- 4つのうち、どの量子センサにもうまく応えられないのはどれであり、それはなぜですか。
解答
1. A: 走査探針上の単一欠陥、あるいは広視野で写す浅い欠陥層 — 第2章。走査SQUID(第3章)はより良い磁場感度に達しますが 50 nm 分解能には届きません。B: バルクのピックアップコイルとSQUID磁化率計 — 第3章であり、電気・磁気測定入門のバルク磁気測定の自然な相棒です。C: 磁力計ではなくリラクソメータとして使う浅いNV中心 — 第2章。D: ゼロ磁場分裂の温度依存性を読む浅いNV温度計測 — 第2章。
2. 1 \(\mu\)T に対する 10:1 は \(T = 10^{-3}\) s で \(\delta B = 100\) nT を意味するので、\(\eta_B = \delta B\sqrt{T} = 100\ \mathrm{nT}\times0.0316\ \sqrt{\mathrm{s}} = 3.16\) nT/\(\sqrt{\mathrm{Hz}}\) です。Code Example 1 は \(T_2 = 10\ \mu\)s の単一電子スピンがすでに 4.2 nT/\(\sqrt{\mathrm{Hz}}\) に達することを示しているので、この測定は感度に余裕があり、本当の困難は別のところ — 距離を 50 nm に保つこと、そして大きな像に対する1画素1ミリ秒の予算 — にあります。
3. 課題Cはギガヘルツ帯のノイズを問うており、RamseyもCPMGのフィルター関数もそこには届きません。通過帯域 \(N/2\tau\) にはナノ秒程度の \(\tau\) と非現実的なパルス数が必要になります。ギガヘルツのノイズは代わりに \(T_1\) を通じて検出されます。\(1/T_1\) はセンサ自身の遷移周波数における \(S(\omega_0)\) に比例する黄金律のレートだからです。したがって正しい性能指標は、1画素あたり単位時間あたりに分解できる \(1/T_1\) の最小相対変化であり、調整つまみはセンサの遷移周波数 — 印加磁場で掃引してサンプリング点をスペクトル上で動かします。これがリラクソメトリであり、「同じ機構が両方向に読める」という1.4節の注意はまさにこれです。コヒーレンス測定は分光器なのです。
4. 課題Bです。1 mg の粉末についてバルクで校正された温度掃引の磁化率が必要であり、SQUID磁力計はそのための標準的な計測器ですが、その量子性は付随的です。SQUIDは局所磁場を位相に符号化する量子干渉計としてではなく、きわめて優れた磁束変換器として使われています。本章の感度-分解能のトレードオフは一切利用されていません。測定は試料全体にわたるアンサンブル平均を望んでおり、それは量子センサが際立って得意ではない唯一のことです。この場合を認識することは重要です。1.5節の地図の誠実な使い方には、従来の計測器がすでに勝っている場合に気づくことも含まれます。
import numpy as np
mu0, muB = 1.25663706212e-6, 9.2740100783e-24
for label, z, eta_s in [("scanning single spin", 20e-9, 1e-9),
("wide-field ensemble", 500e-9, 1e-11)]:
B = eta_s # 1秒後にSNR 1
m = B * 4*np.pi*z**3/mu0
print(f"{label:<22} standoff {z*1e9:5.0f} nm "
f"m_min = {m/muB:9.3f} muB")
# scanning single spin standoff 20 nm m_min = 0.009 muB
# wide-field ensemble standoff 500 nm m_min = 1.348 muB
まとめ
要点
1. 量子系が計測器になるのは基準と変換器を同時に供給するからである
- 離散遷移はハミルトニアンで固定された周波数標準であり、それが量子センサを絶対測定にします — 周波数から磁場への換算は校正ではなく基礎物理定数です。
- 重ね合わせの相対位相は摂動の時間積分であり、増幅器を経ず熱雑音を加えずに蓄積されます。
- 準位間隔をずらす摂動こそ量子センサの測定対象です。磁場と電場、温度、ひずみ、回転、そして磁束です。
2. 本コースのあらゆる方式はRamsey干渉計である
- 分割、蓄積、再結合、読み出し。NV磁気計測、dc SQUID、光時計、原子干渉計はハードウェアのあらゆる部品で異なり、プロトコルのどのステップでも異なりません。
- 分離パルスの配置こそ分解能を駆動から切り離すものです。縞間隔は $1/\tau$ で、自由区間だけが決めます。
- 構造が共有されているので、感度の式は一度導出して4回使えます。
3. 射影ノイズが標準量子限界を定め、コントラストがどこに立つかを決める
- 厳密に $\delta\phi = \sqrt{1 - C^2\cos^2\phi}\,/\,(C|\sin\phi|\sqrt{N})$ であり、$C = 1$ ではこれは縞のどこでも $1/\sqrt{N}$ で、有限のコントラストだけが直交点を特別にします。
- 両対数の傾き $-1/2$ を $N$ の6桁にわたって1%より良く検証し、フィッティングした指数は $-0.4981$ でした。
- SQLが制約するのは無相関なプローブだけです。エンタングルメントは $1/N$ に到達しうるもので、それが第5章の主題であり第5章の警告でもあります。
4. 感度 $\eta$、そしてそれを決める積
- $\eta = \sqrt{\tau + t_d}\,/\,(\gamma\tau C\sqrt{N})$、単位はルートヘルツあたりの信号で、$T$ 平均後の分解能は $\eta/\sqrt{T}$ です。そして $\eta$ は振幅スペクトル密度であり、その2乗がパワーです。
- 最適点は $\tau = T_2/(2p)^{1/p}$ で、指数減衰でもガウス減衰でも $T_2/2$ となり、$\eta_\mathrm{min} = \sqrt{2e}/(\gamma\sqrt{N T_2})$ を与えます。
- 現れるのは積 $N T_2$ だけです — デッドタイムを入れるまでは。入れた瞬間、短い $T_2$ と引き換えに得た大きな $N$ はデューティ比で罰せられ、表にした最悪の場合では3桁です。
5. 平均は効かなくなり、Allan偏差がそれがいつかを述べる
- 白色ノイズは $\sigma_y \propto \tau^{-1/2}$、フリッカーは平坦、ランダムウォークは $\tau^{+1/2}$、決定論的ドリフトは $\tau^{+1}$ であり、4つの傾きすべてを 0.01 以内で数値的に回収しました。
- 3つの過程がすべてあるセンサは床と最適平均時間をもち、反転点を超えて白色の枝を外挿すると Code Example 4 では到達可能な分解能を35倍過大に述べることになりました。
- 処方は忍耐ではなく変調です。フリッカーの折れ点より上でチョップすれば、測定は $\eta$ が言葉どおりの意味をもつ領域に恒久的にとどまります。
6. フィルター関数は3通りに読め、分解能のトレードオフは交渉に応じない
- 保護としてCPMG-$N$ は $f\tau = 0.01$ で遅いノイズを12桁排除し、ロックインとしては同期したAC磁場を厳密に効率 $2/\pi$ で整流し、分光としては $T_2(N)\propto N^{\alpha/(\alpha+1)}$ がホスト材料のノイズ指数を返します。
- $\eta_B \propto d^{-3/2}$ で分解能は $\propto d$ なので、磁場感度とモーメント感度は逆方向に改善し、両方で最良の構成は存在しません。
- $T_2 \propto 1/n$ になった時点でスピン密度を上げても効きません。$N T_2$ は一定で $\eta_B$ は動きません。そして距離が1桁増えると $N T_2$ が6桁必要になり、それがナノスケール磁気計測が表面技術である理由です。
実務上の含意
- 平均時間と安定度曲線なしの $\eta$ を決して受け入れないでください。仕様は $(\eta, \tau^\ast)$ の組であり、$\eta$ だけではその半分です。
- 2つの計測器を比べる前に、引用された感度が振幅かパワーのスペクトル密度かを確認し、2つのプロトコルを比べる前に、それがDCかACかを確認してください。
- 安いパラメータから最適化してください。コントラストとデッドタイムは $\eta$ に線形に入り、$N$ と $T_2$ は平方根で入ります。
- 目標がAllanの床より下にあるなら、答えはより長い測定ではなく変調の方式です。
続く3つの章は3つの方式系統を順に扱い、そのいずれもここで構築したテンプレートの実例です。第2章はダイヤモンド中の窒素-空孔中心から始まります。そこではセンサが点欠陥 — 意図的に作られた材料欠陥 — であり、そのスピン依存蛍光が読み出しを提供し、表面への近さが分解能とコヒーレンスの両方を決めます。材料の問題と計測の問題が同じ問題であることが、この分野全体で最も明快に現れる事例です。
免責事項
- 本コンテンツは教育・研究・情報提供のみを目的としており、専門的な助言(法律・会計・技術的保証など)を提供するものではありません。
- 本コンテンツおよび付随するCode examplesは「現状有姿(AS IS)」で提供され、明示または黙示を問わず、商品性、特定目的適合性、権利非侵害、正確性・完全性、動作・安全性等いかなる保証もしません。
- 本コースの感度の数値はすべて、明記した式と明記した仮定から計算したものです。数値はスケーリング則を例示するためのものであり、測定値・仕様・特定の計測器についての主張ではありません。
- 外部リンク、第三者が提供するデータ・ツール・ライブラリ等の内容・可用性・安全性について、作成者および東北大学は一切の責任を負いません。
- 本コンテンツの利用・実行・解釈により直接的・間接的・付随的・特別・結果的・懲罰的損害が生じた場合でも、適用法で許容される最大限の範囲で、作成者および東北大学は責任を負いません。
- 本コンテンツの内容は、予告なく変更・更新・提供停止されることがあります。
- 本コンテンツの著作権・ライセンスは明記された条件(例: CC BY 4.0)に従います。当該ライセンスは通常、無保証条項を含みます。