[데이터 전처리] 수식으로 신호 level 음량 LUFS 조절하기, 심리음향적 특성을 반영한 Loudness Units Full Scale
통계적 신호처리

[데이터 전처리] 수식으로 신호 level 음량 LUFS 조절하기, 심리음향적 특성을 반영한 Loudness Units Full Scale

by handzoo 2024. 8. 30.

Loudness

loudness는 사람이 인지하는 소리 크기를 반영하여 나타낸다.

 

Root Mean Square (RMS), LUFS (Loudness Units Full Scale)가 대표적으로 있다.

 

그 중에서 사람의 frequency 별로 다른 resolution으로 인지하는, 심리 음향적 입장을 제대로 반영한 LUFS를 통해 signal level을 어떻게 조정하는지 살펴보자.

 

기존에 LUFS로의 signal level을 어떻게 조정하는지에 대해서 글을 쓴 적이 있다.  

pyloudnorm의 integrated_loudness는 dB LUFS 값을 내보낸다.

 

https://2bman.tistory.com/14https://2bman.tistory.com/14

 

본 글에서는 "어떻게" 조정하는 지에 대해서 그 과정을 내 나름대로 서술해보려고 한다.

 

 

 


 

어떤 signal sequence가 있다고 할 때 현재의 level을 $$ sequence = \frac{mag_{trg}}{mag_{cur}} $$ \( mag_{cur} \)라고, target으로 하는 signal 크기를 \( mag_{trg} \)라고 하자.

 

그러면 signal level을 조정할 때 아래를 통해 조정하면 되겠다.

$$ sequence = \frac{mag_{trg}}{mag_{cur}} * sequence $$ 

 

이 LUFS 값은 dB와 같이 log scale이기 때문에 

 

\( L_{trg} = 20 \log_{10}{mag_{trg}} \)

\( L_{cur} = 20 \log_{10}{mag_{cur}} \)

 

로 볼 수 있고 target과 현재의 loudness LUFS인 L의 차이를 구해보면 다음과 같다.

 

\( L_{trg} - L_{cur} = 20 \log_{10}{\dfrac{mag_{trg}}{mag_{cur}}} \)

 

이를 magnitude 기준으로 식을 바꾸면 아래와 같다.

 

$$ \dfrac{mag_{trg}}{mag_{cur}} = 10^{\dfrac{L_{trg} - L_{cur}}{20}} $$

 

이렇게 되면 기존 signal sequence에 곱할 상수값을 log scale 상에서 선형 scale로 바꾸어 기존 가지고 있던 level 대비 

target level을 얼만치 곱해주어야 하는지에 대한 weighting factor이 계산된다. 

 

 

$$ sequence = \frac{mag_{trg}}{mag_{cur}} * sequence $$ 


TOP

Designed by 티스토리