收藏 分享(赏)

用Matlab设计FIR滤波器的三种方法.doc

上传人:scg750829 文档编号:7529332 上传时间:2019-05-20 格式:DOC 页数:4 大小:142KB
下载 相关 举报
用Matlab设计FIR滤波器的三种方法.doc_第1页
第1页 / 共4页
用Matlab设计FIR滤波器的三种方法.doc_第2页
第2页 / 共4页
用Matlab设计FIR滤波器的三种方法.doc_第3页
第3页 / 共4页
用Matlab设计FIR滤波器的三种方法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、用 MATLAB 信号处理工具箱进行 FIR 滤波器设计的三种方法摘 要 介绍了利用 MATLAB 信号处理工具箱进行 FIR 滤波器设计的三种方法:程序设计法、FDATool 设计法和 SPTool 设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。关键词 MATLAB,数字滤波器,有限冲激响应,窗函数,仿真1 前言数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR )滤波器。与 IIR 滤波器相比, FIR 的

2、实现是非递归的,总是稳定的;更重要的是,FIR 滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。2 FIR 滤波器的窗函数设计法FIR 滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应 hd(n)。(2) 由性能指标确定窗函数 W(n)和窗口长度 N。(3) 求得实际滤波器的单位脉冲响应 h(n), h(n)即为所设计

3、 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=kai

4、serord(7 13 17 23,0 1 0,0.01 0.01 0.01,100);%得出滤波器的阶数 n=38,beta=3.4w1=2*fc1/fs; w2=2*fc2/fs;%将模拟滤波器的技术指标转换为数字滤波器的技术指标window=kaiser(n+1,beta);%使用 kaiser 窗函数b=fir1(n,w1 w2,window);使用标准频率响应的加窗设计函数 fir1freqz(b,1,512);%数字滤波器频率响应t = (0:100)/Fs;s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%混和正弦波信号sf = f

5、ilter(b,1,s);对信号 s 进行滤波程序执行的结果如图 1 所示:(1)滤波器幅频特性和相频特性 (2)滤波前后的波形图 1 滤波器特性和滤波效果图4 FDATool 设计法FDATool(Filter Design s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);此时,变量 Fs、t、s 将显示在 workspace 列表中。在命令窗口键入 Sptool,将弹出Sptool 主界面,如图 3 所示;点击菜单 File/Import 将信号 s 导入并取名为 s。(2)单击 Filters 列表下的 New,按照参数要求设计出滤波器 f

6、ilt1,具体步骤类似于3.2.1。(3)将滤波器 filt1 应用到 s 信号序列。分别在 Signals、Filters、Spectra 列表中选择s、filt1、mtlbse,单击 Filters 列表下的 Apply 按钮,在弹出的 Apply Filter 对话框中将输出信号命名为 sin15hz。(4)进行频谱分析。在 Signals 中选择 s,单击 Spectra 下的 Create 按钮,在弹出的Spectra Viewer 界面中选择 Method 为 FFT,Nfft=512,单击 Apply 按钮生成 s 的频谱spect1。同样的步骤可以生成信号 sin15hz 的频

7、谱 spect2。分别选中信号 s、sin15hz、spect1、spect2 ,单击各自列表下方的 View 按钮,即可观察他们的波形,如图 4 所示。图 3 SPTool 主界面 图 4 滤波前后的时域波形和频域特性由图 4 可以看出,带通滤波器 filt1 使输入信号 s 中频率为 15hz 的正弦波信号通过,而将频率为 5hz 和 30hz 的正弦波信号大大衰减。6 结束语本文通过一个设计实例,介绍了利用 MATLAB 实现 FIR 滤波器设计与滤波的三种方法,从仿真结果可以看出它们均可以达到技术指标要求,而且方法简单、快捷,大大减轻了工作量。滤波器的设计工作完成后,可以借助于 MATLAB 的 export 操作导出所设计滤波器的系统函数 H(z)。由于 MATLAB 具有强大的接口功能,仿真后的结果可以很方便的移植到 DSP、CPLD 或 FPGA 等器件中。在实际应用中 ,只需按要求修改滤波器参数 ,并对程序作较少的改动,即可实现不同截止频率的 FIR 滤波器,实用性较强。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报