NVH/신호 분석

[실전 NVH 가이드] Cepstrum 분석 — 사이드밴드 빗살무늬를 단 한 줄로 정리하다

NVH 엔지니어 2026. 5. 25. 22:01

[실전 NVH 가이드] Cepstrum 분석 — 사이드밴드 빗살무늬를 단 한 줄로 정리하다

by NVH 엔지니어 | 실전 NVH 가이드

🚨 [Hook] "메시 주파수 양옆에 빗살무늬 사이드밴드가 10개… 정확히 몇 Hz 간격이죠?"

회전 기계 진동에는 사이드밴드(sideband)가 자주 등장합니다. 회전자 도체 파손(BRB)이라면 1X 주변에 ±2sf 간격, 기어 메시 결함이라면 메시 주파수 주변에 ±회전 주파수 간격, 베어링 내륜 결함이라면 BPFI 주변에 ±1X 간격. 빗살무늬처럼 늘어선 작은 피크들을 보고 있으면 머리가 복잡해집니다.

"메시 주파수에 ±20 Hz 간격 사이드밴드도 있고, ±회전 주파수 다른 간격도 섞여 있어요. 어느 게 진짜 결함이고 어느 게 다른 잡음인지 한눈에 안 보입니다."

이럴 때 강력한 도구가 바로 Cepstrum 분석입니다. 1963년 Bogert·Healy·Tukey가 도입한 이 변환은 "스펙트럼 안의 반복 패턴"을 단일 피크로 정리하는 일종의 "스펙트럼의 스펙트럼"입니다. 사이드밴드가 일정 간격으로 늘어서 있다면, cepstrum은 그 간격의 역수에 해당하는 단 하나의 quefrency 피크로 압축해 보여줍니다.

💡 [Concept] 산에서 박수 한 번 — 메아리의 시간차를 추출하는 변환

산 한가운데에서 박수를 한 번 칩니다. 박수 소리가 맞은편 절벽에 부딪혀 0.5초 뒤 메아리가 돌아옵니다. 시간 신호로 보면 짧은 박수 → 0.5초 후 같은 모양 박수 → 다시 0.5초 후 약한 박수… 같은 패턴이 0.5초 간격으로 반복됩니다.

🌄 메아리의 시간차 = 스펙트럼의 빗살무늬

이 메아리 신호를 FFT 하면 어떻게 보일까요? 원 신호 스펙트럼에 빗살무늬가 그려집니다. 0.5초 간격으로 반복되는 시간 신호는 \(1/0.5 = 2\) Hz 간격의 빗살무늬 형태로 스펙트럼에 나타납니다. 박수 한 번이면 매끈한 스펙트럼인데, 메아리가 합쳐지면서 빗살무늬가 생긴 거죠.

🪮 스펙트럼의 빗살 간격을 다시 한 번 추출 = Cepstrum

이 빗살무늬 스펙트럼을 한 번 더 FFT(정확히는 log 후 IFFT) 하면, 빗살 간격 2 Hz의 역수인 0.5초 위치에 단 하나의 큰 피크가 나타납니다. 메아리의 시간차가 그대로 추출된 셈입니다. 이게 cepstrum의 본질 — 스펙트럼 안의 반복 주기를 시간 단위로 다시 끄집어내는 변환입니다.

NVH 진동에서 사이드밴드는 정확히 같은 원리로 생깁니다. 기어 메시 주파수가 회전 주파수에 의해 진폭 변조(amplitude modulation)되면, 시간 신호에는 메시 주파수가 회전 주기마다 진폭이 약간씩 흔들리며 반복됩니다. 이게 스펙트럼에 빗살무늬 사이드밴드로 나타나고, cepstrum이 그 변조 주기를 단일 quefrency 피크로 정리합니다.

핵심 한 줄: 스펙트럼에 사이드밴드가 \(\Delta f\) 간격으로 늘어서 있으면, cepstrum은 그 사실을 quefrency \(\tau = 1/\Delta f\)의 단일 피크로 응축한다.

