实验 3 无限冲激响应滤波器(IIR)算法实验

合集下载

IIR数字滤波器设计实验报告

IIR数字滤波器设计实验报告

实验三IIR数字滤波器设计实验报告一、实验目的:1.通过仿真冲激响应不变法和双线性变换法2.掌握滤波器性能分析的基本方法二、实验要求:1.设计带通IIR滤波器2.按照冲激响应不变法设计滤波器系数3. 按照双线性变换法设计滤波器系数4. 分析幅频特性和相频特性5. 生成一定信噪比的带噪信号,并对其滤波,对比滤波前后波形和频谱三、基本原理:㈠IIR模拟滤波器与数字滤波器IIR数字滤波器的设计以模拟滤波器设计为基础,常用的类型分为巴特沃斯(Butterworth)、切比雪夫(Chebyshev)Ⅰ型、切比雪夫Ⅱ型、贝塞尔(Bessel)、椭圆等多种。

在MATLAB信号处理工具箱里,提供了这些类型的IIR数字滤波器设计子函数。

(二)性能指标1.假设带通滤波器要求为保留6000hz~~7000hz频段,滤除小于2000hz和大宇9000hz频段2.通带衰减设为3Db,阻带衰减设为30dB,双线性变换法中T取1s.四、实验步骤:1.初始化指标参数2.计算模拟滤波器参数并调用巴特沃斯函数产生模拟滤波器3.利用冲激响应不变法和双线性变换法求数字IIR滤波器的系统函数Hd (z)4.分别画出两种方法的幅频特性和相频特性曲线5.生成一定信噪比的带噪信号6.画出带噪信号的时域图和频谱图6.对带噪信号进行滤波,并画出滤波前后波形图和频谱图五、实验结果模拟滤波器的幅频特性和相频特性:101010101Frequency (rad/s)P h a s e (d e g r e e s )1010101011010-5100Frequency (rad/s)M a g n i t u d e在本实验中,采用的带通滤波器为6000-7000Hz ,换算成角频率为4.47-0.55,在上图中可以清晰地看出到达了题目的要求。

冲击响应不变法后的幅频特性和相频特性:0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )双线性变换法的幅频特性和相频特性:0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )通过上图比较脉冲响应不变法双线性变换法的幅频特性和相频特性,而在在幅频曲线上几乎没有差别,都能达到相同的结果。

无限冲激响应(IIR)数字滤波器的三种结构

无限冲激响应(IIR)数字滤波器的三种结构

一、实验目的1、掌握IIR 滤波器的直接II 型、级联型和并联型三种结构的基本原理和特点。

2、掌握利用MATLAB 实现IIR 滤波器的三种结构的程序设计方法,并能够进行三者之间的相互转换。

3、掌握滤波器频响特性的绘制方法。

二、实验原理与计算方法按照结构划分数字滤波器,有递归式和非递归式两种。

