如何建立扬声器的传递函数?

信息处理 转换功能 控制系统
2022-02-09 11:02:11

我正在做一个关于声乐系统的信号处理项目,我正在尝试使用控制理论来解决这个问题。

我需要得到传递函数,H(s),扬声器,从电信号到语音。但似乎我必须使用麦克风来拾取声音。考虑到麦克风本身具有传递函数G(s), 我最终会得到G(s)H(s)而不是H(s).

那么,有什么方法可以获取 TFH(s)从电信号到声音信号?


好吧,我还有另一个问题。我见过其他人估计 TFG(s)H(s)通过实验。波特图看起来如此奇怪和复杂,以至于我认为很难对系统进行数学描述。那么当对象具有复杂的频率时,通常在控制器设计中使用什么方法。回复?

2个回答

您可以使用火花隙来测量麦克风的脉冲响应。火花隙在非常短的时间间隔内放电,产生非常宽的频谱,在可听范围内有效地保持恒定。

如果您还确保到达麦克风的反射与脉冲响应的持续时间相比要晚得多,您可以很好地将房间响应与麦克风响应分开。重复测量改进了估计。

在已知麦克风响应的情况下,您可以求解扬声器响应。但是,从技术上讲,您仍然需要考虑扬声器和麦克风的房间响应和方向依赖性。

通常的方法是同态过滤

所以我们有

  • x(t)是您施加到扬声器的电信号。
  • v(t)是你的语音信号。
  • m(t)是您的麦克风记录的信号。

然后:

m(t)=L1{G(s)V(s)}=L1{G(s)H(s)X(s)}
在哪里L1表示拉普拉斯逆变换。

然后你可以做

C(s)=loge(G(s)H(s)X(s))=Glog(s)+Hlog(s)+Xlog(s)
在哪里C(s)是倒谱,如果您估计了麦克风的响应,您可以这样做:
V^(s)=exp(C(s)Glog(s))
并对其进行拉普拉斯逆变换形成:
v^(t)=L1{V^(s)}

这里有一些注释似乎更详细。