0

我目前正在处理我获得的一些数据。问题是:我要测量的值和我的传感器之间有一个元素(要清楚:我的麦克风和我测量的声音之间有一个管道)。该管道通过传递函数 H 过滤我的信号 X。

我想对测量的信号进行反卷积以消除该管道的影响(我的麦克风得到 Y=H*X 并且我想要 X)。我测量了 H,并安装了它:

 0.003682 s^4 + 90.87 s^3 - 4.835e05 s^2 + 1.051e08 s + 4.499e12
 ———————————————————————————————————————————————————————————————
  s^4 + 628.3 s^3 + 1.759e07 s^2 + 2.668e09 s + 4.053e12

我使用标准的 matlab 函数filter(b,a,Y)来反转由 H 引起的滤波,其中 b 是 H 的分母,a 是它的分子……这应该是 H 的逆。但是我得到的不是我的去卷积信号,而是一个 NaN 向量。

有人知道为什么吗?我完全不知道,我对数字滤波不太放心...

4

1 回答 1

2

您的传递函数的分母与分子具有相同的等级。这意味着,在时间 t(k) 中,要计算输出 y(k),您需要同时控制 u(k)。有时它会导致问题,因此(如果可以)尝试以其他方式识别 H - 以获得传递函数,其中分子的等级低于分母的等级。您可以在 MATLAB 中使用 for it 工具箱,只需在命令窗口中输入“ident”即可。

否则,您可以将测量信号乘以逆 H。这意味着,如果您获得 H 的传递函数(这是 num[H]/den[H]),您应该将信号乘以 den[H]/num[ H]。这种方法可能会带来一点延迟,但我认为这种延迟不会那么重要。

于 2015-04-13T19:24:01.063 回答