개요

고전 및 양자 광원은 양자 광학 및 양자 컴퓨팅부터 레이저 간섭계와 같은 고전 분야에 이르기까지 광범위한 용도로 사용됩니다. 광원은 종종 통계적 방출 특성, 즉 결맞음성, 열적, 혼돈적, 또는 양자적 특성에 따라 분류됩니다. 결맞음성 광원에는 안정적인 위상과 방출되는 광자 수의 푸아송적 변동을 갖는 레이저가 포함됩니다. 전구 필라멘트나 별과 같은 열 광원은 많은 수의 비상관성 방출체에서 폭발적인 빛을 생성합니다. 압착광이나 단일 광자 방출체와 같은 양자 광원은 광자를 본 직후에 감지할 확률이 가장 낮은 '반번칭(anti-bunching)' 현상을 보입니다. 이는 어떤 고전 광원도 생성할 수 없는 본질적으로 양자적인 현상입니다.

양자 응용 분야에서는 빛의 통계적 방출 특성을 분석하여 진정한 양자 광원인지 확인하는 것이 필수적입니다. 마찬가지로, 레이저의 정확도는 광자 수를 결정하는 포아송 통계량에 의해 제한되어야 합니다. 빛 방출의 이러한 통계적 특성을 결정하는 한 가지 방법은 고전 광학 및 양자 광학에서 널리 사용되는 지표인 \(g^{(2)}(\tau)\) 상관 함수를 이용하는 것입니다.

본 응용 노트에서는 Moku를 사용하여 \(g^{(2)}(\tau)\)를 측정하는 두 가지 방법을 제시합니다. 모쿠OS 4.1Moku 시간 및 주파수 분석기는 합성곱 방식을 사용하여 실시간으로 작동하는 내장 \(g^{(2)}(\tau)\) 계산기를 제공합니다. 또한 Moku 시간 및 주파수 분석기를 사용하여 이벤트 데이터를 캡처하고 타임스탬프를 지정한 다음, 쌍별 비교 방식을 통해 후처리에서 \(g^{(2)}(\tau)\)를 계산할 수 있습니다. 본 논문에서는 두 가지 방법을 모두 설명하고 Moku를 사용하여 시간 태그가 지정된 광자 이벤트를 시뮬레이션하고 기록하여 검증합니다. 그런 다음 시간 지연 히스토그램을 생성하고 이를 사용하여 2차 상관 함수를 계산하는 절차를 안내합니다. 마지막으로 이를 시간 및 주파수 분석기의 내장 \(g^{(2)}(\tau)\) 함수와 비교합니다.

애플리케이션 노트 다운로드

2차 상관 함수는 무엇입니까?

2차 상관 함수 \(g^{(2)}(\tau)\)는 시간 간격 τ에서 발생하는 사건의 비율을 특정 시간 간격 \(T\) 동안 감지된 사건의 평균 개수에 대한 비율로 측정합니다. \(\tau=0\)에서의 값은 광원에서 동시에 방출되는 광자의 개수에 대한 정보를 유추할 수 있으므로 특히 중요합니다. 예를 들어,

\(g^{(2)}(0)>1\)이면 광원은 광자를 그룹으로 방출하는 경향이 있습니다. 이를 뭉치 현상이라고 하며, 일반적으로 열 광원을 나타냅니다. 예를 들어, \(g^{(2)}(\tau=0)=2\)는 특정 시간 \(T\) 내에 시간 지연 \(\tau\)만큼 떨어진 평균 사건 수에 비해 시간 지연이 0에 가까운 사건 수가 두 배 더 많음을 의미합니다.

\(g^{(2)}(0)<1\)이면 광원은 규칙적인 간격으로 광자를 방출하는 경향이 있으며, 한 번에 두 개 이상의 광자를 방출할 가능성은 매우 낮습니다. 이를 반집중(antibunching) 현상이라고 하며, 단일 광자 광원에 바람직한 특성입니다.

만약 \(g^{(2)}(0)=1\)이면 방출된 광자 사이에 상관관계가 없습니다. 이는 일반적으로 레이저와 같은 결맞는 광원에 해당합니다.

이 세 가지 경우의 시뮬레이션은 아래 그림 1에서 볼 수 있습니다.

