基于遗传算法的IIR数字滤波器的设计与仿真_第1页
基于遗传算法的IIR数字滤波器的设计与仿真_第2页
基于遗传算法的IIR数字滤波器的设计与仿真_第3页
基于遗传算法的IIR数字滤波器的设计与仿真_第4页
基于遗传算法的IIR数字滤波器的设计与仿真_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于遗传算法的IIR数字滤波器的设计与仿真班级: 组员: 目录TOC\o"1-5"\h\z\o"CurrentDocument"摘要 0Abstract 1\o"CurrentDocument"1遗传算法 2\o"CurrentDocument"遗传算法的产生与发展 2\o"CurrentDocument"遗传算法的概述 4\o"CurrentDocument"遗传算法的特点 4遗传算法基本流程操作 6\o"CurrentDocument"2数字滤波器 9\o"CurrentDocument"数字滤波器的简介 9\o"CurrentDocument"FIR和IIR数字滤波器的概述 10\o"CurrentDocument"FIR数字滤波器 10\o"CurrentDocument"IIR数字滤波器 10\o"CurrentDocument"FIR数字滤波器与IIR数字滤波器的区别 12\o"CurrentDocument"3数字滤波器的设计方法 133.1数字滤波器的设计要求 13\o"CurrentDocument"4基于遗传算法的IIR数字滤波器的设计与仿真 17\o"CurrentDocument"Matlab软件的概述 17\o"CurrentDocument"IIR数字滤波器的设计 18数字滤波器设计的简要分析 18\o"CurrentDocument"实例比较一般算法设计思路和遗传算法设计思路 19IIR数字滤波器白^仿真结果 24仿真图形 24\o"CurrentDocument"小结 25\o"CurrentDocument"参考文献 26\o"CurrentDocument"附件 27摘要无限脉冲响应数字滤波器 (IIR)具有频特性精度高、实现简单等优点,在数字信号处理领域得到了广泛应用; 遗传算法是一类依自然环境的进化规律——适者生存优胜劣汰遗传机制,演化而来的随机化搜索方法。它是由美国 J.Holland教授1975年最先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定, 具有在的隐并行性和更好的全局寻优能力, 采用概率化的寻优方法,能自动获取和指导优化的搜索空间, 自适应地调整搜索方向, 不需要确定的规则。 遗传算法的这些性质已被广泛地应用于问题求解、 机器学习、 信号处理、智能控制和人工生命等领域。 它是现代有关智能计算中的关键技术, 因而将其应用在数字滤波器算法的优化上。关键词: IIR数字滤波器 遗传算法AbstractDigitalfilterwithFiniteImpulseResponse(FIR)haslotsofadvantages,suchassystemicstability,linearphase ,etc.Ithasbeenwidelyusedindigitalsignalprocessing.Thegeneticalgorithmhaslotsofmerits,suchasthememorability,distribution,anddiversity .Itiswidespreadinthefieldsofintelligent computationpattern recognitionandoptimizationdesign.Thispaperpresentsadesigningmethodofdigitalfilter.Itisbasedonthecombinationgeneticalgorithmwiththecosinesequences.Thewindowfunctionisconstructedeffectivelybyweightingcosinesequences.Thecorrespondingweightingcoefficientsarecomputedb,,thegeneticalgorithm.Digitalfilterisrealizedfinallybywindowingapproach.Inordertoacceleratetheconvergentspeedandimprovetheprecision,elitistmodelandfloating-pointcodingareadopted.Theefficiencyoftheproposedmethodisvalidatedbysimulationexperimentstakingondesigninglowpassdigitalfilters.Thedesigningmethodpresentedinthispaperhassomeadvantages,suchasoodflexibility,universality,andsoon .Keywords:IIRdigitalfilterGeneticalgorithm1遗传算法遗传算法的产生与发展遗传算法(GeneticAlgorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1974年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。随后经过20余年的发展,取得了丰硕的应用成果和理论研究的进展,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。近几年来,遗传算法主要在复杂优化问题求解和工业工程领域应用方面, 取得了一些令人信服的结果,所以引起了很多人的关注。在发展过程中,进化策略、进化规划和遗传算法之间差异越来越小。遗传算法成功的应用包括:作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配、交通问题、组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。随着遗传算法的不断发展,关于遗传算法的国际学术活动越来越多, 遗传算法已成为一个多学科、多领域的重要研究方向遗传算法的概述遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由一定数量的经过了基因编码的个体组成。每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其部表现为某种基因组合(即基因型),它决定了个体形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射,即编码工作。由于仿照基因编码的工作很复杂,我们往往将其简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。遗传算法的特点遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法的共同特征为:1)首先组成一组候选解;2)依据某些适应性条件测算这些候选解的适应度;3)根据适应度保留某些候选解,放弃其他候选解;4)对保留的候选解进行某些操作,生成新的候选解。在遗传算法中, 上述几个特征以一种特殊的方式组合在一起: 基于染色体群的并行搜索, 带有猜测性质的选择操作、 交换操作和突变操作。 这种特殊的组合方式将遗传算法与其它搜索算法区别开来。遗传算法还具有以下几方面的特点:遗传算法从问题解的串集开始嫂索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。许多传统搜索算法都是单点搜索算法,容易陷入局部的最优解。遗传算法同时处理群体中的多个个体, 即对搜索空间中的多个解进行评估, 减少了陷入局部最优解的风险,同时算法本身易于实现并行化。遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体, 在此基础上进行遗传操作。 适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用围大大扩展。遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时, 硬度大的个体具有较高的生存概率, 并获得更适应环境的基因结构。1.41.4遗传算法基本流程操作病加些金里图1-4-1解决实际问题时遗传算法流程图结束广生就一代群体确定实际问题参数集结束广生就一代群体确定实际问题参数集1)位串解码的参数2)计苴目标函数值3)的数值向适应值4)适应值调整L)2)3)择父异遗传操作图1-4-2 遗传过程(1)编码:确定用何种码制,然后将问题参数编码形成基因码链,每一个码链代表一个个体,表示优化问题的一个解。(2)初始化:随机产生一个规模为P的初始种群,其中每个个体为一定长度的码链,该群体代表优化问题的一些可能解的集合。(3)估计适应度:计算种群中每个个体的适应度,适应度为群体进化时的选择提供了依据。一般来说适应度越高,解的素质越好。适应度函数可以根据目标函数而定。(4)再生(选择):根据每个个体白相对适应度,计算每个个体的再生次数并进行再生操作,产生新的个体加人下一代群体中,一般再生的概率与其适应度成正比。(5)交叉:从种群中随机选择两个染色体 ,按一定的概率进行基因交换,交换位置的选取是随机的。(6)变异:从种群中随机地选择一个染色体,按一定的变异概率P!行基因变异,GA的搜索能力主要是由选择与交叉赋于的,变异算子则保证了算法能搜索到问题空间的每一点,从而使算法具有全局最优性,它进一步增强了GA勺能力。(7)重复:若发现最优解 ,则算法停止 ,否则转3,对产生的新一代群体进行重新评价、 选择、交叉、变异操作,如此循环往复 ,使群体中最优个体的适应度和平均适应度不断提高。2数字滤波器数字滤波器的简介数字滤波器一词出现在 60年代中期。由于电子计算机技术和大规模集成电路的发展, 数字滤波器已可用计算机软件实现, 也可用大规模集成数字硬件实时实现。滤波器是指用来对输入信号进行滤波的硬件和软件。 所谓数字滤波器是一个离散时间系统, 按预定的算法, 将输入离散时间信号转换为所要求的输出离散时间信号的特定功能的装置。 也可以说成是通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器和模拟滤波器相比, 因为信号的形式和实现滤波的方法不同, 数字滤波器具有比模拟滤波器精度高、 稳定、不要求阻抗匹配等特点。 应用数字滤波器处理模拟信号时, 首先须对输入模拟信号进行限带、 抽样和模数转换。 数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍, 其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即 1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。一般用两种方法来实现数字滤波器: 一是采用通用计算机, 把滤波器所要完成的运算编程通过计算机来执行, 也就是采用计算机软件来实现; 二是设计专用的数字处理硬件。FIR和IIR数字滤波器的概述FIR数字滤波器FIR(FiniteImpulseResponse)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件, 它可以在保证任意幅频特性的同时具有严格的线性相频特性, 同时其单位抽样响应是有限长的, 因而滤波器是稳定的系统。 因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。有限长单位冲激响应(FIR)滤波器有以下特点:(1)系统的单位冲激响应 h(n)在有限个 n值处不为零;(2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(因果系统);(3)结构上主要是非递归结构, 没有输出到输入的反馈, 但有些结构中 (例如频率抽样结构)也包含有反馈的递归部分。IIR数字滤波器IIR(InfiniteImpulseResponse)数字滤波器,又名“无限脉冲响应数字滤波器”,或“递归滤波器” 。递归滤波器,也就是 IIR数字滤波器,顾名思义,具有反馈,一般认为具有无限的脉冲响应。IIR滤波器有以下几个特点:1)封闭函数: IIR数字滤波器的系统函数可以写成封闭函数的形式。2)IIR数字滤波器采用递归型结构: IIR数字滤波器采用递归型结构, 即结构上带有反馈环路。 IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。 由于运算中的舍入处理, 使误差不断累积, 有时会产生微弱的寄生振荡。(3)借助成熟的模拟滤波器的成果: IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果, 如巴特沃斯、 契比雪夫和椭圆滤波器等, 有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。(4)需加相位校准网络: IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。FIR数字滤波器与 IIR数字滤波器的区别1)单位响应IIR数字滤波器单位响应为无限脉冲序列, 而FIR数字滤波器单位响应为有限的;FIR滤波器,也就是“非递归滤波器”,没有引入反馈。这种滤波器的脉冲响应是有限的。2)幅频特性IIR数字滤波器幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上; FIR数字滤波器的幅频特性精度较之于 IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变,这是很好的性质。3)实时信号处理FIR数字滤波器是有限的单位响应也有利于对数字信号的处理, 便于编程,用于计算的时延也小,这对实时的信号处理很重要。3数字滤波器的设计方法3.1数字滤波器的设计要求我们通常用的数字滤波器一般属于选频滤波器, 数字滤波器的频响特性函数H(ejw)一般为复函数,所以通常表示为H(e jw)=|H(ejw)|ej()其中,|H(ejw)|称为幅频特性函数, (w)称为相频特性函数。幅频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性反映各频率通过滤波器后在时间上的延时情况。一般来说,对于IIR滤波器,相频特性不做要求,而对于有线相位要求的滤波器,一般采用FIR滤波器来实现。图3-1低通滤波器的幅值特性图3-1为低通滤波器的幅值特性, p和s分别称为通带截止频率和阻带截止频率。通带频率围为0p,在通带中要求1 1s1,阻带频率围为s ,在阻带中要求H(ej) 2,从p至s称为过渡带。通带所允许的最大衰减(dB)和阻带所允许的最小衰减(dB)分别为p和s,分别定义为:p20lgH(ejp)dBs201gH(ejs)dB般要求:当0| |p时,201gH(ejp)当s||时,201gH(ejs)3.2IIR数字滤波器的典型方法设计利用模拟滤波器设计 IIR数字滤波器的设计步骤如下:(1)将给定的而数字滤波器的性能指标,按某一变换(映射)规则转换成响应的模拟滤波器的性能指标。(2)如果要设计的不是数字低通滤波器,则还需将步骤( 1)中变换所得到的相应的(高通、带通、带阻)模拟滤波器性能指标变换成模拟滤波器的性能指标,这是因为只有模拟低通滤波器才有图形和表格可以利用。(3)用所得到得模拟低通滤波器的性能指标,利用某种模拟滤波器的逼近方法,设计查表求得此模拟低通滤波器的系统函数, 以它作为设计数字滤波器的“样本”。(4)利用( 1)、(2)中的同一变换规则,将此作为“样本”的模拟原型低通滤波器的系统函数,最终变换成所需的而数字各型滤波器的系统函数 Hz。其实,利用模拟滤波器来设计数字滤波器,就是要把 s平面映射到 z平面,使模拟系统函数 Has变换成所需的数字滤波器的系统函数 Hz,这种由复变量s到复变量 z之间的的映射(变换)关系,必须满足两条基本要求:1)Hz的频率响应要能模仿 Has的频率响应, 即s平面的虚轴 j必须映射到z平面的单位圆 ej上,也就是频率轴要对应。2)因果稳定的 Has应能映射成因果稳定的 Hz。也就是 s平面的左半平面Re[s]<0必须映射到 z平面单位圆的部 |z|<1。从模拟滤波器映射成数字滤波器, 也就是使数字滤波器能模仿模拟滤波器的特性,主要的有以下几种映射方法:冲激响应不变法、阶跃响应不变法、双线性变换法。

