首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于实测传递函数的Matlab滤波器设计

基于实测传递函数的Matlab滤波器设计
EN

Stack Overflow用户
提问于 2015-04-14 00:51:08
回答 1查看 534关注 0票数 0

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

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

代码语言:javascript
复制
 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的向量。

有人知道为什么吗?我完全不知道,我对数字过滤不是很自在……

EN

回答 1

Stack Overflow用户

发布于 2015-04-14 03:24:01

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

否则,你可以将测量的信号乘以逆H。这意味着,如果你得到H的传递函数(这是numH/denH),你应该将你的信号乘以denH/numH。这种方法可能会带来一些延迟,但我认为这种延迟并不那么重要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29610776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档