MATLAB课程设计报告 基于MATLAB GUI 的滤波器设计软件
基于matlabgui课程设计

基于matlabgui课程设计一、课程目标知识目标:1. 学生能理解MATLAB GUI设计的基本原理,掌握相关函数和编程技巧。
2. 学生能运用MATLAB GUI设计出符合课程要求的数据处理和分析界面。
3. 学生了解MATLAB在工程领域的应用,以及GUI在数据可视化、交互式操作等方面的优势。
技能目标:1. 学生能独立完成MATLAB GUI界面的设计和编程,实现数据处理、图像显示等功能。
2. 学生能通过MATLAB GUI设计,实现与用户的有效交互,提高数据处理和分析的效率。
3. 学生具备解决实际问题时,运用MATLAB GUI进行数据分析和处理的能力。
情感态度价值观目标:1. 培养学生主动探究、勇于创新的科学精神,激发学生对编程和工程领域的兴趣。
2. 培养学生团队协作、共同解决问题的能力,提高沟通与表达的自信心。
3. 增强学生对我国科技发展的自豪感,认识到科技对国家和社会发展的贡献。
课程性质:本课程为选修课,以实践为主,结合理论教学,培养学生的动手能力和实际应用能力。
学生特点:学生具备一定的MATLAB基础,对编程和工程领域有一定兴趣,喜欢探索新知识。
教学要求:结合课本内容,注重实践操作,引导学生主动探究,关注学生的个体差异,提高教学效果。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程教学内容主要包括以下几部分:1. MATLAB GUI设计原理:介绍MATLAB GUI设计的基本概念、组成元素和设计流程,使学生了解GUI设计的基本框架。
2. MATLAB GUI编程基础:讲解MATLAB GUI编程的相关函数和语法,包括 GUIDE 工具的使用,使学生掌握GUI编程的基本技巧。
3. 数据处理与分析界面设计:结合课本内容,教授如何使用MATLAB GUI设计数据处理和分析界面,涵盖数据输入、处理、显示和保存等功能。
4. 实践项目:安排多个实践项目,让学生动手设计和实现不同的数据处理和分析界面,提高学生的实际操作能力。
基于Matlab GUI的数字滤波器设计

基于Matlab GUI的数字滤波器设计【摘要】基于数字信号处理原理,在分析数字滤波器设计理论和Matlab编程技术及其GUI图形用户界面设计的基础上,开发了具有交互式特点的数字滤波器软件,界面操作简单方便,可以根据需要选择滤波器类型,输入相关参数,然后选择相应的功能按钮,就可以得到滤波器的特性参数,并进行滤波器的性能分析,打破了以往滤波器设计过程中大量繁琐的数值计算问题,为数字滤波器的设计和应用提供了一个有效的辅助工具。
【关键词】FIR;IIR;GUI数字滤波器常通过一定的运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分来实现滤波,在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工程实际应用中都很广泛。
根据其冲击响应函数的时域特性可将数字滤波器分为FIR(有限长冲激响应)和IIR(无限长冲激响应)。
然而,在传统数字滤波器的设计过程中需要大量繁琐的数值计算,如果手工计算则费时费力。
目前,数字滤波器的设计常借助计算机,利用Matlab 软件来实现。
本文就GUI这一图形界面编写功能,设计并构建了人机交互式的数字滤波器。
1.数字滤波器的设计思路及结构数字滤波器的设计包括IIR滤波器和FIR滤波器,IIR滤波器包括巴特沃斯(Butterworth)、切比雪夫(ChebyshevⅠ)滤波器、切比雪夫Ⅱ(ChebyshevⅡ)滤波器、椭圆(Ellipse)滤波器。
FIR滤波器包括Boxar、Bartlett、Blackman、Hanning、Hamming、Kaiser滤波器。
IIR的设计思想:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。
设计步骤如下:(1)根据设计指标,设计最小阶数N和频率参数Wn。
可供选用的阶数选择函数有:buttord,cheblord,cheb2ord,ellipord等。
基于MATLABGUI的滤波器设计软件

