功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
最新动态 您所在的位置: 首页 > 最新动态

用MATLAB设计FIR滤波器的方法

来源:    作者:    发布时间:2015-09-17 07:56:15    浏览量:

介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法、FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。

1 前言

数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽功率电感样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器塑封电感器和有限冲激响应(FIR)滤波器。与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。

2 FIR滤波器的窗函数设计法

FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:

(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。

(2) 由性能指标确定窗函数W(n)和窗口长度N。

(3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。

(4) 检验滤波器性能。

本文将针对一个含有5Hz、15Hz和30Hz的混和正弦波信号,设计一个FIR带通滤波器,给出利用MATLAB实现的三种方法:程序设计法、 FDATool设计法和SPTool设计法。参数要求:采样频率fs=100Hz,通带下限截止频率fc1=10 Hz,通带上限截止频率fc2=20 Hz,过渡带宽6 Hz,通阻带波动0.01,采用凯塞窗设计。

2 程序设计法

MATLAB信号处理工具箱提供了各种窗函数、滤波器设计函数和滤波器实现函数。本文的带通滤波器设计及滤波程序如下:
[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[0.01 0.01 0.01],100);
%得出滤波器的阶数n=38,beta=3.4
w1=2*fc1/fs; w2=2*fc2/fs;%将模拟滤波器的技术指标转换为数字滤波器的技术指标
window=kaiser(n+1,beta);%使用kaiser窗函数
b=fir1(n,[w1 w2],window);使用标准频率响应的加窗设计函数fir1
freqz(b,1,512);%数字滤波器频率响应
t = (0:100)/Fs;
s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%混和正弦波信号
sf = filter(b,1,s);%对信号s进行滤波

电感器生产

程序执行的结果如图1所示:

43.jpg
(1)滤波器幅频特性和相频特性 (2)滤波前后的波形
图1 滤波器特性和滤波效果图

4 FDATool设计法

FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱专用的滤波器设计分析工具,操作简单、灵活,可以采用多种方法设计FIR和IIR滤波器。在MATLAB命令窗口输入FDATool后回车就会弹出FDATool界面。

4.1 带通滤波器设计

已知滤波器的阶数n=38,beta=3.4。本例中,首先在Filter Type中选择Bandpass;在Design Method选项中选择FIR Window,接着在Window选项中选取Kaiser,Beta值为3.4;指定Filter Order项中的Specify order为38;采样频率Fs=100Hz,截止频率Fc1=10Hz,Fc2=20Hz。设置完以后点击窗口下方的Design Filter,在窗口上方就会看到所设计滤波器的幅频响应,通电感器原理过菜单选项Analysis还可以看到滤波器的相频响应、组延迟、脉冲响应、阶跃响应、零极点配置等。设计完成后将结果保存为kaiser15.fda文件。

4.2 Simulink仿真

在Simulink环境下,将滤波器文件kaiser15.fda导入Digital Filter Design模块,输入信号为s(t)=sin(10πt)+sin(30πt)+sin(60πt),生成的仿插件电感真图和滤波效果如图2所示。

44.jpg

(1)Simulink仿真图 (2)滤波前后的离散波形
图2 Simulink仿真图和滤波效果图

5 SPTool设计法

SPTool是MATLAB信号处理工具箱中自带的交互式图形用户界面工具,它包含了信号处理工具箱中的大部分函数,可以方便快捷地完成对信号、滤波器及频谱的分析、设计和浏览。在本例中按以下步骤完成滤波器的设计和滤波:

创建并导入信号源。
在MATLAB命令窗口输入命令:
Fs=100;t = (0:100)/Fs;

  • 两例互感器绕组极性标错引起保护误动分析一、两相式过电流保护电流互感器极性接反引起误动1.事故概况:2012年6月,我县某企业35kV变电站一条10kV直供分厂线路,过电流Ⅱ段保护,在天气无风、无雨,设备及负荷正常的情况下,接连发生六次动作

  • FPC1011C在指纹识别模块中的应用引言生物识别技术,尤其是指纹识别技术,是近年来身份识别和认证领域内发展很迅速的一门新兴技术。随着科技水平的不断提高,身份验证对于系统安全来说越来越重要,指纹的唯一性、终身不变性、难于伪造的特点,使它在

  • 基于单片机的LED显示屏硬件设计方案摘要: 设计使用宏晶科技的8 位单片机STC12C5A60S2 作为中央控制器, 结合NAND 闪存芯片K9F4008 存储汉字库的8 128 点阵LED 数字屏, 该点阵LED 数字屏具有存储信息后

  •