目录
窄带陷波滤波器(Notch filter)原理
设计一个Notch filter
生成代码
离散传递函数生成代码配置
差分方程生成代码
方程推导
构建差分方程模型
总结
陷波滤波器指的是可以将某一频率迅速衰减的滤波器,直接上效果图,如下图所示在常数100的信号上叠加了一个幅值为10的100Hz的频率,通过Notch filter后就得到了稳定的信号100,相当于抑SEO靠我制了振荡。可以用来抑制系统的共振点或者消除周期性的振荡等。
蓝色滤波前的信号,黄色滤波后的信号
传递函数如下:
传递函数的伯德图:
从伯德图可以看出在某一个频率点会衰减,我们需SEO靠我要根据振荡的频率去调整w0=2*pi*f (这里f是振荡频率),达到过滤掉振荡的效果。Q的值影响的是稳定的速度。
Q=1.9的伯德图和仿真效果
Q= 0.9的伯德图和仿真效果(衰减变小):
前面是SEO靠我s域的仿真,要能生成代码在硬件里面运行,需要把s域转成z域。这里生成代码的方式有以下两种,一种直接用离散传递函数,一种把离散传递函数转成差分方程。经对比,离散域传递函数会涉及到除法计算,有些单片机执行SEO靠我效率可能不高,而差分方法只有乘加,不涉及除法,计算效率会更高
通过.m脚本实现s的传递函数转z. 15e-006是采样频率。
G_z = c2d(G_s,15e-006,tustiSEO靠我n);
这里有个小坑,Matlab的命令窗口只显示小数点后4位,可能会因为数据的精度影响到滤波效果,还需要对Matlab进行数据小数位数的设置,设置如下:
设置好后一般的除法可以显示到小数位后15位,但是SEO靠我传递函数形式的数据还是只显示4位。因此用如下指令取到传递函数的分子和分母的系数。
G_z_Numerator= G_z.Numerator{1};
G_z_Denominator=G_z.DenominaSEO靠我tor{1};display(G_z_Numerator);
display(G_z_Denominator);这样就得到了离散传递函数的参数,我们把得到的分子和分母的系数放到模型中仿真
差分方程只需要把离散传递函数转一下就好了,转的步骤如下:
传递函数转差分方程步骤:
1. 改写成如下形式
2.分子分母同时除z^2
3.交叉相乘
4.把Y(z)移到等式左边
5.把上面等式写成差分方程的形SEO靠我式
通过Simulink构建方程模型。
离散传递函数和差分方程仿真效果一样(这里Q值有些不同)
总结下学习心得,通过对Notch filter的学习
1.了解Notch filter的工程SEO靠我意义应用场合和参数调试
2. 实际工程利用Matlab如何把s传递函数转为z传递函数再转成差分方程,方便生成代码
参考模型:
NotchFilter陷波滤波器仿真-快应用文档类资源-CSDN下载
网站备案号:浙ICP备17034767号-2