matlab仿真的窄带带通滤波算法移植单片机没有达到仿真效果-总结

问题描述:

设计6阶0.1-0.6Hz的带通滤波器,并得到滤波系数

const int NL = 7;
const real64_T NUM[7] = {2.282056841956e-07,  0,-6.846170525867e-07,                
                        0,6.846170525867e-07, 0,-2.282056841956e-07};
const int DL = 7;
const real64_T DEN[7] = {1,   -5.975348473185, 14.87715239004,-19.75512122077,
                        14.75593406861, -5.87837166912, 0.9757549044242};

在单片机中定义double型 数组存储初始化系数

得到滤波后的结果:

 得到的滤波值逐渐累加

问题排查:

1、单片机中的滤波函数编写有问题?

  更改为通带频率更高的滤波器例如2-15Hz,没有出现滤波值累加的情况

2、怀疑是滤波通带通带太窄了,导致滤波器不稳定

  更改:滤波通带频率为0.05-0.6Hz

 显示滤波器不稳定:

解决方式:

更改带通滤波为低通滤波器:0.6Hz,6阶

 滤波结果值不会出现累加情况

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heda3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值