🔬 [Deep Dive] Cepstrum 정의, Quefrency, 그리고 거꾸로 된 용어들

정의 — 스펙트럼의 로그를 한 번 더 푸리에 변환

Cepstrum의 표준 정의(Bogert, Healy, Tukey 1963)는 다음과 같습니다.

Real Cepstrum

$$C_r(\tau) \;=\; \mathcal{F}^{-1}\!\left\{\,\log\left|\,X(f)\,\right|\,\right\}$$

\(X(f) = \mathcal{F}\{x(t)\}\): 시간 신호의 FFT, \(\tau\): quefrency [s]

핵심은 두 단계입니다. (1) 스펙트럼 크기에 로그를 취하고, (2) 다시 역 푸리에 변환합니다. 로그가 들어가는 이유는 곱(convolution의 결과)을 합으로 바꾸기 위해서 — 변조된 신호의 캐리어와 변조 성분을 분리하기 쉬워집니다.

위상까지 보존하는 Complex Cepstrum도 있습니다.

Complex Cepstrum

$$C_c(\tau) \;=\; \mathcal{F}^{-1}\!\left\{\,\log X(f)\,\right\}$$

로그 안에 절댓값이 없어 위상도 포함 — 원 신호 복원 가능(invertible)

NVH 진단에서는 주로 Real Cepstrum(또는 Power Cepstrum, \(|\mathcal{F}^{-1}\{\log|X|^2\}|^2\))을 씁니다. 위상 정보가 필요 없고, 사이드밴드 간격 추출이 목적이므로 간단한 쪽이 실용적입니다.

Quefrency, Rahmonic, Gamnitude, Lifter — 거꾸로 된 용어들

Bogert는 cepstrum을 만들면서 변수와 연산의 이름까지 거꾸로 뒤집어 놨습니다. 단순한 농담이 아니라, "주파수 영역에서 시간 영역처럼 행동하라"는 의미를 강조하려는 의도입니다.

원래 용어 거꾸로 된 용어 의미
spectrum cepstrum 스펙트럼의 스펙트럼
frequency [Hz] quefrency [s] cepstrum의 가로축. 단위는 시간이지만 "스펙트럼 안 반복 주기" 의미
harmonic rahmonic cepstrum 피크의 고조파 (\(\tau\), \(2\tau\), \(3\tau\)…)
magnitude gamnitude cepstrum 진폭
filter lifter cepstrum 영역에서의 필터링 — short-pass lifter, long-pass lifter

실무에서 자주 쓰는 건 quefrency, rahmonic, lifter 세 개. quefrency 단위 \(\tau\) [s]는 "스펙트럼에 나타난 빗살무늬 간격의 역수" — \(\Delta f = 20\) Hz 간격 사이드밴드는 quefrency \(\tau = 1/20 = 0.05\) s에 나타납니다.

왜 NVH 진단에 강력한가 — 세 가지 결정적 장점

  1. 여러 사이드밴드를 단 하나의 피크로 응축 — 메시 주파수 주변에 ±회전 주파수 간격 사이드밴드가 10개 있으면, cepstrum에는 단일 quefrency 피크 + 그 rahmonic 2~3개만 남음. 진단 단순화.
  2. 여러 family of sidebands 분리 — 한 스펙트럼에 두 결함이 동시(예: 기어 변조 + 모터 BRB)면 cepstrum은 두 quefrency 피크로 따로 분리해줌. 사이드밴드 패턴이 겹쳐 보이던 것이 풀림.
  3. 전달 경로 영향 분리 — 측정 점에 도달한 진동은 source 신호와 transmission path 응답의 convolution. 로그를 취하면 곱이 합으로 변하므로 cepstrum 영역에서 두 성분이 가산적으로 분리됨(Randall, 2011). short-pass lifter로 transmission path 효과만 제거 가능.