递归式数字滤波器的差分方程为∑∑==-=-+Mi i Nk ki n x b k n y an y 11)()()((1)其中至少有一个0≠k a .非递归式数字滤波器的差分方程为∑=-=Mi i i n x b n y 1)()( (2)可以看出递归式数字滤波器的响应)(n y 不仅与激励)(n x 有关,而且与以前的输出信号)(k n y -有关;而非递归式数字滤波器的响应)(n y 仅只与激励)(n x 有关。

按照单位样值响应划分数字滤波器,则有无限冲激响应(IIR)和有限冲激响应(FIR)之分。

IIR 滤波器是递归式的,差分方程如(1)式所示,FIR 滤波器一般是非递归式的,差分方程如(2)式所示。

IIR 滤波器常用的典型结构有直接II 型、级联型和并联型,分别介绍如下: 1、直接II 型(也称为正准型结构) 根据(1)式,IIR 滤波器的传输函数为∑∑=-=--=Nk kk Nk kkzazb z H 101)( (3)其中已假设(1)式中的M N =,对于其它情况,则可令相应的某些系数为零。

令 11)( ,)(1201∑∑=-=--==Nk kk Nk k k z az H z b z H则有)()()(21z H z H z H = (4) 由此可以得到相应的时域中激励)(n x 与响应)(n y 之间的关系为∑∑==-=+-=Nk kNk kk n y bn y n x k n y an y 02122)()()()()( (5)其中)(2n y 是与(4)式中的)(2z H 相应的中间函数序列。

第二篇 实验三IIR滤波器设计

第二篇 实验三IIR滤波器设计

第二篇实验三IIR滤波器设计实验目的:根据处理信号的要求设计各种滤波器,并观察滤波效果,掌握IIR滤波器设计方法。

实验要求:现有一个信号:x(n)=1+cos(π*n/4)+ cos(2*π*n/3)设计及各种数字滤波器以达下列目的:低通滤波器,滤除cos(2*π*n/3) 的成分,即想保留的成分为1+cos(π*n/4) 高通滤波器,滤除1+cos(π*n/4) 的成分,即想保留的成分为cos(2*π*n/3) 带通滤波器,滤除1+cos(2*π*n/3) 的成分,即想保留的成分为cos(π*n/4) 带阻滤波器,滤除cos(π*n/4) 的成分,即想保留的成分为1+cos(2*π*n/3)1. 用MATLAB命令butterord求除滤波器的阶数,用命令butter设计各滤波器;画出滤波器幅度和相频相应;取各滤波器的系统函数H(z)。

2.详细列出各IIR滤波器的设计步骤。

3. 写出IIR滤波器的设计原理。

实验内容:IIR滤波器的设计通常是借助于模拟滤波器的设计方法来进行的。

这是因为当离散时间滤波器出现之前连续时间滤波器的设计方法已常成熟,而且实现IIR 滤波器的非迭代直接设计法比较困难。

设计IIR数字滤波器的任务就是寻求一个因果物理可实现的系统函数:使它的响应H(exp(jΩ))=H(z)满足所希望得到的频域指标,即符合给定的通带衰耗、阻带衰耗、通带截频和阻带截频。

设计IIR数字滤波器的方法有间接法、直接法和计算机辅助法等。

这里常用的是根据频响指标,设计出相应的模拟滤波器H(s),再通过脉冲响应不变法或双线性法转换成数字滤波器H(z)。

其过程如图:双线性不变法频域指标设计模拟滤波器数字滤波器脉冲响应不变法①设计模拟滤波器:首先把数字指标转换成相应的模拟指标,然后设计符模拟指标的滤波器。

②从模拟滤波器变换到数字滤波器:当完成模拟滤波器设计,求得归一化系统函数Ha(s)以后,可以根据给定的技术指标恰当的选取从模拟域到数字域的映射方法。

iir滤波器实验报告

iir滤波器实验报告

iir滤波器实验报告IIR滤波器实验报告引言:数字信号处理是现代通信、音频处理和图像处理等领域中不可或缺的技术。

滤波器作为数字信号处理的重要组成部分,被广泛应用于信号去噪、频率分析和信号重建等方面。

本实验旨在通过设计和实现一个IIR滤波器,探究其在信号处理中的应用和性能。

一、背景知识1.1 数字滤波器数字滤波器是一种能够改变信号频率特性的系统,可以通过去除或增强特定频率的成分来实现信号处理的目的。

根据其传递函数的特点,数字滤波器可以分为FIR(有限脉冲响应)和IIR(无限脉冲响应)滤波器。

1.2 IIR滤波器IIR滤波器是一种具有无限脉冲响应的滤波器,其传递函数中包含了反馈回路。

相比于FIR滤波器,IIR滤波器具有更窄的转换带宽和更陡峭的滚降特性,能够更好地逼近理想滤波器的频率响应。

二、实验目的本实验旨在通过设计和实现一个IIR滤波器,探究其在信号处理中的应用和性能。

具体实验目标如下:1. 理解IIR滤波器的原理和设计方法;2. 掌握IIR滤波器的设计过程和参数选择;3. 分析IIR滤波器在不同输入信号下的性能表现。

三、实验设计与实施3.1 IIR滤波器的设计在本实验中,我们选择了巴特沃斯滤波器作为IIR滤波器的设计模型。

巴特沃斯滤波器具有最平坦的幅频响应特性和最小的群延迟,适用于许多实际应用场景。

首先,我们需要确定滤波器的阶数和截止频率。

阶数决定了滤波器的复杂度和性能,而截止频率则决定了滤波器的频率响应特性。

根据实际需求和信号特性,我们选择了一个二阶巴特沃斯低通滤波器,截止频率为1kHz。

其次,根据巴特沃斯滤波器的设计公式,我们可以计算出滤波器的传递函数和巴特沃斯极点的位置。

通过极点的选择和配置,我们可以调整滤波器的频率响应和滚降特性。

3.2 IIR滤波器的实施根据设计得到的传递函数和极点位置,我们可以使用MATLAB等工具进行IIR滤波器的实施和验证。

具体步骤如下:1. 根据巴特沃斯滤波器的传递函数公式,计算出滤波器的系数;2. 使用MATLAB的filter函数,将待处理的信号输入滤波器,得到滤波后的输出信号;3. 对比输入和输出信号的频谱特性,分析滤波器的性能。

实验三 IIR数字滤波器设计及实现

实验三  IIR数字滤波器设计及实现

实验三 IIR 数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计IIR 数字滤波器的原理与方法;(2)学会调用MATLAB 信号处理工具箱中滤波器设计函数设计IIR 数字滤波器,学会根据滤波需求确定滤波器指标参数。

二、实验原理设计IIR 数字滤波器一般采用脉冲响应不变法和双线性变换法。

1. 脉冲响应不变法的变换原理与步骤从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应模仿模拟滤波器的冲击响应,即h (n )是h a (t )的采样值。

设T 为采样周期,变换过程:如果模拟滤波器的系统函数只有单阶极点,且分母的阶数高于分子阶数,用脉冲响应不变法求数字滤波器的系统函数有简便方法:将 H a (s ) 展成部分分式的并联形式,再利用下述变换公式直接写出 H (z )2. 双线性变换法的变换原理和步骤 (1)保证s 平面压缩到s 1平面的宽为2π/T 的横带内(2)保证低频部分基本对应根据要求,确定数字滤波器指标。

如是模拟频率临界点,则要先转变)()()()(z H n h t h s H ZT nT t a ILT a −→−−−→−−→−=1111)( )(-==-=⇒-=∑∑z eTA z H s s A s H T s k N k k k N k a k )2tan()2tan(1ωC T C =Ω=ΩTC T C T C 2 2)2tan(11=Ω⋅≈Ω⋅=Ω成数字频率,以便预畸变处理。

将数字指标转换成与Ha (s )对应的模拟性能指标。

设计模拟滤波器的系统函数Ha (s ) 。

将映射关系代入Ha (s )中得数字滤波器系统函数H (z ) 。

由于数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标进行归一化处理。

设采样频率为Fs ,归一化频率的计算公式是:2/)()/(Fs Hz Fs s rad 实际模拟频率实际数字频率实际模拟角频率归一化频率==⨯=ππ利用典型法设计数字滤波器的步骤:1、将设计指标归一化处理。

无限脉冲响应数字滤波器IIR设计

无限脉冲响应数字滤波器IIR设计

无限脉冲响应数字滤波器(IIR )设计所谓的数字滤波,指的是输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分。

数字滤波可分为无限脉冲响应(IIR )滤波和有限脉冲响应(FIR )滤波。

本次试验利用VISUAL DSP++ 软环境SIMULATOR 模拟实现无限脉冲响应(IIR )数字信号处理。

无限脉冲响应(IIR)的系统函数为:1()1Mrrr N kk k bz H Z a z-=-==+∑∑ 公式1即如果输入为X(Z),输出为Y(N),则:Y(Z)= X(Z )×H(Z),即01()()1Mrr r N kk k b zY Z X Z a z -=-==+∑∑ 公式2本试验中利用的公式是对上面的公式2对了相应的形式变化,利用中间变量11()()1Nkk k W Z X Z a z -==+∑ 公式3那么()()Mr r r Y Z W N b z -==∑ 公式4因此,本次试验设计了一个4阶IIR 滤波,其对应的公式3和公式4的时域公式如下:W(n)=x(n)*scale+w(n-1)*a1+w(n-2)*a2+w(n-3)*a3+w(n-4)*a4;公式5y(n)=w(n)+w(n-1)*b1+w(n-2)*b2+w(n-3)*b3+w(n-4)*b4;公式6在本次设计中由于系数a4,a3,a2,a1,b4,b3,b2,b1都是用户自己初始化的时候给定的且均为常数,所以公式5和公式6也相应可以变为公式7和公式8:W(n)=x(n)*scale+w(n-1)*a4+w(n-2)*a3+w(n-3)*a2+w(n-4)*a1 公式7 y(n)=w(n)+w(n-1)*b4+w(n-2)*b3+w(n-3)*b2+w(n-4)*b1 公式8其中x(n)是输入的数字序列。

从公式5和公式6可知:只要我们设定设计需要的a4,a3,a2,a1,b4,b3,b2,b1,以及初始化w(n-1), w(n-2), w(n-3), w(n-4),就可以得到我们所需要的滤波器了。

实验3 无限冲激响应数字滤波器设计

实验3 无限冲激响应数字滤波器设计

实验3 无限冲激响应数字滤波器设计一、实验目的掌握双线性变换法及冲激响应不变法设计IIR数字滤波器的具体设计方法及其原理;熟悉用双线性变换法及冲激响应不变法设计低通、高通和带通IIR数字滤波器的计算机编程。

二、实验编程函数在MATLAB中,可以用下列函数辅助设计IIR数字滤波器:1)利用buttord和cheblord可以确定低通原型巴特沃斯和切比雪夫滤波器的阶数和截止频率;2)[num,den]=butter(N,Wn)(巴特沃斯);3)[num,den]=cheby1(N,Wn),[num,den]=cheby2(N,Wn)(切比雪夫1型和2型)可以进行滤波器的设计;4)lp2hp,lp2bp,lp2bs可以完成低通滤波器到高通、带通、带阻滤波器的转换;5)使用bilinear可以对模拟滤波器进行双线性变换,求得数字滤波器的传输函数系数;6)利用impinvar可以完成冲激响应不变法的模拟滤波器到数字滤波器的转换。

