WRITING · 2026-11-03

겹쳐 있는 두 신호를 위상으로 가르기 — 파수 상관 필터링 석사 연구 정리

중력과 자력 데이터를 같은 주파수 성분끼리 비교해, 함께 움직이는 성분과 반대로 움직이는 성분을 나눴다. 임계값을 감으로 정하지 않으려고 한 일들.

신호처리파수 영역데이터 통합지구물리석사 연구

석사 과정에서 아부다비 해상 가샤(Ghasha) 지역의 항공 중력·자력 데이터를 분석했습니다. 이 지역은 두꺼운 퇴적층 아래에 기반암과 암염(Hormuz salt)이 함께 있어서, 한 종류의 데이터만으로는 두 구조가 섞여 보입니다. 기존 해석법으로는 암염 깊이를 약 6,000 m로 추정했는데, 탄성파 자료 기준으로는 약 9,300 m라서 차이가 컸습니다.

데이터 관점에서 보면 이 문제는 "서로 다른 원인이 섞인 두 개의 2D 신호에서 원인별 성분을 분리하는 문제"입니다. 이 글은 그 방법을 어떻게 설계했는지 정리한 것입니다.

왜 두 데이터를 같이 봐야 했나

그래서 기반암 위에서는 두 데이터가 같은 방향으로 움직이고, 암염 주변에서는 어긋나거나 반대로 움직입니다. 이 차이를 숫자로 잡을 수 있다면 두 구조를 나눌 수 있습니다.

5단계 처리 흐름

  1. 상향 연속(upward continuation) — 얕은 곳의 잡음을 줄이고 깊은 구조를 강조
  2. 정규화 — 단위가 다른 두 데이터를 직접 비교할 수 있게 표준화
  3. 파수 상관 필터링(WCF) — 주파수(파수) 영역에서 두 데이터의 상관을 계산하고 성분을 거름
  4. 지표 계산 — 같은 방향 성분으로 SLFI, 반대 방향 성분으로 DLFI를 만듦
  5. 검증 — 기존에 발표된 독립 모델과 비교

핵심: 파수별 상관계수

두 데이터를 푸리에 변환한 뒤, 같은 파수 k에서 두 신호의 위상 차이 Δθ를 봅니다.

CC(k) = cos(Δθₖ)

진폭이 아니라 위상만 보기 때문에, 단위나 세기가 다른 데이터끼리도 "같이 움직이는지"를 비교할 수 있다는 점이 이 방법의 장점입니다.

임계값을 감으로 정하지 않기

연구하면서 가장 신경 쓴 부분은 숫자를 어디서 자를지였습니다. 임의로 정하면 결과가 보기 좋게 나와도 설명할 수 없기 때문입니다.

상향 연속 높이. 높이를 올릴수록 두 데이터의 상관계수가 변하다가 어느 순간부터 거의 바뀌지 않습니다. 이 변화 곡선의 양 끝을 잇는 직선에서 가장 멀리 떨어진 지점(곡선이 꺾이는 지점)을 계산했고, 그 지점이 1,500 m였습니다.

상관계수 구간. 구간을 좁히면 상관은 높아지지만 남는 신호 에너지가 줄어듭니다. 그래서 임계값을 바꿔 가며 "상관계수"와 "남는 신호 에너지 비율"을 함께 그려 보고 둘 사이의 균형점을 골랐습니다.

이렇게 정하면 "왜 0.5인가?"라는 질문에 그래프로 답할 수 있습니다.

검증: 서로 다른 방법으로 만든 모델과 맞춰 보기

결과가 맞는지 확인하려고, 다른 해석법으로 만든 기존 모델 3개와 비교했습니다.

측선 비교에서 SLFI와 기반암 깊이 모델의 상관계수는 처음 0.87~0.95였고, 측선 간 위치 차이를 최적으로 보정한 뒤에는 0.95~0.98까지 올라갔습니다. DLFI는 암염층의 분포 모양과 일치했고, 가샤 서쪽에 추가 암염 융기 가능성도 새로 보였습니다.

데이터 일로 가져가는 것

지구물리 연구였지만, 하고 나서 남은 건 데이터 다루는 습관이었습니다.

이 연구는 캘거리대·칼리파대(UAE)와의 공동연구로 SCIE 국제학술지 SPE Journal에 제1저자로 게재되었고, 같은 내용으로 석사 학위논문을 완성했습니다.

분석 코드는 데이터를 빼고 gravmag-wcf에 정리해 두었습니다. 합성 데이터로 위 흐름(상향 연속 높이 선택 → CC(k) → 에너지 곡선 → SLFI·DLFI → 검증)을 그대로 돌려 볼 수 있습니다.

중력·자력 데이터 파수 상관 분석으로 지하 구조 규명 (석사 · SPE Journal 제1저자)이 글에서 다룬 코드는 저장소에서 볼 수 있습니다.
GitHub 저장소 →포트폴리오로
다른 글점수를 지키면서 올리기 — VQA 챌린지에서 앙상블 후보를 고른 기준정확도가 조금 올라도 원래 맞히던 문제를 많이 틀리면 불안정한 개선이다. fixes와 breaks로 순기여를 따져 0.94608에서 시작한 점수를 쌓아 올린 과정.LLM이 붙인 [근거 N]을 코드로 다시 검사하기 — 국보 RAG 가이드의 인용 설계근거를 인용하라고 프롬프트에 써도 LLM은 없는 번호를 붙입니다. 근거 번호를 검색 단계에서 고정하고, 답변의 인용을 코드로 파싱해 없는 번호는 지우고 실제로 인용한 근거만 보여 주는 구조를 만든 기록.YAML 파일 하나로 포트폴리오·이력서·비공개 페이지까지 — 이 사이트를 만든 방식내용은 한 곳에만 쓰고, 웹 페이지·PDF 이력서·노션 문서는 빌드로 만든다. 공개하면 안 되는 내용은 저장소에 평문으로 남기지 않는다.데이터를 해석하기 전에 그 데이터가 만들어진 역사를 본다 — 학부 제1저자 논문 회고해외 대규모 CO2 저장소 8곳을 판구조 형성사와 탄성파 영상으로 비교했다. 처리 결과를 '그럴듯한지' 판단하는 기준을 어디서 가져올 것인가에 대한 이야기.길찾기에서 의사결정으로 — 배틀싸피 자동 플레이 봇을 세 번 고친 기록목표까지 가는 BFS 한 줄짜리 봇이, 사거리·장애물·탄약·보급·암호 해독까지 판단하는 봇이 되기까지. 매 턴 다시 계획하는 구조로 바꾼 이유.산불 4건으로 시공간 딥러닝 학습하기데이터가 35개 시점뿐일 때 어떻게 학습시켰고, 다시 보니 무엇이 부족했는지. U-LSTM 산불 확산 예측 모델 회고.LLM 응답을 믿지 않는 파이프라인 설계LLM에는 판단만 맡기고, 결과는 코드로 검증한다. 댓글 분석 파이프라인과 AI 도서 추천을 만들며 정한 네 가지 원칙.순차 학습이 성능을 떨어뜨린 이유 — catastrophic forgetting 실험기단어 단위 → 문맥 단위로 차례로 학습하면 더 좋아질 줄 알았는데, BERTScore가 0.47에서 0.32로 떨어졌다. FLAN-T5 LoRA 학습 전략 비교.