信号低通数字滤波后上升沿下降沿有过冲,求解决方法
本帖最后由 xml2028 于 2021-6-16 22:00 编辑信号见附件,使用STM32的DSP库的IIR滤波器,使用MATLAB配置的滤波器系数,对图片中的信号进行处理后,得到的包络信号在上升沿和下降沿会出现过冲,如何才能避免这个过冲呢,我希望在拐角的地方平滑。帮助我解决此问题后另外微信红包顶格酬谢,当做请您吃个便饭。 你这取包络信号么,干啥不用FIR滤波器?,如果不考虑带内波动,直接用CIC滤波器,比IIR舒服多了,这图在16hz处大概有靠近100db的衰减,完全没问题。 早安,各位 我还以为转账顶格酬谢的,哈哈
不懂,帮不了忙 陡降太快了吧,巴特沃斯走一波看 albert_w 发表于 2021-6-17 08:31
陡降太快了吧,巴特沃斯走一波看
iir 巴特沃斯试了,不行 xml2028 发表于 2021-6-17 08:46
iir 巴特沃斯试了,不行
iir 巴特沃斯 试了现象依旧 本帖最后由 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. 看波形,像阻抗不匹配造成的!
数字滤波器也要注意阻抗匹配? xml2028 发表于 2021-6-17 08:49
iir 巴特沃斯 试了现象依旧
想要没过冲,应该用贝赛尔类型的滤波器,不是巴特沃斯类型。
注意这会严重牺牲边缘的陡峭程度。自己试试就知道了。算滤波器的工具都可以选类型的。巴特沃斯是最常用的,还有个切比雪夫类型,牺牲平坦程度来换取最陡峭的边缘。 nokia007 发表于 2021-6-17 08:55
贝塞尔滤波走一波。这里不适合用巴特沃斯。
兄台,MATLAB 的FDATOOL里面的低通滤波器没有找到贝塞尔的类型呢 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 附件是我用MATLAB仿真的文件和M代码,可以看到过冲的 使用besself函数那个Wo参数设置不对,一直不能得到正确的结果 xml2028 发表于 2021-6-17 10:57
使用besself函数那个Wo参数设置不对,一直不能得到正确的结果
那个博客有一处错误,可以看看评论。
https://ww2.mathworks.cn/help/signal/ref/bilinear.html
fs参数 — Sample rate
博主弄成了截止频率。 nokia007 发表于 2021-6-17 11:24
那个博客有一处错误,可以看看评论。
https://ww2.mathworks.cn/help/signal/ref/bilinear.html
fs参数...
我按照网上的改了,仿真结果是不对的 送adc采样吗?头尾跳过LOL albert_w 发表于 2021-6-17 12:43
送adc采样吗?头尾跳过LOL
什么意思?lol? xml2028 发表于 2021-6-17 12:45
什么意思?lol?
如果是送adc采集直流的话,直接去掉过冲部分。 很多交替测量的系统是这么干的。 如果要分析信号的边沿,那就只能老实调整滤波器了。 albert_w 发表于 2021-6-17 15:53
如果是送adc采集直流的话,直接去掉过冲部分。 很多交替测量的系统是这么干的。 如果要分析信号的边沿, ...
没有办法,整个波形都需要的,我调整调整滤波器试试 也正在学习中帮不了什么忙了 IIR是实时的,如果你信号就截取一下前面部分,不管什么算法也不能预知你后面的信号是怎样吧??所以拐弯不够快有过冲不是很正常吗
就像下图,你实时信号就到了红色窗口的末端,绿色信号也到这个末端,这个应该就只能这样
智涅 发表于 2021-6-17 16:27
IIR是实时的,如果你信号就截取一下前面部分,不管什么算法也不能预知你后面的信号是怎样吧??所以拐弯不 ...
不是,那个过冲是巴特沃斯滤波器的特性导致的,你看我的MATLAB仿真结果 这个不是吉布斯现象吗
谭春林 发表于 2021-6-17 18:15
你这取包络信号么,干啥不用FIR滤波器?,如果不考虑带内波动,直接用CIC滤波器,比IIR舒服多了,这图在16h ...
你这是matlab哪个版本?fdatool? xml2028 发表于 2021-6-17 18:46
你这是matlab哪个版本?fdatool?
18版本,是fdatool
页:
[1]