基于MATLABGUI的滤波器设计软件引言:滤波器是数字信号处理领域中很重要的一部分,用于对信号进行去噪、信号增强、频域变换等操作。
而滤波器设计的过程中需要进行参数调节、滤波器响应曲线的查看等操作,通过编写MATLABGUI的滤波器设计软件可以简化这一过程,提高滤波器设计的效率。
一、软件的基本功能1.滤波器类型选择功能在软件的界面上,可以选择滤波器的类型,例如低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。
2.滤波器参数设置功能根据选择的滤波器类型,用户可以设置滤波器的参数。
例如,对于低通滤波器,可以设置截止频率;对于带通滤波器,可以设置通带和阻带的上下限等。
3.滤波器响应曲线展示功能软件还可以实时展示滤波器的频率响应或时域响应曲线。
用户可以通过滑动条等方式改变滤波器参数,实时查看响应曲线的变化,从而方便地进行调试和优化。
4.滤波器输出功能用户设计好滤波器后,软件可以将滤波器的参数输出为MATLAB代码或数据文件,方便用户在其他地方再次使用或进行二次开发。
二、软件的实现思路1.MATLABGUI界面设计通过MATLAB的GUI设计工具,创建软件的用户界面。
界面应该包括滤波器类型选择框、参数输入框、响应曲线图像和参数输出按钮等元素。
2.滤波器设计算法选择适合的滤波器设计算法,并将其实现为MATLAB函数。
例如,可以使用脉冲响应法、窗函数法等经典的滤波器设计算法。
3.界面与算法的交互根据用户在界面上的选择和输入,调用对应的滤波器设计算法进行滤波器设计。
设计完成后,将滤波器的响应曲线显示在界面上。
4.参数输出功能根据用户点击参数输出按钮的操作,将滤波器的参数输出为MATLAB代码或数据文件。
三、软件的优点1.操作方便:通过图形界面操作,减少了用户对MATLAB命令的使用,方便非专业用户进行滤波器设计。
2.实时展示:滤波器的响应曲线实时展示在界面上,用户可以直观地了解滤波器的性能,从而进行参数调节和优化。
实验报告基于MATLAB的数字滤波器设计

