xml2028 发表于 2021-6-16 21:58:33

信号低通数字滤波后上升沿下降沿有过冲,求解决方法

本帖最后由 xml2028 于 2021-6-16 22:00 编辑

信号见附件,使用STM32的DSP库的IIR滤波器,使用MATLAB配置的滤波器系数,对图片中的信号进行处理后,得到的包络信号在上升沿和下降沿会出现过冲,如何才能避免这个过冲呢,我希望在拐角的地方平滑。帮助我解决此问题后另外微信红包顶格酬谢,当做请您吃个便饭。

谭春林 发表于 2021-6-16 21:58:34

你这取包络信号么,干啥不用FIR滤波器?,如果不考虑带内波动,直接用CIC滤波器,比IIR舒服多了,这图在16hz处大概有靠近100db的衰减,完全没问题。

xml2028 发表于 2021-6-17 08:05:18

早安,各位

tang_qianfeng 发表于 2021-6-17 08:13:53

我还以为转账顶格酬谢的,哈哈
不懂,帮不了忙

albert_w 发表于 2021-6-17 08:31:05

陡降太快了吧,巴特沃斯走一波看

xml2028 发表于 2021-6-17 08:46:41

albert_w 发表于 2021-6-17 08:31
陡降太快了吧,巴特沃斯走一波看

iir 巴特沃斯试了,不行

xml2028 发表于 2021-6-17 08:49:08

xml2028 发表于 2021-6-17 08:46
iir 巴特沃斯试了,不行

iir 巴特沃斯 试了现象依旧

nokia007 发表于 2021-6-17 08:55:15

本帖最后由 nokia007 于 2021-6-17 09:40 编辑

贝塞尔滤波走一波。这里不适合用巴特沃斯。
The Gaussian filter also exhibits zero overshoot and zero ringing. (The
Bessel cannot make that claim, but it is close.) Thus, *any* filter that
deviates from the Gaussian spectral shape will overshoot or ring or both
in the time domain. Again, if overshoot and/or ringing are what you need
to optimize, then the Gaussian is best and the Bessel is a good
approximation of the Gaussian.

h572 发表于 2021-6-17 09:18:38

看波形,像阻抗不匹配造成的!
数字滤波器也要注意阻抗匹配?

redroof 发表于 2021-6-17 09:21:03

xml2028 发表于 2021-6-17 08:49
iir 巴特沃斯 试了现象依旧

想要没过冲,应该用贝赛尔类型的滤波器,不是巴特沃斯类型。
注意这会严重牺牲边缘的陡峭程度。自己试试就知道了。算滤波器的工具都可以选类型的。巴特沃斯是最常用的,还有个切比雪夫类型,牺牲平坦程度来换取最陡峭的边缘。

xml2028 发表于 2021-6-17 09:23:01

nokia007 发表于 2021-6-17 08:55
贝塞尔滤波走一波。这里不适合用巴特沃斯。




兄台,MATLAB 的FDATOOL里面的低通滤波器没有找到贝塞尔的类型呢

nokia007 发表于 2021-6-17 09:40:25

xml2028 发表于 2021-6-17 09:23
兄台,MATLAB 的FDATOOL里面的低通滤波器没有找到贝塞尔的类型呢

https://ww2.mathworks.cn/help/signal/ref/besself.html
只支持模拟滤波器。
看看这个
https://blog.csdn.net/bwkair/article/details/90897680

xml2028 发表于 2021-6-17 10:55:59

附件是我用MATLAB仿真的文件和M代码,可以看到过冲的

xml2028 发表于 2021-6-17 10:57:01

使用besself函数那个Wo参数设置不对,一直不能得到正确的结果

nokia007 发表于 2021-6-17 11:24:46

xml2028 发表于 2021-6-17 10:57
使用besself函数那个Wo参数设置不对,一直不能得到正确的结果

那个博客有一处错误,可以看看评论。
https://ww2.mathworks.cn/help/signal/ref/bilinear.html
fs参数 — Sample rate
博主弄成了截止频率。

xml2028 发表于 2021-6-17 11:55:15

nokia007 发表于 2021-6-17 11:24
那个博客有一处错误,可以看看评论。
https://ww2.mathworks.cn/help/signal/ref/bilinear.html
fs参数...

我按照网上的改了,仿真结果是不对的

albert_w 发表于 2021-6-17 12:43:16

送adc采样吗?头尾跳过LOL

xml2028 发表于 2021-6-17 12:45:02

albert_w 发表于 2021-6-17 12:43
送adc采样吗?头尾跳过LOL

什么意思?lol?

albert_w 发表于 2021-6-17 15:53:17

xml2028 发表于 2021-6-17 12:45
什么意思?lol?

如果是送adc采集直流的话,直接去掉过冲部分。 很多交替测量的系统是这么干的。 如果要分析信号的边沿,那就只能老实调整滤波器了。

xml2028 发表于 2021-6-17 16:05:11

albert_w 发表于 2021-6-17 15:53
如果是送adc采集直流的话,直接去掉过冲部分。 很多交替测量的系统是这么干的。 如果要分析信号的边沿, ...

没有办法,整个波形都需要的,我调整调整滤波器试试

zhwd102198 发表于 2021-6-17 16:12:32

也正在学习中帮不了什么忙了

智涅 发表于 2021-6-17 16:27:44

IIR是实时的,如果你信号就截取一下前面部分,不管什么算法也不能预知你后面的信号是怎样吧??所以拐弯不够快有过冲不是很正常吗
就像下图,你实时信号就到了红色窗口的末端,绿色信号也到这个末端,这个应该就只能这样

xml2028 发表于 2021-6-17 17:37:51

智涅 发表于 2021-6-17 16:27
IIR是实时的,如果你信号就截取一下前面部分,不管什么算法也不能预知你后面的信号是怎样吧??所以拐弯不 ...

不是,那个过冲是巴特沃斯滤波器的特性导致的,你看我的MATLAB仿真结果

DOER 发表于 2021-6-17 17:40:56

这个不是吉布斯现象吗

xml2028 发表于 2021-6-17 18:46:31

谭春林 发表于 2021-6-17 18:15
你这取包络信号么,干啥不用FIR滤波器?,如果不考虑带内波动,直接用CIC滤波器,比IIR舒服多了,这图在16h ...

你这是matlab哪个版本?fdatool?

谭春林 发表于 2021-6-17 21:38:11

xml2028 发表于 2021-6-17 18:46
你这是matlab哪个版本?fdatool?

18版本,是fdatool
页: [1]
查看完整版本: 信号低通数字滤波后上升沿下降沿有过冲,求解决方法