利用 SCILAB 设计 FIR 滤波器(Minimax法)

最后更新于:2022-04-01 07:32:02

所谓 Minimax 方法就是指设计的指定阶数的FIR滤波器的幅度响应的最大偏离最小化。SCILAB 提供了eqfir 函数可以方便的使用 minmax 法设计FIR 滤波器。   [hn]=eqfir(nf,bedge,des,wate) 其中: Nf: FIR 滤波器的阶数 Bedge: M * 2 的矩阵,矩阵的每一行对应一个频率段 Des: M 个元素的向量,每个元素给出一个频率段的期望的幅度响应 Wate: M 个元素的向量,给出每个频率段的加权系数   返回值: Hn: FIR 滤波器的系数   下面给个例子: hn=eqfir(33,[0 0.2;0.25 0.35;0.4 0.5],[0 1 0],[1 1 1]);   这个例子是设计一个 33 阶的FIR 滤波器, [0 0.2] 这一频段的期望幅度为0,[0.25  0.35] 这一频段的期望幅度为1,[0.4 0.5] 这一段的期望幅度为 0。没有给出的频段为过渡段,幅度为多少都可以。   可以用 frmag 函数来观测上面设计的滤波器的频率响应。    [xm,fr]=frmag(num,den,npts) Num 为系统函数的分子。也就是我们FIR滤波器的系数。 Den 为系统函数的分母,对于FIR滤波器来说,分母为1。 Npts 为频率响应的数据点数 返回值; Fr 为频率点 Xm 为对于的频率响应   对于上面的例子,我们可以写: [xm,fr]=frmag(hn,1,100); plot(fr,xm); ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a42342df093.jpg)
';