답변:
힐버트 변환은 "분석"신호를 계산하는 데 사용됩니다. 예를 들어 http://en.wikipedia.org/wiki/Analytic_signal을 참조하십시오 . 신호가 사인파 또는 변조 된 사인파 인 경우 분석 신호의 크기는 실제로 엔벨로프처럼 보입니다. 그러나 힐버트 변환의 계산은 사소한 것이 아닙니다. 기술적으로 상당한 길이의 인과 관계가 아닌 FIR 필터가 필요하므로 상당한 양의 MIPS, 메모리 및 대기 시간이 필요합니다.
광대역 신호의 경우 실제로는 특정 응용 프로그램에 대해 "봉투"를 정의하는 방법에 따라 다릅니다. 다이나믹 레인지 압축을 적용하려면 시간 경과에 따른 음량 인식과 관련이있는 메트릭이 필요합니다. 힐버트 변환은 올바른 도구가 아닙니다.
더 나은 옵션은 A- 가중 필터 ( http://en.wikipedia.org/wiki/A-weighting ) 를 적용한 후 손실 피크 또는 손실 RMS 검출기를 수행하는 것입니다. 이것은 시간이 지남에 따라 인식되는 음량과 상당히 관련이 있으며 상대적으로 저렴합니다.
Hilbert 변환을 사용하여 다음과 같은 방식으로 봉투를 계산할 수 있습니다. (MATLAB 코드로 작성합니다) :
envelope = abs(hilbert(yourTimeDomainSignal));
나는 지금 수학을 쓸 시간이 없지만 (나중에 시도 할 것입니다) 매우 간단하게 신호가 사인파라고 말하십시오. 사인의 힐버트 변환은-코사인입니다. 다시 말해, 힐버트 변환은 항상 -90도 위상만큼 신호를 이동시킵니다 (즉, 직교 위상).
신호 (사인파)를 j
힐버트 된 신호 (코사인 파)의 시간에 더하면 다음과 같은 결과가 나타납니다.
sin(wt) - j.*cos(wt)
또한 e ^ (j * (wt-pi / 2))입니다.
따라서이 값의 절대 값을 취하면 봉투 인 1이됩니다. (이 경우).
신호에서 진폭 엔벨로프를 검색하는 적어도 두 가지 방법을 알고 있습니다.
주요 방정식은 다음과 같습니다.
E(t)^2 = S(t)^2 + Q(S(t))^2
Where Q represents a π/2 phase shift (also known as quadrature signal).
내가 아는 가장 간단한 방법은 Q가 FFT를 사용하여 S (t)를 여러 정현파 구성 요소로 분해하고 각 구성 요소를 반 시계 방향으로 1/4 바퀴 회전시키는 것입니다 (각 구성 요소는 복잡한 숫자이므로 특정 구성 요소 x + iy-> -y + ix)를 다시 결합하십시오.
이 접근법은 약간의 조정이 필요하지만 꽤 잘 작동합니다 (아직 더 나은 방법으로 이것을 설명하기에 충분히 수학을 이해하지 못합니다)
여기에는 '힐버트 변환'과 '분석 신호'라는 두 가지 핵심 용어가 있습니다.
나는 그들이 사용하는 데 상당한 모호함을 보았 기 때문에이 용어를 사용하지 않는 것입니다.
한 문서는 원래 실제 신호 f (t)의 (복잡한) 분석 신호를 다음과 같이 설명합니다.
Analytic(f(t)) = f(t) + i.H(f(t))
where H(f(t)) represents the 'π/2 phase shift' of f(t)
이 경우 진폭 엔벨로프는 단순히 | Analytic (f (t)) |이며, 이는 원래 피타고라스 방정식으로 되돌아갑니다.
NB : 저는 최근 주파수 편이 및 저역 통과 디지털 필터와 관련된 고급 기술을 접했습니다. 이론은 서로 다른 방법으로 분석 신호를 구성 할 수 있다는 것입니다. 우리는 f (t)를 양과 음의 정현파 주파수 성분으로 분해 한 다음 단순히 음의 성분을 제거하고 양의 성분을 두 배로 만듭니다. 주파수 편이와 저역 통과 필터링의 조합으로이 '음수 주파수 성분 제거'를 수행 할 수 있습니다. 이것은 디지털 필터를 사용하여 매우 빠르게 수행 할 수 있습니다. 아직이 방법을 탐색하지 않았으므로 지금 당장 말할 수있는만큼입니다.
기본적으로 자동 게인 컨트롤 (AGC)을 찾고 있습니다. 디지털 방식으로 처리해야하는지 확실하지 않지만, 해당 작업을 매우 잘 수행 할 수있는 매우 우수한 집적 회로가 있습니다. 일반적으로 AGC는 많은 다른 기능과 통합되어 있지만 일부 회로는 JFET 트랜지스터로 만들 수 있습니다 그리고 일부 다이오드.
그러나 디지털 처리를 통해이 작업을 수행하는 매우 쉽게 이해할 수있는 방법은 5 또는 10msec를 나타내기에 충분한 샘플의 시간 창을 가져와 잊어 버리는 요소 alpha ^ n (alpha <1)을 적용하는 것과 같이 적응 형 분산 추정기를 설계하는 것입니다. 각각의 새로운 샘플은 과거 샘플보다 더 많이 고려됩니다. 그런 다음이 편차 추정을 기반으로 원하는대로 오디오를 디자인합니다.이 함수는 각 오디오 샘플에 적용되는 게인에 차이를 매핑하는 기능입니다. 분산이 임계 값을 초과 할 경우 게인이 일부 요인만큼 감소하는 반면, 이는 어려운 결정 경계 일 수 있습니다.
또는 분산에서 이득으로의 비선형 변환을 생성하고 마지막 분산 추정을 기반으로 모든 샘플에 변환을 적용하는 더 부드러운 결정 경계 일 수 있습니다.
이것은 휴리스틱 방법이지만 적어도 모든 무거운 수학에서 제외됩니다.