卜面来介绍下模拟滤波器的数字化方法:设模拟滤波器的系统函数Ha(S)只有单个极点,且假定分母的阶次大于分子的阶次(一般都满足这一要求,因为只有这样才相当于一个稳定的模拟系统)因此可将Ha(s)展开称部分分式表达式:HaHa(S)k1ssk其相应的冲激响应ha(t)是Ha(S)的拉普拉斯反变换,即:Nha(t)L1[Ha(s)] AkeSktu(t)k1其中u(t)是连续时间的单位阶跃函数。在冲激响应不变法中,要求数字滤波器的单位抽样响应等于ha(t)的抽样,即:N Nh(n)ha(nT) Ake&nTu(n) Ak(e”)nu(n)k1 k1对h(n)求z变换,即得数字滤波器的系统函数N N nnn skTn n skT1 AkH(z)h(n)z Ak(e)u(n)z A< (ez) --sk^Tn n0k1 k1n0 k11ez或者直接根据Ha(s)求出H(z)1z1 - 2H(z)Ha(s) -1Hac——1,其中c-osc14T 1z1 T4基于遗传算法的IIR数字滤波器的设计与仿真Matlab软件的概述Matlab是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,其高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;具有完备的图形处理功能 ,实现计算结果和编程的可视化;友好的用户界面及接近数学表达式的自然化语言 ,使学者易于学习和掌握;功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。Matlab的应用围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域特定类型的问题