注:双线性变换法通过将数字频率ω的取值范围从0到π对应到模拟频率Ω到的范围0,也就对应于模拟域中所有可能的频率值。

双线性变换法不会出∞现频率混叠,但非线性关系却导致数字滤波器的频率响应不能逼真地模仿模拟滤波器的频率响应。

冲激响应不变法通过选择满足设计要求的模拟滤波器单位冲激响应h(t)的采样值的h(n),得到的被采样的冲激响应将给出与原模拟滤波器非常相近的滤波器形状。

由于该方法不可避免的要发生频率混叠现象,所以只适合设计低通和带通滤波器。

三、实验内容1.设采样周期T=250μs,用冲激响应不变法和双线性变换法设计一个三阶巴特沃斯滤波器,其3dB边界频率为fc =1kHz。

[B,A]=butter(3,2*pi*1000,'s');[num1,den1]=impinvar(B,A,4000);[h1,w]=freqz(num1,den1);[B,A]=butter(3,2/0.00025,'s');[num2,den2]=bilinear(B,A,4000);[h2,w]=freqz(num2,den2);f=w/pi*2000;plot(f,abs(h1),'-.',f,abs(h2),'-');grid;xlabel('频率/Hz ')ylabel('幅值/dB')程序中第一个butter的边界频率2π×1000,为冲激响应不变法原型低通滤波器的边界频率;第二个butter的边界频率2/T=2/0.00025,为双线性变换法原型低通滤波器的边界频率.图1给出了这两种设计方法所得到的频响,虚线为冲激响应不变法的结果;实线为双线性变换法的结果。

实用文库汇编之实验 3 无限冲激响应滤波器(IIR)算法实验

实用文库汇编之实验 3 无限冲激响应滤波器(IIR)算法实验

*实用文库汇编之实验3 :无限冲激响应滤波器(IIR)算法实验一、实验目的*1. 熟悉IIR 数字滤波器特性;2.掌握IIR数字滤波器的设计过程;3.掌握 IIR 数字滤波器性能测试方法。

二、实验设备1.PC 兼容机2.WIN7 操作系统3.Code Composer Studio v5三、实验内容1.掌握IIR数字滤波器的基础理论;2.基于MATLAB的IIR数字滤波器参数确定方法;3.采用C语言编程实现低通IIR 滤波器;4.掌握基于CCS的波形观察方法;观察滤波前后的波形变化。

四.实验原理分析要求:使用低通巴特沃斯滤波器,设计通带截止频率f p为1kHz、增益为-3dB,阻带截止频率f st为12kHz、衰减为30dB,采样频率f s为25kHz。

设计:通带截止频率为:f p = 1000Hz,f st = 12000Hz(一)、滤波器参数计算●模拟预畸变通带截止频率为: w p = 2f s tan(2πf p/(2f s)) =6316.5 弧度/秒●模拟预畸变阻带截止频率为:w st = 2f s tan(2πf st/(2f s)) = 794727.2 弧度/秒由式(7.5.24)●N = 0.714,则:一阶巴特沃斯滤波器就足以满足要求。

一阶模拟巴特沃斯滤波器的传输函数为: H(s)=w p/(s+w p)=6316.5/(s+6316.5)由双线性变换定义 s=2f s(z-1)/(z+1)得到数字滤波器的传输函数为:因此,差分方程为: y[n]=0.7757y[n-1]+0.1122x[n]+0.1122x[n-1]。

(二)、基于MATLAB的滤波器参数求解(1)IIR数字滤波器阶次的选择的MATLAB函数[N,w c] = buttord(w p,w st,Rp,As);[N,w c] = cheb1ord(w p,w st,Rp,As);[N,w c] = cheb2ord(w p,w st,Rp,As);[N,w c] = ellipord(w p,w st,Rp,As);对低通滤波器,必须有w p < w st对高通滤波器,必须有w p > w st对带通滤波器,必须有 w s1 < w p1 < w p2 < w s2对带阻滤波器,必须有 w p1 < w s1 < w s2 < w p2(2) IIR数字滤波器的设计[b,a] = butter(N,wc,’ftype’)[b,a] = cheby1(N,wc,’ftype’)[b,a] = cheby2(N,wc,’ftype’)[b,a] = ellip(N,wc,’ftype’)(三)、基于C语言编程的IIR 数字滤波器编程实现程序流程图五.实验步骤1.打开 CCS,进入 CCS 的操作环境。

无限冲激响应(IIR)数字滤波器设计

无限冲激响应(IIR)数字滤波器设计

实验四 无限冲激响应(IIR )数字滤波器设计一、实验目的1.熟悉用双线性变换法设计IIR 数字滤波器的原理和方法;2.了解用脉冲响应不变法设计IIR 数字滤波器的原理和方法;3.掌握双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点;4.掌握数字滤波器的计算机仿真方法;二、实验原理介绍IIR 数字滤波器的系统函数为1z -的有理分式: 1011()1N kk Nk k b z H z a z -=-==+∑∑ 设计IIR 滤波器的系统函数,就是要确定()H z 的阶数N 及分子分母多项式的系数k a 和k b ,使其()()j j z e H e H z ωω==满足指定的频率特性。

由于模拟滤波器的设计有许多简单而严谨的设计公式和大量的图表可以利用,因此IIR 滤波器设计的方法之一是:先设计一个合适的模拟滤波器,然后将模拟滤波器通过适当的变换转换成满足给定指标的数字滤波器。

1、Butterworth 模拟低通滤波器221()1a N c H j Ω=⎛⎫Ω+ ⎪Ω⎝⎭幅度平方函数:其中,N 为滤波器的阶数,c Ω为通带截止频率。

2.Chebyshev 模拟低通滤波器 2221()1()a N c H j C εΩ=Ω+Ω幅度平方函数:3、脉冲响应不变法原理 用数字滤波器的单位脉冲响应序列h(n)逼近模拟滤波器的冲激响应()a h t ,让h(n)正好等于()a h t 的采样值,即:()()a h n h nT =其中,T 为采样间隔。

如果以()a H s 和H(z)分别表示()a h t 的拉氏变换及h(n)的Z 变换,则:12ˆ()()sT a a z e k H z H s H s j k T T π∞==-∞⎛⎫==- ⎪⎝⎭∑4、双线性变换法原理双线性变换法是通过两次映射采用非线性频率压缩的方法,将整个频率轴上的频率范围压缩到±π/T 之间,再用sTz e =转换到z 平面上,从而使数字滤波器的频率响应与模拟滤波器的频率响应相似。

实验-3-无限冲激响应滤波器(IIR)算法实验

实验-3-无限冲激响应滤波器(IIR)算法实验

实验-3-无限冲激响应滤波器(IIR)算法实验介绍滤波器是数字信号处理非常重要的一个概念,用来去除信号中不需要的部分,保留信号中需要的部分。

在数字信号处理中,有两种类型的滤波器:有限冲激响应滤波器(FIR)和无限冲激响应滤波器(IIR)。

本次实验将使用IIR算法实现滤波器。

IIR滤波器是一种递归滤波器,输出序列由输入序列和输出序列的线性组合得到。

实验目标本次实验的主要目标是掌握IIR滤波器算法实现过程,熟悉IIR滤波器的基本结构和原理,并实现IIR滤波器的设计和效果验证。

