我目前正在处理我获得的一些数据。问题是:在我想要测量的值和我的传感器之间有一个元素(明确地说:在我的麦克风和我测量的声音之间有一个管道)。这条管道通过传递函数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的向量。
有人知道为什么吗?我完全不知道,我对数字过滤不是很自在……
发布于 2015-04-14 03:24:01
您的传递函数的分母与分子具有相同的秩。这意味着,在时间t(k),要计算输出y(k),你需要控制在同一时间,u(k)。有时它会导致问题,所以(如果可以的话)尝试用其他方法识别H-得到传递函数,其中分子的秩低于分母的秩。你可以在MATLAB中使用for it工具箱,只需在命令窗口中输入"ident“即可。
否则,你可以将测量的信号乘以逆H。这意味着,如果你得到H的传递函数(这是numH/denH),你应该将你的信号乘以denH/numH。这种方法可能会带来一些延迟,但我认为这种延迟并不那么重要。
https://stackoverflow.com/questions/29610776
复制相似问题