实验4 基于MATLAB的FIR数字滤波器设计
实验四 参考 基于MATLAB的FIR数字滤波器设计
实验4 基于MATLAB 的FIR 数字滤波器设计一、 实验目的(1) 加深对数字滤波器的常用指标理解。
(2) 学习数字滤波器的设计方法。
二、 实验原理 低通滤波器1()1()P P P SS H H δδδπ⎧-≤Ω≤+Ω≤Ω⎪⎨Ω≤Ω≤Ω≤⎪⎩低通滤波器的常用指标:1、 通带边缘频率P Ω,2、 阻带边缘频率SΩ ,3、 通带起伏P δ,4、通带峰值起伏])[1(log2010dB p pδα--=,5、阻带起伏sδ,最小阻带衰减])[(log 2010dB s S δα-=。
三、 要求 (1)在MA TLAB 中,熟悉函数fir1、kaiserord 、remezord 、remez 的使用;B = fir1(n,Wn,'high','noscale')设计滤波器;[n,Wn,beta,ftype] = kaiserord(f,a,dev)估计滤波器阶数;[n,fo,ao,w] = remezord (f,a,dev ,fs)计算等波纹滤波器阶数n 和加权函数w(ω); B=remez(n,f,a)进行等波纹滤波器的设计(2)阅读附录中的实例,学习FIR 滤波器的设计方法及其在MA TLAB 中的实现;(3)给出FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
四、 实验内容利用MA TLAB 编程,分别用窗函数法和等波纹滤波器法设计两种FIR 数字滤波器,指标要求如下:通带边缘频率:π45.01=ΩP ,π65.02=ΩP ,通带峰值起伏:][1dB p≤α。
阻带边缘频率:π3.01=ΩS ,π75.02=ΩS ,最小阻带衰减:][40dB S ≥α。
附录:例1 用凯塞窗设计一FIR 低通滤波器,通带边界频率π3.0=Ωp ,阻带边界频率π5.0=Ωs ,阻带衰减 不小于50dB 。
S Ω-PΩ-P SΩPassband StopbandTransitionbandFig 1 Typical magnitudespecification for a digital LPF解首先由过渡带宽和阻带衰减来决定凯塞窗的N和π2.0=Ω-Ω=∆Ωps,,上图给出了以上设计的频率特性,(a) 为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。
基于matlab的fir数字滤波器的设计
一、引言数字滤波器是数字信号处理中至关重要的组成部分,它能够对数字信号进行滤波处理,去除噪音和干扰,提取信号中的有效信息。
其中,fir数字滤波器作为一种常见的数字滤波器类型,具有稳定性强、相位响应线性等特点,在数字信号处理领域得到了广泛的应用。
本文将基于matlab软件,探讨fir数字滤波器的设计原理、方法和实现过程,以期能够全面、系统地了解fir数字滤波器的设计流程。
二、fir数字滤波器的基本原理fir数字滤波器是一种有限长冲激响应(finite impulse response, FIR)的数字滤波器,其基本原理是利用线性相位特性的滤波器来实现对数字信号的筛选和处理。
fir数字滤波器的表达式为:$$y(n) = \sum_{k=0}^{M}h(k)x(n-k)$$其中,y(n)为输出信号,x(n)为输入信号,h(k)为滤波器的系数,M为滤波器的长度。
fir数字滤波器的频率响应特性由其系数h(k)决定,通过设计合适的系数,可以实现对不同频率成分的滤波效果。
三、fir数字滤波器的设计方法fir数字滤波器的设计方法主要包括窗函数法、频率抽样法、最小最大法等。
在matlab中,可以通过信号处理工具箱提供的fir1函数和firls函数等来实现fir数字滤波器的设计。
下面将分别介绍这两种设计方法的基本原理及实现步骤。
1. 窗函数法窗函数法是fir数字滤波器设计中最为常见的方法之一,其基本原理是通过对理想滤波器的频率响应进行窗函数加权来满足设计要求。
在matlab中,可以使用fir1函数实现fir数字滤波器的设计,其调用格式为:h = fir1(N, Wn, type)其中,N为滤波器的阶数,Wn为滤波器的截止频率,type为窗函数的类型。
通过调用fir1函数,可以灵活地设计出满足特定要求的fir数字滤波器。
2. 频率抽样法频率抽样法是fir数字滤波器设计中的另一种重要方法,其基本原理是在频域上对理想滤波器的频率响应进行抽样,并拟合出一个最优的滤波器。
基于Matlab的FIR数字滤波器设计
龙源期刊网
基于Matlab的FIR数字滤波器设计
作者:王春兴张彬
来源:《现代电子技术》2011年第18期
摘要:提出FIR数字滤波器的设计方案,并基于Matlab实现滤波仿真。
通过使用Matlab 信号处理工具箱提供的函数,选择适当的窗函数编写程序,其中窗函数按照实际信号的处理需求,参数折中选择。
实验获得了比较理想的滤波器特性,可以实现较好的滤波作用。
而且在实际应用中只需按需求修改滤波器参数,并结合程序的相应改动,即可实现不同功能的滤波器。
另外,介绍了利用FDATool设计滤波器的方法,简单修改参数即可实现多种滤波器。
基于MATLAB设计FIR滤波器
基于MATLAB设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种数字滤波器,它具有有限的冲激响应长度。
基于MATLAB设计FIR滤波器可以使用signal工具箱中的fir1函数。
fir1函数的语法如下:b = fir1(N, Wn, window)其中,N是滤波器的阶数,Wn是截止频率,window是窗函数。
要设计一个FIR低通滤波器,可以按照以下步骤进行:步骤1:确定滤波器的阶数。
阶数决定了滤波器的截止频率的陡峭程度。
一般情况下,阶数越高,滤波器的陡峭度越高,但计算复杂度也会增加。
步骤2:确定滤波器的截止频率。
截止频率是指在滤波器中将信号的频率限制在一定范围内的频率。
根据应用的需求,可以选择适当的截止频率。
步骤3:选择窗函数。
窗函数是为了在时域上窗口函数中心增加频率衰减因子而使用的函数。
常用的窗函数有Hamming、Hanning等。
窗函数可以用来控制滤波器的幅度响应特性,使得它更平滑。
步骤4:使用fir1函数设计滤波器。
根据以上步骤确定滤波器的阶数、截止频率和窗函数,可以使用fir1函数设计FIR滤波器。
具体代码如下:N=50;%设定阶数Wn=0.5;%设定截止频率window = hanning(N + 1); % 使用Hanning窗函数步骤5:使用filter函数对信号进行滤波。
设计好FIR滤波器后,可以使用filter函数对信号进行滤波。
具体代码如下:filtered_signal = filter(b, 1, input_signal);其中,input_signal是输入信号,filtered_signal是滤波后的信号。
以上,便是基于MATLAB设计FIR滤波器的简要步骤和代码示例。
根据具体需求和信号特性,可以进行相应的调整和优化。
基于MATLAB与DSP的FIR数字滤波器的设计
1 引言
个实际的应用 系统 中,由于设备或 者 是外界环境 的原 因,总存在各种 干扰 ,
h, j ;t ( d) 1 fd (= 7
 ̄
P
=
h nl \ 去 ” : f ( £ — T 2 , )
DPMTA I糯滤波器 s;A LBF
由于 h () 是无限长序列 , n 且是非因果
的 。要得到有限长 的 h n ,需要用一个有 ()
4 F 数字滤波器的 D P I R S 设计
应滤波器( R) I 滤波器是有限长单位 I 。FR I 冲激响应滤波器,在结构上是非递归型的, 有限冲激响应滤波器(I ,具有以下的优 FR) 点 :( )可以在幅度特性随意设计的同时 , 1 保证精确 、 严格的线性相位,() 2 由于 FR I
[ y,f ,n is s b t 】= wa r a (十. ved ‘ wa ’ v) %WA V文档的读取 wa wrt ( v ie Y,f ,nb t ‘ s is, 十. wa ’ v) %WAV文档的写入 wa p a ( v l Y Y,f )%W AV 文档的 s 播放 su d) o n s( o n (、su dc)也是 WAV文档
此 类 文 件 ,具 体 格 式 如 下 :
2 F 滤波器的设计方法分析 I R
数字滤波 器依据冲激响应的宽度划分 为有限冲激响应 (I 滤波器和无限冲激响 F R)
公司 ( )生产的第三代 D P 产品 ,本 TI S
基于MATLAB的FIR和IIR数字滤波器的设计
基于MATLAB的FIR和IIR数字滤波器的设计一、本文概述随着数字信号处理技术的飞速发展,数字滤波器作为其中的核心组件,已经广泛应用于通信、音频处理、图像处理、生物医学工程等诸多领域。
在数字滤波器中,有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器是最常见的两种类型。
它们各自具有独特的优点和适用场景,因此,对这两种滤波器的深入理解和设计掌握是工程师和研究人员必备的技能。
本文旨在通过MATLAB这一强大的工程计算工具,详细介绍FIR 和IIR数字滤波器的设计原理、实现方法以及对比分析。
我们将简要回顾数字滤波器的基本概念和分类,然后重点阐述FIR和IIR滤波器的设计理论,包括窗函数法、频率采样法、最小均方误差法等多种设计方法。
接下来,我们将通过MATLAB编程实现这些设计方法,并展示如何根据实际应用需求调整滤波器参数以达到最佳性能。
本文还将对FIR和IIR滤波器进行性能对比,分析它们在不同应用场景下的优缺点,并提供一些实用的设计建议。
我们将通过几个典型的应用案例,展示如何在MATLAB中灵活应用FIR和IIR滤波器解决实际问题。
通过阅读本文,读者将能够深入理解FIR和IIR数字滤波器的设计原理和实现方法,掌握MATLAB在数字滤波器设计中的应用技巧,为未来的工程实践和研究工作打下坚实的基础。
二、FIR滤波器设计有限脉冲响应(FIR)滤波器是一种数字滤波器,其特点是其脉冲响应在有限的时间后为零。
因此,FIR滤波器是非递归的,没有反馈路径,从而保证了系统的稳定性。
在设计FIR滤波器时,我们主要关注的是滤波器的阶数、截止频率和窗函数的选择。
在MATLAB中,有多种方法可以用来设计FIR滤波器。
其中,最常用的方法是使用fir1函数,该函数可以设计一个线性相位FIR滤波器。
该函数的基本语法是b = fir1(n, Wn),其中n是滤波器的阶数,Wn是归一化截止频率,以π为单位。
该函数返回一个长度为n+1的滤波器系数向量b。
用MAtlab实现FIR数字滤波器的设计
设计方法
• 一、窗函数设计法 • 二、频率抽样设计法 • 三、最小二乘逼近设计法
FIR 数 字 滤 波 器 的 文 件
一、fir1.m
• 本文件采用窗函数法设计FIR数字滤波器,其调用格式是
• 1)b=fir1(N ,W c)
• 2)b=fir1(N,W c ,’high’) • 3)b=fir1(N,W c ,’stop’)
实践课题
FIR 数 字 滤 波 器 的 设 计
实践目的
通过实践加深对Matlab软件的认识。 能熟练应用并基本掌握Matlab软件, 通过实践对课本以外的内容有初步的 了解。 通过设计FIR数字滤波器,对滤波器 的功能和原理有初步的认识和了解。
实践课题简介
在数字信号处理的许多领域中, 如图像处理、数字通信等领域,常 常要求滤波器具有线性相位。FIR数 字滤波器的最大优点就是容易设计 成线性相位特性,而且它的单位冲 激响应是有限长的,所以它永远是 稳定的。
•
Hale Waihona Puke 上式中N为滤波器的阶次,W c是通带截止频率,其值在0~1之间, 1对应采样频率的一半,b是设计好的滤波器系数(单位冲激响应序 列)其长度为N+1。
对于格式(1)若W c是一标量,则可用来设计低通滤波器;若W c 是 的向量,则用来设计带通滤波器。 格式(2)用来设计高通滤波器。 格式(3)用来设计带阻滤波器。
部分滤波器的例子(频率抽样法)
部分滤波器的例子(最小二乘逼近设计法)
Fircls1设计的低通滤波器,归一化截止频率 为0.3,通带波纹为0.02,阻带波纹为0.008。
实践总结
通过这次实践课题的设计与制作,使我 对Matlab这个软件有了进一步的了解,并且 加深了课本上的知识。与此同时,使我对 滤波器有了初步的认识。提高了我的理解 以及分析能力,理论和实践相结合,不仅 巩固了我的理论知识,同时更提高了我的 实践能力,使我受益匪浅。
基于MATLAB的FIR数字低通滤波器设计综述
陕西理工学院课程设计基于MATLAB的FIR数字低通滤波器设计作者:周龙刚(陕西理工学院物理与电信工程学院通信工程专业 2011级4班,陕西汉中 723003)指导老师:井敏英[摘要]FIR数字滤波器是数字信号处理的一个重要组成部分,由于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。
本文介绍了FIR数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。
在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1实现窗函数法中的哈明窗设计FIR低通滤波器。
[关键词]FIR数字滤波器;线性相位窗函数;法哈明窗;MatlabDesigning FIR low-pass digital filter based on VHDLZhoulonggang(Grade11,Class4,Major of Communication Engineering,School of Physics and Telecommunication Engineering , Shaanxi University of Technology,Hanzhong 723003,Shaanxi)Tutor:JingYingMinAbstract:FIR digital filter is an important part of digital signal processing,the FIR digitalfilter with linear phase, so it has been widely applied in the collection and processing of information in the course of. This paper introduces the concept of FIR digital filter with linear phase conditions, analysis of the window functionmethod and frequency sampling method and the ripple approximation method ofFIR filter design ideas and processes. Based on analyzing the principle of three kinds of design method, using Matlab simulation software fir1 toolbox in design and implementation of FIR Hamming window window function method in the low pass filter.Keywords:FIR digital filter, linear phase,the window function method,Hamming window,Matlab目录引言 (1)1. 基本原理 ............................................................................................................................................... - 1 -1.1 FIR数字滤波器概述 ................................................................................................................... - 1 -1.2 FIR数字滤波器线性相位定义 ................................................................................................... - 2 -1.3 FIR数字滤波器线性相位时域条件 ........................................................................................... - 2 -2. 系统设计 ............................................................................................................................................... - 3 -2.1 FIR数字滤波器的窗函数设计方法 ........................................................................................... - 3 -2.1.1 窗函数法的设计思路....................................................................................................... - 3 -2.1.2 常见窗函数介绍............................................................................................................... - 3 -2.1.3 吉布斯效应....................................................................................................................... - 5 -2.2 FIR数字滤波器频率采样设计法 ............................................................................................ - 5 -2.3 FIR数字滤波器等波纹逼近设计法 ........................................................................................... - 6 -3 详细设计 ................................................................................................................................................ - 7 -3.1 程序设计流程.............................................................................................................................. - 7 -3.2 Matlab简介 .................................................................................................................................. - 7 -3.3窗函数法的Matlab实现 ............................................................................................................. - 8 -3.3.1 fir1函数介绍..................................................................................................................... - 8 -3.3.2基于fir1函数的窗函数法FIR滤波器设计.................................................................... - 8 -4 总结 .................................................................................................................................................. - 11 - 致谢 ...................................................................................................................................................... - 11 - 参考文献 .................................................................................................................................................. - 11 - 附录A . (14)引言随着信息科学和计算机技术的不断发展,数字信号处理(DSP ,Digital Signal Processing)的理论和技术也得到了飞速的发展,并逐渐成为一门重要的学科,它的重要性在日常通信、图像处理、遥感、声纳、生物医学、地震、消费电子、国防军事、医疗方面等显得尤为突出。
FIR数字滤波器设计实验_完整版
FIR数字滤波器设计实验_完整版本实验旨在设计一种FIR数字滤波器,以滤除信号中的特定频率成分。
下面是完整的实验步骤:材料:-MATLAB或其他支持数字信号处理的软件-计算机-采集到的信号数据实验步骤:1.收集或生成需要滤波的信号数据。
可以使用外部传感器采集数据,或者在MATLAB中生成一个示波器信号。
2. 在MATLAB中打开一个新的脚本文件,并导入信号数据。
如果你是使用外部传感器采集数据,请将数据以.mat文件的形式保存,并将其导入到MATLAB中。
3.对信号进行预处理。
根据需要,你可以对信号进行滤波、降噪或其他预处理操作。
这可以确保信号数据在输入FIR滤波器之前处于最佳状态。
4.确定滤波器的设计规范。
根据信号的特性和要滤除的频率成分,确定FIR滤波器的设计规范,包括滤波器的阶数、截止频率等。
你可以使用MATLAB中的函数来帮助你计算滤波器参数。
5. 设计FIR滤波器。
使用MATLAB中的fir1函数或其他与你所使用的软件相对应的函数来设计满足你的规范条件的FIR滤波器。
你可以选择不同的窗函数(如矩形窗、汉宁窗等)来平衡滤波器的频域和时域性能。
6. 对信号进行滤波。
将设计好的FIR滤波器应用到信号上,以滤除特定的频率成分。
你可以使用MATLAB中的conv函数或其他相应函数来实现滤波操作。
7.分析滤波效果。
将滤波后的信号与原始信号进行比较,评估滤波效果。
你可以绘制时域图、频域图或其他特征图来分析滤波效果。
8.优化滤波器设计。
如果滤波效果不理想,你可以调整滤波器设计参数,重新设计滤波器,并重新对信号进行滤波。
这个过程可能需要多次迭代,直到达到最佳的滤波效果。
9.总结实验结果。
根据实验数据和分析结果,总结FIR滤波器设计的优点和缺点,以及可能的改进方向。
通过完成以上实验步骤,你将能够设计并应用FIR数字滤波器来滤除信号中的特定频率成分。
这对于许多信号处理应用都是非常重要的,如音频处理、图像处理和通信系统等。
本科毕业设计-基于matlab的FIR数字滤波器设计
分类号编号XXXXNorth China Institute Of Water Conservancy And Hydroelectric Power 毕业设计题目基于Matlab的FIR数字滤波器设计学院信息工程学院专业通信工程姓名学号指导教师2011年 5月20日基于Matlab的FIR数字滤波器设计摘要在数字控制系统中输入信号中所含的干扰对系统的性能会产生很大的影响,因此需要对输入信号进行处理,以提取有用信号。
有限长冲激响应(FIR)滤波器在数字信号处理中发挥着重要作用,采用Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算。
本文采用窗函数法,频率采样法和优化设计方法,通过调用Matlab函数设计FIR数字滤波器。
绘制对应的幅频特性曲线。
最后用基于Matlab函数设计的FIR数字滤波器进行语音滤波处理,通过滤波前后信号的频谱图和生成的声音文件的对比,分析不同滤波器的滤波效果。
关键词:FIR数字滤波器,仿真,窗函数法,频率取样法,优化设计方法AbstractIn digital control system, interference, which is mixed in the input signal, has a great effect on performance of the system. Therefore, processing of input signal has to be done to get useful signal. Finite impulse response (FIR) filter plays an important role in the processing of digital signal. Designing the FIR filter by Matlab can simplify the complicated computation in simulation and improve the performance.By using the methods of window function, frequency sampling and optimization techniques, the design of FIR digital filter has been processed in Matlab. In the view of the designed program of Matlab and the figure of the amplitude-frequency characterization. At last, by using the FIR digital filters which have been designed to process the sound signal based on the Matlab function, the filtering effect of different digital filters is analyzed by comparing the signal’s spectrum viewers and the sound files which have been generated. The experimental results show that the FIR filters designed in this paper are effective.Key words: FIR digital filter, simulation, windowing method, frequency sampling method, optimization techniques目录摘要 (I)Abstract........................................................... I I 1 数字滤波器 (1)1.1 数字滤波器简介 (1)1.2 IIR数字滤波器 (1)1.3 FIR数字滤波器 (2)1.4 IIR与FIR数字滤波器的比较 (4)2 Matlab及电子通信系统仿真简介 (5)2.1 Matlab简介 (5)2.1.1 基本功能 (5)2.1.2 Matlab的优势 (5)2.2 电子通信系统的仿真简介 (5)2.2.1 通信与电子系统仿真的概念 (5)2.2.2 计算机仿真的步骤 (6)2.2.3 电子通信系统计算机仿真的优点 (6)2.2.4 电子通信系统计算机仿真的局限性 (7)3 FIR数字滤波器的设计 (8)3.1 窗函数法设计FIR滤波器 (8)3.2 频率取样法设计线性相位FIR滤波器 (11)3.3 线性相位FIR滤波器的优化设计 (13)4 利用Matlab实现FIR滤波器设计 (15)4.1 窗函数法的Matlab实现 (15)4.2 频率取样法的Matlab实现 (22)4.3 优化设计的Matlab实现 (26)4.4 利用滤波器处理加有噪声的音频波形 (32)参考文献 (37)附录 (38)附录一外文原文及翻译 (38)外文原文 (38)外文翻译 (51)附录二利用Matlab实现FIR滤波器设计参考程序 (61)1 数字滤波器1.1 数字滤波器简介数字滤波器是一个离散的系统。
基于MATLAB的FIR数字滤波器设计
基于MATLAB 的FIR 数字滤波器设计摘自:张登奇,李望移.基于MATLAB 的FIR 数字滤波器设计[J]. 计算机时代,2007,(11)摘 要:数字滤波是数字信号处理的重要内容,数字滤波器可分为FIR 和IIR 两大类。
文章根据FIR 滤波器的设计原理,详细介绍了MATLAB 环境下FIR 数字滤波器的设计方法和操作步骤,并列出了设计实例程序及运行结果。
关键词:MATLAB ;数字信号处理;数字滤波器;有限脉冲响应2 FIR 数字滤波器的窗口设计法窗口设计法是从时域出发,将理想滤波器的单位脉冲响应截取一段作为传输函数的系数。
通常情况下,滤波器指标往往在频域给出,算出的理想单位脉冲响应一般是非因果、无限长、物理上不可实现的,需先截短再右移使之成为有限长因果序列,只要截取的长度和方法合理,总能满足频域指标要求。
截短就是加窗,矩形窗最简单,在频域属最小平方逼近,但峰肩和波纹不太理想。
一般希望窗函数的频谱主瓣尽可能地窄,以获得较陡的过渡带,同时能量又要尽量集中在主瓣,以减小峰肩和波纹,进而增加阻带衰减。
实际工程中常用窗的特性及MATLAB 函数比较如表1所示。
表1 常用窗函数性能比较利用窗口设计法设计FIR 数字滤波器的过程:)()()()()(ωωj D TFT n w d ID TFT j d e H n h n h e H −−→−−−→−−−→−⨯具体操作步骤如下:1、对设计指标进行归一化处理。
数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标对采样频率进行归一化处理,归一化公式为:2、根据阻带衰减要求和过渡带宽,由表1选择窗函数的类型并估计窗口长度M ,此时滤波器的阶数为M-1(注意窗口长度与滤波器类型的关系)。
3、根据滤波器的理想频响求出理想单位脉冲响应)(n h d 。
4、将理想单位脉冲响应与窗函数相乘,得系统单位脉冲响应。
5、用freqz 函数验算技术指标是否满足要求。
实验四 FIR数字滤波器的设计(实验报告)
实验四 FIR数字滤波器的设计(实验报告)《数字信号处理》实验报告学院专业电子信息工程班级姓名学号时间实验四FIR数字滤波器的设计一、实验目的1、掌握用窗函数法、频率采样法及优化算法设计FIR 滤波器的原理及步骤,学会相应的MATLAB编程。
2、熟悉具有线性相位的FIR滤波器的幅频特性和相频特性。
3、了解各种不同窗函数对滤波器性能的影响。
二、实验内容1、用窗函数法设计一个FIR数字低通滤波器LPDF,验证设计结果的幅频特性和相频特性。
要求:通带截止频率ωp=π,通带波纹Rp=,阻带截止频率ωs=π,阻带衰减As=50dB。
50Magnitude (dB) Frequency ( rad/sample) (degrees)- Frequency ( rad/sample)图1-1 低通滤波器LPDF的频率响应图1-2 低通滤波器LPDF的零极点图单位脉冲响应h(n)的数据长度= 45 对称性为:偶对称得到的滤波器通带边界点( 326 )和阻带边界点参数2、用窗函数法设计一个FIR数字高通滤波器HPDF,验证设计结果的幅频特性和相频特性。
要求:通带截止频率ωp=π,通带波纹Rp=,阻带截止频率ωs=π,阻带衰减As=50dB。
Real Part50Magnitude (dB) Frequency ( rad/sample) (degrees) Frequency ( rad/sample)图2-1 高通滤波器HPDF的频率响应图2-2 高通滤波器HPDF的零极点图-滤波器H(z)零点个数= h(n)对称性为:偶对称得到的滤波器通带边界点( 426 )和阻带边界点参数3、用窗函数法设计一个FIR数字带通滤波器BPDF,验证设计结果的幅频特性和相频特性。
要求:阻带截止频率ωs1=π,衰减65dB,通带截止频率ωp1=π→ωp2=π范围内衰减,高端阻带截止频率ωs2=π,阻带衰减As=65dB。
501Magnitude (dB)0-50-100Imaginary Frequency ( rad/sample) Frequency ( rad/sample) (degrees)0-20XX-4000-6000图3-1 带通滤波器BPDF的频率响应图3-2 带通滤波器BPDF的零极点图 FIR滤波器的阶次= 111 h(n)对称性为:偶对称得到的滤波器通带边界点( 298、704 )和阻带边界点参数中心频率:通带带宽:4、用窗函数法设计一个FIR数字带阻滤波器BSDF,验证设计结果的幅频特性和相频特性。
fir数字滤波器设计实验报告
fir数字滤波器设计实验报告FIR数字滤波器设计实验报告概述数字滤波器是数字信号处理中的重要组成部分,广泛应用于音频、图像、视频等领域。
其中,FIR数字滤波器是一种常见的数字滤波器,具有线性相位、稳定性好、易于实现等优点。
本实验旨在设计一种基于FIR数字滤波器的信号处理系统,实现对信号的滤波和降噪。
实验步骤1. 信号采集需要采集待处理的信号。
本实验采用的是模拟信号,通过采集卡将其转换为数字信号,存储在计算机中。
2. 滤波器设计接下来,需要设计FIR数字滤波器。
为了实现对信号的降噪,我们选择了低通滤波器。
在设计滤波器时,需要确定滤波器的阶数、截止频率等参数。
本实验中,我们选择了8阶低通滤波器,截止频率为500Hz。
3. 滤波器实现设计好滤波器后,需要将其实现。
在本实验中,我们采用MATLAB 软件实现FIR数字滤波器。
具体实现过程如下:定义滤波器的系数。
根据滤波器设计的公式,计算出系数值。
利用MATLAB中的filter函数对信号进行滤波。
将采集到的信号作为输入,滤波器系数作为参数,调用filter函数进行滤波处理。
处理后的信号即为滤波后的信号。
4. 结果分析需要对处理后的信号进行分析。
我们可以通过MATLAB绘制出处理前后的信号波形图、频谱图,比较它们的差异,以评估滤波器的效果。
结果显示,经过FIR数字滤波器处理后,信号的噪声得到了有效的降低,滤波效果较好。
同时,频谱图也显示出了滤波器的低通特性,截止频率处信号衰减明显。
结论本实验成功设计并实现了基于FIR数字滤波器的信号处理系统。
通过采集、滤波、分析等步骤,我们实现了对模拟信号的降噪处理。
同时,本实验还验证了FIR数字滤波器的优点,包括线性相位、稳定性好等特点。
在实际应用中,FIR数字滤波器具有广泛的应用前景。
基于MATLAB的数字滤波器的设计摘要
本设计要研究的是基于MATLAB的数字滤波器的设计。则是应用计算机软件进行编程。首先了解滤波器的基本工作原理,针对不同数字滤波器所采用最合适的设计方法,设计FIR和IIR数字滤波器,以达到效果最佳。FIR一般要求信号具有线性相位,而FIR数字滤波器则可实现严格的线性相位,同时由于脉冲响应为有限长,因此还具有永远稳定的特性,鉴于此FIR主要解决了线性相位和稳定性的问题,否则多用IIR数字滤波器来实现。根据这个特点设计FIR和IIR滤波器,利用窗函数来设计FIR数字滤波器;利用模拟滤波器来设计IIR数字滤波器。
本设计主要给出了FIR数字滤波器与IIR数字滤波器的设计方法和原理。
关键词数字滤波器MATLAB FIR IIR
滤波是信号处理中最基本又极为重要的技术,利用滤波器技术可以从复杂的信号中提取出所需要的信号,抑制不需要的信号。绝大多数传感器输出的信号,在使用过程中,都必须进行滤波。所以滤波器是具有一定传输选择特性的、对信号进行加工处理的装置、它允许输入信号中的一些成分通过,抑制或衰减另一些成分。其功能是将输入信号变换为人们所需要的输入信号。
数字信号处理实验matlab实验fir滤波器实现
实验四 用窗函数法设计FIR 滤波器一、实验目的1、熟悉FIR 滤波器设计的基本方法。
2、掌握用户窗函数设计FIR 数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。
3、熟悉线性相位FIR 滤波器的幅频特性和相位特性。
4、了解各种不同窗函数对滤波器性能的响应。
二、实验原理和方法(一)FIR 滤波器的设计FIR 滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。
目前FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。
本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。
它是从时域出发,用一个窗函数截取一个理想的)(n h d 得到h(n),以有限长序列h(n)近似理想的)(n h d :如果从频域出发,用理想的)(jw d e h 在单位圆上等角度取样得到H (k ),根据h(k)得到H(z)将逼近理想的)(z H d 这就是频率取样法。
(二)窗函数设计法同其它的的数字滤波器设计的方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。
一般是给定一个理想的频率响应)(jw d e h ,使所设计的FIR 滤波器的频率响应)(jw e h 去逼近所要求的理想的滤波器的响应)(jw d e h 窗函数设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。
∑-=-=10)()(N n jw jwn e n h e H 去逼近)(jw d e h 。
我们知道,一个理想的频率响应)(jw d e h 的傅里叶变换⎰=ππ20)(21)(dw e e H n h jwn jw d d 所得到的理想的单位脉冲响应)(n h d 往往是一个无限长序列,对)(n h d 经过适当的加权、截取处理才得到一个所需要的有限长脉冲响应序列。
对应不同的加权、截断,就有不同的窗函数。
所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。
用MATLAB设计FIR数字滤波器
实验八 用MATLAB 设计FIR 数字滤波器(二)一、实验目旳:1、加深对窗函数法设计FIR 数字滤波器旳基本原理旳理解。
2、学习用MATLAB 语言旳窗函数法编写设计FIR 数字滤波器旳程序。
3、理解MATLAB 语言有关窗函数法设计FIR 数字滤波器旳常用函数用法。
二、实验原理:1、用窗函数法设计FIR 数字滤波器 FIR 数字滤波器旳系统函数为N-1-n n=0H(z)=h(n)z ∑这个公式也可以当作是离散LSI 系统旳系统函数M-m -1-2-mmm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其他a k 全都为0时旳一种特例。
由于极点所有集中在零点,稳定和线性相位特性是FIR 滤波器旳突出长处,因此在实际中广泛使用。
FIR 滤波器旳设计任务是选择有限长度旳h(n),使传播函数H(e j ω)满足技术规定。
重要设计措施有窗函数法、频率采样法和切比雪夫等波纹逼近法等。
本实验重要简介窗函数法。
用窗函数法设计FIR 数字滤波器旳基本环节如下:(1)根据过渡带和阻带衰减指标选择窗函数旳类型,估算滤波器旳阶数N 。
(2)由数字滤波器旳抱负频率响应H(e j ω)求出其单位脉冲响应h d (n)。
可用自定义函数ideal_lp实现抱负数字低通滤波器单位脉冲响应旳求解。
程序清单如下:function hd=ideal_lp(wc,N) %点0到N-1之间旳抱负脉冲响应%wc=截止频率(弧度)%N=抱负滤波器旳长度tao=(N-1)/2;n=[0:(N-1)];m=n-tao+eps; %加一种小数以避免0作除数hd=sin(wc*m)./(pi*m);其他选频滤波器可以由低通频响特性合成。
如一种通带在ωc1~ωc2之间旳带通滤波器在给定N值旳条件下,可以用下列程序实现:Hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)(3)计算数字滤波器旳单位冲激响应h(n)=w(n)h d(n)。
基于MATLAB与CCS的FIR滤波器的C语言实现
基于MATLAB与CCS的FIR滤波器的C语言实现FIR(Finite Impulse Response)滤波器是一种数字滤波器,其输出仅取决于有限长度的输入序列。
MATLAB和CCS都提供了强大的工具和函数来设计和实现FIR滤波器。
下面将以一个具体的例子来介绍如何使用MATLAB和CCS来实现FIR滤波器的C语言实现。
首先,在MATLAB中使用fir1函数进行FIR滤波器的设计:```matlabfs = 1000; % 采样频率fpass = 200; % 通带截止频率fstop = 250; % 阻带起始频率Rp=1;%通带最大纹波(dB)Rs=60;%阻带最小衰减(dB)%计算通带和阻带频率f1 = fpass / (fs / 2);f2 = fstop / (fs / 2);% 使用fir1函数设计FIR滤波器b = fir1(30, [f1 f2], 'stop', kaiser(31, 3));%输出滤波器系数```然后,使用MATLAB中的codegen函数将FIR滤波器系数转换为C代码:```matlabcodegen -config:dll FIRFilter -args {b} -report```这将生成一个名为FIRFilter.c的文件,在该文件中包含了FIR滤波器的C语言实现。
接下来,在CCS中创建一个新的project,并将FIRFilter.c文件添加到该project中。
在Source Files文件夹中右键单击,并选择“Add Existing Files to Project”,然后选择FIRFilter.c文件。
接着,点击Build按钮来编译并生成可执行文件。
最后,在CCS中使用FIR滤波器的C语言实现进行信号处理。
可以通过以下代码示例来实现:```c#include <stdint.h>#include "FIRFilter.h"#define BUFFER_SIZE 1000//输入信号int16_t inputSignal[BUFFER_SIZE];//输出信号int16_t outputSignal[BUFFER_SIZE];int main(void)//初始化输入信号//...//调用FIR滤波器实现函数FIRFilter(inputSignal, outputSignal, BUFFER_SIZE);//处理输出信号//...return 0;```上述代码中,首先定义了输入和输出信号的数组,然后在main函数中调用FIR滤波器实现函数,并传入输入和输出信号的数组以及信号的长度。
matlab的fir滤波器设计
matlab的fir滤波器设计FIR(Finite Impulse Response)滤波器是指响应有限长度序列输入的数字滤波器,它可以用于信号去噪、信号滤波和信号重构等领域。
MATLAB软件是目前应用广泛的数学软件工具箱,它可以实现数字信号处理、信号滤波和滤波器设计等功能。
下面我们来分步骤解析如何利用MATLAB完成FIR滤波器设计。
第一步,确定滤波器参数要设计FIR滤波器,需要明确设计的目的,例如信号去噪还是信号滤波。
同时,需要确定滤波器的参数,包括滤波器的采样率、通带边界、阻带边界等。
第二步,调用MATLAB工具箱并加载数据打开MATLAB软件,选择Digital Signal Processing Toolbox,调用fir1函数,该函数用于设计一般的低通、高通、带通和带阻FIR 滤波器。
加载需要滤波的数据,并将其存储在一个变量中。
第三步,进行滤波器设计在MATLAB命令行窗口中输入以下命令,来进行FIR滤波器的设计。
h = fir1(N, Wn, 'type');其中,N是滤波器的阶数,Wn是正规化的截止频率值,type是滤波器的类型,可以是低通、高通、带通和带阻滤波器。
例如,我们要设计一个30阶的低通滤波器,带通频带为0.3至0.7,采样率为1000Hz,输入以下命令:N = 30;Wn = [0.3 0.7];Btype = 'low';FIR_filter = fir1(N, Wn, Btype);第四步,使用FIR滤波器进行滤波使用filter函数,可以将设计好的FIR滤波器应用到加载的数据上,进行滤波操作。
Y_filtered = filter(FIR_filter, 1, X);其中,FIR_filter是设计好的FIR滤波器,X是加载的待滤波数据,Y_filtered是经过滤波器处理后的数据。
第五步,可视化输出结果通过绘制函数将滤波器的输入和输出信号进行可视化处理,观察滤波效果。
基于MATLAB的FIR数字滤波器设计
作者: 叶仁泽
作者机构: 华中师范大学物理科学与技术学院,武汉430079
出版物刊名: 科技资讯
页码: 34-36页
主题词: 有限冲激响应 滤波器 设计 MATLAB FIR 数字滤波器
摘要:数字滤波器是一种用来过滤时间离散信号的数字系统,根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(ⅡR)滤波器和有限冲激响应(FIR)滤波器。
目前数字滤波器的设计有许多现成的高级语言设计程序,但它们的设计效率较低,不具有可视图形,不便于修改参数等缺点,而MATLAB语言正好能弥补以上缺点。
本文就如何使用MATLAB语言来设计和实现FIR数字滤波器进行了探究。
毕业设计——基于matlab的FIR数字滤波器设计
结业设计任务书之迟辟智美创作设计题目:基于MATLAB的IIR数字滤波器设计专业:通信工程班级学号:姓名:指导教师:设计期限:2012年3月 5日开始2012年5月20日结束院、系:信息工程学院2012年3月7日一、结业设计的目的1、通过结业设计把自己在年夜学中所学的知识应用到实践傍边.2、深入了解利用Matlab设计FIR数字滤波器的基本方法.3、在结业设计的过程中基本掌握了Matlab编译法式的基本方法.4、提高自己的自学能力和入手能力.5、熬炼自己通过网络及各种资料解决实际问题的能力.二、主要设计内容利用窗函数法、频率抽样法设计FIR滤波器,绘制出滤波器的特性图.利用所设计的滤波器对多个频带叠加的正弦信号进行处置,比较滤波前后的信号时域和频域图,验证滤波器的效果.最后找一段语音信号,并对此信号进行采样和加噪,绘制出采样后语音信号的时域波形和频谱图,然后用所设计的滤波器对加噪后的信号进行滤波,绘制出滤波后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变动.三、重点研究问题基于Matlab的FIR数字滤波器的基本设计方法,能够根据性能指标要求自力灵活地进行滤波器的设计.四、主要技术指标或主要设计参数(1)滤波器类型(2)滤波器阶数和采样频率(3)通带和阻带截止频率(4)通带和阻带衰减五、设计功效要求1、完成结业设计书文档2、完成法式的编译和调试3、对法式主要语句做出注释本科生结业设计(论文)开题陈说2012年3月20日基于Matlab的FIR数字滤波器设计摘要:在数字信号处置中 ,由于信号中经常混有各种复杂成份,所以很多信号分析都是基于滤波器而进行的,因此数字滤波器占有极其重要的位置.在数字控制系统中输入信号中所含的干扰对系统的性能会发生很年夜的影响,因此需要对输入信号进行处置,以提取有用信号.有限长冲激响应(FIR)滤波器在数字信号处置中发挥着重要作用,采纳Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算.本文采纳窗函数法,频率采样法通过调用Matlab函数设计FIR数字滤波器.绘制对应的幅频特性曲线.最后用基于Matlab 函数设计的FIR数字滤波器进行语音滤波处置,通过滤波前后信号的频谱图和生成的声音文件的比较,分析分歧滤波器的滤波效果.关键词:FIR数字滤波器,仿真,窗函数法,频率抽样法,Matlab Design of the MATLAB-basedFIR digital filter Abstract:In digital signal processing, because the signal is often mixed with a variety of complex composition, so a lot of signal analysis are based on the filter, digital filter occupies an extremely important position.In digital control system, interference, which is mixed in the input signal, has a great effect on performance of the system. Therefore, processing of input signal has to be done to get useful signal. Finite impulse response (FIR) filter plays an important role in the processing of digital signal. Designing the FIR filter by Matlab can simplify the complicated computation in simulation and improve the performance. By using the methods of window function, frequency sampling ,the design of FIR digital filter has been processed in Matlab. In the view of the designed program of Matlab and the figure of the amplitude-frequency characterization. At last, by using the FIR digital filters which have been designed to process the sound signal based on the Matlab function, the filtering effect of different digital filters is analyzed b y comparing the signal’s spectrum viewers and the sound files which have been generated. The experimental results show that the FIR filters designed in this paper are effective.Key words: FIR digital filter, simulation, windowing method, frequency samplingmethod, Matlab目录第一章绪论Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两年夜部份.1.1 Matlab简介1.1.1 MATLAB的发展MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写.早期的MATLAB 是用FORTRAN语言编写的,尽管功能十分简单,但作为免费软件,还是吸引了年夜批使用者.经过几年的校际流传,在John Little.Cleve Moler和Steve Banger合作,于1984年成立MathWorks公司,并正式推出MATLAB初版版.从这时起,MATLAB的核心采纳C语言编写,功能越来越强年夜,除原有的数值计算功能外,还新增了图形处置功能.MathWorks公司于1992年推出了具有划时代意义的4.0版;1994年推出了4.2版扩充了4.0版的功能,尤其在图形界面设计方面提供了新方法;1997年春5.0版问世,5.0版支持了更多的数据结构,使其成为一种更方便、更完善的编程语言;1999年初推出的MATLAB5.3版在很多方面又进一步改进了MATLAB 语言的功能,随之推出的全新版本的最优化工具箱和Simulink3.0到达了很高水平;2000年10月,MATLAB6.0版问世,在把持页面上有了很年夜改观,为用户的使用提供了很年夜方便,在计算机性能方面,速度变的更快,性能也更好,在图形界面设计上更趋合理,与C语言接口及转换的兼容性更强,与之配套的Simulink4.0版的新功能也特别引人注目;2001年6月推出的MATLAB6.1版及Simulink4.1版,功能已经十分强年夜;2002年6月推出的MATLAB6.5版及Simulink5.0版,在计算方法、图形功能、用户界面设计、编程手段和工具等方面都有了重年夜改进;2004年,MathWorks公司推出了最新的MATLAB7.0版,其中集成了最新的MATLAB7编译器、Simumlink6.0仿真软件以及很多工具箱.这一版本增加了很多新的功能和特性,内容相当丰富.Matlab主要面对科学计算、可视化以及交互式法式设计的高科技计算环境.它将数值分析、矩阵计算、科学数据可视化以及非线性静态系统的建模和仿真等诸多强年夜功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必需进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了现今国际科学计算软件的先进水平.1.1.2 Matlab的主要功能1.数值计算和符号计算功能2.绘图功能3.语言体系4.MATLAB的工具箱1.2 Matlab的优势及特点1.2.1M ATLAB的优势(1) 工作平台编程环境十分友好(2)编程语言简单易用(3)数据的计算处置能力十分强年夜(4)图像处置能力强年夜(5)模块集合工具箱应用广泛(6)法式的接口和发布平台很实用(7)可以开发用户界面1.2.2 Matlab 语言的特点MATLAB语言被称为第四代计算机语言,其利用丰富的函数资源,使法式员从繁琐的法式代码中解放出来,其最突出的特点就是简洁.MATLAB用更直观的、符合人们思维习惯的代码,取代了C和FORTRAN语言的冗长代码,给用户带来最直观、最简洁的法式开发环境,下面简单介绍一下MATLAB的主要特点.语言简洁紧凑,使用方便,库函数十分丰富.MATLAB法式书写的形式自由,利用丰富的库函数避开了繁琐的子法式编程任务,由于库函数都是由本事域的专家编写,所以不用担忧函数的可靠性.高效方便的矩阵和数组运算,MATLAB语言不需要界说数组的维数,并给出了矩阵函数、特殊矩阵函数、特殊矩阵专门的库函数,使得在求解信号处置、建模、系统识别、优化和控制等领域的问题时,显得年夜为简洁、方便、高效,这是其他高级语言所不能的.MATLAB既具有结构化的控制语句,又具有面向对象编程的特性.MATLAB语法限制不严格,法式设计自由度年夜,通过建立M后缀名文件的形式,与用户已经编好的FORTRAN、C语言成语混合编程,方便地调用有关的FORTRAN、C语言的子法式.可移植性很好,基本上不做修改就可以在各种型号的计算机和把持系统上面运行.MATLAB的图形功能强年夜.在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单.另外,MATLAB还具有较强的编纂图形界面的能力.MATLAB拥有功能强年夜的工具箱,主要用来扩充其符号计算功能、图示建模仿真功能、文字处置功能以及与硬件实施交互功能.源法式的开放性强.除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改变的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱.MATLAB软件自1984年推向市场以来,历经十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件.它功能强年夜、界面友好、语言自然、开放性强,很快成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字吹不成缺少的基础软件.第二章 数字滤波器2.1 数字滤波器简介数字滤波器是一个离散的系统.它可以对输入的离散信号进行一系列运算处置,从输入的信号中获得所需要的信息.数字滤波器的系统函数通常暗示为数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响应,即IIR 数字滤波器.从公式的角度来看,FIR 始终为零;IIR .实现数字滤波器的方法一般有两种:一种方法是吧滤波器所要完成的运算编成法式并让计算机执行,也就是采纳计算机软件来实现;另一种方法是设计专用的数字硬件、专用的数字信号处置器或采纳通用的数字信号处置器来实现.实现一个数字滤波器一般需要三个基本的运算单位:加法器、单位延时器和常数乘法器.这些基本的单位可以有两种暗示方法—方框图法和信号流程图法. 设计一个数字滤波器的一般步伐为:(1)按所给要求确定滤波器的性能(2)用一个因果稳定的离散线性时不变的系统函数迫近此性能的要求(3)利用算法来实现这个系统函数(4)利用计算机仿真或硬件来实现2.2 IIR 数字滤波器无限长单位冲激响应滤波器,即IIR 数字滤波器具有下面几个特点:(1) 系统的单位冲激响应h(n)为无限长的;(2) 系统函数H(z)在有限z 平面上有极点存在;(3)结构上存在着输出到输入的反馈,也就是结构上是递归型的.IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时本钱就越低.在设计IIR滤波器时,最经常使用的方法是利用模拟滤波器来设计数字滤波器.其原因为:(1)模拟滤波器的设计技术相对成熟,可以广泛利用;(2)模拟滤波器有年夜量的参考法式和表格;(3)它的解可以为闭合形式的.2.3 FIR数字滤波器有限长单位冲激响应滤波器,即FIR数字滤波器具有下面几个特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零;(2)系统函数H(z)在|z|>0处收敛,在|z|<0处只有零,即有限z平面上只有零点,儿全部极点都在z=0处(因果系统);(3)没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包括有反馈的递归部份.,FIR滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器.M阶FIR滤波器的系统函数H(z)为其中H(z)M阶多项式,在有限的z平面内H(z)有M个零点,在z平面原点z=0有M个极点. FIR它的另外一种暗示方法为.H(z)具有严格线性相位.由于严格线性相位条件在数学层面上处置起来较为困难,因此在FIR滤波器设计中一般使用广义线性相位.线性相位的.如果M阶FIR滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为当h[k]满足h[k]=h[M-k],称h[k]偶对称.当h[k]满足h[k]=-h[M-k],称h[k]奇对称.按阶数h[k]又可分为M奇数和M偶数,所以线性相位的FIR滤波器可以有四种类型.四种线性相位FIR滤波器的性质如表1-1所示表1-1 四种线性相位FIR滤波器的特性2.4 IIR与FIR数字滤波器的比力(1) IIR滤波器h(n)无限长,FIR滤波器h(n)有限长.(2)在技术指标相同的条件下,IIR滤波器的输出对输入有反馈,所以可以用比FIR少的阶数来满足要求,存储单位少,运算次数也少,经济实惠.(3)FIR滤波器的相位是严格线性的,而IIR滤波器做不到这一点,IIR滤波器的选择性越好,其相位的非线性越严重.(4)FIR滤波器主要采纳非递归结构,有限精度的运算误差很小.而IIR滤波器在运算中会发生寄生振荡.(5)FIR滤波器可以使用快速傅里叶变换算法,而IIR滤波器不能这样. (6)IIR滤波器可以利用模拟滤波器的公式、数据和表格,计算量小.FIR滤波器设计时往往要借助计算机.(7)IIR滤波器极点位于z平面任意位置,而FIR滤波器极点固定在原点. (8)IIR滤波器用于设计规范化的选频滤波器,FIR滤波器可设计各种幅度特性和相频特性的滤波器.第三章 FIR数字滤波器的设计在数字信号处置中 ,由于信号中经常混有各种复杂成份,所以很多信号分析都是基于滤波器而进行的,因此数字滤波器占有极其重要的位置 .数字滤波器是具有一定传输选择特性的数字信号处置装置,其输入与输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统.它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出.数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型.与模拟滤波器相比,数字滤波器除具有数字信号处置固有优点外,还有滤波精度高、稳定性好、灵活性强等优点.FIR滤波器可以获得严格的线性相位,但它的传递函数的极点固定在原点,只能通过改变零点位置来改变性能,为了到达高的选择性,必需用较高的阶数,对同样的滤波器设计指标,FIR滤波器要求的阶数可能比IIR滤波器高5~10倍.由于FIR数字滤波器具有严格的相位特性,对信号处置和数据传输是很重要的.目前FIR滤波器的设计方法主要有三种:窗函数法、频率抽样法和优化设计方法.我们本章主要介绍窗函数法、频率抽样法.3.1 窗函数法设计FIR滤波器窗函数设计法又称为傅里叶级数法.暗示要迫近的理想滤波器的频率响应,则由IDTFT可得出滤波器的单位脉冲响应为.可是我们所要设计的FIR滤波器,其h[k]是有限长的.为了能用FIR滤波器近似理想滤波器,需将理想滤波.当截断后的单位脉冲响应FIR滤波器.中,然后利用IDTFT0≦k≦M范围的值为FIR滤波器单位脉冲响应.积分平方误差界说为上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项到达最小,可选择所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器. GibbsFIR 滤波器的.随着滤波器阶数的增加,幅度函数在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最年夜波纹的幅度与滤波器的阶数M 无关.窗函数的主瓣宽度决定了N 增年夜,过渡带减小.下面介绍一些经常使用的窗函数,用N=M+1暗示窗函数的长度.(1)矩形窗用矩形窗设计的FIR 滤波器过渡带宽度近似为(2) Hanning 窗Hanning 由Hanning 窗的界说可知,Hanning 窗在其两个端点的值为零,这就使得在实际的应用中不能利用两个端点的数据.我们可将N+2点的Hanning 窗除去两个端点来界说长度为N 的Hanning 窗.修改后的长度为N 的Hanning 窗界说为在Matlab 信号处置工具箱中所采纳的就是这种修改后的界说方式.(3) Hamming 窗对升余弦加以改进,可以获得旁瓣更小的效果,窗形式为主瓣峰值的1%.(4) Blackman 窗为了更进一步抑制旁瓣,可再加上余弦的二次谐波分量,获得Blackman 窗Blackman (5) Kaiser 窗此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的年夜小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状.长度为N 的Kaiser 窗界说为分歧的阻带衰减要求..可用幂级数暗示为对任意的一个实变量x ,函数的值都是正的.在实际计算中,上式的求和一般取20项就能到达所需精度.Kaiser 窗在两真个衰减是逐渐加年夜的.3.2 频率抽样法设计线性相位FIR 滤波器频率抽样法是从频域动身,在频域直接设计,把给定的理想频率响应FIR 滤波器的频率响应.设所需滤波现要求设计一个M 阶的FIR 滤波器h[k]M+1个抽样点上,FIRh[k]需要通过设计来确定.如果M+1个方程是线性无关的,则可以通过求解M+1阶的线性方程来得出FIR 滤波器的h[k].一些特殊抽样方法,上述方程的解可以直接由IDFT 获得.由于要求设计出的滤波器是实系数的线性相位FIR位滤波器的约束条件.I 型和IIIII 型和IVM+1为I 型(M 为偶数,h[k]偶对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明I 型线性相位FIR.M+1点的IDFT 即可获得I 型线性相位滤波器的h[k].II 型(M 为奇数,h[k]偶对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明II 型线性相位FIR.III 型(M 为偶数,h[k]奇对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明III 型滤波器线性相位FIR.IV 型(M 为奇数,h[k]奇对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明IV 型线性相位FIR.z 平面单位圆上的N 个等间隔点上抽样出频率响应值.在单位圆上可以有两种抽样方式,第一种是第一个抽样点在w=0处,第二种是第一个抽样点在w=pi/M 处,每种方式可分为M 为偶数与M 为奇数两种.为了提高迫近质量,使迫近误差更小,也就是减小在通带边缘由于抽样点的徒然变动而引起的起伏变动(这种起伏振荡使阻带内最小衰减变小,例如从衰减30dB 变小为衰减20dB ).和窗口法的平滑截断一样,这里是使理想频率响应的不连续点的边缘加上一些过渡的抽样点(在这些点上抽样的最佳值由计算机算出),从而增加过渡带,减小频带边缘的突变,也就是减小了起伏振荡,增年夜了阻带最小衰减.这些抽样点上的取值分歧,效果也就分歧.如果精心设计过渡带的抽样值,就有可能使它的游泳频带的博文减小,从而设计出较好的滤波器.一般过渡带取一、二、三点抽样值即可获得满意结果.在理想低通滤波器的设计中,若不增加过渡点,阻带和通带之间的衰减约为-21dB ,如果在通带和阻带之间增加一个采样点,阻带的最小衰减可以提高到-65dB ,如果增加两个采样点,阻带的最小衰减可以提高到-75dB ,如果增加3个采样点,阻带的最小衰减可以提高到-85dB至-95dB.频率抽样法的优点是可以在频域直接设计,而且适合于最优化设计;缺点是抽样频率只能即是2pi/M的整数倍或即是2pi/M的整数倍上加上pi/M,因而不能确保截止频率Wc的自由取值.要想实现自由选择频率,则必需增加抽样点数M,但这种计算量加年夜.第四章利用Matlab实现FIR滤波器设计在利用Matlab设计FIR滤波器时,分别采纳窗函数法、频率抽样法和优化设计方法去设计所需的滤波器.在设计的过程中,用设计的滤波器对加有噪声的语音信号或分歧频率叠加的正弦输入信号进行滤波,比较输入前后的图像,以此验证滤波器的性能.在法式绘制的图像中,有滤波器的特性图、输入信号的时域频域图和输出信号的时域频域图.4.1 窗函数法的Matlab实现在窗函数法的Matlab实现中,法式中经常使用的函数有fir1和kaiserord.法式中fir1函数的用法:b=fir1(n,Wn,’ftype’,window)①n为滤波器的阶数②Wn为滤波器的截止频率,它是一个0到1的数.如果Wn是一个含有两个数的向量,则函数返回一个带通滤波器③ftype为滤波器的类型,ftype=’high’时,设计的是高通滤波器;ftype=’stop’时,设计的是带阻滤波器;没有此参数时,设计的是低通滤波器④window为指定的窗函数,矩形窗为boxcar(n),汉宁窗为hanning(n),海明窗为hamming(n),布莱克曼窗为blackman(n),凯撒窗为kaiser(n,beta),没有此参数时,默认为hamming窗法式中kaiserord函数的用法:[n,Wn,beta,ftype]=kaiserord(f,a,dev,Fs)①f是一个向量,为设计滤波器过渡带的起始点和结束点②a是一个向量,指定频率段的幅度值②dev是一个向量,长度和a相同,为各个通带和阻带内容许的幅度最年夜误差④n为能够满足要求的滤波器的最小阶数⑤Wn为滤波器的截止频率⑥ftype为根据待设计滤波器的要求获得的滤波器的类型高通滤波器是容许高频信号通过、但减弱(或减少)频率低于截止频率信号通过的滤波器.对分歧滤波器而言,每个频率的信号的减弱水平分歧.它有时被称为低频剪切滤波器;在音频应用中也使用高音消除滤波器或者噪声滤波器.低通滤波器与高通滤波器特性恰恰相反.(1)利用窗函数法设计低通滤波器设计要求:①使用hamming窗,采样频率2000Hz③通带衰减小于即是0.1dB,阻带衰减年夜于即是50dB法式拜会附录二中的1-(1)利用窗函数法设计低通滤波器从参考法式及图4-1可以获得所设计出滤波器的参数如下:①滤波器的采样频率为2000Hz,滤波器的阶数为266③通带衰减为0.019dB,阻带衰减为53dB比较设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器.从图4-2和图4-3的图像中可以看到:输入信号是由两个分歧频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保管了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求.(2)利用窗函数法设计带通滤波器设计要求:①使用Kaiser窗,采样频率8000Hz③法式拜会附录二中的1-(2)利用窗函数法设计带通滤波器图4-4 窗函数法设计带通滤波器的增益响应从参考法式及图4-4可以获得所设计出滤波器的参数如下:①滤波器的采样频率为8000Hz,滤波器的阶数为90③比较设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器.图4-6 信号滤波后的时域图和频域图从图4-5和图4-6的图像中可以看到:输入信号是由四个分歧频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保管了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求.(3) 利用窗函数法设计多通带滤波器设计要求:①使用Kaiser窗,采样频率200Hz③法式拜会附录二中的1-(3)利用窗函数法设计多通带滤波器图4-7 窗函数法设计多通带滤波器的增益响应从参考法式及图4-7可以获得所设计出滤波器的参数如下:①滤波器的采样频率为200Hz,滤波器的阶数为46③比较设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器.图4-9 信号滤波后的时域图和频域图从图4-8和图4-9的图像中可以看到:输入信号是由六个分歧频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保管了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求.4.2 频率抽样法的Matlab实现(1)利用频率抽样法设计低通滤波器②阻带衰减年夜于即是15dB法式拜会附录二中的2-(1)利用频率抽样法设计低通滤波器图4-10 频率抽样法设计低通滤波器的增益响应从参考法式及图4-7可以获得所设计出滤波器的参数如下:①滤波器的阶数为63③阻带衰减为17dB比较设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 基于MATLAB 的FIR 数字滤波器设计实验目的:加深对数字滤波器的常用指标和设计过程的理解。
实验原理:低通滤波器的常用指标:P P P for H Ω≤Ω+≤Ω≤-,1)(1δδπδ≤Ω≤Ω≤ΩS S for H ,)(通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏P δ,通带峰值起伏])[1(log 2010dB p pδα--=,阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。
数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。
在MATLAB 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。
N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。
例1 用凯塞窗设计一FIR 低通滤波器,通带边界频率π3.0=Ωp ,阻带边界频率π5.0=Ωs ,阻带衰减不小于50dB 。
解 首先由过渡带宽和阻带衰减来决定凯塞窗的N 和π2.0=Ω-Ω=∆Ωp s ,,S PP SPassband StopbandTransition bandFig 1 Typical magnitude specification for a digital LPF上图给出了以上设计的频率特性,(a) 为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。
凯塞窗设计对应的MATLAB程序为:wn=kaiser(30,4.55);nn=[0:1:29];alfa=(30-1)/2;hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa));h=hd.*wn;[h1,w1]=freqz(h,1);或者:b = fir1(29,0.4,kaiser(30,4.55));[h1,w1]=freqz(b,1);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-80,10]);grid;xlabel('归一化频率/ ') ;ylabel('幅度/dB') ;还可以使用[n,Wn,beta,ftype] = kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤波器:fcuts = [0.3 0.5]; %归一化频率omega/pimags = [1 0];devs = [0.05 10^(-2.5)];[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs); %计算出凯塞窗N,beta的值hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');freqz(hh);实际中,一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W(ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。
函数remezord中的数组fedge 为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev 是通带和阻带的波动,fs是采样频率单位为Hz。
例2 利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率f c=800Hz,阻带边界f r=1000Hz,通带波动=4000Hz。
阻带最小衰减At=40dB,采样频率f解在MATLAB中可以用remezord 和remez两个函数设计,其结果如图2,MATLAB程序如下:fedge=[800 1000];mval=[1 0];dev=[0.0559 0.01];fs=4000;[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs);b=remez(N,fpts,mag,wt);[h,w]=freqz(b,1,256);plot(w*2000/pi,20*log10(abs(h)));grid;xlabel('频率/Hz') ;ylabel('幅度/dB');一、实验内容: 利用MATLAB 编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:π45.01=ΩP ,π65.02=ΩP ,通带峰值起伏:][1dB p ≤α。
阻带边缘频率:π3.01=ΩS ,π75.02=ΩS ,最小阻带衰减:][40dB S ≥α。
分别用窗函数法和等波纹滤波器法设计两种FIR 数字滤波器。
实验要求:给出FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
1-1)用窗函数法实现:调用函数[n,wn,bta,ftype]=kaiserord (f ,a ,dev ,fs )参数:f=[0.3 0.45 0.65 0.8]为对应数字频率π3.01=ΩS ,π45.01=ΩP ,π65.02=ΩP ,,π75.02=ΩSa=[0 1 0]为由f 指定的各个频带上的幅值向量,一般只有0和1表示;和f 长度关系为(2*a 的长度)—2=(f 的长度)devs=[0.01 0.1087 0.01]用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或偏差,长度与a 相等,计算公式:阻带衰减误差=,通带波动衰减误差=fs 缺省值为2HZ>> [n,wn,bta,ftype]=kaiserord([0.3 0.45 0.65 0.8],[0 1 0],[0.01 0.1087 0.01]);%用kaiserord 函数估计出滤波器阶数n 和beta 参数 >> h1=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale'); >> [hh1,w1]=freqz(h1,1,256); >> figure(1) >> subplot(2,1,1)>> plot(w1/pi,20*log10(abs(hh1))) >> grid>> xlabel('归一化频率w');ylabel('幅度/db'); >> subplot(2,1,2) >> plot(w1/pi,angle(hh1)) >> grid>> xlabel('归一化频率w');ylabel('相位/rad');h1 =Columns 1 through 80.0041 0.0055 -0.0091 -0.0018 -0.0056 -0.0000 0.0391 -0.0152 Columns 9 through 16-0.0381 0.0077 -0.0293 0.0940 0.0907 -0.2630 -0.0517 0.3500 Columns 17 through 24-0.0517 -0.2630 0.0907 0.0940 -0.0293 0.0077 -0.0381 -0.0152 Columns 25 through 310.0391 -0.0000 -0.0056 -0.0018 -0.0091 0.0055 0.0041图4-1如果直接用freqz(h1,1,256);画图得:1-2)用等波纹法设计:调用函数[n,fpts,mag,wt]=remezord(f,a,dev)f=[0.3 0.45 0.65 0.8]a=[0 1 0]dev=[0.01 0.1087 0.01]其含义同函数[n,wn,bta,ftype]=kaiserord(f,a,dev,fs)中的参数相同。
>> [n,fpts,mag,wt]=remezord([0.3 0.45 0.65 0.8],[0 1 0],[0.01 0.10870.01]);%用remezord函数估算出remez函数要用到的阶n、归一化频带边缘矢量fpts、频带内幅值响应矢量mag及加权矢量w,使remez 函数设计出的滤波器满足f、a及dev指定的性能要求。
>> h2=remez(n,fpts,mag,wt);%设计出等波纹滤波器>> [hh2,w2]=freqz(h2,1,256);>> figure(2)>> subplot(2,1,1)>> plot(w2/pi,20*log10(abs(hh2)))>> grid>> xlabel('归一化频率w');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w2/pi,angle(hh2))>> grid>> xlabel('归一化频率w');ylabel('相位/rad');>> h2h2 =Columns 1 through 9-0.0013 0.0092 -0.0255 -0.0642 0.1177 0.0922 -0.2466 -0.0466 0.3116Columns 10 through 17-0.0466 -0.2466 0.0922 0.1177 -0.0642 -0.0255 0.0092 -0.0013图4-2 用freqz(h2,1,256);直接得图:二、对课本作业9.23画图。
2-1)用汉宁窗实现:1)手动计算>> n=0.001:58.001;>> hd=sin(0.18125*pi*(n-29))./(pi*(n-29));>> win=0.5+0.5*cos(2*pi*(n-29)/58);>> h1=2*cos(pi*(n-29)/2).*hd.*win;>> [hh1,w1]=freqz(h1,1,256);>> figure(1)>> subplot(2,1,1)>> plot(w1,20*log10(abs(hh1)))>> grid>> xlabel('数字频率w/rad');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w1,angle(hh1))>> grid>> xlabel('数字频率w/rad');ylabel('相位/rad');图4-32-2)用自带的fir1函数:>> n=59;>> wn=[3/8 5/8];>> h2=fir1(n,wn,'bandpass',hann(n+1));>> [hh2,w2]=freqz(h2,1,256);>> figure(2)>> subplot(2,1,1)>> plot(w2,20*log10(abs(hh2)))>> xlabel('数字频率w/rad');ylabel('幅度/db');>> grid>> subplot(2,1,2)>> plot(w2,angle(hh2))>> xlabel('数字频率w/rad');ylabel('相角/rad');>> grid图4-42-3)用等波纹法设计:调用函数[n,fpts,mag,wt]=remezord(f,a,dev)f=[0.2625 0.375 0.625 0.7375]a=[0 1 0]dev=[0.01 0.1087 0.01]>> [n,fpts,mag,wt]=remezord([0.2625 0.375 0.625 0.7375],[0 1 0],[0.01 0.1087 0.01]); >> h2=remez(n,fpts,mag,wt);>> [hh2,w2]=freqz(h2,1,256);>> figure(2)>> subplot(2,1,1)>> plot(w2/pi,20*log10(abs(hh2)))>> grid>> xlabel('归一化频率w');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w2/pi,angle(hh2))>> grid>> xlabel('归一化频率w');ylabel('相位/rad');>> h2画图为:另外带通滤波器还可以用低通和高通级联的方法实现,因为步骤过多,这里不作讨论。