기어 진단의 표준 사용 사례

기어박스에서 \(f_{\mathrm{mesh}}\)는 메시 주파수, \(f_r\)는 회전 주파수라고 합시다. 정상이라면 \(f_{\mathrm{mesh}}\) 단일 피크. 그런데 톱니 한 개에 결함이 생기면 그 톱니가 한 회전마다 한 번씩 메시 진동에 변조를 입히므로 \(f_{\mathrm{mesh}} \pm k\,f_r\) 사이드밴드가 다수 발생합니다. Cepstrum에는 \(\tau = 1/f_r\) 위치에 단일 피크가 나타나며, 이 피크의 크기가 결함 심각도의 정량 지표가 됩니다 (Randall, 2011, Vibration-based Condition Monitoring, Wiley 참조).

🎮 [인터랙티브 시뮬레이터] 사이드밴드 간격을 바꾸면 cepstrum 피크가 어디로 이동할까

기어 메시 주파수(200 Hz)에 변조 주파수를 슬라이더로 조정하면, 스펙트럼의 사이드밴드 간격이 바뀌고 cepstrum 피크가 그 간격의 역수 위치로 이동합니다. 변조 강도와 사이드밴드 개수도 조정해보세요.

💡 위쪽은 진동 스펙트럼(200 Hz 메시 ± fmod 간격 사이드밴드), 아래쪽은 그 cepstrum. 변조 주파수를 20→30 Hz로 올리면 cepstrum 피크가 50 ms → 33 ms로 이동합니다 (\(\tau = 1/f_{\mathrm{mod}}\)). 2번째 변조를 켜면 cepstrum에 두 quefrency 피크가 따로 분리되어 두 결함이 동시 존재함을 한눈에 보여줍니다.

🛠️ [Theory to Practice] 실무에서 cepstrum을 쓰는 절차

계산 절차 (Python/MATLAB 5줄)

  1. 시간 신호 \(x(t)\)를 충분히 길게(최소 5 s) 수집. 분해능 \(\Delta f \le f_{\mathrm{mod}}/4\) 보장.
  2. FFT → \(X(f)\) 계산. Hanning 윈도우 + 평균화 4~8회로 노이즈 바닥 안정화.
  3. \(\log\left|X(f)\right|\) — 로그 진폭 스펙트럼.
  4. IFFT → 실수부만 취해 real cepstrum \(C_r(\tau)\).
  5. 관심 quefrency 구간(예: 1 ms ~ 200 ms)만 표시. 더 큰 \(\tau\)는 매우 낮은 주파수 성분이라 정보 없음.

측정·계산 권장 파라미터

  • 주파수 분해능: 추정하려는 사이드밴드 간격 \(f_{\mathrm{mod}}\)의 1/4 이하. 예) \(f_{\mathrm{mod}} = 20\) Hz라면 \(\Delta f \le 5\) Hz → 측정 시간 \(T \ge 0.2\) s. 다만 cepstrum의 quefrency 분해능을 위해 보통 \(T \ge 2\) s 권장.
  • 샘플링 레이트: 메시 주파수의 4배 이상 (\(f_s \ge 4\,f_{\mathrm{mesh}}\)) — anti-aliasing 위해.
  • 윈도우: Hanning 권장. Flat-top은 진폭은 정확하지만 누설을 더 만들어 cepstrum에 잡음 추가.
  • 로그 진폭 하한 클리핑: \(\log 0\) 발산 방지를 위해 \(\log(|X| + \epsilon)\) 또는 \(\log\max(|X|, \epsilon)\). \(\epsilon\)은 노이즈 바닥 수준.

Liftering — cepstrum 영역에서 필터링