그림 1. 푸아송(무작위), 묶음, 반묶음 사례의 몬테카를로 시뮬레이션. 코히어런트 사례는 전체 시간 범위에 걸쳐 1로 일정하게 유지되는 반면, 묶음 및 반묶음 사례는 τ=0에서 각각 2와 0에 접근합니다. 이 그림에서 2차 상관 함수는 각 사례에 대해 두 가지 다른 방식으로 계산됩니다. 이러한 방법은 이 응용 노트의 뒷부분에서 설명합니다.

\(g^{(2)}(\tau)\)를 사용하고 계산하는 방법을 보여주기 위해 Hanbury-Brown-Twiss(HBT) 효과를 소개합니다. HBT 실험(그림 2 참조)에서 테스트 중인 소스는 광자 스트림을 50/50 빔 분할기로 방출하고, 빔 분할기는 개별 광자를 두 개의 광학 경로 중 하나로 향하게 합니다. 두 개의 단일 광자 검출기(임의로 "A"와 "B"로 표시)는 이러한 팔 각각을 이동하는 광자의 도착을 모니터링합니다. 두 팔 사이의 광학 경로 차이는 두 검출기에 광자가 도착하는 시간 사이에 시간적 오프셋을 초래합니다. 검출기가 광자 이벤트를 기록하면 전기 펄스를 생성하고 이를 시간 간격 분석기(TIA)로 전달합니다. TIA의 기능은 이후 후처리를 위해 A와 B 모두에서 광자 이벤트를 정확하게 타임스탬프하고 기록하는 것입니다. 다음 섹션에서 알 수 있듯이, 사건 A와 B 사이의 시간 상관관계는 2차 상관 함수의 값을 결정합니다.

그림 2. 일반적인 Hanbury-Brown-Twiss 측정 설정으로, 광검출기 A와 B의 출력을 측정합니다. 이벤트 A에서 B까지의 시간적 오프셋은 시간 간격 분석기에 의해 기록됩니다.

2차 상관 함수와 일치율 정량화

2차 상관 함수 \(g^{(2)}(\tau)\)는 광자 감지 횟수의 시간 평균 곱으로 주어집니다.

\(g^{(2)}(\tau) = \frac{\langle n_A(t) n_B(t+\tau) \rangle}{ \langle n_A(t) n_B(t) \rangle} \)

여기서 \(n_A(t)\)와 \(n_B(t)\)는 각각 \(t\)와 \(t + τ\) 시간에 검출기 A와 B에서 검출된 광자 이벤트의 비율입니다. \(\langle . \rangle\) 안의 양은 시간 평균입니다. 즉,

\(\lang n_A(t) n_B(t+\tau) \rangle = \lim_{T\to\infty} \frac{1}{T}\int_0^T n_A(t) n_B(t+\tau) dt \).

\(g^{(2)}(\tau)\)의 정량적 정의를 확립했으므로 이제 \(\langle n_A(t) n_B(t+\tau) \rangle\)을 결정하는 방법에 대해 논의해 보겠습니다. 이는 시간 평균 일치율 또는 시간 \(t\)에서 광자를 발견하고 시간 \(t +\tau\)에서 다른 광자를 발견할 확률 밀도이며, 첫 번째 이벤트가 어디에서 왔는지와 무관합니다. 즉, A에서 초기 이벤트가 발생하면 B에서 첫 번째, 두 번째 또는 세 번째 이벤트가 연속적으로 발생할 수 있습니다. 일치율을 계산할 때 이러한 모든 이벤트를 고려해야 합니다. 그런 다음 이러한 τ 값을 비닝하고 정규화하여 \(\langle n_A(t) n_B(t+\tau) \rangle\)의 추정값을 생성합니다.

시간 지연 히스토그램 측정

HBT 측정의 핵심 부분은 광자 이벤트를 수집하고 시간 간격 히스토그램을 생성하는 시간 간격 분석기입니다. Moku 시간 및 진동수 분석기 그림 3에서 볼 수 있듯이 HBT 측정을 수행하도록 구성할 수 있습니다. 이 설정에서 단일 광자 검출기(SPD) A와 B는 Moku의 입력 A와 B에 연결됩니다. 시간 및 주파수 분석기는 SPD의 출력 펄스를 감지하도록 구성할 수 있으며, 입력 A는 "시작", 입력 B는 "정지" 역할을 합니다. HBT 측정을 위해 Moku를 구성하는 방법에 대한 자세한 내용은 구성 가이드 주제에.

