1引言
滤波器是一种具有频率选择性的电路,它具有区分输入信号的各种不同频率成分的功能。为综合一个滤波器电路,基本的步骤分为逼近和实现。逼近方法有巴特沃思逼近,切比雪夫逼近,椭圆逼近和贝塞尔逼近。这些逼近方法可直接用于低通滤波器综合,而对于高通、带通和带阻滤波器综合,要借助于频带变换。
2设计思路与方法
(1)根据要设计滤波器的要求,借助Matlab对滤波器进行分析,确定采用的逼近方法,计算滤波器阶数,确定零极点和传递函数[2]。
(2)对滤波器传递函数进行优化。由Matlab得出的传递函数其系数不是整数量,因此要以滤波器的系数为优化变量,使得设计出的滤波器与给定
指标最接近且要求优化变量取离散值[3],本文采用通过求解一个等价的连续问题来解决,在求解过程中首先对第一个变量的值进行上下取整运算得到最近且最优的离散值,从而解决一个变量的离散化问题,当所有的变量都取到最优的离散值后,完成优化。
(3)采用级联法来实现高阶滤波器。级联法是指用两个或两个以上的二次节和一次节级联来实现一个高阶滤波器。对于一个N阶的高阶滤波器,级联实现所需要的二次节的数目为(当N为偶数时),(当N为奇数时)当N为奇数时应加一个一阶节,级联滤波器的传递函数等于各节转移函数之乘积[4]。
综合级联滤波器的基本步骤有两步:
第一,分解高阶转移函数为若干个双二次传递函数和一次函数的乘积;
第二,选择适当的有源二阶节和一阶节按照级联顺序把他们级联起来得到整个滤波器。
(4)确定有源滤波器中的电容电阻值。
一阶有源低通RC电路如图1所示,其传递函数为
二阶有源低通RC电路如图2所示,其传递函数为
所以,由Matlab将高阶转移函数分解为若干个双二次传递函数和一次函数,对应上述的一阶有源低通RC电路和二阶有源低通RC电路求出相应的电阻电容值[5]。
3举例分析
以一个模拟三阶低通切比雪夫滤波器为例,滤波器的阶数为3阶,截止频率为,通带内的纹波分贝值为,对此滤波器的传递函数系数进行优化[6]。
% 连续切比雪夫滤波器设计[7]
[b1,a1]=cheby1(n,Rp, Wn);
[h,w]=freqz(b1,a1,w);
h=abs(h);
plot(w, h);
…
%计算最优的离散整数值[8]
x(xmask) = fminimax('filtobj',x(xmask),[ ],[ ],…
[ ],[ ],vlb(xmask),vub(xmask), 'filtcon',…
options, x, xmask, n, h, maxbin);
[x, xmask] = elimone(x, xmask, h, w, n, maxbin);
end
…
% 优化滤波器的频率响应
subplot(211)
bo = x(1:n);
ao = x(n+1:2*n);
h2 = abs(freqz(bo,ao,128));
plot(w,h,w,h2,'o')
…
滤波器系数未优化时,其频率响应如图3所示,滤波器的传递函数为
优化后滤波器的频率响应如图4所示,滤波器的传递函数为
从图3和图4相比很相似,因而参数优化满足要求,滤波器的系数如表1所示。
点击看原图
为了确定滤波器的电容电阻值,将传递函数分解,其零极点、增益分别为
本文主要目的是滤波器系数的优化,电路中的电阻电容值的求取略。
4结束语
通过采用Matlab来实现滤波器的设计优化,可以解决理论设计和实际实践中的诸多问题,通过程序仿真证明是完全满足设计要求的。Matlab的优化算法中还有许多算法,例如遗传算法等等,都可以应用到我们的工程问题优化当中。