Closed eubinecto closed 4 years ago
슬라이드 |
---|
슬라이드 |
---|
슬라이드 |
---|
우리가 듣는 자연적으로 만들어진 모든 소리는, 여러가지 주파수의 소리의 혼합이다. "harmonics".
그런 소리를 역으로 그것을 구성하는 여러 주파수의 소리로 decompose하는 것이 푸리에 변환.
비유: 피아노의 화음을 생각하면 된다. 우리가 듣는 피아노 소리는, 특정 주파수의 소리를 나타내는 각 건반의 화음으로 구성된다. 크게 보면 하나의 아름다운 곡이지만, 그 곡을 뜯어보면 여러 건반의 타건음의 혼합.
그럼 푸리에 변환을 쓰는 이유는 무엇인가?: 푸리에 변환을 하면, 시간에 걸친 소리의 크기의 나열 (sequence of scalars)에서 시간대 별로 존재하는 주파수 벡터의 나열을(sequence of vectors)를 얻을 수 있다. 그리고 그 반대의 과정도 가능하다.
좀 더 정확히 말하자면
못 생긴 그림 2: Fourier transform |
---|
때문에 푸리에 변환을 이용하면 여러 frequency의 소리가 합쳐져서 존재하는 음원을, 각 frequency별로 intensity가 어떻게 되는지, frequency component analysis가 가능하다.
두 도메인을 와리가리 할 수 있기 때문에, frequency-domain으로 변환 후, 없어도 별 변화가 없는 주파수의 소리만을 선택적으로 지우고 다시 time-domain으로 돌려서 음원의 용량을 줄이는 (손실 압축의 한 방법) 마법을 부릴 수 있다.
이게 도대체 무슨 소리? -> mobile systems 과제
feature engineering의 관점에서, 이는 2차원의 time-domain음원을, decompose into a sequence of n-dimensional frequency domain vectors across time할 수 있음을 의미. 우리가 도시소음 분류를 위해 푸리에 변환을 사용하는 이유가 이것.
즉 단순한 scalar의 나열 - > n차원 벡터의 time series로, 더 많은 정보를 담고 있는 벡터의 time series로 변환이 가능하다.
슬라이드 |
---|
에이. 너무 삼천포로 빠지시네. 컴공전공하지만 더 이상 공부하기가 힘들다. 죄송.
코드에서는 다음과 같이 사용: https://github.com/eubinecto/k4ji_ai/blob/e94a5d01fb0fb59a82e0a32e016356bbc9a75840/eb/src/chap_11/dataset_sounds.py#L83
음원 데이터
모노 음원의 시간대 별 정보의 재구성
푸리에 변환
고속 푸리에 변환