实验7\8基于MATLAB勺数字滤波器设计实验目的:加深对数字滤波器的常用指标和设计过程的理解。
实验原理:低通滤波器的常用指标:1 一6P 兰G(e^) ≤ 1 + 6P , for 国≤ ωPG(J") ≤ 6s, for 国s ≤ ⑷≤ ∏通带边缘频率:'P ,阻带边缘频率:'s,通带起伏:J P,通带峰值起伏:C(P= —20 IOg io (^-OP )【d B 】阻带起伏.冠SPaSSband StOPbandTran Siti onband Fig 7.1 TyPiCaI magn itude SPeCifiCati On for a digital LPF:S = -20 log ιo(r)[dB 】O数字滤波器有IIR和FlR两种类型,它们的特点和设计方法不同。
在MATLAB^,可以用[b , a]=butter ( N,Wr)等函数辅助设计IIR数字滤波器,也可以用b=fir1(N,Wn, 'type ')等函数辅助设计FIR数字滤波器。
实验内容:利用MATLAB编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:∙∙P1=0.45^,∙∙ P2=0∙65 二,通带峰值起伏:[dB】O阻带边缘频率:'s10.3…,'s2 0.75…,最小阻带衰减:-S 4°[dB] O分别用IIR和FlR两种数字滤波器类型进行设计。
实验要求:给出IIR数字滤波器参数和FIR数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
实验内容:IRR代码:wp=[0.45*pi,0.65*pi];ws=[0.3*pi,0.75*pi];Ap=1;A S=40;[N,Wc]=buttord(wp∕pi,ws∕pi,Ap,As);[b,a]=butter(N,Wc)%[b,a] = butter( n, Wn,'ftype')最小阻带衰减:I -W llrreqz(b-a=SUbP-Of(211=FnagHabS(H)-P-Of(WHLmag)-x ωb e 一(->5(W))y ωb e一(-≡M 一 HamW)口≡e (--R 一 HamW)一) grid On-SUbPOf(212=PhaSeHang-e(H=P -OfWPLPhaSe=x ωb e 一(->5(W))y ωb e -(- W⅛) ≡e (-一R盘a ≡m sB )≡-x ⅛x -幅度IHaOMI≡相拉SS 5 CUS S S 0⅛口 g >酉tt 2 =R ⅛⅛⅛J ≡B ⅛O S F NJ £Q 4S S U7 CJCD S >⅛⅛≡F-RV VWPl HO∙4*prWP2H0∙6*prV V WSl H 0∙3*prws2 H0∙7*prVV =Γl w i d f h Hmin((wprwsu(ws2lwp2))>> tr_width =0.3142>> M = ceil(6.2*pi/tr_width) + 1>> M = 63>> n=[0:1:M-1];>> wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; >> wc=[wc1/pi,wc2/pi];>> window= hanning(M);>> [h1,w]=freqz(window,1);>> figure(1);>> subplot(2,1,1)>> stem(window);>> axis([0 60 0 1.2]);>> grid;>> xlabel('n');>> title('Hanning 窗函数');>> subplot(2,1,2)>> plot(w/pi,20*log(abs(h1)/abs(h1(1)))); >> axis([0 1 -350 0]);>> grid;>> xlabel('w/\pi');>> ylabel('幅度(dB)');>> title('Hanning 窗函数的频谱');>> hn = fir1(M-1,wc, hanning (M));>> [h2,w]=freqz(hn,1,512);>> figure(2);>> subplot(2,1,1)>> stem(n,hn);>> axis([0 60 -0.25 0.25]);>> grid;>> xlabel('n');>> ylabel('h(n)');>> title('Hanning 窗函数的单位脉冲响应'); >> subplot(2,1,2)>> plot(w/pi,20*log(abs(h2)/abs(h2(1)))); >> grid;>> xlabel('w/\pi');>> ylabel(' 幅度(dB)');>> figure(3);>> phase=angle(h1);>> plot(phase);>> axis([1 pi -1 0]);>> xlabel('w/\pi');>> ylabel(' 线性相位');>> title('Hanning 窗函数相位特性曲线')回FiIe Edit VieW InSert TOOlS DeSktOP WindOW HeIP◎ A 聾紳⑥毘謠▼层□ Ξ∣ ■ 0M FigUre 1 Hanning 窗函数OC S I I * iHanning®函数的频谱-100-200 -300 00.1 0.2 0.3 0.40.5 0.6 0.7 08 0.9 1w/x(8P)置Q FigUre 2 口 回 耳iHanni叩窗函数相位特性曲线O I I I I I I I。
基于Matlab GUI的数字滤波器设计

军一
; f 竺 H ! H
王 …
j
_ . L ! 』-
一ห้องสมุดไป่ตู้
岫 一 图1系统硬件组 成框 图
2 . 1核心器件 的选用 埘 与介 绍 本系统核心器件 主要 是控 制器与无线收发 态反转 器 件 ,控制器选 用台湾宏 晶科技 的S T C 1 5 W 4 0 4 S 3 . 1遥控器部分软件设计
本 系统 软件 主要分为两部分 :第一部 分, 遥控器 键盘扫描 ,将得 到的编码通过无线 模块 电 I H一 月 一f 发送 出去;第二部分 ,接 收开关板检测无 线模 — 接 、 部 腿 如 储的编码 比对 ,如果 块接 收的数据 ,与 自身存 自身存储 编码一致则将开 关状 ¨ 一 接 收到的编码与 收 比分 伽图
图3接收控制板软件工作流程图
无 线接 收 函数 的功 能是将 编 码信 息通过 . n R F 2 4 L O 1 无 线收发模块接收进来 ,具体接收 函 单 片机 ,无线收 发器件选用n R F 2 4 L 0 1 无线收发 遥 控器 部 分软 件任 务为 矩 阵键 盘 扫描 和 数如下: t i ns ig ne d ch ar nRF 24L O1 Rx Pac ket 模 块。 数据无 线发送 。单片机循 环扫描键盘 ,一旦键 S T C I 5 W 4 0 4 S 是宏 晶科 技作 为8 9 系列 盘有键 按下则将按键对应 u n s i g n e d c h a r *r x b u f ) M 替代 眦. , 敝 的编码通过无 线收发 ( 产 品推 出的一款 新型超低价 、宽电压、超低功 模 块发送 出去 。遥 控器 软件 工作流程 如 图2 所 { 耗 、高速高 可靠 、超强抗干扰 的增 强型I T 8 0 5 1 示。 u n s i g n e d c h a r r e v al e = O:
基于Matlab-GUI的EMI滤波器设计

e q ui pme n t s. A ne w k i n d o f EM I f il t e r d e s i g n me t h o d.wh i c h a d o p t e d M a t l a b— GUI .I t ’ s a s i mpl e a l go r i t h m wi t h r e a l - t i me r e s po n s e .Th i s d e t e c t i o n me t ho d wa s it f f o r t h e s i ng l e — ph a s e a n d t h r e e— p ha s e d i f f e r e nt t o po l o g y il f t e r s .Th e il f e r wa s d e s i g n e d a c c o r d i n g t o s i mul a t i o n r e s u l t wh i c h c o mp a r e t he
的滤波器和加 入滤 波器 前后 的输入 电流干 扰进行 对 比,结果 表 明:采用 此设 计方 法是 切 实可行 的 。
பைடு நூலகம்
关键词 :E MI 滤波器 ; 电磁 兼容;共模 干扰 ;差模 干扰; 仿真
EM I Fi l t e r De s i g n Ba s e o n Ma t l a b- GUI
电子工业技术 的飞速发展 , 带动 了一系列新兴学
的状 况, 而且能把设计人 员从繁 重的计算工作 中解脱
出来,通过仿真就可 以了解 滤波 器各项性能指标 ,因
科 , 电磁 兼容 也成为 新秀 并不 断发展和 壮大 。经过 l 0 年发展 ,尤其 随着 变频器 以及 高频脉 宽调制等变 流技 术在 各种 电源设备 、 传动 设备等的广泛使用 , 其 工作频 率的不断提 高, 形成 设备间互相干扰 , 情况 日 益严重 , 电磁 兼容性 问题 已成 为电路设计工程师面 临 的极 为棘手 问题n J 。目前加装 电源 滤波器成 了解决传 导和辐射 的有效手段 , 并在 电子 设备的 电源输入 中广 泛应 用 。 但 是怎么选择一个现有 的滤波器或者设计一
基于MATLABGUI图像滤波器设计要点计划

课程设计报告题目:图像滤波器的设计学生姓名:刘瑞学生学号:1114030118系别:电气信息工程学院专业:通讯工程届别:15届指导教师:陈帅电气信息工程学院制2021年6月图像滤波器的设计学生:刘瑞指导教师:陈帅电气信息工程学院通讯工程专业目的与要求目的:利用MATLAB的GUI程序设计一个简单适用的图像办理程序。
该程序具备中所述的图像办理功能,以知足本次设计要求。
要求:设计一个MATLAB图形界面,能够选择输入图像文件,对图形文件进行多种加噪声,设计滤波器进行滤波办理,并显示结果。
方案拟订设计原理:本设计利用MATLAB软件设计图像界面以实现相应功能,图像界面,简称GUI,是一种供给人机交互的工具和方法。
MATLAB的GUI为开发者供给了一个不离开MATLAB的开发环境,有助于MATLAB 程序的GUI集成。
在MATLAB中的GUIDE就是图像用户界面开发环境,它向用户供给了一系列的创办用户图像界面的工具。
这大大简化了GUI设计和生成的过程1。
功能剖析设计要求该图形界面能够选择输入图像文件,可使用GUI中的“PushButton〞按键或是经过工具条中的“MenuEditor〞设计相应功能。
本次设计采纳后者实现。
在知足根本要求下,增添“保留图像〞和“退出〞两项菜单功能1。
经过三种噪声〔椒盐、高斯、乘性〕和两种滤波器〔高通、低通〕对图像进行加噪声和滤波办理。
噪声是不行展望的,只好用概率方法来认识的随机偏差。
三种噪声特征见小节。
低通滤波器的功能是让低频次经过而滤掉高频,其作用是过滤包括在高频中的噪声。
因此低通滤波器的成效是图像去噪声光滑加强,但同时也克制图像的界限,造成图像模糊。
关于大小M*N的图像,频次点为〔u,v〕与频域中心距离为D〔u,v〕,那么D(u,v)[ (u M)2(v N)2]2〔1〕22高通滤波器是克制低频,让高频重量经过,其作用是使图像获得锐化办理,突出图像界限。
高通滤波器的产生公式为第1页0,D(u,v)D02H(u,v)=〔2〕1,D(u,v)D0设计两个显示图像的窗口,一个用于显示原始图像,另一个用于显示办理后的图像。
基于matlab的gui设计报告

基于matlab的gui设计报告当然,我很乐意帮助你完成这篇文章。
以下是按照你提供的格式完成的《基于Matlab的GUI设计报告》。
一、介绍1. 引言本报告将探讨基于Matlab的GUI设计,其中包括设计背景、目的和重要性。
2. Matlab简介在开始讨论GUI设计之前,先简要介绍一下Matlab。
Matlab是一种高级的计算机语言和环境,常用于数学计算、数据分析和可视化。
3. GUI设计概述介绍GUI(图形用户界面)设计的概念和重要性。
GUI设计可以提供用户友好的界面,使用户能够通过图形或图标与程序交互。
二、Matlab的GUI设计工具1. Guide工具Guide是Matlab的一个可视化工具,用于创建图形用户界面。
本节将介绍Guide 的基本功能和使用方法。
2. App Designer工具App Designer是Matlab新引入的GUI设计工具,相比Guide具有更强大的功能和更好的用户体验。
本节将介绍App Designer的特点和使用技巧。
3. Matlab的其他GUI工具除了Guide和App Designer,Matlab还提供了其他GUI设计工具,如uifigure 和uitab。
本节将概述这些工具的功能和用途。
三、GUI设计原则1. 界面布局和设计介绍如何合理安排界面布局,包括按钮、文本框、下拉菜单等组件的摆放位置和大小。
2. 用户交互探讨合理的用户交互方式,包括按钮点击、鼠标悬停等,以提供更好的用户体验和减少误操作。
3. 数据可视化介绍如何将计算结果以图表、图像等形式展示给用户,提高数据分析和可视化的效率。
四、案例分析1. GUI设计案例1:温度转换器以一个简单的温度转换器为例,展示如何使用Matlab的GUI设计工具创建一个实用的应用程序。
2. GUI设计案例2:图像处理工具以图像处理为应用场景,展示如何使用Matlab的GUI工具进行图像处理和显示。
3. GUI设计案例3:数据分析工具以数据分析为应用场景,展示如何使用Matlab的GUI工具进行数据可视化和分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB课程设计报告基于MATLAB GUI的“滤波器设计软件”设计摘要面对庞杂繁多的原始信号, 如何提取所需信号、抑制不需要的信号这就需要使用滤波器。
滤波器的作用主要是选择所需频带的信号内容而抑制不需要的其他频带的信号内容。
数字滤波器因其精度高、可靠性好、灵活性大等优点, 在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工程实际应用中都很广泛。
根据其冲击响应函数的时域特性可将数字滤波器分为IIR(有限长冲击响应)和FIR(无限长冲击响应)。
作为强大的计算软件, MATLAB 提供了编写图形用户界面的功能。
所谓图形用户界面, 简称为GUI, 是由各种图形对象, 如图形窗口菜单按钮、文本框等构建的用户界面。
MATALB 可以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。
MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。
而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。
关键词:MATLAB GUI IIR滤波器FIR滤波器目录1设计任务 (1)2 MATLAB GUI的简介 (2)3 滤波器设计原理 (3)3.1滤波器概述 (3)3.2 IIR数字滤波器 (4)3.2.1 IIR数字滤波器设计原理 (4)3.2.2 IIR滤波器设计思想 (5)3.2.3 IIR滤波器设计编程实现 (6)3.3 FIR数字滤波器 (8)3.3.1 FIR数字滤波器设计原理 (8)3.3.2 FIR滤波器设计思想 (9)4 基于Matlab GUI的数字滤波器设计思路及实现 (12)4. 1 GUI界面设计概述 (12)4.2 “滤波器设计软件”设计所实现任务 (14)4.3 基于Matlab GUI的数字滤波器设计实现 (16)4.3.1 “滤波器设计软件”GUI界面设计 (16)4.3.2 “滤波器设计软件”回调函数编写 (17)4.3.3AutoChoose.m程序的编写 (22)4.4 运行和结果显示 (28)5 设计总结和心得 (33)5.1 设计总结 (33)5.2 设计心得 (34)Abstract (35)参考文献 (36)附录1设计任务1 设计目的1.巩固所学习过的关于数字信号处理的滤波器的设计2.学习使用MATLAB GUI设计工具应用平面2 设计要求要求:“滤波器设计软件”设计1、要有人机交互界面。
2、滤波器设计的类型、参数均有多个值可供选择。
3、当用户选择(或输入)滤波器的参数时,能够及时显示设计好的滤波器的频谱。
4、该软件可设计FIR或IIR型滤波器至少一种。
2 MATLAB GUI的简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB 成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB 函数库中方便自己以后调用。
MATALB 可以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。
MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。
而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。
3 滤波器设计原理3.1滤波器概述随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。
数字信号处理在通信、语音、图像,自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理中,数字滤波器占有极其重要的地位。
现代数字滤波器可以用软件或设计专用的数字处理硬件两种方式来实现,用软件来实现数字滤波器优点是随着滤波器参数的改变,很容易改变滤波器的性能。
根据数字滤波器单脉冲响应的时域特性可将数字滤波器分为两种, 即IIR(Infinite Impulse Response)无限长脉冲响应数字滤波器和FIR(Finite Impulse Response)有限长脉冲响应数字滤波器。
从功能上分类, 可分为低通、高通、带通、带阻滤波器。
3.2 IIR 数字滤波器3.2.1 IIR 数字滤波器设计原理滤波器的设计质上是寻找一个既能物理实现,又能满足给定频率特性指标要求的系统传输函数。
IIR 滤波器一般采用递归型的结构,系统的输入与输出服从N 阶差分方程:相应的传输函数为:设计IIR 数字滤波器就是要确定传输函数中的系数j a 、i b 或零极点增益i c 、j d 、A ,使滤波器的频率特性满足给定的性能指标要求。
设计原理主要包括两个方面:一是根据设计指标,先设计出相应的模拟滤波器再通过脉冲响应不变法或双线性变换法转换成对应的数字滤波器;二是选择一种优准则,如最小均方准则,再在 , 先最误差此准则下求出滤波器传输函数的系数。
根据设计理论,在MATLAB 环境下设计IIR 数字滤波器主要有四种方法:一是典型设计法;二是完全设计法;三是最优设计法;四是工具设计法。
由于完全设计法程序简单,我们在这里利用完全设计法设计滤波器。
3.2.2 IIR滤波器设计思想IIR滤波器设计思想是:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。
常用的模拟滤波器有巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev) 滤波器、椭圆(Ellipse)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器各有特点,供不同设计要求选用。
滤波器的模拟数字变换,通常是复变函数的映射变换,也必须满足一定的要求由于数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标进行归一化处理,设采样频率为Fs,归一化频率的计算公式是:利用完全设计法设计数字滤波器的步骤:(1)将设计指标归一化处理。
(2)根据归一化频率,确定最小阶数N 和频率参数Wn。
可供选用的阶数选择函数有:buttord,cheblord,cheb2ord,ellipord 等。
(3)运用最小阶数N 设计模拟低通滤波器原型。
根据最小阶数直接设计模拟低通滤波器原型,用到的函数有:butter, chebyl,cheby2, ellip 和bessel。
如[B,A] = butter(N,Wn,'type') 设计'type'型巴特沃斯(Butterworth)滤波器filter。
N为滤波器阶数,Wc为截止频率,type决定滤波器类型,type= high,设计高通IIR滤波器,ftype= stop,设计带阻IIR滤波器。
(4)再用freqz 函数验证设计结果。
3.2.3 IIR滤波器设计编程实现例如选择设计IIR的Butterworth低通滤波器,其Fs=22050Hz,Fp1=3400Hz,Fs1=5000Hz,Rp=2dB,Rs=20dB程序和效果图(图2)如下:Fs=22050;Fp1=3400;Fs1=5000;Rp=3;Rs=20;%设计指标wp1=2*Fp1 /Fs;ws1=2*Fs1 /Fs;%求归一化频率% 确定butterworth 的最小阶数N 和频率参数Wn[n,Wn]=buttord(wp1,ws1,Rp,Rs);[B,A] = butter(N,Wn);%确定传递函数的分子、分母系数[h,f]=freqz(b,a,Nn,Fs_value);%生成频率响应参数plot(f,20*log(abs(h))) %画幅频响应图plot(f,angle(h)); %画相频响应图%[N, Wn] = buttord(Wp, Ws, Rp, Rs) 确定butterworth 的N 和Wn%[N, Wn] = cheblord ( (Wp, Ws, Rp, Rs) 确定Chebyshev滤波器的N 和Wn%[N, Wn] = cheb2ord (Wp, Ws, Rp, Rs) 确定Chebyshev2滤波器的N 和Wn%[N, Wn] = ellipord (Wp, Ws, Rp, Rs)确定椭圆(Ellipse) 滤波器的N 和Wn%[B,A] = butter(N,Wn,'type') 设计'type'型巴特沃斯(Butterworth)滤波器filter.%[B,A] = cheby1 (N,R,Wn, 'type') 设计'type'型切比雪夫Ⅰ滤波器filter.%[B,A] = cheby2(N,R,Wn, 'type') 设计'type'型切比雪夫Ⅱ滤波器filter.%[B,A] = ellip(N,Rp,Rs,Wn, 'type') 设计'type' 型椭圆filter.图 2 Butterworth低通滤波器3.3 FIR数字滤波器3.3.1 FIR数字滤波器设计原理根据数字滤波器冲激响应的时域特征,可将数字滤波器分为2种,即无限长冲激响应滤波器( IIR DF)和有限长冲激响应滤波器( F IR DF) 。
F IR DF具有突出的优点:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器。
因此F IR DF在数字信号处理中得到广泛的应用。
但与IIR DF相比,在满足同样的阻带衰减的情况下需要较高的阶数。
滤波器阶数越高将占用更多的DSP运算时间。
因此,对F IR DF的设计目标是在满足指标要求的情况下尽量减少滤波器的阶数。