그림 3. Moku 시간 및 주파수 분석기를 사용하여 히스토그램과 타임스탬프 데이터를 생성하는 HBT 설정.

측정 시퀀스 동안 시간 및 주파수 분석기는 연속적인 이벤트 A와 B 사이의 지연 시간을 기록하고, 이를 통해 검출된 광자 쌍 사이의 지연 시간 밀도를 실시간으로 구성합니다. 시간 및 주파수 분석기에서 생성된 실시간 히스토그램은 첫 번째 단계 이벤트만 측정하므로 \(g^{(2)}(\tau)\)를 계산하려면 후처리가 필요하다는 점에 유의해야 합니다. 다행히 다음 섹션에서 설명하는 자기 합성이라는 과정을 통해 시간 간격 데이터의 분포를 \(g^{(2)}(\tau)\)의 근사값으로 변환하는 방법이 있습니다. 이것이 Moku 시간 및 주파수 분석기에 내장된 \(g^{(2)}(\tau)\) 계산기의 기초가 됩니다.

간격 데이터 분석

시간 및 주파수 분석기(Time & Frequency Analyzer)로 포착한 간격 시간 히스토그램을 가정해 보겠습니다. 이 분포를 \(k(\tau)\)라고 부르는데, 이는 각 광자와 다른 스트림의 첫 번째 후속 광자 사이의 시간 지연을 기록합니다. 의사 코드로 표현하면 다음과 같습니다.

for A_time in A:
    find the first B_time after A_time
    tau = B_time - A_time

이전 섹션에서 언급했듯이, \(k(\tau)\)는 1단계 지연에 대한 확률 밀도 함수입니다. \(k(\tau)\)는 표면적으로 \(\langle n_A(t) n_B(t+\tau) \rangle\)과 유사하지만, 1차 기여만 포함하고 더 긴 캐스케이드에 의해 발생한 광자는 제외합니다. 예를 들어, \(t + \tau_1 + \tau_2\) 또는 \(t + \tau_1 + \tau_2 + \tau_3\) 시점에 도달하는 광자는 고려되지 않습니다.

이러한 이유로, \(k(\tau)\)는 일반적으로 \(g^{(2)}(\tau)\)를 직접 계산하는 데 사용되지 않습니다. 대신, 사건 A와 B 사이의 명시적인 일치를 최대 시간까지 수동으로 계산해야 합니다. 의사 코드로 표현하면 다음과 같습니다.

for A_time in A:
    find all B_time that occur after A_time, within some t_max
    for each B_time
        tau = B_time - A_time

이러한 τ 값들은 히스토그램을 생성하기 위해 구간별로 분류되고, \(g^{(2)}(\tau)=1\)이 해당 지연 시간에서 상관 관계가 없음을 나타내도록 적절하게 정규화됩니다. 이 방법은 직접적이고 직관적이지만, 모든 이벤트 A를 모든 이벤트 B와 비교해야 하므로 확장성이 떨어집니다. 이는 \(O(N_A \times N_B)\) 연산을 필요로 하며, 이벤트 발생률이 높을 경우 빠르게 제어 불가능해질 수 있습니다. 이러한 이유로 이 기능은 하드웨어에서 실시간으로 구현하기 어렵습니다.

따라서 Moku 시간 및 주파수 분석기는 FPGA의 고유한 특성에 더 적합한 두 번째 대안적인 방법을 통해 실시간으로 \(g^{(2)}(\tau)\)를 계산합니다. 이 방법은 \(k^{(n)}(\tau)\)로 표현되는 \(k(\tau)\)\)의 고차 자기 합성곱을 수행하는 것을 포함합니다. 각 \(k^{(n)}(\tau)\)는 광자가 시간 τ에 발생할 확률 밀도를 나타냅니다. n캐스케이드에서 n번째 광자. 다시 말해, 이는 초기 이벤트에서 n번째 광자 후계 광자에 이르는 지연 분포에 해당합니다. 초기 트리거 후 시간 τ에 광자를 관찰할 총 확률 밀도 G(τ)는 어떤 세대에서 왔는지에 관계없이 무한 합에 비례합니다[1]:

\(G(\tau) \propto \sum_{n=1} ^\infty k^{(n)}(\tau)\).

이 합은 상호 배타적인 경로에 대한 논리적 OR로 해석되어야 합니다. 이는 광자가 1차 생성, 2차 생성, 3차 생성 등으로 인해 시간 τ에 나타날 확률을 고려하기 때문입니다. 각 항은 독립적인 가능성을 나타내며, 이들의 합은 지연 시간 τ에서의 총 도착 밀도를 나타냅니다. 따라서,

\(g^{(2)}(\tau) \propto G(\tau)\).

다음 섹션에서는 \(g^{(2)}(\tau)\)를 두 가지 방법으로 측정합니다. 하나는 타임스탬프를 기록하고 전체 쌍별 값을 계산하는 것이고, 다른 하나는 Moku의 내장 계산기를 사용하는 것입니다.

Moku 시간 및 주파수 분석기를 사용하여 \(g^{(2)}(\tau)\)를 실험적으로 검증

포아송 분포를 따르는 사건 분포를 시뮬레이션하기 위해, 우리는 완전 전기식 설정을 사용합니다. Moku:Pro. 활용하다 다중 장비 모드우리는 Moku FPGA를 4개의 계측기 슬롯으로 분할하고, 각 슬롯은 측정의 일부를 에뮬레이션합니다. 자세한 내용과 연결도는 그림 4를 참조하십시오.

그림 4. 다중 기기 모드 레이아웃. 하나의 파형 발생기는 "광자 소스" 역할을 하여 두 번째 파형 발생기를 작동시켜 펄스를 발생시킵니다. 이 펄스는 Moku 시간 및 주파수 분석기로 전달되어 표로 정리됩니다. 오실로스코프는 두 번째 파형 발생기의 출력을 모니터링합니다.

먼저, 우리는 다음을 구성합니다. 파형 발생기이렇게 하면 서로 상관관계가 없는 두 개의 노이즈 스트림이 생성됩니다. 설정 화면에서 출력 A와 출력 B를 활성화합니다. 두 출력 모두에 대해 "노이즈" 기능을 선택하고 범위를 1V로 설정합니다. 파형 발생기 설정은 그림 5를 참조하십시오.

그림 5. Moku 파형 발생기 구성. 출력 A와 B는 잡음 발생원 역할을 하므로 서로 상관 관계가 없어야 합니다.

둘째, 광검출기 쌍의 기능을 모방하기 위해 또 다른 파형 발생기를 사용합니다. 10MHz의 반복률과 20ns의 펄스 길이를 갖는 펄스 출력을 선택합니다. 400mV의 임계값을 갖는 N 사이클 버스트 모드를 활성화합니다. 각 채널은 첫 번째 파형 발생기의 노이즈 소스 중 하나에 의해 트리거됩니다. 이러한 방식으로 두 번째 파형 발생기는 입력이 특정 전압 임계값에 도달하면 트리거되어 단일 광자 검출기의 동작과 유사한 사각 펄스를 출력합니다. 이 경우 임계값은 400mV이지만, 이 값을 변경하여 "광자" 이벤트의 빈도를 조절할 수 있습니다. 두 번째 파형 발생기의 구성은 그림 6에 나와 있습니다.

그림 6. 두 번째 Moku 파형 발생기 구성. 채널 A와 B는 단일 광자 검출기를 모방하여 펄스를 방출하기 전에 노이즈 입력이 임계값에 도달할 때까지 기다립니다.

셋째, 우리는 다음을 구성합니다. 시간 및 진동수 분석기 입력 A와 B에서 발생하는 "포톤" 이벤트를 감지하기 위해, 이벤트 탭에서 상승 에지에서의 이벤트 임계값을 0V로 설정한 후, 이벤트 A부터 이벤트 B까지의 시간 간격을 측정합니다. 반복률이 높으므로 윈도우 모드에서 100ms의 측정 간격으로 측정하면 충분한 수의 이벤트를 포착할 수 있습니다. 마지막으로, 출력을 관찰하기 위해 오실로스코프를 네 번째 슬롯에 설정합니다. 모든 장비를 설정하고 파형 발생기의 출력을 활성화하면 그림 7과 같이 오실로스코프에 출력이 나타납니다. 채널 A와 B 모두에서 "이벤트" 펄스가 무작위로 분포되어 있으며, 때로는 매우 근접한 시간 간격으로 발생하기도 합니다.

