analytic = hilbert(frame, axis=0)
envelope = np.abs(analytic)
힐버트 변환한걸 절대값 취하면 포락선(envelope)를 구할 수 있다.
bmode = np.log10(envelope + 1e-3)
log를 이용해서 이미지를 compress한다.
log 곡선은 값이 작을때는 기울기가 급격하고 값이 커지면서 점점 값이 작아지기 때문에 적절히 compress할수있음

logic Pro X의 컴프레서를 생각하면 간단할거같다(아니면 더 복잡해 지거나)
1e-3은 왜 더하냐? evelope값이 0일수있기 때문에 더한다고 한다.
plt.figure(figsize=(8,6))
plt.imshow(bmode, cmap="gray", aspect="auto")
plt.title("B-mode Image (Hilbert envelope)")
plt.xlabel("Vector (channel)")
plt.ylabel("Depth (samples)")
plt.colorbar(label="log amplitude")
plt.show()
나머지는 plot의 설정이라서 더 설명하지 않아도 될거같다.
'이직로그 > DSP' 카테고리의 다른 글
| 빔포밍 시뮬레이션 4 - Padding 분석하기 (0) | 2025.11.18 |
|---|---|
| 빔포밍 시뮬레이션 3 - N번째 프레임 이미지 처리 (0) | 2025.11.13 |
| 빔포밍 시뮬레이션 1 - 첫번째 프레임 찾기 (0) | 2025.11.12 |
| b-mode 에 관하여 (0) | 2025.11.06 |
| 힐버트 변환(Hilbert Transform) - 기초 (0) | 2025.10.29 |