오디오

복소 스펙트럼, 스펙트럼 그래프, 스펙트로그램 완벽 정리

하리우라 2025. 8. 7. 16:31

 

오디오 신호 처리에서 자주 헷갈리는 용어들을 한 번에 정리했습니다.

1. 복소 스펙트럼(Complex Spectrum)

정의

FFT(STFT)를 돌리면 각 주파수 빈 k마다 나오는 복소수 값

X[k] = Re{X[k]} + j·Im{X[k]}
  • 실수부(Real): Re{X[k]}
  • 허수부(Imag): Im{X[k]}

복소 스펙트럼이 담고 있는 정보

  1. 크기(Magnitude): |X[k]| = √(Re{X[k]}² + Im{X[k]}²)
  2. 위상(Phase): ∠X[k] = arctan(Im{X[k]}/Re{X[k]})

💡 STFT 결과 전체를 '복소 스펙트럼'이라고 부르며, 크기와 위상 정보를 모두 담고 있습니다.

2. (진폭) 스펙트럼 그래프(Magnitude Spectrum Plot)

정의

복소 스펙트럼에서 크기(|X[k]|)만 뽑아서 시각화한 것

만드는 과정

  1. 크기 정보만 추출: |X[k]|
  2. dB 단위로 변환: 20·log₁₀(|X[k]|)
  3. 그래프로 표현:
    • X축: 주파수 (로그 스케일)
    • Y축: 진폭(dB)

특징

  • 피크 위치: 해당 주파수에 에너지가 많다 → 악기의 기본음·고조파
  • 로그 주파수 축: 저역부터 고역까지 고르게 보이도록

💡 "스펙트럼 그래프"는 복소 스펙트럼의 크기 정보만 골라서 사람이 보기 편하게 시각화한 것

3. 복소 스펙트럼 vs 스펙트럼 그래프 한눈에 비교

구분 복소 스펙트럼 스펙트럼 그래프

값의 형태 복소수 (Real + j·Imag) 실수 (크기 또는 dB)
표현 정보 크기 + 위상 크기만 (보통 dB 스케일)
축 설정 빈(bin) 인덱스 or 주파수(선형) 주파수(로그/선형)
용도 신호 합성·재구성<br>(위상 정보 필요) 주파수 성분 분석·특징 추출<br>(크기 정보만으로 충분)

핵심 정리

  • "복소 스펙트럼" = 이론·연산 결과 그 자체(크기+위상)
  • "스펙트럼 그래프" = 크기만 골라서 dB로 변환해 시각화한 것

4. 스펙트럼 vs 스펙트로그램

기본 개념

  • 스펙트럼(한 프레임): 한 순간에서 FFT 수행한 결과
    • 크기: |X[k]|
    • 위상: ∠X[k]
  • 스펙트로그램(시간-주파수 행렬): 여러 프레임의 스펙트럼을 시간축으로 쌓은 2D 행렬
    • n: 프레임 인덱스(시간)
    • k: 주파수 빈
  • S[n,k] = |X[n,k]|

"크기 값을 쌓는다"의 의미

  • ❌ 히스토그램처럼 값을 누적(sum)하는 것이 아님
  • ⭕ 각 프레임의 스펙트럼 벡터를 시간 차원으로 배열하는 것
    • 멜 스펙트로그램: |X[n,k]| 사용
    • 파워 스펙트로그램: |X[n,k]|² 사용

5. 스펙트로그램의 위상 정보

일반 스펙트로그램(이미지)

위상 정보가 들어가지 않습니다

  • 이유: 시각화·머신러닝 입력용으로는 크기(또는 로그 크기)만 필요

복소 스펙트로그램

STFT 결과물 자체에는 위상이 남아있음 ⭕

  • 역변환(ifft) 등 재구성 작업 시 위상 정보 필수

부가 설명

  • 위상 스펙트로그램: ∠X[n,k]만 시각화 (잘 안 씀)
  • 복소 스펙트로그램: 크기+위상 모두 저장, 신호 재합성용

📌 최종 요약

  1. 복소 스펙트럼: FFT 결과 그 자체 (크기+위상)
  2. 스펙트럼 그래프: 크기만 뽑아서 dB로 시각화
  3. 스펙트로그램: 시간축으로 쌓은 크기 스펙트럼
  4. 일반 스펙트로그램 이미지에는 위상 정보 없음

💡 기억하기: 스펙트로그램은 "시간축으로 쌓은 크기 스펙트럼"이고, 위상 정보는 일반 스펙트로그램 이미지에 포함되지 않는다!

'오디오' 카테고리의 다른 글

주파수 해상도와 빈(bin)  (1) 2025.07.18
오디오 데이터 증강 : SpecAugment  (1) 2025.07.17