코골이를 줄이기 위한 헤드보드 기반 ANC(Active Noise Cancellation) 시스템을 구상하면서, 가장 먼저 한 일은 코골이 소리를 주파수 관점에서 분석하는 것이었다.
이어폰 ANC는 귀 근처에서 직접 소음을 상쇄하지만, 헤드보드 ANC는 공간에서 전달되는 소리를 제어해야 한다.
따라서 단순히 “코골이는 시끄럽다”는 수준이 아니라 다음 질문에 답할 필요가 있었다.
이 글은 snoring_analysis 노트북과 분석 결과 CSV를 기반으로 정리한 코골이 오디오 신호 분석 기록이다.
이번 분석의 목표는 다음과 같다.
코골이의 주파수 구조를 분석하고 이를 ANC 설계의 입력 정보로 연결하는 것
특히 다음 세 가지 질문에 집중했다.
이를 위해 다음과 같은 분석 파이프라인을 구성했다.
이번 분석에서는 29개의 코골이 오디오 파일을 사용했다.
비침묵 구간을 기준으로 코골이 세그먼트를 추출한 결과:
freesound_community-snoring-50041.mp3 : 601개 freesound_community-snoring-6773.mp3 : 282개 freesound_community-soft-female-snoring-17325.mp3 : 101개 freesound_community-snoring-long-78149.mp3 : 1개 freesound_community-snoring-42710.mp3 : 3개 freesound_community-snoring-67961.mp3 : 3개 이 분포만 보더라도 코골이 데이터는 매우 비균일한 특성을 가진다.
같은 “snoring” 라벨이라도 다음과 같은 형태가 섞여 있다.
이러한 다양성은 이후 분석에서 등장하는 Snore Index 편차와도 연결된다.

시간 영역 파형을 보면 코골이는 보통 다음 패턴을 가진다.
즉 코골이는 연속적인 noise라기보다 이벤트성 저주파 burst의 반복에 가깝다.
예시 파일
mollyroselee-a-person-snoring-468533.mp3
| 항목 | 값 |
|---|---|
| 샘플레이트 | 48,000 Hz |
| 길이 | 8.04초 |
| 샘플 수 | 385,920 |
| RMS 에너지 | 0.1167 |
이 결과는 코골이가 단순한 작은 잡음이 아니라 상당한 에너지를 가진 신호임을 보여준다.
시간 영역 분석만으로는 소리의 크기만 확인할 수 있다.
ANC 설계에서는 에너지가 집중된 주파수 대역이 더 중요하다.
그래서 FFT를 적용했다.

| 항목 | 값 |
|---|---|
| 전체 파워 | 1,013,758,848 |
| 80~300Hz 파워 | 709,436,352 |
| 파워 비율 | 0.6998 |
| 지배 주파수 | 136.07 Hz |
이 샘플의 경우 전체 에너지의 약 70%가 80~300Hz 대역에 집중되어 있었으며
가장 강한 피크는 약 136Hz 부근에 존재했다.
즉 이 코골이는 전형적인 저주파 dominant 코골이라고 볼 수 있다.
FFT는 전체 주파수 분포를 보여주지만,
스펙트로그램은 시간에 따른 주파수 변화를 보여준다.

| 항목 | 값 |
|---|---|
| 프레임 수 | 754 |
| 주파수 bin 수 | 1025 |
| dominant frequency 평균 | 433.90 Hz |
| 표준편차 | 407.18 Hz |
| 전체 평균 dB | -24.01 dB |
| 80~300Hz 평균 dB | 2.57 dB |
여기서 중요한 점은 다음이다.
FFT 기준으로 보면 코골이는 저주파 중심이지만,
시간 단위로 보면 더 높은 주파수 성분도 함께 나타난다.
즉 코골이는 단일 톤이 아니라 다음이 결합된 복합 음향 신호에 가깝다.
코골이 연구에서 자주 등장하는 가설은 다음과 같다.
코골이의 주요 에너지는 80~300Hz 저주파 대역에 집중된다.
이를 검증하기 위해 80~300Hz band-pass filter를 적용했다.

