- 问题:
DRC中所采用的peak detect和Rms计算的实现公式如下:
y ( n + 1 ) = y ( n ) + A T ∗ [ x ( n + 1 ) − y ( n ) ] = ( 1 − A T ) y ( n ) + A T ∗ x ( n ) y(n+1)=y(n)+AT*[x(n+1)-y(n)] = (1-AT)y(n)+AT*x(n) y(n+1)=y(n)+AT∗[x(n+1)−y(n)]=(1−AT)y(n)+AT∗x(n), A T = 1 − e − 2.2 ∗ f s / ( t a o ) AT=1-e^{-2.2*fs/(tao)} AT=1−e−2.2∗fs/(tao), 为何要这样来定义AT呢?
- 回顾信号与系统的知识:
一 个 系 统 的 阶 跃 响 应 为 A T = 1 − e − t / ( t a o ) 一个系统的阶跃响应为AT=1-e^{-t/(tao)} 一个系统的阶跃响应为AT=1−e−t/(tao),tao为时间常数,表示输出从0升至1-1/e所需时间。或者从1下降到1/e所需的时间。
当输入信号为阶跃信号u(n)时,y(n)可表示为1-AT^n。 问题:输出从0.1升至0.9需要多少时间呢?
0.1=1-e^( t1/tao)
0.9=1-e^(t2/tao)
可得:t2-t1=tao*ln(9),ln(9)=2.1972=2.2,即输出从0.1升至0.9耗时为2.2倍的tao。所以ta/2.2=tao。
- 答案
因此,peak detect和rms计算公式中AT的定义之所以为 A T = 1 − e − 2.2 ∗ F S / ( t a ) AT=1-e^{-2.2*FS/(ta)} AT=1−e−2.2∗FS/(ta),
原因就是,输入一个ta或者tr=k,意味着经过k时间后,此滤波器的输出从0.1变化至0.9,此时滤波器的时间常数为k/2.2