IIR 数字滤波器的设计数字滤波器设计的简要分析IIR数字滤波器的系统函数可表示为:H(z)NA01H(z)NA01akZ1k11CkZ1bkZ2dkZ2滤波器的频率响应特性为:H(ej)NAH(ej)NAo1akejki1ckebke2j

dk^优化设计就是要求在离散频率点若设IIR滤波器的理想幅频响应为 Hd(ej),则IIR滤波器频域最小均方差优化设计就是要求在离散频率点ii1,2,M上,使所涉及的滤波器的幅频响应H(ej)与给定的幅频响应Hd(ej)的均方误差[H(ej)Hd(ej)]为最小,即:[H(ej[H(ej) Hd(ej)]minEmini1从此可以看出,目标函数E是增益Ao和滤波器系数akbkCkdk(k 1,2,,N)的非线性函数。由于共有N个二阶节,因此E是有(4n+1)个未知数的函数。设向量为:(a1,b1,C1,d1,a2,b2,C2,d2,a,bN,Cn,dN)它表示除Ao以外的其余4N个优化变量,这样E可表示为和A的函数,即:MEE(,AMEE(,Ao) [AoG(ej)Hd(ej)]所以应用遗传算法我们可以首先推导出最佳增益Ao的解析表达式,然后用遗传算法求解滤波器系数a「bk、5、dk(k1,2,,N)。增益与的计算,根据公式(4-12)对与求偏导并令其为零,则有E(,A0)E(,A0)M2[Ao|G(ej)i1Hd(ej)]G(ej) 0因此求出最佳增益Ao为:G(ej)?Hd(ej)i1M 2G(ej)由于只考虑幅度误差,所以Ao的正负对结果没有影响。参数区间的确定,为了应用遗传算法,滤波器的每个参数都要用一个有限长的二进制字符串进行编码。因此为了提高参数表示精度,应给出尽可能小的取值围。由公式可知,为了确保滤波器的稳定性,要求每个二阶节的极点都位于z平面的单位圆,即,使1CkZ1dkZ2的零点Zk满足Zk1,由此可确定Ck、dk的取值围为:2ck2 , 1dk1 ,k1,2N若在此围,优化结果仍出现了使滤波器不稳定的极点,那么可用其倒数代替该极点,这样可在不改变幅频响应的前提下,保证得到稳定的滤波器。止匕外,若要求滤波器同时具有最小相移特性,对a「bk可做与Ck、dk相同的处理。实例比较一般算法设计思路和遗传算法设计思路以此题为例:

试设计一个数字低通巴特沃思滤波器。要求通带截止频率 c2 2000rad/s,通带最大衰减i3dB,阻带起始频率st2 4000rad/s,阻带最小衰减220dB,采样频率s2 20000rad/s。解:若采用一般方法求解:(1)求阶数N,模拟巴特沃斯低通滤波器的幅度平方函数为2H2Ha(j)11(/c)2N(4-21)将性能指标带入此表达式,可得120lgHa(jc) 10lg[1(c/c)2N] 101g22 201gHa(jst) 101g[1(st/c)2N](4-22)由此联立求解,得出102/10102/101101/101(st)2N(4-23)因而解出所需滤波器阶数N为102/101 1021N1g(而)[21g(3)]1g(而)21g23.249(4-24)101 1. c10 1取大于此数的整数N=4,r12k1

j[-](4-25)(2)求极点。由skce22N,k1,2,2N(4-25)可得系统的4个极点为*Si s*Si s4j5/8ce ,S2*s3j7/8ce (4-26)(3)求模拟低通滤波器的系统函数 Ha(s)由于2Hk⑸…SN”(4-27)N/2Hk(s)N为偶数时所以 Ha(s) 1k(1N1)/2 (4-28)——H由于2Hk⑸…SN”(4-27)N/2Hk(s)N为偶数时所以 Ha(s) 1k(1N1)/2 (4-28)——Hk(s)N为奇数时s1k1将共腕极点组合起来,可得Ha(s)H1(s)?H2(s)2 2 2 2s20.7653cS2s21.8478cS24 _142.56410142 Z~-Z T_3Z 2 2 -ZT3Z 2 _7(s2 3.0612 103s 1.6 2 107)(s2 7.3912 103s 1.6 107)(4-29)实际上,在求出N=4后,不必求出极点,只要查表即可得到归一化的(c1)4阶巴特沃斯模拟低通滤波器的系统函数为H(s) 1 Han(s) 4 3 2s42.6131259s33.4142136s22.6131259s1(4-30)在此归一化模拟低通滤波器中,用sc代替其中的s,实际上就是利用Ha(s)Han(s/c),即可得到与上述一致的系统函数。(4)求数字低通滤波器的系统函数H(z)。根据公式(3-26)H(z)AkskT 1k11ez或者根据公式(3-27)H(z)Ha(s)Hac^1z… 2一,其中c〒来计算。若用遗彳^算法:由于s2/Ts由于s2/Ts2fs,/fs2 /s,则理想低通滤波器的截止频率c2c/s0.2,阻带起始频率为st2st/s0.4,设计理想低通滤波器的技术指标如下:0.2Hd(ej) 0.5 0.30 0.4(4-31)遗传算法参数的选择:由于滤波器的阶数为4,则遗传算法中N=2;初始化种群,假设群体规模(染色体)群体大小 S100,交叉频率Pc0.9,变异概率Pm 0.01,适应度的个体生存概率Ps0.9,最大世代数G20,滤波器参数的编码长度L10,这样遗传算法中个体的编码长度为4N10。应用遗传算法设计本例题的具体步骤如下:编码:为了用遗传算法求解公式(4-17)中的非线性优化问题,我们应对优化变量进行适当编码,以形成遗传算法中的个体。设参数人表示a「bk、Cqdk中的任意一个变量,其取值围为:XlX的任意一个变量,其取值围为:XlXkXh,对该变量用L位二进制字符串进行编码,那么二者之I可的对应关系为:二进制字符串正整数X二进制字符串正整数Xk00 0L00 0L位Xl01 10L位Xl11 112Lx01 10L位Xl11 112LxHXHXLQh?rXHXL2l根据上述方法,对式(4-17)中的向量的每个元素都进行L位二进制字符串编,J;J4NL显然,它是对优化,J;J4NL显然,它是对优化码,于是向量变为如下二值向量:Z [42, ,zj],其中乙{0,1}i1,2,(4-32)这样,我们选择上式中的向量Z作为遗传算法中的个体。参数的二进制字符串编码,其中的第Nl1个到第(n1)L个元素,就是对式(4-17)中优化变量 的第n个元素的编码(2)适应度函数的选择:我们选择式(4-14)作为遗传算法中的适应度函数。显然E值越小,说明该个体对应的滤波器参数 其均方误差就越小,那么,该个体就越适应环境。在遗传算法中使用的交叉算子、突变算子和竞争生存策略如上述描述。至此,我们就可以用式(4-19)中的Ao表达式和遗传算法中的非线性优化问题,实现IIR数字滤波器的优化设计。下面给出用遗传算法设计IIR数字滤波器的具体步骤:1)设定遗传算法中的参数,并由式(4-20)决定的参数区间中随机初始化第0代群体中的每个个体;2)由式(4-18)计算A。;对每个个体进行编码并由式(4-17)计算每个个体的适应度;3)让群体中的个体进行生存争斗,优胜劣汰;4)对群体中的个体进行交叉和突变运算,以产生新的一代;4)重复2)~4)步,直至满足精度要求或达到预先设定的世代数;6)对适应度最高的个体编码,从而求出IIR数字滤波器的系数akbkckdk(k 1,2, ,N)IIR 数字滤波器的仿真结果仿真图形£色DonJcHEA领谱瞥性2.1 02 03 1__4 O.&OLE0.7 0.3 0.9 £色DonJcHEA领谱瞥性2.1 02 03 1__4 O.&OLE0.7 0.3 0.9 1NormalizedFrtqusncy(<nrad/sampl»)岩也6HS-9Hurl□.I 02 03 0.4 0,5 016 07OS0.5 1NormaliifldFreouflncygrad/s=molej□Mm.1-21100■Ki图4-3-1一般算法的仿真结果TM普特性jno100■Ki图4-3-1一般算法的仿真结果TM普特性jno-mioni□2n3cjo.En它c7 □-口qNqtitialiisdFr^quyncj;(xxia^aoiFleJ10Q-Jin00JQ210Q-Jin00JQ203M0,5QB07口3Q9 1IdMETliinriFi■叫ii-ii\?工如此劣阡的-300图4-3-2遗传算法的仿真结果5小结数字滤波器的设计方法的研究已持续二十多年, 现正处于稳定发展阶段, 应用遗传算法等优化算法对数字滤波器的性能指标的优化以及仿真实现 IIR和FIR数字滤波器是当前的研究热点之一。 近几年来, 遗传算法主要在复杂优化问题求解和工业工程领域应用方面, 取得了一些令人信服的结果, 所以引起了很多人的关注。在发展过程中,进化策略、进化规划和遗传算法之间差异越来越小。然而,基本的遗传算法结构简单, 在应用一些具体问题时, 其速度和效率仍然有限,而且存在群体大小、 交叉变异概率难以选择等问题。 最重要的是随机性太强,既是优点也是缺点, 造成最有的选择也很随机, 而不是每次都能现实最有结果。以后还需要在这个问题上作进一步的研究和讨论。6参考文献唐艳.基于改进遗传算法的滤波器优化设计 .网络出版年期, 2009,2.泉,阙大顺,郭志强.数字信号处理原理与实现 (第二版).电子工业 .2009,6.建红,秋影,付强等.改进遗传算法在滤波器优化配置中的应用 .化工自动化及仪表, 2010,37(9):74-78.邹理和.数字滤波器 [M].:国防工业 ,1979.董长虹,余啸海,高成等.Matlab信号处理与应用 [M].:国防工业 ,2004.附件普通算法设计IIR滤波器的MATLAB?序fs=20000;fp=2000;fst=4000;wp=fp/fs*2*pi;ws=fst/fs*2*pi;Ap=3;As=20;%频率预畸omegap=(2*fs)*tan(wp/2);%PrewarpPrototypePassbandfreqomegas=(2*fs)*tan(ws/2);%PrewarpPrototypeStopbandfreq%设计巴特沃斯低通滤波器原型N=ceil((log10((10A(Ap/10)-1)/(10A(As/10)-1)))/(2*log10(omegap/omegas)));omega0=omegap/((10A(Ap/10)-1)A(1/(2*N)));[z,p,k]=buttap(N);%获取零极点参数p=p*omega0;k=k*omega0AN;B=real(poly(z));b0=k;cs=k*B;ds=real(poly(p));[b,a]=bilinear(cs,ds,fs);%双线性变换freqz(b,a,fs);%绘制结果遗传算法设计IIR数字滤波器的MATLAB序I相关函数%初始化(编码)%initpop.m函数的功能是实现群体的初始化, popsize表示群体的大小,chromlength表示染色体的长度 (二值数的长度 ),%长度大小取决于变量的二进制编码的长度 (在本例中取 10位)。%遗传算法子程序%Name:initpop.m%初始化functionpop=initpop(popsize,chromlength)pop=round(rand(popsize,chromlength));%rand随机产生每个单元为 {0,1}行数为popsize,列数为 chromlength的矩阵,%roud对矩阵的每个单元进行圆整。这样产生的初始种群。%计算目标函数值%将二进制数转化为十进制数 (1)%遗传算法子程序%Name:decodebinary.m%产生[2An2A(n-1)…1]的行向量,然后求和,将二进制转化为十进制functionpop2=decodebinary(pop)[px,py]=size(pop);%求pop行和列数fori=1:pypop1(:,i)=2.A(py-i).*pop(:,i);endpop2=sum(pop1,2);%求pop1的每行之和%将二进制编码转化为十进制数%decodechrom.m函数的功能是将染色体 (或二进制编码 )转换为十进制,参数spoint表示待解码的二进制串的起始位置%(对于多个变量而言,如有两个变量,采用 160为表示,每个变量 10为,则第一个变量从 1开始,另一个变量从 11开始。本例为 1),%参数1ength表示所截取的长度(本例为 10)。%遗传算法子程序%Name:decodechrom.m%将二进制编码转换成十进制functionpop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);%计算目标函数值%calobjvalue.m函数的功能是实现目标函数的计算, 其公式采用本文示例仿真,可根据不同优化问题予以修改。%遗传算法子程序%Name:calobjvalue.m%实现目标函数的计算function[objvalue]=calobjvalue(pop)temp1=decodechrom(pop,1,10);%将pop每行转化成十进制数x1=temp1*10/1023;%将二值域中的数转化为变量域的数temp2=decodechrom(pop,1,10);x2=temp2*10/1023;temp3=decodechrom(pop,1,10);x3=temp3*10/1023;temp4=decodechrom(pop,1,10);x4=temp4*10/1023objvalue=impz(x1,x2,x3,x4);%计算目标函数值%计算个体的适应值%遗传算法子程序%Name:calfitvalue.m%计算个体的适应值functionfitvalue=calfitvalue(objvalue)globalCmin;Cmin=0;[px,py]=size(objvalue);fori=1:pxifobjvalue(i)+Cmin>0temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue';%选择复制%选择或复制操作是决定哪些个体可以进入下一代。 程序中采用赌轮盘选择法选择,这种方法较易实现。%根据方程pi=fi/Efi=fi/fsum,选择步骤:%1)在第t代,由( 1)式计算 fsum和pi%2) 产生{0,1}的随机数 rand(.),求s=rand(.)*fsum%3)求Efi>s中最小的k,则第k个个体被选中%4) 进行N次2)、3)操作,得到 N个个体,成为第 t=t+1代种群%遗传算法子程序%Name:selection.m%选择复制function[newpop]=selection(pop,fitvalue)totalfit=sum(fitvalue);%求适应值之和fitvalue=fitvalue/totalfit;% 单个个体被选择的概率fitvalue=cumsum(fitvalue);%如fitvalue=[12 3 4],则cumsum(fitvalue)=[13610][px,py]=size(pop);ms=sort(rand(px,1));%从小到大排列fitin=1;newin=1;whilenewin<=pxif(ms(newin))<fitvalue(fitin)newpop(newin)=pop(fitin);newin=newin+1;elsefitin=fitin+1;endend%交叉%交叉(crossover),群体中的每个个体之间都以一定的概率 pc交叉,即两个个体从各自字符串的某一位置%(一般是随机确定) 开始互相交换, 这类似生物进化过程中的基因分裂与重组。例如,假设 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论