Lifter는 cepstrum 영역의 필터입니다. 두 가지 용도가 있습니다.

  • Short-pass lifter (low-quefrency만 통과): 짧은 quefrency 영역은 spectral envelope(매끈한 형태) 정보. 음성 처리에서는 vocal tract 모델링에 사용. NVH에서는 transmission path 응답 추출에 사용.
  • Long-pass lifter (high-quefrency만 통과): 긴 quefrency 영역은 source의 주기성 정보. 변조 주파수만 추출하고 캐리어 영향 제거.

자주 빠지는 함정

  • Quefrency 단위를 주파수로 착각: quefrency [s]는 시간 단위. "50 ms 피크"는 "20 Hz 간격 사이드밴드"를 의미. 그래프 가로축 라벨을 주파수로 잘못 표기하면 분석 결과 해석이 통째로 어긋남.
  • 측정 시간이 짧으면 quefrency 분해능 부족: cepstrum의 \(\Delta \tau = 1/f_s\)지만 신뢰 범위는 \(\tau \le T/2\). \(T = 1\) s면 \(\tau\)는 0.5 s까지만 의미 있음.
  • 0 Hz 부근(DC) 영향: \(\log|X(0)|\)이 매우 크면 cepstrum 전체에 큰 오프셋. 측정 신호에서 DC 성분을 미리 제거하거나 cepstrum 첫 몇 빈을 잘라낼 것.
  • 한 가족의 사이드밴드 간격이 변동(슬립 등): 베어링은 미세 슬립으로 BPFO 간격이 1~2% 변동. Cepstrum 피크가 흐릿하게 퍼져 정확한 \(\tau\) 식별이 어려워짐 — 이 경우엔 [엔벨로프 분석]이 더 적합.
  • 비정상(비주기) 신호에 적용: 사이드밴드가 정상 상태에서 일정 간격으로 유지될 때만 cepstrum 효력. 회전수가 급변하는 transient 구간에서는 cepstrum이 무의미 — Order Tracking 또는 시간-주파수 분석(STFT, Wavelet) 사용.

✅ [Action Item] Cepstrum 분석 체크리스트

  • 스펙트럼에 일정 간격의 사이드밴드 빗살무늬가 보이는가? (cepstrum이 강력해지는 전제 조건)
  • 측정 시간 \(T \ge 2\) s, 분해능 \(\Delta f \le f_{\mathrm{mod}}/4\) 확보했는가?
  • 샘플링 레이트가 메시 주파수의 4배 이상인가?
  • Hanning 윈도우 + 평균화 4~8회로 스펙트럼을 안정화했는가?
  • \(\log\) 계산 시 \(\epsilon\) 클리핑을 적용해 \(\log 0\) 발산을 방지했는가?
  • Cepstrum 가로축 라벨이 quefrency [s] 또는 [ms]로 정확한가? (Hz로 표기하지 않기)
  • 1차 rahmonic 위치 \(\tau\)에서 사이드밴드 간격 \(\Delta f = 1/\tau\)를 역산했는가?
  • 여러 quefrency 피크가 보이면 각각이 다른 결함인지 검토했는가?
  • 회전수가 변동하는 transient 구간이면 cepstrum 대신 Order Tracking·Wavelet 고려
  • 베어링 결함처럼 슬립이 큰 경우엔 cepstrum 대신 [엔벨로프 분석] 사용

Cepstrum은 1963년에 음성 분석을 위해 개발됐지만, 회전 기계 진단에서 가장 빛납니다. 기어 메시 사이드밴드, 모터 BRB 사이드밴드([모터 전기 결함 글] 참조), 베어링 내륜 결함 사이드밴드 — 빗살무늬 패턴이 보일 때마다 cepstrum은 그 간격을 단일 quefrency 피크로 정리해 보여줍니다. 복잡한 사이드밴드 패턴 앞에서 "이게 무슨 간격이지?"를 손가락으로 세지 않고, 한 번의 변환으로 답을 얻는 것 — 그게 cepstrum이 NVH 진단에 주는 가치입니다.


실전 NVH 가이드 — 빗살무늬 사이드밴드를 단일 quefrency 피크로 응축하다