实验步骤1.确定IIR滤波器的结构和参数。

IIR滤波器有多种不同的结构,包括直接I型IIR结构、直接II型IIR结构、级联结构和平行结构等。

本次实验将使用直接I型IIR结构,结构参数包括两个系数a和b。

2.计算IIR滤波器的系数a和b。

根据设计要求,计算得到IIR滤波器的系数a和b。

系数的选择会影响滤波器的性能,需要根据具体的应用场景进行选择。

3.编写IIR滤波器的代码。

使用计算得到的系数a和b实现IIR滤波器的代码,并测试代码的正确性。

4.测试IIR滤波器的效果。

使用已有的信号对IIR滤波器进行测试,观察滤波器的输出效果。

本次实验实现了IIR滤波器算法,并通过测试验证了滤波器的正确性和效果。

实验结果表明,IIR滤波器在实际应用中具有良好的滤波性能和可靠性,可以有效地对信号进行去噪和滤波处理。

参考文献1.刘嘉辰. 数字信号处理[M]. 清华大学出版社, 2014.2.Lyons R. Understanding digital signal processing[M]. PearsonEducation, 2016.3.Oppenheim A V,Schafer R W. Discrete-time signal processing[M].Prentice Hall, 1999.。

DSP无限冲击相应滤波器(IIR)算法实验

DSP无限冲击相应滤波器(IIR)算法实验

DSP实验报告院系:哈尔滨理工大学荣成校区专业:电子信息工程实验四无限冲击相应滤波器(IIR)算法实验一、实验目的1、熟悉设计IIR数字滤波器的原理与方法2、掌握数字滤波器的计算机仿真方法;3、通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。

二、实验设备计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。

三、实验原理1、无限冲击响数字滤波器的基础理论;2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器);3、双线性变换的设计原理。

四、实验步骤1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识;2、阅读本实验所提供的样例子程序;3、运行CCS软件,对样例程序进行跟踪,分析结果;4、填写实验报告。

5、样例程序实验操作说明A.实验前准备①实验箱和CPU板设置:SW2的2、4置ON,1、3置OFF;S2全部置ON;JP3开关的3、6位置ON,其余置off,S23全部置OFF。

②用导线连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”;B.实验启动CCS 3.1,打开工程文件exp03_iir。

在程序中m=0处设置断点,运行打开一个图形观察窗口;设置双综观察在起始地址x、y,数值变化为256,32位浮点型变量。

五、实验结果及代码实验代码#define UCHAR unsigned char#define UINT16 unsigned int#define UINT32 unsigned long#define TRUE 1#define FALSE 0//---------------------------------------------------------//----------------定义寄存器地址--------------#define IODIR_ADDR 0x3400#define IODATA_ADDR 0x3401//---------------定义寄存器操作--------------#define IODIR *(ioport unsigned int *)IODIR_ADDR#define IODATA *(ioport unsigned int *)IODATA_ADDR#define IER0 (*(volatile unsigned int*)0x0000) //Interrupt Enable Register 0 #define IFR0 (*(volatile unsigned int*)0x0001) //Interrupt Flag Register 0 #define IER1 (*(volatile unsigned int*)0x0045) //Interrupt Enable Register 1 #define IFR1 (*(volatile unsigned int*)0x0046) //Interrupt Flag Register 1#define AD_Addr 0x20008#define AD_in (*(unsigned int *)AD_Addr) //AD输入//----------------------------------------------------------/* 全局变量定义*///---------------------------------------------------------#define Len 256#define FLen 51#define pi 3.1415927//-----------------------------------------------------------void int2ReadData();interrupt void int1_isr();void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[]);//-----------------------------------------------------------double fs,nlpass,nlstop,nhpass,nhstop,a[3],b[3],x[Len],y[Len];int in_x[Len];int m = 0;int intnum = 0;double xmean=0;int n=0;int i,j,p,k=0;double w2,w1,w0;//--------------------------------------------------------------------// 函数名称:void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[])// 函数说明:// 输入参数:// 输出参数: 无//--------------------------------------------------------------------void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[]) {int i,u,v;double wp,omp,gsa,t;wp=nlpass*2*pi;omp=tan(wp/2.0);gsa=omp*omp;for (i=0; i<=2; i++){u=i%2;v=i-1;a[i]=gsa*pow(2,u)-sqrt(2)*omp*v+pow(-2,u);}for (i=0; i<=2; i++){ u=i%2;b[i]=gsa*pow(2,u);}t=a[0];for (i=0; i<=2; i++){ a[i]=a[i]/t;b[i]=b[i]/t;}}//************************************************************** void main(){//--------初始化参数---------------------------------------w2=w1=w0=0.0;fs = 250000;nlpass = 0.08;nlstop = 0.28;biir2lpdes(fs,nlpass,nlstop,a,b);Sys_Initial();IODIR|=0x0080; //设置IO口中GPIO7为输出IODATA|=0x0080; //设置GPIO7输出高电平IODIR|=0x0040; //设置IO口中GPIO6为输出IODATA&=0x00bf; //设置GPIO6输出低电平IODIR|=0x0010; //设置IO口中GPIO4为输出IODATA&=0x00ef; //设置GPIO4输出低电平IFR0 = IFR0;IFR1 = IFR1; //清除中断标志IER0 = 0;IER1 = 0; //禁止所有可屏蔽中断IER1|= 0x0001; //使能外部中断1asm( " bit(ST1,#11) = #0 "); //打开总中断//-----------等待AD7822中断--------------------------while(1){asm(" nop ");}}//********************************************** //- 函数名称: interrupt void int1_isr()//- 函数说明://- 输入参数: 无//- 输出参数: 无//- 补充说明://********************************************* interrupt void int1_isr(){in_x[m] = AD_in;in_x[m] &= 0x00FF;m++;intnum = m;if (intnum == Len){intnum = 0;xmean = 0.0;for (i=0; i<Len; i++){xmean = in_x[i] + xmean;}xmean = 1.0*xmean/Len;for (i=0; i<Len; i++){x[i] = 1.0*(in_x[i] - xmean);}for (i=0; i<Len; i++){w2 = x[i]-a[1]*w1-a[2]*w0;y[i] = b[0]*w2+b[1]*w1+b[2]*w0;w0 = w1;w1 = w2;}m=0; //在这里设置断点}}。

IIR数字滤波器设计及实现

IIR数字滤波器设计及实现

实验三IIR数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。

二、实验原理设计IIR数字滤波器一般采用脉冲响应不变法和双线性变换法。

脉冲响应不变法:根据设计指标求出滤波器确定最小阶数N和截止频率Wc;计算相应的模拟滤波器系统函数;将模拟滤波器系统函数:'转换成数字滤波器系统函数双线性变换法:根据数字低通技术指标得到滤波器的阶数N;取合适的T值,几遍校正计算相应模低通的技术指标--;根据阶数N查表的到归一化低通原型系统函数。

,将"' Q 代入。

