초면체 헬리오그래피 시뮬레이션 전 과정: 이론부터 실습까지

초면체 헬리오그래피 개요

초면체 기반의 헬리오그래피는 광학 정보를 복소 진폭 또는 순수 위상으로 조절하여 3차원 이미지를 재현하는 기술이다. 주로 두 가지 방식이 존재한다: 복소 진폭 헬리오그래피는 진폭과 위상을 동시에 조절하며 높은 해상도와 정확도를 제공하고, 순수 위상 헬리오그래피는 위상만을 조작함으로써 제작이 간단하고 물리적 구현이 용이하다.

이미징 거리에 따라 근장(近場)원장(遠場) 성능을 분석할 수 있다. 근장에서는 초면체 근처에서의 파동 전파 특성을 고려하고, 원장에서는 멀리 떨어진 위치에서의 회절 패턴을 모델링한다. 이러한 분류는 실제 응용에서 초면체의 최적 설계에 필수적이다.

복소 진폭 헬리오그래피 시뮬레이션

Python을 활용해 단순한 사각형 물체의 복소 진폭 헬리오그래피를 생성해보자. 다음 코드는 2차원 공간에서 물체의 복소 표현을 푸리에 변환을 통해 헬리오그램으로 변환한다.

import numpy as np
import matplotlib.pyplot as plt

# 설정
grid_size = 128
object_dim = 16

# 물체 정의 (중앙에 있는 사각형)
scene = np.zeros((grid_size, grid_size), dtype=complex)
start = (grid_size - object_dim) // 2
end = start + object_dim
scene[start:end, start:end] = 1.0 + 0j

# 푸리에 변환 → 헬리오그램 생성
hologram_complex = np.fft.fft2(scene)

# 결과 시각화
plt.figure(figsize=(14, 6))
plt.subplot(1, 2, 1)
plt.imshow(np.abs(scene), cmap='gray', origin='lower')
plt.title('입력 물체 (실수부)')
plt.subplot(1, 2, 2)
plt.imshow(np.abs(hologram_complex), cmap='viridis', origin='lower')
plt.title('복소 진폭 헬리오그램')
plt.tight_layout()
plt.show()

순수 위상 헬리오그래피 생성

순수 위상 헬리오그래피는 헬리오그램의 위상 정보만을 사용하여 초면체의 구조를 설계한다. 아래 코드는 복소 진폭 헬리오그램에서 위상만 추출하여 새로운 헬리오그램을 생성한다.

import numpy as np
import matplotlib.pyplot as plt

# 동일한 설정 사용
grid_size = 128
object_dim = 16

# 물체 생성
scene = np.zeros((grid_size, grid_size), dtype=complex)
start = (grid_size - object_dim) // 2
end = start + object_dim
scene[start:end, start:end] = 1.0 + 0j

# 헬리오그램 계산
hologram = np.fft.fft2(scene)

# 순수 위상 헬리오그램 생성
phase_only = np.exp(1j * np.angle(hologram))

# 시각화
plt.figure(figsize=(14, 6))
plt.subplot(1, 2, 1)
plt.imshow(np.abs(scene), cmap='gray', origin='lower')
plt.title('원본 물체')
plt.subplot(1, 2, 2)
plt.imshow(np.angle(phase_only), cmap='twilight', origin='lower')
plt.title('순수 위상 헬리오그램 (위상 맵)')
plt.tight_layout()
plt.show()

근장 및 원장 전파 시뮬레이션

근장 성능은 필네르 회절을 기반으로 모델링할 수 있다. 아래 코드는 특정 거리 \( z \)에서의 전파를 계산하여 근장 이미지를 재현한다.

import numpy as np
import matplotlib.pyplot as plt

# 파라미터 설정
N = 256
wavelength = 500e-9  # 500 nm
z_distance = 0.05    # 5 cm 전파 거리
dx = 1e-6            # 격자 간격

# 좌표 생성
x = np.arange(-N//2, N//2) * dx
y = np.arange(-N//2, N//2) * dx
X, Y = np.meshgrid(x, y)

# 간단한 원형 헬리오그램 정의
hologram_input = np.zeros((N, N), dtype=complex)
radius = 40
mask = X**2 + Y**2 < radius**2
hologram_input[mask] = 1.0 + 0j

# 필네르 회절 커널 계산
k = 2 * np.pi / wavelength
kernel = np.exp(1j * k * z_distance) / (1j * wavelength * z_distance)
kernel *= np.exp(1j * k / (2 * z_distance) * (X**2 + Y**2))

# 회절 전파 계산 (푸리에 도메인에서)
propagated = np.fft.ifft2(np.fft.fft2(hologram_input) * np.fft.fft2(kernel))

# 결과 출력
plt.figure(figsize=(14, 6))
plt.subplot(1, 2, 1)
plt.imshow(np.abs(hologram_input), cmap='gray', origin='lower')
plt.title('입력 헬리오그램')
plt.subplot(1, 2, 2)
plt.imshow(np.abs(propagated), cmap='plasma', origin='lower')
plt.title('근장 이미지 (필네르 회절)')
plt.tight_layout()
plt.show()

원장 성능은 프랑하퍼 회절 모델로 처리되며, 전파 거리가 매우 클 경우 회절핵이 상수 항으로 근사된다. 이 경우, 직접적인 푸리에 변환으로 이미지를 얻을 수 있다.

시각화 및 실제 적용 사례

시뮬레이션 결과를 애니메이션 형태로 시각화하면, 헬리오그램 생성 → 전파 → 재현된 이미지의 전체 프로세스를 직관적으로 이해할 수 있다. 다양한 파라미터 변화를 반영한 영상은 교육 및 연구 자료로 유용하다.

관련 문헌으로는 Advanced Metasurface Holography: Principles, Design, and Applications 등이 있으며, 이는 초면체 헬리오그래피의 핵심 원리와 산업 적용 사례를 심층적으로 다룬다.

실제 응용에서는 보안 인증, 고급 포장 디자인, 그리고 신분 증명서 등의 방지 기법으로 사용된다. 예를 들어, 특정 각도에서만 명확한 이미지가 나타나는 특성 덕분에 위조 방지 효과가 뛰어나다.

초면체 헬리오그래피는 이론적 깊이와 실용적 가능성 모두를 지닌 분야이며, 광학, 나노기술, 통신 등 다양한 분야와 융합 가능성이 크다.

태그: 초면체 헬리오그래피 복소 진폭 순수 위상 필네르 회절

5월 29일 09:01에 게시됨