《电子技术应用》
您所在的位置:首页 > EDA与制造 > 设计应用 > 滤波器的设计优化及Matlab实现
滤波器的设计优化及Matlab实现
摘要: 滤波器是一种具有频率选择性的电路,其设计的基本的步骤分为逼近和实现。本文详细介绍了滤波器的设计方法,通过用Matlab来实现和优化一个模拟三阶低通切比雪夫滤波器,从而可以解决理论设计和实际中的诸多问题,通过程序仿真是完全满足设计要求的。
Abstract:
Key words :

  1引言

  滤波器是一种具有频率选择性的电路,它具有区分输入信号的各种不同频率成分的功能。为综合一个滤波器电路,基本的步骤分为逼近和实现。逼近方法有巴特沃思逼近,切比雪夫逼近,椭圆逼近和贝塞尔逼近。这些逼近方法可直接用于低通滤波器综合,而对于高通、带通和带阻滤波器综合,要借助于频带变换。

  传统的设计方法是由给定的设计要求选用相应的逼近方法,手动计算滤波器的阶数N或查相应的设计图表(例如切比雪夫设计图表)确定阶数N;查转移函数表(如巴特沃思转移函数表,切比雪夫转移函数表)来确定转移函数。另外对于一个复杂的传递函数手工分解为各个二次阶或一次阶的乘积是相当困难的[1]。本文借助Matlab所提供的滤波器的逼近方法由程序来求解阶数N和转移函数,并对转移函数进行分解,以达到设计的要求。

  2设计思路与方法

  (1)根据要设计滤波器的要求,借助Matlab对滤波器进行分析,确定采用的逼近方法,计算滤波器阶数,确定零极点和传递函数[2]。

  (2)对滤波器传递函数进行优化。由Matlab得出的传递函数其系数不是整数量,因此要以滤波器的系数为优化变量,使得设计出的滤波器与给定

 

指标最接近且要求优化变量取离散值[3],本文采用通过求解一个等价的连续问题来解决,在求解过程中首先对第一个变量的值进行上下取整运算得到最近且最优的离散值,从而解决一个变量的离散化问题,当所有的变量都取到最优的离散值后,完成优化。

 

  (3)采用级联法来实现高阶滤波器。级联法是指用两个或两个以上的二次节和一次节级联来实现一个高阶滤波器。对于一个N阶的高阶滤波器,级联实现所需要的二次节的数目为公式 (当N为偶数时),公式 (当N为奇数时)当N为奇数时应加一个一阶节,级联滤波器的传递函数等于各节转移函数之乘积[4]。

  综合级联滤波器的基本步骤有两步:

  第一,分解高阶转移函数为若干个双二次传递函数和一次函数的乘积;

  第二,选择适当的有源二阶节和一阶节按照级联顺序把他们级联起来得到整个滤波器。

  (4)确定有源滤波器中的电容电阻值。

  一阶有源低通RC电路如图1所示,其传递函数为公式

  二阶有源低通RC电路如图2所示,其传递函数为公式

  所以,由Matlab将高阶转移函数分解为若干个双二次传递函数和一次函数,对应上述的一阶有源低通RC电路和二阶有源低通RC电路求出相应的电阻电容值[5]。

一阶有源低通RC电路图

二阶有源低通RC电路图

  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的优化算法中还有许多算法,例如遗传算法等等,都可以应用到我们的工程问题优化当中。

  参 考 文 献

  [1] 蒋志凯.数字滤波与卡尔曼滤波[M].北京:中国科学技术出版社,1993

  [2] 曾喆昭,张志飞.模拟低通滤波器电路设计[J].电子测量技术,2000,01:8-10

  Zeng Zhe-zhao, Zhang Zhi-fei. Circuit Design of the Simulation Low-pass[J]. Electronic Measurement Technology, 2000,01: 8-10

 

  [3] 楼顺天,李博菡.基于MATLAB的系统分析与设计-信号处理[M].西安:西安电子科技大学出版社,1998.

  [4] 胡广书.数字信号处理[M].北京:清华大学出版社,2003.

  [5] 邱关源.电网络理论[M].北京:科学出版社,1988.

  [6] 卢特威,朱义胜.信号处理滤波器设计—基于MATLAB和Mathematica的设计方法[M].北京:电子工业出版社,2004.

  [7] 石云霞,张志伟,范秋华.Matlab在滤波器设计中的应用[J],青岛建筑工程学院学报,2004,02:93-96

  Shi Yun-xia; Zhang Zhi-wei and Fan Qiu hua, The Application of Matlab in the Design of Filter[J]. Journal of Qingdao Institute of Arch

 

itecture and Engineering, 2004, 02: 93-96

 

  [8] 飞思科技产品研发中心.MATLAB6.5辅助优化计算与设计[M].北京:电子工业出版社,2003.

  作者简介:刘新刚(1978- ),男,汉族,新疆乌鲁木齐,硕士研究生,从事电力系统综合自动化的研究。xingang_liu@163.com

  程磊(1981- ),男,汉族,陕西宝鸡,硕士研究生,从事电力系统综合自动化的研究,shangmaico@126.com。

  通讯作者:晁勤(1959- ),女,汉族,新疆乌鲁木齐,教授,博士生导师,长期从事电力系统的研究,cqtdx@163.com。

此内容为AET网站原创,未经授权禁止转载。