‘去归一化得到实际的,/ :' ;用双线性变换法将:’转换成数字滤波器三、实验内容及步骤1、用脉冲响应不变法设计(1)根据设计指标求出滤波器确定最小阶数N和截止频率Wcclear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数Wn 得到结果为:N 二7Wn 二 0.3266 即:该设计指标下的模拟滤波器最小阶数为N=7,其截至频率为Wn =0.3266;(2)计算相应的模拟滤波器系统函数打:, clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数 Wn[B,A]=butter(N,1,'s' %计算相应的模拟滤波器系统函数得到结果为: B = 1.0e-003 * 0 00 0 0 0 0 0.3966 A =1.0000 1.4678 1.0773 0.5084 0.1661 0.0375 0.0055 0.0004 >>(3)将模拟滤波器系统函数转换成数字滤波器系统函数 clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数Wn[B,A]=butter(N,1,'s' ; %计算相应的模拟滤波器系统函数 [Bz,Az]=impinvar(B,A %用脉冲相应不变法将模拟滤波器转换成数字滤波器 sys=tf(Bz,Az,T; %得到传输函数‘‘‘‘‘ Bz =1.0e-004 *-0.0000 0.0045 0.2045 0.8747 0.7094 0.1090 0.0016 0Az =1.0000 -5.5415 13.2850 -17.8428 14.4878 -7.1069 1.9491 -0.2304>>>>即:由Bz和Az可以写出数字滤波器系统函数为:Transfer function:-9.992e-015 z~7 + 4.454e-007 z~6 + 2.045e-005 z~5 + 8.747e-005 z~4 + 7.094e-005 z"3 + 1.09e-005 z~2+ 1.561e-007 z z 7 - 5.541 z 6 + 13.28 z 5 - 17.84 z 4 + 14.49 z 3 - 7.107 z 2 + 1.949 z - 0.2304Sampling time: 4.5351e-005>>(4)绘图clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth 的最小阶数N 和频率参数Wn[B,A]=butter(N,Wn,'s'; %计算相应的模拟滤波器系统函数[Bz,Az]=impinvar(B,A; %用脉冲响应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T;%得到传输函数‘ [H,W]=freqz(Bz,Az,512,Fs; % 生成频率响应参数plot(W,20*log10(abs(H; % 绘制幅频响应grid on; %加坐标网格得到结果为:观察实验结果图可看到:在频率为3402Hz处频率为衰减2.015db,在频率为5017Hz处幅度衰减21.36db。

实验五、无限冲激响应(IIR)数字滤波器的设计

实验五、无限冲激响应(IIR)数字滤波器的设计

实验四、无限冲激响应(IIR)数字滤波器的设计一、实验目的1、熟悉用双线性变换法设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法。

2、掌握用Matlab软件设计流程。

二、实验设备微型计算机、Matlab7.0教学版三、实验原理数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。

数字滤波器有多种分类,根据数字滤波器冲击响应的时域特征,可以将数字滤波器分为两种,即无限长冲击响应滤波器(IIR)和有限长冲激响应滤波器(FIR)。

在MATLAB中,可以通过调用simulink中的功能模块,可以构成数字滤波器的仿真框图。

在仿真过程中,双击各个功能模块,随时改变参数,获得不同状态下的仿真结果。

四、实验内容(1)用fdatool设计一个IIR低通滤波器(具体参数不要求)(2)并用simulink 仿真(3)对滤波器输入一个含噪信号并能观察到滤波前后的波形(4)对结果进行分析。

五、实验结果1、Simulink仿真原理图2、Filter参数设置3、滤波效果Scope Scope1Scope2六、实验总结通过这次实验,我熟悉用双线性变换法设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法。

熟悉和了解了simulink仿真的真个过程。

Simulink中各种非常有用的工具箱不仅对于设计IIR数字滤波器非常有用,而且对于整个型号仿真处理具有相当可视化的效果,从仿真的角度看,是达到了技术指标的要求。

Simulink是一个进行动态系统建模、仿真和综合分析的集成软件包。

它可以处理的系统包括:线性、非线性系统:离散、连续及混合系统;单任务、多任务离散时间系统。

iir滤波器设计实验报告

iir滤波器设计实验报告

iir滤波器设计实验报告IIR滤波器设计实验报告一、实验目的本实验旨在通过实际操作,掌握IIR滤波器的基本设计方法,了解滤波器性能参数对滤波效果的影响,加深对滤波器理论的理解。

二、实验原理IIR滤波器(Infinite Impulse Response)是一种离散时间滤波器,其系统函数具有无限长的时间响应。

IIR滤波器设计方法主要包括冲激响应不变法和双线性变换法。

本实验采用冲激响应不变法进行设计。

三、实验步骤1. 确定滤波器性能参数:根据实际需求,确定滤波器的类型(低通、高通、带通、带阻)、通带边缘频率、阻带边缘频率、通带波动和阻带衰减等性能参数。

2. 计算滤波器系数:根据冲激响应不变法,利用Matlab编程计算滤波器系数。

具体过程包括定义系统函数、计算冲激响应、计算频率响应等步骤。

3. 编写滤波器程序:根据计算出的滤波器系数,编写IIR滤波器程序。

程序应实现输入信号的滤波处理,并输出滤波后的信号。

4. 测试滤波器性能:对编写的滤波器程序进行测试,观察其滤波效果,分析性能参数对滤波效果的影响。

5. 优化滤波器性能:根据测试结果,对滤波器性能参数进行调整,优化滤波效果。

四、实验结果及分析通过本次实验,我们成功地设计并实现了IIR滤波器。

在测试过程中,我们观察到了滤波器对不同频率信号的过滤效果,并分析了性能参数对滤波效果的影响。

具体来说,通带边缘频率决定了滤波器对低频信号的过滤程度,阻带边缘频率则影响对高频信号的过滤程度。

通带波动和阻带衰减则分别反映了滤波器在通带和阻带的波动程度和衰减程度。

通过对这些性能参数的调整,我们可以实现对不同类型信号的有效过滤。

五、实验总结通过本次实验,我们深入理解了IIR滤波器的工作原理和设计方法,掌握了Matlab编程在滤波器设计中的应用。

实验过程中,我们不仅学会了如何根据实际需求选择合适的性能参数,还学会了如何调整这些参数以优化滤波效果。

此外,我们还观察到了不同性能参数对滤波效果的影响,加深了对滤波器理论的理解。

实验三 IIR数字滤波器设计

实验三  IIR数字滤波器设计

IIR滤波器设计
由于它的脉冲响应序列h(n)是无限长的,称为无限长
冲激响应滤波器。
IIR滤波器的设计根据滤波器某些性能指标要求,设计
滤波器的分子和分母多项式。
设计方法:
模拟滤波器变换法(经典设计法) 直接设计法 参数模型设计法 最大平滑滤波器设计法
IIR设计方法比较
借助模拟filter的设计方法(经典设计法)
根据给定的滤波器指标,设计一款滤波器 例1:基于冲激响应不变法的IIR数字切比雪夫低 通滤波器设计。 条件:Ωs=2π*1.5* 10 4 rad/sec, Ωp=2π*1.85*
10 3 rad/sec,
10 3 rad/sec,
Ωst=2π*3.35*
δ1≤1dB,δ2≥35dB。
Wp=1850*2*pi; Ws=3350*2*pi; %滤波器截止频率 Rp=1; Rs=35; %通带波纹和阻带衰减 Fs=15000; %采样频率 Nn=128; %调用freqz所用的频率点数
figure(1) [H,f]=freqz(bz,az,Nn,Fs); subplot(2,1,1),plot(f,20*log10(abs(H))) xlabel('频率/Hz');ylabel('振幅/dB');grid on; subplot(2,1,2),plot(f,180/pi*unwrap(angle(H))) xlabel('频率/Hz');ylabel('相位/^o');grid on;
[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs,'s'); [z,p,k]=cheb2ap(N,Rs); [Bap,Aap]=zp2tf(z,p,k); [b,a]=lp2lp(Bap,Aap,Wn); %运用冲激响应不变法将模拟滤波器转化成数字滤波器 [bz,az]=impinvar(b,a,Fs);

