피크 제한 / 오디오 압축 공식 필요


9

피크를 제한하기 위해 오디오 파형을 효과적으로 압축하는 공식을 찾고 있습니다. 이것은 볼륨 레벨을 유지하기 위해 앰프 게인을 제어하는 ​​"자동 볼륨 컨트롤"응용 프로그램이 아니라 개별 피크를 제한 ( "소프트"잘라 내기)하고 싶습니다. (이것이 고조파를 도입한다는 것을 알고 있지만 데이터를 듣지 않고 분석하려고합니다.)

지금까지 나의 (매우 조잡한) 공식은 다음과 같습니다.

factor = (10 * average / level) + exp(-sqrt(0.1 * level / average))

여기서 레벨 순간 음량이며, 평균은 과거 평균 사운드 레벨이며, 요인 은 "조정"레벨 (제조하는 데 사용되는 승수 인 계수수준 ).

또한이 승수는 1보다 작은 값으로 계산되는 경우에만 적용됩니다. 그렇지 않으면 레벨 이 조정되지 않은 상태로 유지됩니다.

조정 된 수준을 과거 평균의 배수 (이 공식의 약 15 배)로 제한하는 것이 목적입니다. 이 공식은 내가 필요로하는 것이지만 숫자가 커질수록 "딥"을 나타냅니다. 즉, 조정 된 레벨 (즉, 계수 시간 레벨 )은 조정되지 않은 레벨이 증가함에 따라 포인트까지 증가하지만 점근 적으로 진행되기보다는 실제로 작아지기 시작합니다. (실제로 첫 번째 요소는 주로 값이 매우 높은 수식이 0이되는 것을 방지하기 위해 추가되었습니다.)

(이 방법으로 값을 제한하려는 이유는 주로 과도 노이즈가 사운드 레벨의 평균 실행을 심각하게 화나게하지 않기 때문입니다. 그러나 코골이를 분석 할 때 "과도 노이즈"는 상당히 중요하므로 간단히 스 sq 치할 수 있습니다. .)

그래서 누군가 더 나은 것을 제안 할 수 있습니까? (원하지 않는 경우에는 점근 적 행동이 발생하기 쉽지만 원하는 경우에는 힘들 것 같습니다.)


답변:


9

여기에 두 가지 문제가 있습니다. 신뢰할 수있는 수준의 추정치를 얻는 방법과 데이터를 압축하는 방법.

  • "일반 수준"탐지를 이상치에 강하게 만들려면 평균이 아닌 중간 또는 Quantile과 같은 원본 (피크 제한이 아닌) 데이터에 강력한 통계를 사용하십시오.
  • k×tanh(xk) 는 압축 공식으로 작동하며 실제로 일부 오디오 회로 (OTA 사용)에서 발생하는 것입니다. 원래 신호의 다이나믹을 유지하고 과도를 제거하는 적응 형 압축을 얻으려면 k를 평활화 된 "평균"레벨로 추적하십시오.C

예

  • 파란색 : 원래 신호
  • 녹색 : "일반적인 수준"탐지로서 슬라이딩 윈도우에서 절대 값의 2 x 중앙값
  • 빨간색 : tanh 압축 (k는 녹색으로 표시된 수준과 같으며 위에서 주어진 공식)

고마워, 유망 해 보인다. 플러그를 꽂아 어떻게 작동하는지 보겠습니다.
Daniel R

1
나는 그것을 시험해 보았고 잘 작동하는 것 같습니다 (두 번의 손가락 확인을 마친 후). 그것의 유일한 문제는 클립 레벨을 올리지 않고 "무릎"의 선명도를 조정할 수있는 방법이 없다는 것입니다.
Daniel R

"이동 평균"이 "이동 평균"보다 나은 이유는 무엇입니까? 나는 많은 곳에서 특이 치에 덜 민감하다는 것을 읽었습니다. 그러나 나는 실제 데이터로는 이것을 볼 수 없습니다 . 이 질문에 대한 아이디어가 있습니까?
Basj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.