APP下载

基于水循环算法的FIR滤波器设计

2021-03-15杨婧张宝安李丹丹方心乐尹婼楠刘婷

企业科技与发展 2021年1期

杨婧 张宝安 李丹丹 方心乐 尹婼楠 刘婷

【摘 要】FIR滤波器被广泛应用于数字信号处理和工程实际中。最优化FIR滤波器设计可看作为一种寻优过程,利用启发式算法能够快速解决这一问题。水循环算法是一种模拟自然界水循环过程的新型启发式算法,由于其具有运算速度快、控制参数少、收敛性能优等特点而受到越来越多学者的重视。文章首先介绍水循环算法和最优化滤波器设计的基本原理,其次采用均方误差最小准则,利用水循环算法实现最优化FIR滤波器设计,最后通过MATLAB软件仿真验证该设计的有效性。

【关键词】FIR滤波器;水循环算法;最优化FIR滤波器;均方误差最小准则

【中图分类号】TP301.6 【文献标识码】A 【文章编号】1674-0688(2021)01-0032-03

0 引言

随着人工智能时代的来临,人们对信息处理的要求越来越高,滤波器作为信息处理过程中的重要组件,其设计和优化方法显得越来越重要。数字滤波器与模拟滤波器相比具有稳定、可实现精确度高、多速率处理等特点,广泛应用于图像处理、HDTV、模式识别等领域。

数字滤波器按照单位脉冲分类,可分为有限脉冲响应(Finite Impulse Response,FIR)滤波器和无线脉冲响应(Infinite Impulse Response,IIR)滤波器两种。FIR数字滤波器广泛应用于工程实际中,它最大的特点是稳定,可以在保证随意设置幅频特性的同时获得严格的线性相频特性。此外,FIR数字滤波器具有硬件较容易实现,可通过线性方式设计,过渡过程是有限区间等特点。在数字信号处理领域中,优化FIR滤波器设计可抽象为一种最优化问题,即利用数学逼近理论在指定的优化准则下,寻找合适的滤波器系数,优化FIR滤波器的性能。近年来,FIR滤波器得到国内外许多学者的关注,出现了许多优化方法,其中启发式算法优化滤波器获得了较好的效果[1,2]。水循环算法(Water Cycle Algorithm,WCA)是Hadi Eskandar[3]等人提出的一種模拟自然界水循环过程的智能优化算法,由于其具有运算速度快、收敛性能好的优点[4]而被广泛应用于许多领域,例如求解贝叶斯网络结构学习问题的二进制水循环算法[5]、改进的长时期多水库优化水循环算法[6]、基于梯度的水循环算法应用于混沌抑制[7]。本文试将水循环算法应用到FIR滤波器的研究中,提出了一种基于水循环算法的FIR滤波器设计,并用MATLAB软件仿真验证其有效性。

1 水循环算法基本原理

水循环算法(WCA)是模拟大自然水循环过程而提出的一种元启发式算法。该算法将最优解的寻找过程与自然界水循环过程相结合,以适应度函数为导向,进行溪流、河流的汇合,以蒸发降雨作用为辅助跳出局部最优解,最终找到问题的近似最优解。WCA的基本寻优原理如下。

1.1 种群初始化

利用公式(1)生成初始种群个体,根据公式(2)计算个体的适应度,按照适应度大小排序后,根据需要设定河流和大海,并根据其流量强度分配溪流,得到种群如公式(3)。

1.4 算法结束

判断算法是否达到最大迭代次数;没达到就继续迭代寻优,反之算法结束并输出最优解(海洋的位置)。

2 基于水循环算法的FIR滤波器设计

2.1 FIR滤波器设计

数字滤波器可看作一个离散时间系统,设有限脉冲响应滤波器的单位抽样响应为h(d),则L阶滤波器输入x(d)与y(n)输出的关系表达式如下:

经典法FIR滤波器设计原理简单、设计方式较为成熟,因而成为设计滤波器的主要方法,但这种方法得到的数字滤波器实际频率响应与理想值相差太大,滤波器的性能较差无法满足对性能要求高的场合,所以需要使用最优化设计方法设计滤波器。最优化设计方法是根据某些准则设计滤波器,例如最大误差最小化准则、最小平方准则、均方误差最小准则等。

本文利用均方误差最小准则实现最优化FIR滤波器设计。均方误差最小是指找到一组h(d)使得均方误差Ex2最小,其中均方误差为实际滤波器的频率响应H(ejω)与理想滤波器频率响应H0(ejω)之差的平方,选择M个频率点,均方误差如下:

2.2 基于水循环算法的FIR滤波器设计

将水循环算法河流溪流汇入海洋的过程看作最优化FIR滤波器设计寻找最优滤波器系数的过程,将最小均方误差作为目标函数,函数值越小,则实际设计的滤波器性能越好。算法结束后,大海的值对应FIR滤波器的最优滤波器系数h(d)0≤d≤L-1。

基于水循环算法FIR滤波器的实现步骤如下:{1}初始化。初始种群总数为Npop、河流与海洋总个数为Nsr、溪流总数为Nstream、最优解个数为1、极小值为dmax、最大迭代次数为max_it,设置终止条件为超出最大迭代次数终止。{2}根据公式(3)生成初始种群,根据公式(14)计算每个雨滴的适应度值,并据此划分大海、河流与溪流。{3}计算河流和大海的流量强度,并据此划分跟随每条河流和大海的溪流数目。{4}执行循环。根据公式(4)、公式(5)、公式(6)进行河流与溪流、溪流与大海、河流与大海的位置更新。根据公式(7)、公式(8)判断是否满足蒸发条件,如果满足,则根据公式(1)和公式(9)执行降雨操作。判断是否满足最大迭代次数,若满足,算法结束,并返回最优解,此时最优解即滤波器的最佳系数;如果不满足,返回继续进入循环。

3 实验仿真

利用MATLAB软件仿真验证基于水循环算法的IIR滤波器的可行性,在仿真实验中设定了水循环算法的初始参数:Npop=350,Nsr=24,dmax=1e-5,最大迭代次数max_it=100。

实验1:设计一个阶数为21的FIR低通数字滤波器,其技术指标:

H0(ejω)=1      0≤ω≤0.48π0.793 7 ω=0.5π0.396 8 ω=0.52π0        0.53π≤ω≤π(15)

实验2:设计一个阶数为21的FIR高通滤波器,其技术要求:

H0(ejω)=0      0≤ω≤0.48π0.396 8 ω=0.5π0.793 7 ω=0.52π1        0.53π≤ω≤π(16)

实验3:设计一个阶数为21的FIR带通滤波器,其技术要求:

H0(ejω)=0         0≤ω≤0.25π0.5      ω=0.27π1    0.28π≤ω≤0.73π0.5         ω=0.75π0    0.76π≤ω≤π(17)

实验4:设计一个阶数为21的FIR帯阻滤波器,其技术要求:

H0(ejω)=1         0≤ω≤0.25π0.5      ω=0.27π0    0.28π≤ω≤0.73π0.5         ω=0.75π1    0.76π≤ω≤π(18)

圖1至图4分别为低通、高通、带通、带阻FIR滤波器的适应度和归一化幅频响应曲线。

由图1至图4可知,基于水循环算法的FIR滤波器的幅频特性曲线比较符合理想滤波器的滤波性能,因此该方法是一种可行的设计方案。

4 结论

本文研究水循环算法和FIR滤波器设计的基本原理,分析水循环算法用于优化FIR滤波器设计的可行性,提出利用水循环算法优化FIR滤波器设计的新方案,并借助MATLAB软件进行仿真实验,验证了该设计方案的有效性。

参 考 文 献

[1]邵鹏,吴志健,彭虎,等.改进的粒子群优化算法设计FIR低通数字滤波器[J].计算机科学,2017,44(S1):136-138,156.

[2]陈晓文.基于粒子群算法的FIR滤波器的优化设计[J].宁德师范学院学报(自然科学版),2019,31(3):257-262.

[3]Eskandar H,Sadollah A,Bahreininejad A,et al.Water cycle algorithm - A novel metaheuristic opti-

mization method for solving constrained engineering optimization problems[J].Computers & Structures,2012,110(10):151-166.

[4]周后英.基于水循环算法的阵列天线方向图综合[D].西安:西安电子科技大学,2018.

[5]Wang Jingyun,Liu Sanyang.Novel binary encoding water cycle algorithm for solving Bayesian network structures learning problem[J].Knowledge-Based Systems,2018,150:95-110.

[6]Yuni Xu,Yadong Mei.A modified water cycle alg-

orithm for long-term multi-reservoir optimization[J].Applied Soft Computing Journal,2018,71:317-332.

[7]Seyed Mehdi Abedi Pahnehkolaei,Alireza Alfi,Ali Sadollah,Joong Hoon Kim.Gradient-based water cycle algorithm with evaporation rate applied to chaos suppression[J].Applied Soft Computing,2017,

53:420-440.