二阶滤波器原理及算法程序

滤波器的作用是允许某些频率的正弦信号基本无衰减的通过(增益为 1,频域 0dB),同时对另外某些频率的正弦信号起到衰减作用(增益在 0.707 以下,频域-3dB 以下)。 当然,滤波器对通过的正弦信号会产生一定的相移作用。

1.二阶通用滤波器

二阶滤波器表示的是滤波器时域表达式中最高含有二阶微分,或者说传递函数分母的s最高次数为2。滤波器对直流分量的增益为1。据此可设零状态二阶通用滤波器的传递函数为

时域表达式为

待定参数为a,b,c,d,e。

y(t)——输出信号,x(t)——输入信号。
现要将时域微分方程转换成对应离散域差分方程,假设采样周期为Ts。

根据微分的定义,有

由以上分析可知,Ts越小时,上述约等式越精确。
将连续量t分段,令t=kTs,k=0,1,2⋯,则微分方程可化为近似离散形式

将上述表达式代入到时域微分方程中,当Ts足够小时,近似认为

整理后得

进一步简化得

k1 ⋯ k5对应式⑧相应的系数,且满足

略去 Ts, 将时域离散信号转变成序列信号, 成为计算机能够运算的式子:

根据式⑩, 可以很容易写出二阶通用滤波器的运算程序。

2.二阶派生出的特殊滤波器

通过配置二阶通用滤波器的系数 a, b, c, d, e,可以生成多种特殊用途的滤波器:

根据所需滤波器的指标(截止频率、通带频率、阻带频率等), 可以求出其传递函数的系数, 进一步推出通用型中的参数 abcde,再结合采样周期 Ts, 则可以算出数字滤波器的系数 k1/k2/k3/k4。
对于更高阶的滤波器, 可以根据要求, 对二阶滤波器进行串联组合(有些电机驱动器程序就是如此处理)。 例如, 要求一个高阶滤波器中含有低通环节、 带阻环节和超前滞后环节, 则可以先构造三个对应的二阶滤波器, 然后在运算中进行串行运算。

以上内容说明了对于二阶滤波器, 如何从模拟滤波器模型推出数字滤波器的计算程序。 对于整体的高阶滤波器(即非二阶组合型),上述方法过于繁琐,计算量大,则需要采用数字滤波中 IIR 和 FIR 滤波器设计方法,计算各差分量的系数, 请参考《信号与系统》教材。 建议采用 Matlab 中的 FDATOOL 进行滤波器设计, 直接生成 z 域系统方程的参数,非常方便。

参考程序:

typedef struct SecOrdFilter{
float k1;
float k2;
float k3;
float k4;
float k5;
float xin;
float x1;
float x2;
float yout;
float y1;
float y2;
} vector;

#define SecondOrderFilter(v)    \                   // 后面将vector赋值给v
yout = v.k1*v.xin + v.k2*v.x1+v.k3*v.x2+ v.k4*v.y1 + v.k5*v.y2;  \
v.x2 = v.x1;     \
v.x1 = v.xin;    \
v.y2 = v.y1;     \
v.y1 = v.yout; 
  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DSP(数字信号处理)二阶滤波器程序是一种用于对数字信号进行滤波处理的算法滤波器的作用是筛选信号中的某些频率分量,以达到信号处理的目的。 二阶滤波器是一种常见的滤波器类型,它可以对信号进行更精细的频率调节和滤波处理。二阶滤波器的设计通常涉及到选择合适的滤波器结构、确定滤波器参数和实现滤波器的过程。 在进行二阶滤波器程序的设计时,首先需要确定滤波器的类型,常见的类型有低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。根据需要选择适合的滤波器类型。 在确定滤波器类型后,进一步需要选择合适的滤波器参数,如截止频率、阻带衰减、通带波纹等。这些参数直接影响滤波器的效果和性能,需要根据具体应用场景进行调整。 一旦确定了滤波器类型和参数,就可以开始实现滤波器程序了。常见的实现方式有差分方程法、级联法、直接法和频率转换法等。根据具体情况选择合适的实现方式,并编写对应的程序代码。 在实现滤波器程序后,还需要进行滤波器的测试和调试。通过输入不同的信号,并观察输出信号的频率响应和幅度等特性,不断优化调整滤波器的参数和结构,以达到期望的滤波效果。 最后,根据具体应用需求,将滤波器程序集成到相应的系统中,实现对信号的滤波处理。这样就完成了DSP二阶滤波器程序的设计与实现。 总结起来,DSP二阶滤波器程序的设计包括选择滤波器类型和参数、实现选择的滤波器算法、测试和调试滤波器效果,最终将程序集成到相应系统中。通过这些步骤,可以实现对数字信号的精细滤波处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值