FIR数字滤波器设计的两种实现

前言

介绍了MATLAB脚本程序法、FDATool设计法2种FIR数字滤波器的设计方法,并附带一定的窗函数理论知识及具体设计步骤,而且这2种方法都能够根据要求实现设计目标。通过对比3种设计实现方法,广大设计人员可以根据自己的实际情况快速准确的实现FIR数字滤波器的设计,不仅加深了FIR滤波器的理论知识,而且也提高了学习研究效率。

在MATLAB环境下FIR滤波器设计

FIR滤波器的设计方法有很多,本文分别使用MATLAB脚本程序设计法、FDATool设计法和Simulink设计法等三种方法,来进行滤波器的设计及方法研究。

在一般情况下,理想数字滤波器的单位采样序列hd(n)是无限长的,是非因果序列,在物理上是很难实现或者是不可能实现的。为使物理可实现,需要对hd(n)截取一段h(n)来近似表示hd(n),这会改变原来滤波器的性能指标,出现"吉布斯效应",造成很大的误差。为了改善这种情况,要求窗函数主瓣宽度尽可能窄,以获得最小的过渡带;旁瓣相对值尽可能小,以使得通带波纹小,且阻带衰减增大。

使用窗函数设计FIR滤波器时,要根据给定滤波器指标选择合适的窗函数和窗宽度N。在设计FIR滤波器的过程中,一个重要的计算就是怎么加窗。采用矩形窗是最直接简单的方法,但采用矩形窗会产生很大的"Gibbis效应",且矩形窗的第一旁瓣仅比主瓣衰减13 dB。故在实际应用设计中,一般采用其他窗函数,得到实际设计的FIR数字滤波器的单脉冲响应序列口。目前几种主要的窗函数分别为:矩形窗、三角形窗、汉宁窗、哈明窗、布莱克曼窗和凯泽窗等。表中的数据给出了它们的性能比较.

MATLAB脚本程序设计法

MATLAB软件提供了丰富的工程应用实践,同时,MATLAB信号处理工具箱也提供了各种窗函数滤波器设计函数和滤波器实现函数。本文的滤波器设计程序语言如图所示,执行该程序所得的滤波器幅频一相频特性如图所示:

Fs = 10000;

N =127;

Fc =1000;

flag ='noscale'

Beta =0.5

window = kaiser(N+1,Beta);

b =fir1(N,Fc/(Fs/2),'low',window,flag);

freqz(b,1,512);

FDAtool设计法

FDATool是MATLAB信号处理工具箱里专用的滤波器设计分析工具。FDAToo'l可以设计几乎所有基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活口"。下面以采用海明窗函数设计一个95阶的带通滤波器为例,来讲解FDATool的使用方法,该滤波

器的性能要求有Fs=1 000 Hz,Fc1=70 Hz,Fc2=84 Hz。

结语

MATLAB脚本程序法设计直观,公式和原理一目了然,但对于应用人员有较高的理论知识要求;而FDATool设计法采用良好的GUI界面,用户可以根据具体的要求自己实现设计任务,并且可以随时观察波形信息以及各种参数等等,是初学者理想的选择方法

相关推荐
Evand J4 小时前
【三维飞行器】RRT路径规划与TOA定位仿真系统,MATLAB例程,路径起终点、障碍物、TOA锚点等均可设置。附下载链接
开发语言·matlab·无人机·定位·rrt·toa·三维航迹规划
t198751288 小时前
使用深度神经网络解决无线网络资源分配问题的MATLAB实现
matlab·php·dnn
freexyn11 小时前
Matlab入门自学七十四:坐标系转换,直角坐标、极坐标和球坐标的转换
开发语言·算法·matlab
沉沙丶13 小时前
关于matlab分析电流THD的一些探究和记录
开发语言·matlab·电机控制·foc·永磁同步电机·模型预测·预测控制
软件算法开发1 天前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
机器学习之心1 天前
LSBoost增强算法回归预测+SHAP可解释分析+新数据预测(多输入单输出)MATLAB代码
算法·matlab·回归·lsboost·shap可解释分析
有点傻的小可爱1 天前
【MATLAB】新安装并口如何实现能通过PTB启用?
开发语言·windows·经验分享·matlab
lilili也1 天前
一些函数的记录
matlab
机器学习之心2 天前
随机森林回归预测+SHAP可解释分析+新数据预测(多输入单输出)MATLAB代码
随机森林·matlab·回归·shap可解释分析
IT猿手2 天前
MATLAB模拟四旋翼无人机飞行,机翼可独立旋转
开发语言·matlab·无人机