그림 7. 오실로스코프 화면. 파형 발생기에서 방출되는 "광자" 이벤트를 보여주며, 일부 상용 단일 광자 검출기에서 사용되는 TTL 신호를 모방한 것입니다.

시간 및 주파수 분석기로 돌아가면 마찬가지로 이러한 이벤트들이 히스토그램에 나타나는 것을 볼 수 있습니다. 이전 섹션에서 설명했듯이 이 히스토그램은 가장 가까운 이벤트 사이의 시간 간격만 반영하며 2차 또는 3차 캐스케이드는 고려하지 않습니다. "간격 히스토그램" 버튼을 클릭하면 표시 방식이 바뀌어 내장된 \(g^{(2)}(\tau)\) 계산 결과를 볼 수 있습니다. 그림 8에서 두 결과를 나란히 확인할 수 있습니다. 상관관계는 히스토그램의 자체 컨볼루션 결과이므로 모양이 상당히 다릅니다. 값은 1 근처에 머무르는데, 이는 이벤트 A와 B 사이에 상관관계가 없음을 나타냅니다. 이는 의사 난수 분포에서 예상되는 결과입니다.

쌍별 방법을 사용하여 \(g^{(2)}(\tau)\)를 생성하려면 히스토그램을 비활성화하고 오른쪽 하단의 데이터 로거 아이콘을 클릭하여 원시 타임스탬프 데이터를 호스트 PC에 기록할 수 있습니다. 시작 트리거와 수집 시간을 설정한 다음 빨간색 버튼을 클릭하여 로깅을 시작합니다. 로깅 후 클라우드 아이콘을 클릭하고 가장 최근 데이터 파일을 선택합니다. 형식이 "NumPy" 형식으로 설정되어 있는지 확인한 다음 원하는 대상으로 전송합니다. 다음 섹션에서는 Python 스크립트를 사용하여 \(g^{(2)}(\tau)\)를 계산합니다.

그림 8. 위쪽: 시간 및 주파수 분석기에서 표시되는 히스토그램은 실시간으로 업데이트되어 이벤트 AB 간격의 분포를 보여줍니다. 아래쪽: \(g^{(2)}(\tau)\) 함수는 1 근처의 안정적인 값을 보여주며 상관관계가 없는 이벤트를 나타냅니다.

타임스탬프 데이터를 사용하여 Python으로 \(g^{(2)} (\tau)\) 계산

이러한 방법들 간의 일치성을 입증하기 위해, 이제 시간 및 주파수 분석기에서 생성된 타임스탬프 데이터를 사용하여 \(g^{(2)}(\tau)\)를 추정해 보겠습니다. 이 파이썬 노트북은 저희 웹사이트에서 다운로드하실 수 있습니다. 깃허브.

먼저 표준 패키지를 임포트한 후, 데이터를 A_times와 B_times라는 두 개의 배열로 가져옵니다. 그런 다음 A 이벤트 이후에 발생하는 다음 B 이벤트를 계산하여 Moku 시간 및 빈도 분석기에서 플롯하는 것과 동일한 1차 간격 정보를 얻습니다. 타임스탬프와 히스토그램 정보를 모두 사용하여 이전 섹션에서 설명한 방법을 통해 \(g^{(2)}(\tau)\)를 계산할 수 있습니다. 첫 번째 방법은 그림 9에서 볼 수 있는데, A_times의 각 이벤트 이후에 발생하는 B_times의 모든 이벤트를 찾습니다. 그런 다음 이러한 값을 적절하게 구간화하고 정규화합니다.

그림 9: 쌍별 방법으로 알려진 모든 지연을 수동으로 계산하여 \(g^{(2)}(\tau)\)를 계산합니다.