| 항목 | 값 |
|---|---|
| 원본 에너지 | 5253.48 |
| 필터 후 에너지 | 3562.27 |
| 에너지 비율 | 0.6781 |
| 원본 RMS | 0.1167 |
| 필터 후 RMS | 0.0961 |
RMS는 약간 감소했지만, 대부분의 에너지가 여전히 80~300Hz에 남아 있었다.
이는 이 샘플에서 저주파 대역이 코골이 핵심 성분임을 의미한다.
파일 단위 분석에서는 다음 지표들을 계산했다.
Snore Index = (80~300Hz 에너지) / (20Hz 이상 전체 에너지)
즉 전체 코골이 에너지 중 저주파 대역이 차지하는 비율을 의미한다.
| 항목 | 값 |
|---|---|
| 평균 | 0.3437 |
| 표준편차 | 0.2629 |
| 최소 | 0.0107 |
| 중앙값 | 0.2592 |
| 최대 | 0.8896 |
평균이 0.34라는 것은 저주파만으로 코골이를 설명할 수 없다는 의미다.
실제 코골이는
저주파 진동 + 광대역 성분
의 결합으로 보는 것이 더 적절하다.
최소값 0.01, 최대값 0.89라는 결과는
코골이 스펙트럼 구조가 샘플마다 크게 다르다는 것을 의미한다.
3사분위수 값이 약 0.59라는 것은
상위 25% 코골이는 저주파 중심 구조를 가진다는 의미다.
즉 일부 코골이는 ANC로 효과적으로 제어될 가능성이 높다.
파일 평균만 보면 burst 특성이 희석된다.
그래서 비침묵 구간을 기준으로 세그먼트 단위 분석을 진행했다.
핵심 분석 대상은 다음 두 가지였다.
세그먼트 단위 dominant frequency는 대부분
약 30~150Hz 구간
에 집중되어 있었다.
이는 기존 연구에서 말하는 80~300Hz보다 낮아 보일 수 있지만, 실제로는 모순이 아니다.
코골이는 보통 다음 구조를 가진다.
따라서
이라는 결과는 충분히 일관된 해석이다.
세그먼트 단위 Snore Index를 보면 다음 특징이 나타난다.
즉 순수 코골이 burst와 혼합 신호가 명확히 구분된다.
이 결과는 ANC 설계에서 중요한 의미를 가진다.
ANC를 항상 작동시키기보다
저주파 dominant burst에만 강하게 반응하는 구조가 더 효율적일 수 있다.
이번 분석에서 얻은 주요 인사이트는 세 가지다.
세그먼트 분석 결과를 고려하면 더 낮은 주파수도 함께 관측하는 것이 현실적이다.
Snore Index 편차가 매우 크기 때문에
모든 코골이에 동일한 ANC 전략을 적용하는 것은 비효율적이다.
코골이는 머리 근처에서 발생해 방 전체로 퍼지는 저주파 소리다.
| 주파수 | 파장 |
|---|---|
| 100Hz | 약 3.4m |
| 150Hz | 약 2.3m |
따라서 문제는 귀 근처 제어가 아니라 공간 음향 제어에 가깝다.
이 점에서 헤드보드 ANC 또는 multi-channel ANC가 자연스러운 접근이 된다.
녹음 환경이 서로 다르다.
librosa.effects.split은 비침묵 탐지일 뿐
코골이 자체를 분류한 것은 아니다.
이번 글은 분석 단계이며
실제 ANC 성능 검증은 별도 실험이 필요하다.
이번 분석에서 확인한 핵심은 다음과 같다.
코골이는 단순한 “시끄러운 소리”가 아니라
저주파 진동과 광대역 성분이 결합된 복합 음향 현상이다.
그리고 그 안에서 ANC에 매우 적합한 저주파 dominant 코골이도 분명 존재한다.
즉 헤드보드 ANC는 막연한 아이디어가 아니라
실제 스펙트럼 데이터를 기반으로 설계 가능한 문제라는 점이 이번 분석의 가장 큰 수확이었다.