无限冲激响应滤波器(IIR)算法硬件实现DSP论文

无限冲激响应滤波器(IIR)算法硬件实现DSP论文

摘要20世纪60年代以来,随着大规模集成电路、数字计算机等信息技术的飞速发展,数字信号处理(Digital Signal Processing, DSP)技术应运而生并得到快速发展。

在过去的20多年时间里,DSP在理论和应用方面不断地进步和完善,在越来越多的应用领域中迅速取代传统的模拟信号处理方法,并开辟出出许多新的应用领域。

目前数字信号处理技术已经在通信、雷达、航空航天、工业控制、生物医学控制、生物医学工程、网络及家电领域得到极为广泛的应用,数字化时代正在到来。

1928年,美国德州仪器公司(Texas Instruments Incorporation,简称TI公司)推出该公司的第一款DSPs芯片,很快DSPs芯片就以其数字器件特有的稳定性、可重复性、可大规模集成和易于实现DSP算法等优点,为数字信号处理技术带来了更大的发展和应用前景。

采用各种类型DSPs实现系统的数字化处理和控制已经成为未来发展的趋势,并且睡着DSPs运算能力的不断提高,数字信号处理的研究重点由最初的非实用转向高速实时应用。

本文主要是应用TI公司生产的一款芯片TMS320F2812 DSPs来实现无限冲击响应滤波器(IIR)算法。

本文的主要工作可归结如下:1、介绍无限冲激响应滤波器(IIR)实现的原理。

2、详细分析无限冲激响应滤波器(IIR)算法。

3、画出无限冲激响应滤波器(IIR)实现的硬件框图及软件流程图。

4、实验调试过程及步骤。

5、分析在CCS软仿真及硬仿真环境下实验结果。

6、反汇编一个小程序及对DSPs实现IIR算法理解。

7、对学习DSPs理论课及做实验的心得体会。

通过软件仿真及硬件实现结果表明,用DSPs实现无限冲激响应滤波器(IIR)算法能够很好的达到预期的效果。

关键词:IIR, , DSPs, 无限冲激响应,CCS,滤波器引言硬件实现无限冲激响应滤波器(IIR)算法有多种方法,本文介绍用TI公司生产的一款芯片TMS320F2812 DSPs来实现无限冲激响应滤波器(IIR)算法,其中涉及无限冲激响应滤波器(IIR)算法软件仿真和硬件实现。

IIR数字滤波器的设计实验报告

IIR数字滤波器的设计实验报告

IIR数字滤波器的设计一、实验目的:掌握冲激相应不变法和双线性变换法设计IIR数字滤波器的原理和方法;观察冲激相应不变法和双线性变换法设计IIR数字滤波器的频率特性;了解冲激相应不变法和双线性变换法的特点和区别。

