IIR、FIR--滤波器函数使用方法(非常有用)
- 格式:doc
- 大小:39.50 KB
- 文档页数:5
FFT算法及IIRFIR滤波器的设计FFT(快速傅里叶变换)算法是一种高效的离散傅里叶变换计算方法,能够快速地从时域信号转换到频域信号,常用于信号处理、图像处理、音频处理等领域。
1.如果信号长度为N,保证N为2的幂次,否则进行填充;2.将信号分为偶数下标和奇数下标的序列;3.对偶数下标序列进行递归FFT计算;4.对奇数下标序列进行递归FFT计算;5.通过蝶形运算将偶数下标部分和奇数下标部分合并;6.重复以上步骤,直到得到频域信号。
而IIR(Infinite Impulse Response)滤波器和FIR(Finite Impulse Response)滤波器是两种常见的数字滤波器设计方法。
IIR滤波器是一种递归滤波器,其输出是输入序列与滤波器的前一次输出之间的线性组合。
IIR滤波器的特点是具有较小的存储要求和较高的效率,但可能会引入不稳定性和相位畸变。
IIR滤波器的设计通常采用模拟滤波器设计方法,如巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等。
这些滤波器均由模拟滤波器的传递函数利用双线性变换或频率采样方法得到。
FIR滤波器是一种非递归滤波器,其输出仅与当前输入序列有关。
FIR滤波器的特点是具有线性相位和稳定性,但相对于IIR滤波器,需要更多的存储和计算开销。
FIR滤波器的设计通常采用频率采样法或窗函数法。
其中频率采样法是通过指定所需频率响应的幅度响应,通过反离散傅里叶变换得到滤波器系数;窗函数法是通过对理想滤波器的频率响应进行截断和加窗处理,再进行反离散傅里叶变换得到滤波器系数。
总结起来,FFT算法是一种高效的离散傅里叶变换计算方法,能够快速地将时域信号转换到频域信号;IIR滤波器和FIR滤波器是常见的数字滤波器设计方法,分别具有不同的特点和适用场景。
在实际应用中,需要根据需求选择合适的滤波器设计方法,并结合FFT算法进行信号处理和频谱分析。
基于MATLAB的IIR和FIR滤波器的设计与实现要点IIR和FIR滤波器是数字信号处理中常用的滤波器设计方法,它们分别基于无限脉冲响应(IIR)和有限脉冲响应(FIR)的理论基础。
本文将对基于MATLAB的IIR和FIR滤波器的设计与实现要点进行详细的介绍。
1.滤波器设计方法IIR滤波器设计方法主要有两种:基于模拟滤波器的方法和基于离散系统的方法。
前者将模拟滤波器的传递函数转化为离散滤波器的传递函数,常用方法有:脉冲响应不变法、双线性变换法等,MATLAB中提供了相关函数实现这些方法。
后者直接根据滤波器的要求设计离散系统的传递函数,常用方法有:Butterworth、Chebyshev等,MATLAB中也提供了相应的函数实现这些方法。
2.滤波器参数的选择选择合适的滤波器参数是IIR滤波器设计中的关键步骤。
根据滤波器的型号和设定的滤波器规格,主要需要选择的参数包括:滤波器阶数、截止频率、通带和阻带的衰减等。
一般情况下,滤波器阶数越高,滤波器的性能越好,但计算量也会增加,所以需要进行权衡。
3.滤波器实现方法基于MATLAB的IIR滤波器可以通过直接的形式或级联形式实现。
直接形式直接使用传递函数的表达式计算输出样本;级联形式则将传递函数分解为多个较小的子滤波器,逐级计算输出样本,并将各级输出进行累加。
选择哪种形式取决于具体的应用需要和滤波器的阶数。
4.滤波器性能评估设计好IIR滤波器后,需要对其性能进行评估,判断滤波器是否满足要求。
主要评估指标包括:幅频响应、相频响应、群延迟等。
MATLAB提供了多种绘制频域和时域响应曲线的函数,可以用来评估IIR滤波器的性能。
1.滤波器设计方法FIR滤波器设计主要有两种方法:窗函数法和最优化法。
窗函数法是最简单的设计方法,它通过对理想滤波器的频率响应进行窗函数加权来获得滤波器的时域响应,常用的窗函数有:矩形窗、汉宁窗、布莱克曼窗等。
最优化法则通过优化其中一种准则函数,如最小二乘法、Chebyshev等,得到最优的FIR滤波器。
一、课程设计的目的与要求1.掌握利用双线性变换法设计IIR 数字滤波器的原理和具体方法。
2.深入理解利用双线性变换法设计IIR 数字滤波器的优缺点及使用范围。
3.加深对窗函数设计FIR 数字滤波器的基本原理的理解。
4.学习用MATLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。
5.了解MATLAB 有关窗函数法设计常用的子函数。
二、设计正文2.1 设计要求1. 使用双线性变换设计IIR 数字滤波器设计用双线性变换设计巴特沃兹滤波器,技术指标是:0.89125≤∣H(ej ω)∣≤1, 0≤ω≤0.2π ∣H(ej ω)∣≤0.17783, 0.3π≤ω≤π用绝对指标表示为:ωp = 0.2π ωs = 0.3π δ1 = 1-0.89125 = 0.10875 δ2 = 0.17783 2.用Kaiser 窗法设计一个高通滤波器,满足技术指标∣H(ej ω)∣≤0.021,∣ω∣≤0.35π 0.979≤∣H(ej ω)∣≤1.021, 0.5π≤ω≤π。
用绝对指标要求来表示为:ωp = 0.5π,ωs = 0.35π,δ1 =δ2 =δ=0.021。
2.2设计原理2.2.1.IIR 数字滤波器:IIR 数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth 函数、chebyshev 函数、bessel 函数、椭圆滤波器函数等。
IIR 数字滤波器的设计步骤:① 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标; ② 根据模拟滤波器技术指标设计为响应的模拟低通滤波器;③ 跟据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;④ 如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。
在MATLAB 中,经典法设计IIR 数字滤波器主要采用以下步骤:图1.1 IIR 数字滤波器设计步骤2.2.2.FIR 数字滤波器:FIR 数字滤波器的系统函数无分母,为 110()()N N inii i H Z b z h n z ----====∑∑,系统频率响应可写成:10()()N jw jwn n H e h n e--==∑,令()jw H e =()()j w H w e ϕ,H(w)为幅度函数,()w ϕ称为相位函数。
IIR、FIR--滤波器函数使用方法(非常有用)MATLAB滤波器函数Matlab信号处理工具箱函数和IIR、FIR函数波形产生和绘图chirp 产生扫描频率余弦diric 产生Dirichlet函数或周期Sinc函数gauspuls 产生高斯调制正弦脉冲pulstran 产生脉冲串rectpuls 产生非周期矩形信号sawtooth 产生锯齿波或三角波sinc 产生sinc函数square 产生方波strips 产生条图tripuls 产生非周期三角波滤波器分析和实现abs 绝对值(幅值)angle 相位角conv 卷积和多项式乘法conv2 二维卷积fftfilt 基于FFT重叠加法的数据滤波filter 递归(IIR)或非递归(FIR)滤波器的数据滤波firter2 二维数字滤波filtfilt 零相位数字滤波filtic 函数filter初始条件确定freqs 模拟滤波器频率响应freqspace 频率响应的频率空间设置freqz 数字滤波器频率响应grpdelay 群延迟impz 数字滤波器的脉冲响应latcfilt 格型梯形滤波器实现unwrap 相位角展开zplane 零极点图IIR与FIRMATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。
下面主要介绍前两个函数的使用。
与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。
在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。
一、巴特沃斯IIR滤波器的设计在MATLAB下,设计巴特沃斯IIR滤波器可使用butter函数。
Butter函数可设计低通、高通、带通和带阻的数字和模拟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。
IIR 滤波器、FIR 滤波器与维纳滤波器所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限脉冲响应(IIR )滤波器和有限脉冲响应(FIR )滤波器。
它们的系统函数分别为:1.1n N n z n h z H --=∑=10)()( 1.21.1中的H(z)成为N 阶IIR 滤波器,1.2中的H(z)称为(N-1)阶FIR 滤波器函数,这两种类型的设计方法有很大的区别。
IIR 数字滤波器的设计既可以从模拟滤波器的设计入手来进行,也可以直接利用指标参数,通过调用滤波器设计子程序或函数来进行。
可以利用脉冲响应不变法来设计IIR 数字低通滤波器,按照技术要求设计一个模拟低通滤波器,得到模拟低通滤波器的传输函数,再按一定的转换关系将传输函数转换成数字低通滤波器的系统函数H(z)。
设模拟滤波器的传输函数是s H a (),相应的单位冲激响应是)(t h a ,对)(t h a 进行等间隔采样,采样间隔为T ,得到)(nT h a ,将h(n)= )(nT h a 作为数字滤波器的单位取样响应,那么数字滤波器的系统函数便是h(n)的z 变换,因此脉冲响应不变法是一种时域上的转换方法,它使h(n)在采样点上等于)(t h a∑=-=Ni iia s s A s H 1)( 1.3 ∑=--=Ni T s iz eA z H i 111)( 1.4 将s H a ()在s 平面上沿虚轴按照周期2pi/T 延括后,再按标准映射关系sT e z =,映射到z 平面上,就得到了H(z)。
脉冲响应不变法的优点是频率坐标变化时线性的,如果不考虑频率混叠现象,用这种方法设计的数字滤波器会很好的重现模拟滤波器的频率特性。
以下为用matlab 仿真的一个IIR 低通滤波器: % IIR Lowpass Use Butterworth % copyright by Etual clear;fs=20;fpass=4;fstop=5;∑∑=-=--=Nk kk Mk k k z a z b z H 101)(Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;omegap=tan(wp/2);omegas=tan(ws/2);ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));omega0=omegap/ep^(1/N);K=floor(N/2);for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endfor i=1:KG(i)=omega0^2/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka1(i)=2*(omega0^2-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omeg a0^2);endif K<(N/2)G0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);endw=0:pi/300:pi;Hw2=1./(1+(tan(w/2)/omega0).^(2*N));plot(w/pi,Hw2);grid;图一IIR滤波器频谱图IIR数字滤波器能保留一些典型模拟滤波器优良的幅度特性,但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器相位特性一般是非线性的。
FIR滤波器和IIR滤波器原理及实现FIR和IIR滤波器是数字信号处理中常用的滤波器类型,用于从输入信号中提取或抑制特定频率成分。
它们分别基于有限脉冲响应(FIR)和无限脉冲响应(IIR)的原理设计而成。
下面将分别介绍FIR和IIR滤波器的原理及实现方式。
一、FIR滤波器H(z)=b0+b1•z^(-1)+b2•z^(-2)+...+bM•z^(-M)其中,b0、b1、..、bM是FIR滤波器的系数,M为滤波器的阶数。
1.确定滤波器的设计要求,包括通带和阻带的边界频率、通带和阻带的衰减要求等。
2.根据设计要求,选择合适的滤波器设计方法,如FIR滤波器可以通过窗函数设计、频率采样法设计等。
3.根据设计方法计算得到滤波器的系数,即b0、b1、..、bM。
4.将计算得到的系数应用到差分方程中,实现滤波器。
5.将输入信号通过差分方程进行滤波处理,得到输出信号。
二、IIR滤波器IIR滤波器是一种具有无限长度的单位脉冲响应的滤波器,它具有反馈回路,可以实现对信号频率的持续平滑。
IIR滤波器的离散时间系统函数可以表示为:H(z)=[b0+b1•z^(-1)+b2•z^(-2)+...+bM•z^(-M)]/[1+a1•z^(-1)+a2•z^(-2)+...+aN•z^(-N)]其中,b0、b1、..、bM和a1、a2、..、aN分别为IIR滤波器的前向和反馈系数,M和N分别为前向和反馈滤波器的阶数。
实现IIR滤波器的步骤如下:1.确定滤波器的设计要求,选择合适的滤波器类型(低通、高通、带通、带阻等)。
2.根据设计要求,选择合适的设计方法(脉冲响应不变法、双线性变换法等)。
3.根据设计方法计算得到滤波器的系数,即b0、b1、..、bM和a1、a2、..、aN。
4.将计算得到的系数应用到差分方程中,实现IIR滤波器。
5.将输入信号通过差分方程进行滤波处理,得到输出信号。
IIR滤波器的优点是可以实现较窄的通带和截止频率,具有良好的频率响应特性,但由于反馈回路的存在,容易出现稳定性问题,设计和实现相对较为复杂。
实验五 IIR 、FIR 数字滤波器 操作: 报告:___1. 实验目的(1) 熟悉CCS 集成开发环境。
(2) 熟悉SEED-DTK6713实验环境。
(3) 掌握对TLV320AIC23B 的设置,对信号完成A/D 采样。
(4) 掌握数字滤波器的设计原理和方法,对采样信号完成滤波处理。
(5) 了解IIR 和FIR 数字滤波器的特性,以及各种窗函数对FIR 滤波特性的影响。
2. 实验要求(1) 简述实验目的及原理。
(2) 按照实验步骤及要求,比较各种情况下的滤波性能,总结IIR 和FIR 数字滤波器的特性,说明窗口长度N 和窗函数类型对滤波特性的影响。
(3) 按照实验步骤及要求,总结实验中所用知识点,画出实验实现的程序流程图。
(4) 简要回答思考题。
3. 实验原理(1)有限长脉冲响应数字滤波器(FIR )FIR 数字滤波器是一种非递归系统,其脉冲响应()h n 是有限长序列,其差分方程表达式为()()()10N i y n h i x n i -==-∑ (5.1)在数字信号处理应用中往往需要设计线性相位的滤波器,为使滤波器满足线性相位条件,要求其单位脉冲响应h (n )满足:()(1)h n h N n =±-- (5.2) 这样,当N 为偶数时,偶对称线性相位FIR 滤波器的差分方程表达式为()()()()121Ni y n h n x n i x N n i -==-+---⎡⎤⎣⎦∑ (5.3)由上可见,FIR 实际上是一种乘法累加运算,对于线性相位FIR 而言,利用线性相位FIR 滤波器系数的对称特性,可以采用结构精简的FIR 结构将乘法器数目减少一半。
本实验中FIR 的算法公式为[]()()00nhk r j h k x j k j nx ==-≤≤∑ (5.4)(2)无限长脉冲响应数字滤波器(IIR )数字滤波器的输入()x n 和输出()y n 之间的关系可以用如下常系数差分方程及其Z 变换描述。
IIR和FIR滤波器是数字信号处理中常用的滤波器类型,它们可以用于滤除信号中的噪音、衰减特定频率成分等。
在本次实验中,我们对IIR 和FIR滤波器的设计进行了实验,并进行了总结。
以下是我们对实验内容的总结:一、实验背景1.1 IIR和FIR滤波器的概念IIR滤波器又称为“递归滤波器”,其特点是反馈自身的输出值作为输入。
FIR滤波器又称为“非递归滤波器”,其特点是只利用当前和过去的输入值。
两者在设计和性能上有所不同。
1.2 实验目的本次实验旨在通过设计IIR和FIR滤波器,加深对数字信号处理中滤波器性能和设计原理的理解,以及掌握滤波器在实际应用中的参数选择和性能评估方法。
二、实验过程2.1 IIR滤波器设计我们首先进行了IIR滤波器的设计实验。
通过选择滤波器类型、截止频率、阶数等参数,利用巴特沃斯、切比雪夫等滤波器设计方法,得到了IIR滤波器的传递函数和零极点分布。
接着进行了IIR滤波器的数字仿真,对滤波器的频率响应、裙延迟等性能进行了评估。
2.2 FIR滤波器设计接下来我们进行了FIR滤波器的设计实验。
通过选择滤波器类型、截止频率、滤波器长度等参数,利用窗函数、最小均方等设计方法,得到了FIR滤波器的传递函数和频响曲线。
然后进行了FIR滤波器的数字仿真,对滤波器的幅频响应、相频响应等进行了分析。
2.3 总结我们总结了IIR和FIR滤波器的设计过程和步骤,对设计参数的选择和调整进行了讨论,同时对两种滤波器的性能进行了比较和评价。
三、实验结果分析3.1 IIR滤波器性能分析通过实验,我们得到了IIR滤波器的频率响应曲线、裙延迟等性能指标。
我们分析了滤波器的截止频率对性能的影响,以及阶数、滤波器类型对性能的影响,并进行了参数优化和调整。
3.2 FIR滤波器性能分析同样地,我们得到了FIR滤波器的幅频响应曲线、相频响应等性能指标。
我们分析了滤波器长度、截止频率对性能的影响,以及窗函数、设计方法对性能的影响,并进行了参数优化和调整。
数字信号处理实验报告实验四IIR数字滤波器设计及软件实现(一) FIR数字滤波器设计及软件实现(二)2018 年 11 月 28 日一、实验目的(实验4_1)(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
(实验4_2)(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
(3)掌握FIR滤波器的快速卷积实现原理。
(4)学会调用MATLAB函数设计与实现FIR滤波器。
二、实验原理与方法(实验4_1)设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3、实验内容及步骤(实验4_1)(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。
由图可见,三路信号时域混叠无法在时域分离。
数字滤波器使用方法数字滤波器是一种用于信号处理的重要工具,能够帮助我们去除信号中的噪音、平滑信号、提取信号特征等。
在实际工程和科学应用中,数字滤波器具有广泛的应用,例如音频处理、图像处理、通信系统等领域。
下面将介绍数字滤波器的基本原理和使用方法。
一、数字滤波器的基本原理数字滤波器是一种能对数字信号进行处理的系统,其基本原理是根据预先设计好的滤波器系数对输入信号进行加权求和,从而得到输出信号。
根据滤波器的结构不同,数字滤波器可以分为FIR(有限脉冲响应)滤波器和IIR(无限脉冲响应)滤波器两种类型。
FIR滤波器的特点是稳定性好、易于设计,其输出只取决于当前和过去的输入信号;而IIR滤波器具有较高的处理效率和更窄的频带宽度,但设计和稳定性方面相对复杂一些。
根据不同的应用需求和信号特性,可以选择合适的滤波器类型。
二、数字滤波器的使用方法1.确定滤波器类型:首先需要根据实际需求确定所需的滤波器类型,是需要设计FIR滤波器还是IIR滤波器。
2.设计滤波器:接下来根据所选滤波器类型进行设计,确定滤波器的阶数、频率响应特性等参数。
可以使用数字信号处理工具软件进行设计,或者根据经验公式进行计算。
3.滤波器实现:设计好滤波器之后,需要在编程环境中实现滤波器结构。
根据设计的滤波器系数,编写滤波器算法并将其应用于目标信号。
4.滤波器应用:将待处理的信号输入到设计好的数字滤波器中,并获取滤波后的信号输出。
根据实际需求对输出信号进行后续处理或分析。
5.性能评估:最后需要对滤波器的性能进行评估,可以通过对比滤波前后信号的频谱特性、信噪比以及滤波器的稳定性等指标来评估滤波器的效果。
三、注意事项•在设计数字滤波器时,需要根据具体应用场景和信号特性选择合适的滤波器类型和参数,以达到最佳的滤波效果。
•需要注意滤波器的稳定性和性能,避免设计过分复杂的滤波器导致系统不稳定或无法实现。
•对于实时应用,还需考虑滤波器的计算效率,尽量优化滤波器算法以减少计算复杂度。
《DSP原理及其应用》实验设计报告实验题目:FFT算法及滤波器的设计摘要随着信息科学的迅猛发展,数据采集与处理是计算机应用的一门关键技术,它主要研究信息数据的采集、存储和处理。
而数字信号处理器(DSP)芯片的出现为实现数字信号处理算法提供了可能。
数字信号处理器(DSP)以其特有的硬件体系结构和指令体系成为快速精确实现数字信号处理的首选工具。
DSP芯片采用了哈佛结构,以其强大的数据处理功能在通信和信号处理等领域得到了广泛应用,并成为研究的热点。
本文主要研究基于TI的DSP芯片TMS320c54x的FFT算法、FIR滤波器和IIR滤波器的实现。
首先大概介绍了DSP和TMS320c54x的结构和特点并详细分析了本系统的FFT变换和滤波器的实现方法。
关键词:DSP、TMS320c54x、FFT、FIR、IIRAbstractWith the rapid development of information science, data acquisition and processing is a key technology of computer applications, the main research of it is collection, storage and processing of information data. The emergence of the digital signal processor (DSP) chip offers the potential for the realization of the digital signal processing algorithm. Digital signal processor (DSP), with its unique hardware system structure and instruction system become the first tool of quickly and accurately realize the digital signal processing.DSP chip adopted harvard structure, with its powerful data processing functions in the communication and signal processing, and other fields has been widely applied, and become the research hot spot.This paper mainly studies the FFT algorithm based on TMS320c54x DSP chip of TI, the realization of FIR filter and IIR filter. First introduced the DSP and TMS320c54x briefly, then analyzed in detail the structure and characteristics of the system of the realization of FFT transform and filter method.Keyword: DSP、TMS320c54x、FFT、FIR、IIR1.绪论1.1课题研究的目的和意义数字信号处理器(DSP)已经发展了多20多年,最初仅在信号处理领域内应用,近年来随着半导体技术的发展,其高速运算能力使很多复杂的控制算法和功能得以实现,同时将实时处理能力和控制器的外设功能集于一身,在控制领域内也得到很好的应用。
FIR:有限脉冲响应滤波器。
有限说明其脉冲响应是有限的。
与IIR相比,它具有线性相位、容易设计的优点。
这也就说明,IIR滤波器具有相位不线性,不容易设计的缺点。
而另一方面,IIR却拥有FIR所不具有的缺点,那就是设计同样参数的滤波器,FIR比IIR需要更多的参数。
这也就说明,要增加DSP的计算量。
DSP需要更多的计算时间,对DSP的实时性有影响。
以下都是低通滤波器的设计。
FIR的设计:FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。
通常这个理想的低通滤波器在频域上是一个矩形窗。
根据傅里叶变换我们可以知道,此函数在时域上是一个采样函数。
通常此函数的表达式为:sa(n)=sin(n∩)/n∏,但是这个采样序列是无限的,计算机是无法对它进行计算的。
故我们需要对此采样函数进行截断处理。
也就是加一个窗函数。
就是传说中的加窗。
也就是把这个时域采样序列去乘一个窗函数,就把这个无限的时域采样序列截成了有限个序列值。
但是加窗后对此采样序列的频域也产生了影响:此时的频域便不在是一个理想的矩形窗,而是成了一个有过渡带,阻带有波动的低通滤波器。
通常根据所加的窗函数的不同,对采样信号加窗后,在频域所得的低通滤波器的阻带衰减也不同。
通常我们就是根据此阻带衰减去选择一个合适的窗函数。
如矩形窗、汉宁窗、汉明窗、BLACKMAN窗、凯撒窗等。
选择一个具体的窗函数之后,根据所设计滤波器的参数来计算所需的阶数、此窗函数的表达式。
然后用这个窗函数去和采样序列相乘,就可以得到实际滤波器的脉冲响应。
IIR的设计(双线性变换法):IIR的设计理念是这样的:根据所要设计滤波器的参数去确定一个模拟滤波器的传输函数,然后再根据这个传输函数,通过双线性变换、或脉冲响应不变法来进行数字滤波器的设计。
它的设计比较复杂,复杂在于它的模拟滤波器传输函数H(s)的确定。
这一点我们可以让软件来实现。
然后,我们说一下它的具体实现步骤:首先你要先确定你需要一个什么样的滤波器,巴特沃斯型,切比雪夫型,还是其它什么型的滤波器。
IIR 滤波器、FIR 滤波器与维纳滤波器所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限脉冲响应(IIR )滤波器和有限脉冲响应(FIR )滤波器。
它们的系统函数分别为:1.1n N n z n h z H --=∑=10)()( 1.21.1中的H(z)成为N 阶IIR 滤波器,1.2中的H(z)称为(N-1)阶FIR 滤波器函数,这两种类型的设计方法有很大的区别。
IIR 数字滤波器的设计既可以从模拟滤波器的设计入手来进行,也可以直接利用指标参数,通过调用滤波器设计子程序或函数来进行。
可以利用脉冲响应不变法来设计IIR 数字低通滤波器,按照技术要求设计一个模拟低通滤波器,得到模拟低通滤波器的传输函数,再按一定的转换关系将传输函数转换成数字低通滤波器的系统函数H(z)。
设模拟滤波器的传输函数是s H a (),相应的单位冲激响应是)(t h a ,对)(t h a 进行等间隔采样,采样间隔为T ,得到)(nT h a ,将h(n)= )(nT h a 作为数字滤波器的单位取样响应,那么数字滤波器的系统函数便是h(n)的z 变换,因此脉冲响应不变法是一种时域上的转换方法,它使h(n)在采样点上等于)(t h a∑=-=Ni iia s s A s H 1)( 1.3 ∑=--=Ni T s iz eA z H i 111)( 1.4 将s H a ()在s 平面上沿虚轴按照周期2pi/T 延括后,再按标准映射关系sT e z =,映射到z 平面上,就得到了H(z)。
脉冲响应不变法的优点是频率坐标变化时线性的,如果不考虑频率混叠现象,用这种方法设计的数字滤波器会很好的重现模拟滤波器的频率特性。
以下为用matlab 仿真的一个IIR 低通滤波器: % IIR Lowpass Use Butterworth % copyright by Etual clear;fs=20;fpass=4;fstop=5;∑∑=-=--=Nk kk Mk k k z a z b z H 101)(Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;omegap=tan(wp/2);omegas=tan(ws/2);ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));omega0=omegap/ep^(1/N);K=floor(N/2);for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endfor i=1:KG(i)=omega0^2/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka1(i)=2*(omega0^2-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omeg a0^2);endif K<(N/2)G0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);endw=0:pi/300:pi;Hw2=1./(1+(tan(w/2)/omega0).^(2*N));plot(w/pi,Hw2);grid;图一IIR滤波器频谱图IIR数字滤波器能保留一些典型模拟滤波器优良的幅度特性,但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器相位特性一般是非线性的。
一、题目 设原始信号为1000,,2,1)sin(*01.0)100cos()( =+=n n n n x , 采用IIR 滤波器和FIR 滤波器设计低通滤波器,比较两类滤波器的滤波结果。
要求:采用MATLAB 语言实现,并分析结果。
二、设计过程首先对原始信号进行频谱分析,确定滤波器参数。
通过分析加噪信号的频谱,噪声信号为,原始信号为。
所以确定参数ωp =0.1π,ωs =0.25π;αp =0.08,αs =8;采样间隔T=8s 。
1、IIR 滤波器设计按照数字滤波器技术指标(通带边界频率Wp 通带最大衰减 阻带截止频率 阻带最小衰减)要求设计一个过渡模拟低通滤波器Ha(s),再使用脉冲响应不变法或双线性变换法将Ha(s)转换成数字低通滤波器的系统函数H(z)。
本题采用双线性变换法,具体转换关系为:⎪⎩⎪⎨⎧==2tan 2Ω2tan 2Ωs p sp w T w T 由参数设计巴特沃斯滤波器,根据[N,wc]=buttord(wp,ws,Rp,As,’s ’)计算模拟滤波器的阶数及截止频率,由[B,A]=butter(N,wc,Rp,’s ’))100cos(n )sin(*01.0)100cos(n n +计算模拟滤波器系统函数的分子和分母多项式的系数向量B和A。
2、FIR滤波器设计(1)根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口的长度N。
(2)构造希望逼近的频率响应函数Hd(e^jw)(3)计算hd(n)(4)加窗得到设计结果:h(n)=hd(n)*w(n)采用[n,Wn,beta,type]=kaiserord(f,a,dev)函数来估计滤波器的阶数,根据阻带衰减及过渡带的指标要求,选择窗函数的类型(本题使用方法二及凯塞窗滤波器)。
这里f对应的频率,a=[1,0]为f指定的各个频带上的幅值向量,一般只有0和1表示。
Devs用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或者偏差。
MATLAB滤波器函数Matlab信号处理工具箱函数和IIR、FIR函数波形产生和绘图chirp 产生扫描频率余弦diric 产生Dirichlet函数或周期Sinc函数gauspuls 产生高斯调制正弦脉冲pulstran 产生脉冲串rectpuls 产生非周期矩形信号sawtooth 产生锯齿波或三角波sinc 产生sinc函数square 产生方波strips 产生条图tripuls 产生非周期三角波滤波器分析和实现abs 绝对值(幅值)angle 相位角conv 卷积和多项式乘法conv2 二维卷积fftfilt 基于FFT重叠加法的数据滤波filter 递归(IIR)或非递归(FIR)滤波器的数据滤波firter2 二维数字滤波filtfilt 零相位数字滤波filtic 函数filter初始条件确定freqs 模拟滤波器频率响应freqspace 频率响应的频率空间设置freqz 数字滤波器频率响应grpdelay 群延迟impz 数字滤波器的脉冲响应latcfilt 格型梯形滤波器实现unwrap 相位角展开zplane 零极点图IIR与FIRMATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。
下面主要介绍前两个函数的使用。
与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。
在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。
一、巴特沃斯IIR滤波器的设计在MATLAB下,设计巴特沃斯IIR滤波器可使用butter函数。
Butter函数可设计低通、高通、带通和带阻的数字和模拟IIR滤波器,其特性为使通带内的幅度响应最大限度地平坦,但同时损失截止频率处的下降斜度。
在期望通带平滑的情况下,可使用butter函数。
butter函数的用法为:[b,a]=butter(n,Wn,/ftype/)其中n代表滤波器阶数,Wn代表滤波器的截止频率,这两个参数可使用buttord 函数来确定。
buttord函数可在给定滤波器性能的情况下,求出巴特沃斯滤波器的最小阶数n,同时给出对应的截止频率Wn。
buttord函数的用法为:[n,Wn]= buttord(Wp,Ws,Rp,Rs)其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。
当其值为1时代表采样频率的一半。
Rp和Rs分别是通带和阻带区的波纹系数。
不同类型(高通、低通、带通和带阻)滤波器对应的Wp和Ws值遵循以下规则:1.高通滤波器:Wp和Ws为一元矢量且Wp>Ws;2.低通滤波器:Wp和Ws为一元矢量且Wp<Ws;3.带通滤波器:Wp和Ws为二元矢量且Wp<Ws,如Wp=[0.2,0.7],Ws=[0.1,0.8]; 4.带阻滤波器:Wp和Ws为二元矢量且Wp>Ws,如Wp=[0.1,0.8],Ws=[0.2,0.7]。
二、切比雪夫I型IIR滤波器的设计在期望通带下降斜率大的场合,应使用椭圆滤波器或契比雪夫滤波器。
在MATLAB 下可使用cheby1函数设计出契比雪夫I型IIR滤波器。
cheby1函数可设计低通、高通、带通和带阻契比雪夫I型滤IIR波器,其通带内为等波纹,阻带内为单调。
契比雪夫I型的下降斜度比II型大,但其代价是通带内波纹较大。
cheby1函数的用法为:[b,a]=cheby1(n,Rp,Wn,/ftype/)在使用cheby1函数设计IIR滤波器之前,可使用cheblord函数求出滤波器阶数n和截止频率Wn。
cheblord函数可在给定滤波器性能的情况下,选择契比雪夫I 型滤波器的最小阶和截止频率Wn。
cheblord函数的用法为:[n,Wn]=cheblord(Wp,Ws,Rp,Rs)其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。
当其值为1时代表采样频率的一半。
Rp和Rs分别是通带和阻带区的波纹系数。
[B,A] = BUTTER(N,Wn) designs an Nth order lowpass digital Butterworth filter and returns the filter coefficients in length N+1 vectors B (numerator) and A (denominator).The cutoff frequency Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to half the sample rate.If Wn is a two-element vector, Wn = [W1 W2], BUTTER returns an order 2N bandpass filter with passband W1 < W < W2.[B,A] = BUTTER(N,Wn,'high') designs a highpass filter.[B,A] = BUTTER(N,Wn,'low') designs a lowpass filter.[B,A] = BUTTER(N,Wn,'stop') is a bandstop filter if Wn = [W1 W2]. 当设计低通和高通时,Wn是一个值,表示截止频率;当设计带通和带阻时,Wn 是一个二个元素的数组,表示通带或阻带的上下截止频率。
频率的归一化是对fs/2进行归一。
例如,fs=10000,则fs/2=5000,500归一化为0.1,1000归一化为0.2。
一个论坛上的例子:/forum/thread-72656-1-1.html fs=100;%采样频率为100Hzfc=30;%截止频率为30Hz[b,a]=butter(4,0.6,'high');[h,w]=freqz(b,a);plot(w/pi*fs/2,abs(h)); grid;title('Amplitude Response');xlabel('Frequency (Hz)'); ylabel('Amplitude');figure;x=randn(1,fs*6);y=filter(b,a,x);subplot 211; plot(x); title('Original Signal');subplot 212; plot(y); title('Output of High-pass filter');其中信号是用随机数产生的,长6s。
笫1张图是高通滤波器的幅值响应曲线,笫2张图是信号滤波前后的波形.1. buttord(1)[N,wc]=buttord(wp,ws,αp,αs)用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。
调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1。
1表示数字频率pi。
αp,αs分别为通带最大衰减和组带最小衰减(dB)。
当ws≤wp时,为高通滤波器;当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。
N,wc作为butter函数的调用参数。
(2)[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。
Ωp,Ωs,Ωc均为实际模拟角频率。
说明:buttord函数使用阻带指标计算3dB截止频率,这样阻带会刚好满足要求,而通带会有富余。
2.buttap(N)[z0,p0,k0]=buttap(N)用于计算N阶巴特沃斯归一化(3dB截止频率Ωc=1)模拟低通原型滤波器系统函数的零、极点和增益因子。
说明:如果要从零、极点模型得到系统函数的分子、分母多项式系数向量ba、aa,可调用[B,A]=zp2tf(z0,p0,k0)3.butter(1)[b,a]=butter(N,wc,‘ftype’)计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。
调用参数N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于pi归一化),一般是调用buttord(1)格式计算N和wc。
系数b、a是按照z-1的升幂排列。
(2)[B,A]=butter(N,Ωc,‘ftype’,‘s’)计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa。
调用参数N和Ωc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际角频率),可调用buttord(2)格式计算N和Ωc。
系数B、A按s的正降幂排列。
tfype为滤波器的类型:◇ftype=high时,高通;Ωc只有1个值。
◇ftype=stop时,带阻阻;此时Ωc=[Ωcl,Ωcu],分别为带阻滤波器的通带3dB 下截止频率和上截止频率。
◇ ftype缺省时:若Ωc只有1个值,则默认为低通;若Ωc有2个值,则默认为带通;其通带频率区间Ωcl < Ω < Ωcu。
注意:所设计的带通和带阻滤波器系统函数是2N阶。
因为带通滤波器相当于N阶低通滤波器与N阶高通滤波器级联。