当前位置:首页 > 工业控制 > 电子设计自动化

摘要 通过实例介绍了基于Matlab的FIR滤波器的优化设计方法。3种结果比较发现,在同样阶数下,优化设计可以获得最佳的频率特性和衰耗特性。
关键词 数字滤波器;Matlab;FIR;IIR;优化设计

数字滤波在数字信号处理中,占有重要的地位。数字滤波包括FIR和IIR两种滤波方式,其中FIR滤波具有很多优点,可以在幅度特性随意设计的同时,保证精确、严格的线性相位,滤波稳定,不会出现递归型结构中的极限振荡等不稳定现象,且误差较小,可采用FFT算法实现,因此运算效率高。设计FIR滤波器常用的方法有窗函数法与频率抽样法,但是这两种方法均不易精确控制通带与阻带的边界频率,所以在实际应用中有一定的局限性。文中用Matlab语言实现了最佳等波纹FIR滤波器的设计,通过比较显示了它在等波纹方脉冲响应方面的优化特性。

1 FIR滤波器优化设计法
Matlab信号工具箱中提供的Remez函数可对数字滤波器进行优化设计,得到的数字滤波器具有等波纹特性,Remez函数实现Parks McClel-lan算法,即采用数字分析中的Remez算法和切比雪夫最佳一致逼近理论来设计,使实际频响拟合期望频率响应最优。使用Remez算法设计滤波器,首先需根据要求确定滤波器阶数。利用Remezord函数可以确定滤波器阶数n,归一化的各频带边界频率fo,归一化的各频带幅度值ao,加权系数w,其格式如下:[n,fo,ao,w]=remezord(f,a,dev)。Remezord输入参数的含义为向量f指定各频带边界频率,在 0~Fs/2之间取值。向量a指定各频带的幅度响应。f的长度是length(f)=2×length(a)-2,必须为偶数。第一频带总是从0开始,最后一个频带到Fs/2结束。向量dev指定设计出的滤波器和理想滤波器的幅度响应在每个频带的最大允许误差,因此与向量a的长度相等。

2 FIR滤波器设计实例
分别使用窗函数法,频率取样,优化设计法,设计一个线性相位的带通滤波器。带通滤波器的通带为1 300~2 210 Hz,阻带O~1 000 Hz,2 410~4 000 Hz,通带最大波动为1 dB,阻带最小衰减为35 dB。设计流程是:(1)输入滤波器技术要求N,Hd(w),W(ω)。(2)按要求的滤波器类型求出W(ω),Hd(w),P(ω)。(3)给出M+2 个交错点组频率初始值ω(i),i=O,1;2,…,M+1。(4)调用Remez算法程序求解最佳极值频率和P(ω)的系数。(5)计算单位脉冲响应 h(n)。(6)输出最佳误差和h(n)。
如图1~图3为3种带通数字滤波器的仿真结果,可以看出在同样阶数下,使用优化设计方法设计的滤波器,无论是通带还是阻带都较平坦、过渡带比较窄且阻带衰减好。



3 结束语
比较3种数字滤波器的设计方法可得以下结论:
(1)采用窗函数法设计简单、方便、实用。但用计算机不易控制边界频率。
(2)由于窗函数法是从时域角度给出的设计方法,但一般情况都是频域角度给出,频率采样法恰好是从频域角度进行设计,比较直观,但边界频率不易控制。增加采样点数N对确定有好处,但采样点数N增大会增加滤波器的成本。
(3)同样阶数下使用优化设计方法所设计的滤波器,无论是通带还是阻带都较平坦、过渡带较窄且阻带衰减好。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

数值计算方法是一种用于解决数学问题的方法,涉及到数值近似、数值逼近、数值积分、数值微分等等。算法设计是数值计算方法的核心,它包括了数值方法的数学原理和计算机实现的算法,能够有效地解决各种数学问题。

关键字: matlab 算法设计 数值积分

仿真的基本思想是利用物理的或数学的模型来类比模仿现实过程,以寻求过程和规律。它的基础是相似现象,相似性一般表现为两类

关键字: matlab 程序仿真 仿真模式

本文利用Matlab GUI设计通过串口进行数据发送和接收的界面,并利用内置于Matlab的串口通信API实现串口数据发送与接收功能。

关键字: matlab GUI 串口通信

信号处理工程师在开发工作的所有阶段都使用 MATLAB® 和 Simulink® — 从分析信号和探索算法,到评估设计实现的权衡,最终构建实时信号处理系统。

关键字: matlab 通信系统

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

关键字: matlab 程序设计 计算机视觉

表示机器的浮点运算误差限,在Matlab仿真实验开发中,eps的精度达到2.2204*10^-6,当运算的误差精度下于这个数值的时候,可以认为误差为零。

关键字: matlab 控制系统 Matlab仿真

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

关键字: matlab 工具箱 信号处理

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

Matlab是matrix laboratory的组合,意为矩阵实验室,软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

关键字: matlab 编程语言 数值分析

Matlab是matrix laboratory的组合,意为矩阵实验室,软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化。

关键字: matlab 矩阵实验室 软件
关闭
关闭