두 번째 방법은 1차 이벤트 히스토그램의 자체 컨볼루션을 이용하는 것으로, 이를 통해 앞서 정의한 시간 평균 동시 발생률에 비례하는 값을 얻습니다. 이 값은 시간 및 주파수 분석기를 설정하고 다음 방법을 사용하여 히스토그램을 얻음으로써 계산할 수 있습니다. get_data() 이 함수는 시간 구간 목록과 각 구간에 대해 계산된 상관 관계 값을 반환합니다. 코드는 그림 10에서 확인할 수 있습니다.

그림 10: Python을 통해 Moku 장치에서 \(g^{(2)}(\tau)\) 데이터를 직접 얻는 방법.

이제 Moku 장치에서 생성된 플롯과 함께 전체 쌍별 계산을 플롯하여 두 가지 방법을 비교합니다. 이 비교는 그림 11에서 볼 수 있습니다. 두 방법 모두 잘 일치하며 전체 시간 범위에 걸쳐 \(g^{(2)}(\tau)\) 값이 1에 가까운 값을 생성하는데 이는 두 개의 상관관계가 없는 소스에 대해 예상되는 결과입니다.

그림 11. Moku에서 수집한 \(g^{(2)}(\tau)\) 데이터의 플롯. 계산은 "전체" 방법과 시간 및 주파수 분석기의 컨볼루션 근사법을 모두 사용하여 수행되었습니다. 동일한 시간 축에 플롯하면 두 방법 간의 좋은 일치를 보여줍니다.

컨볼루션 방법과 쌍별 방법은 서로 다른 계산 접근 방식으로 인해 특히 \(\tau \approx 0\) 근처에서 \(g^{(2)}(\tau)\)에 약간의 차이를 보일 수 있습니다. 컨볼루션 방법은 Moku에서 얻은 구간화된 히스토그램 데이터를 사용하는 반면, 쌍별 방법은 모든 이벤트 쌍 조합을 명시적으로 평가합니다.

두 방법 모두 2차 상관관계를 계산하는 수학적으로 유효한 접근 방식입니다. 대부분의 응용 분야에서 두 방법은 동일한 결과를 산출합니다. 다만, 예외적인 경우나 특정 검출기 구성에서는 두 접근 방식 간에 약간의 차이가 나타날 수 있음을 사용자는 유의해야 합니다.

제품 개요

2차 상관 함수는 광원의 시간적 동역학을 평가하는 강력한 도구이며, 보안 통신에서 광자 컴퓨팅에 이르기까지 양자 광학 응용 분야에 매우 중요합니다.

본 연구에서는 Moku 시간 및 주파수 분석기를 이용하여 두 가지 방법으로 2차 상관 함수 \(g^{(2)}(\tau)\)를 계산했습니다. 첫 번째 방법은 Moku 시간 및 주파수 분석기에 내장된 계산기를 사용하여 합성곱 방식으로 함수를 생성하는 것이었습니다. 두 번째 방법은 고해상도 시간 태그가 지정된 광자 이벤트를 포착하고 Python을 사용하여 분석한 후, 완전 쌍별 방법을 통해 \(g^{(2)}(\tau)\)를 계산하는 것이었습니다. 두 방법을 함께 그래프로 나타냈을 때, 결과가 잘 일치함을 확인했습니다.

일관성 있는 레이저를 조사하든 단일 광자 방출기를 조사하든 \(g^{(2)}(\tau)\)를 계산하는 두 가지 방법을 숙지하면 사용자는 이상적인 동작에서 벗어난 편차를 측정하고 소스 성능을 정량화할 수 있습니다.

참고자료

[1] Chen-How Huang, Yung-Hsiang Wen 및 Yi-Wei Liu, "무작위 위상 변조를 사용하여 2차 상관 함수 및 코히어런스 시간 측정", Opt. Express 24, 4278-4288(2016).

애플리케이션 노트 다운로드

데모 모드에서 Moku를 사용해 보세요

macOS 및 Windows용 Moku 앱을 다운로드할 수 있습니다. 여기에서 확인하세요..


FAQ에 대한 답변을 받으세요

장치 및 계측기에 대한 질문과 답변을 찾아보세요. 기술 자료.


Moku 사용자와 연결

또한 사용자 포럼 새로운 기능을 요청하고, 지원 팁을 공유하고, 글로벌 사용자 커뮤니티와 소통하세요.

기타 권장 어플리케이션 노트

모든 애플리케이션 노트로 돌아가기