二、实验原理:无限长单位冲激响应(IIR)数字滤波器的设计思想:a)设计一个合适的模拟滤波器b)利用一定的变换方法将模拟滤波器转换成满足预定指标的数字滤波器切贝雪夫I型:通带中是等波纹的,阻带是单调的切贝雪夫II型:通带中是单调的,阻带是等波纹的1.用冲击响应不变法设计一个低通切贝雪夫I型数字滤波器通带上限截止频率为400Hz阻带截止频率为600Hz通带最大衰减为0.3分贝阻带最小衰减为60分贝抽样频率1000Hz2.用双线性变换法设计切贝雪夫II型高通滤波器通带截止频率2000Hz阻带截止频率1500Hz通带最大衰减0.3分贝阻带最小衰减50分贝抽样频率20000Hz四、实验程序:1)Wp=2*pi*400;Ws=2*pi*600;Rp=0.3;Rs=60;Fs=1000;[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s'); [Z,P,K]=cheb1ap(N,Rp);[A,B,C,D]=zp2ss(Z,P,K);[At,Bt,Ct,Dt]=lp2lp(A,B,C,D,Wn); [num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1,Fs); [H,W1]=freqs(num1,den1);figure(1)subplot(2,1,1);semilogx(W1/pi/2,20*log10(abs(H)));grid; xlabel(' 频率/ Hz');ylabel(' 模拟滤波器幅值(db)');[H,W2]=freqz(num2,den2,512,'whole',Fs); subplot(2,1,2);plot(W2,20*log10(abs(H)));grid;xlabel(' 频率/ Hz');ylabel(' 数字滤波器幅值(db)'); [H,W]=freqz(num2,den2,512,'whole'); figure(2)subplot(2,1,1);8plot(W/2/pi,20*log10(abs(H)));grid; xlabel(' 数字角频率/ pi');ylabel(' 数字滤波器幅值(db)'); %xlabel(' 频率/ Hz'); %ylabel(' 幅值'); subplot(2,1,2);%stem(W/pi,abs(H));grid;%figure(3)%semilogx(W1,W2);%grid;plot(W/2/pi,angle(H)/pi);grid;xlabel(' 数字角频率/ pi');ylabel(' 相角/ pi');2)Wp=2*pi*2000;Ws=2*pi*1500;Rp=0.3;Rs=50;Fs=20000;[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs,'s'); [Z,P,K]=cheb2ap(N,Rs);[A,B,C,D]=zp2ss(Z,P,K);[At,Bt,Ct,Dt]=lp2hp(A,B,C,D,Wn); [num1,den1]=ss2tf(At,Bt,Ct,Dt); [num2,den2]=bilinear(num1,den1,Fs); [H,W]=freqz(num2,den2);subplot(2,1,1);plot(W*Fs/2/pi,20*log10(abs(H)));grid; xlabel(' 数字角频率/ Hz');ylabel(' 幅值(dby)');subplot(2,1,2);plot(W*Fs/2/pi,angle(H)/pi);grid; xlabel(' 数字角频率/ Hz');ylabel(' 相角/ pi');五、仿真图形:六、实验分析:1.在第一个实验中模拟滤波器的频率响应曲线延伸无穷,而数字滤波器只给出500Hz一下的频谱是什么原因?答:模拟滤波器的频率响应从负无穷至正无穷,经过采样后,变到(0,2π)。

实验三 无限冲激响应

实验三 无限冲激响应

实验三无限冲激响应(IIR)数字滤波器的设计1.目的要求熟悉用双线性变换法设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法。

2.方法原理参考《数字信号处理》教材的无限冲激响应(IIR)数字滤波器一章。

3.主要实验仪器及材料微型计算机、Matlab6.5教学版、TC编程环境。

4.掌握要点掌握用Matlab软件或C语言设计流程,重点是画出序列变换前后的图形。

5.实验内容(1)用双线性变换法设计巴特沃斯和切比雪夫IIR数字滤波器。

(2)绘出数字滤波器在频率区间的幅频响应特性曲线;(3)对结果进行分析;(4)完成实验报告。

注:目前,设计IIR数字滤波器的通用方法是先设计相应的低通滤波器,然后再通过双线性变换法和频率变换得到所需要的数字滤波器。

模拟滤波器从功能上分有低通、高通、带通及带阻四种,从类型上分有巴特沃兹(Butterworth)滤波器、切比雪夫(Chebyshev)I型滤波器、切比雪夫II型滤波器、椭圆(Elliptic)滤波器以及贝塞尔(Bessel)滤波器等。

下面给出与IIR数字滤波器设计有关的MATLAB文件。

1.buttord.m用来确定数字低通或模拟低通滤波器的阶次,其调用格式分别是(1)[N,Wn]=buttord(Wp,Ws,Rp,Rs)(2)[N,Wn]=buttord(Wp,Ws,Rp,Rs,‘s’)格式(1)对应数字滤波器,式中Wp,Ws分别上通带和阻带的截止频率,实际上它们是归一化频率,其值在0~1之间,1对应抽样频率的一半。

对低通和高通滤波器,Wp,Ws1 的向量。

Rp,Rs分别是通带和阻带的衰都是标量,对带通和带阻滤波器,Wp,Ws都是2减,单位为dB 。

N 是求出的相应低通滤波器的阶次,Wn 是求出的3dB 频率,它和Wp 稍有不同。

格式(2)对应模拟滤波器,式中各个变量的含义与格式(1)相同,但Wp,Ws 及Wn 的单位为rad/s ,因此,它们实际上是频率。

无限冲激响应(IIR)数字滤波器的设计实验报告

无限冲激响应(IIR)数字滤波器的设计实验报告

数字信号处理实验报告姓名:寇新颖 学号:20100304026 专业:电子信息科学与技术实验四 无限冲激响应(IIR)数字滤波器的设计一、实验目的1.掌握双线性变换法及冲激响应不变法设计IIR 数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及冲激响应不变法设计低通IIR 数字滤波器的计算机编程。

2.观察双线性变换及冲激响应不变法设计的滤波器的频域特性,了解双线性变换法及冲激响应不变法的特点。

3.熟悉Butterworth 滤波器的频率特性。

二、实验原理1.利用模拟滤波器设计IIR 数字滤波器方法(1)根据所给出的数字滤波器性能指标计算出相应的模拟滤波器的设计指标。

(2)根据得出的滤波器性能指标设计出相应的模拟滤波器的系统函数H(S)。

(3)根据得出的模拟滤波器的系统函数H(S),经某种变换得到对该模拟滤波器相应的数字仿真系统——数字滤波器。

将模拟滤波器转换成数字滤波器的实质是,用一种从s 平面到z 平面的映射函数将Ha(s)转换成H(z)。

对这种映射函数的要求是:(1) 因果稳定的模拟滤波器转换成数字滤波器,仍是因果稳定的。

(2)数字滤波器的频率响应模仿模拟滤波器的频响,s 平面的虚轴映射z 平面的单位圆,相应的频率之间成线性关系。

冲激响应不变法和双线性变换法都满足如上要求。

2.冲激响应不变法用数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应h a (t),让h(n)正好等于h a (t)的采样值,即h(n)=h a (nT),其中T 为采样间隔。

3.双线性变换法s 平面与z 平面之间满足以下映射关系:1111--+-=z z s s 平面的虚轴单值地映射于z 平面的单位圆上,s 平面的左半平面完全映射到z 平面的单位圆内。

双线性变换不存在混叠问题。

双线性变换时一种非线性变换)2/(ωtg =Ω,这种非线性引起的幅频特性畸变可通过预畸而得到校正。

以低通数字滤波器为例,将设计步骤归纳如下:(1)确定数字滤波器的性能指标:通带临界频率f p 、阻带临界频率f s ;通带内的最大衰减A p ;阻带内的最小衰减A s ;(2)确定相应的数字角频率,ωp =2πf p ;ωs =2πf s ;(3)计算经过预畸的相应模拟低通原型的频率,)2/(ωtg =Ω;(4)根据Ωp 和Ωs 计算模拟低通原型滤波器的阶数N ,并求得低通原型的传递函数H a (s);(5)用上面的双线性变换公式代入H a (s),求出所设计的传递函数H(z);(6)分析滤波器特性,检查其指标是否满足要求。

(整理)实验三IIR数字滤波器的设计.

(整理)实验三IIR数字滤波器的设计.

实验三 IIR 数字滤波器的设计实验学时:2学时实验类型:设计/研究实验要求:必修一.实验目的1.掌握脉冲响应不变法和双线性变换法设计IIR 数字滤波器的原理和方法;2.观察双线性变换法和脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别。

二.实验内容使用MATLAB 编写程序,实现IIR 数字滤波器的设计。

涉及脉冲响应不变法和双线性变换法设计IIR 数字滤波器的方法、不同设计方法得到的IIR 滤波器频域特性异同等知识点。

三.实验原理与方法和手段1.脉冲响应不变法所谓脉冲响应不变法就是使数字滤波器的单位脉冲响应序列h(n)等于模拟滤波器的单位冲激响应和a h (t)的采样值,即:)()()(nt h t h n h a nT t a ===,其中,T 为采样周期。

在MATLAB 中,可用函数impinvar 实现从模拟滤波器到数字滤波器的脉冲响应不变映射,调用格式为:[b,a]=impinvar(c,d,fs)[b,a]=impinvar(c,d)其中,c 、d 分别为模拟滤波器的分子和分母多项式系数向量;fs 为采样频率(Hz ),缺省值fs=1Hz ;b 、a 分别为数字滤波器分子和分母多项式系数向量。

2.双线性变换法:由于s 平面和z 平面的单值双线性映射关系为s =11211z T z---+,其中T 为采样周期。

因此,若已知模拟滤波器的传递函数,将上式代入即可得到数字滤波器的系统函数H(z)。

在双线性变换中,模拟角频率和数字角频率的变换关系为:22wtgTΩ=可见,Ω和w之间的变换关系为非线性的。

在MATLAB中,可用函数bilinear实现从模拟滤波器到数字滤波器的双线性变换映射,调用格式为:[b,a]=bilinear(c,d,fs)3.设计步骤:(1)定技术指标转换为模拟低通原型设计性能指标。

(2)估计满足性能指标的模拟低通性能阶数和截止频率。

利用MATLAB中buttord、cheb1ord、cheb2ord、ellipord等函数,调用格式如:)'',,,,(],[sRsRpWsWpbuttordWnn=其中,Wp为带通边界频率,rad/s;Ws为阻带边界频率,rad/s;Rp为带通波动,dB;Rs为阻带衰减,dB;‘s’表示为模拟滤波器;函数返回值n为模拟滤波器的最小阶数;Wn为模拟滤波器的截止频率(-3dB频率),rad/s。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验 3 :无限冲激响应滤波器(IIR)算法实验
一、实验目的
1. 熟悉IIR 数字滤波器特性;
2.掌握IIR数字滤波器的设计过程;
3.掌握 IIR 数字滤波器性能测试方法。

二、实验设备
1.PC 兼容机
2.WIN7 操作系统
3.Code Composer Studio v5
三、实验内容
1.掌握IIR数字滤波器的基础理论;
2.基于MATLAB的IIR数字滤波器参数确定方法;
3.采用C语言编程实现低通IIR 滤波器;
4.掌握基于CCS的波形观察方法;观察滤波前后的波形变化。

四.实验原理分析
要求:使用低通巴特沃斯滤波器,设计通带截止频率f p为1kHz、增益为-3dB,阻带截止频率f st为12kHz、衰减为30dB,采样频率f s为25kHz。

设计:
通带截止频率为:f p = 1000Hz,f st = 12000Hz
(一)、滤波器参数计算
●模拟预畸变通带截止频率为:w p = 2f s tan(2πf p/(2f s)) =6316.5 弧度/秒
●模拟预畸变阻带截止频率为:w st = 2f s tan(2πf st/(2f s)) = 794727.2 弧度/秒
由式(7.5.24)
●N = 0.714,则:一阶巴特沃斯滤波器就足以满足要求。

一阶模拟巴特沃斯滤波器的传输函数为: H(s)=w p/(s+w p)=6316.5/(s+6316.5)
由双线性变换定义 s=2f s(z-1)/(z+1)得到数字滤波器的传输函数为:
因此,差分方程为: y[n]=0.7757y[n-1]+0.1122x[n]+0.1122x[n-1]。

(二)、基于MATLAB的滤波器参数求解
(1)IIR数字滤波器阶次的选择的MATLAB函数
[N,w c] = buttord(w p,w st,Rp,As);
[N,w c] = cheb1ord(w p,w st,Rp,As);
[N,w c] = cheb2ord(w p,w st,Rp,As);
[N,w c] = ellipord(w p,w st,Rp,As);
对低通滤波器,必须有w p < w st
对高通滤波器,必须有w p > w st
对带通滤波器,必须有 w s1 < w p1 < w p2 < w s2
对带阻滤波器,必须有 w p1 < w s1 < w s2 < w p2
(2) IIR数字滤波器的设计
[b,a] = butter(N,wc,’ftype’)
[b,a] = cheby1(N,wc,’ftype’)
[b,a] = cheby2(N,wc,’ftype’)
[b,a] = ellip(N,wc,’ftype’)
(三)、基于C语言编程的IIR 数字滤波器编程实现
程序流程图
五.实验步骤
1.打开 CCS,进入 CCS 的操作环境。

2.打开工程,浏览程序:工程目录为C:\ICETEK\ICETEK-DM6437-A\Lab0402_IIR
3.点击图标,CCS 会自动编译、链接和下载程序。

4.运行程序。

可以观察收到的数据。

*选择菜单 Tools->Graph->Dual Time,进行如下设置:
Dual Time 参数设置
*选择菜单 Tools->Graph->FFT Magnitude,新建 2 个观察窗口,分别进行如下设置:
5.设置断点:在有注释“break point”的语句设置软件断点。

使用菜单的
View->Break points,打开断点观察窗口,在刚才设置的断点上右键->Breadk point properties 调出断点的属性设置界面,设置 Action 为 Refresh All windows。

则程序每次运行到断点,所有的观察窗口值都会被刷新。

其中,输入波形:一个低频正弦波与一个高频正弦波的叠加;输出波形:经过低通滤波后的低频正弦波。

6.运行并观察结果:
⑴ F8 键运行程序。

⑴观察“IIR”窗口中时域图形;观察滤波效果。

7.退出 CCS
六.实验结果
输入波形为一个低频率的正弦波与一个高频的余弦波叠加而成。

如图:
通过观察频域和时域图,得知:输入波形中的低频波形通过了滤波器,而高频部分则被衰减。

六.问题与思考
基本任务:
1.试微调(±0.0001)改变程序中 f U的取值,观察步长因子μ在自适应算法中所起的作用。

2.确定程序中的信号频率,试选用设计不同的信号、噪声组合,基于MATLAB设计不同的类型的滤波器,并基于CCS实现,并观察实验的结果。

3.分析实验程序,细化算法流程图。

4.结合CCS的使用,分析实验结果
提高任务:
5.尝试使用信号源生成组合信号,经过A/D采样后,送IIR滤波器实现。

源代码:
#include"math.h"
#define IIRNUMBER 2 /*典范性的滤波器阶数*/
#define SIGNAL1F 1000 /*正弦信号频率,代码中没有使用*/
#define SIGNAL2F 4500 /*正弦信号频率,代码中没有使用*/
#define SAMPLEF 10000 /*采样频率,代码中没有使用*/
#define PI 3.1415926
float InputWave(); /*输入给IIR滤波器的信号,每次输出一个点*/
float IIR(); /*IIR滤波,每次输出一个点*/
/*滤波器的设计采用了案例的结果,应该重新设计*/
float fBn[IIRNUMBER]={ 0.0,0.7757 }; /*IIR滤波器的分子多项式系数,有错*/ float fAn[IIRNUMBER]={ 0.1122,0.1122 }; /*IIR滤波器的分母多项式系数*/
float fXn[IIRNUMBER]={ 0.0 }; /*IIR滤波器的迭代初始值*/
float fYn[IIRNUMBER]={ 0.0 }; /*IIR滤波器的输出值*/
float fInput,fOutput; /*输入点和输出点*/
float fSignal1,fSignal2; /*信号1、2的初始相位*/
float fStepSignal1,fStepSignal2; /*信号1、2的相位步长*/
float f2PI;
int i;
float fIn[256],fOut[256];
int nIn,nOut;
main()
{
nIn=0; nOut=0;
f2PI=2*PI;
fSignal1=0.0;
fSignal2=PI*0.1;
// fStepSignal1=2*PI/30;
// fStepSignal2=2*PI*1.4;
fStepSignal1=2*PI/50; /*信号1的相位步长:f1/fs = 1/50*/
fStepSignal2=2*PI/2.5; /*信号2的相位步长:f1/fs = 1/2.5*/
while ( 1 )
{
fInput=InputWave();
fIn[nIn]=fInput;
nIn++; nIn%=256;
fOutput=IIR();
fOut[nOut]=fOutput;
nOut++; /* 请在此句上设置软件断点 */
if ( nOut>=256 )
{
nOut=0;
}
}
}
float InputWave()
{
for ( i=IIRNUMBER-1;i>0;i-- )
{
fXn[i]=fXn[i-1];
fYn[i]=fYn[i-1];
}
fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0;
fYn[0]=0.0;
fSignal1+=fStepSignal1;
if ( fSignal1>=f2PI ) fSignal1-=f2PI;
fSignal2+=fStepSignal2;
if ( fSignal2>=f2PI ) fSignal2-=f2PI;
return(fXn[0]);
}
float IIR()
{
float fSum;
fSum=0.0;
/* y[n]=0.7757y[n-1]+0.1122x[n]+0.1122x[n-1] */ for ( i=0;i<IIRNUMBER;i++ )
{
fSum+=(fXn[i]*fAn[i]);
fSum+=(fYn[i]*fBn[i]);
}
return(fSum);
}。

相关文档
最新文档