实验-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滤波器的设计与仿真实现

无限脉冲响应IIR滤波器的设计与仿真实现目录摘要 (1)ABSTRACT (2)引言 (3)正文 (4)1 实验平台概述 (4)1.1M ATLAB的概述 (4)1.2数字滤波器简介 (4)1.3 数字滤波器的分类 (5)1.4 数字滤波器的设计要求 (7)2 实验设计 (9)2.1IIR滤波器的设计原理 (9)2.2 模拟滤波器的设计方法 (10)2.2.1巴特沃斯的设计方法 (10)2.2.2模拟高通的设计方法 (11)2.2.3 模拟带通的设计方法 (11)2.2.4 模拟带阻的设计方法 (12)2.2.5 ChbyshevI的设计方法 (12)2.3 用脉冲法进行设计 (13)2.4 用双线性法进行设计 (14)3 IIR滤波器的MATLAB实现 (16)3.1 用MATLAB设计一个低通滤波器 (17)3.2 用MATLAB设计一个高通滤波器 (19)结论 (22)参考文献 (23)综述 (25)致谢 (27)摘要目的:随着计算机和微电子技术的广泛应用和大规模集成电路的使用,数字信号处理技术占据了现代信息科学的主要技术领域。

数字信号处理技术的使用大大提高了信息加工处理的能力。

在这些信号的收集输送过程中经常混杂一些并不属于这些信号的杂质噪声,为了得到真实干净的信号以便于进行真正准确的检测与控制,需要借助滤波器来实现。

方法:本篇首先运用IIR数字滤波器的直接法和间接法两种设计方法来对信号进行滤波作用,然后通过Matlab软件进行高级的信号处理加工,得到真实的信号波形,实现滤波器的仿真实现。

结果:经过无限脉冲响应IIR滤波器的设计与应用,对不同频点的信号进行滤除,得到了原本真实的信号。

结论:本篇通过经过改进的设计方法利用模拟滤波器对采集的信号进行数学加工,得到数字滤波器对应的函数。

通过Matlab软件的仿真与实现,更直观的展现出了真实的信号波形。

关键词:模拟滤波器;IIR数字滤波器;FIR数字滤波器;Matlab仿真AbstractKey words:[Objective]With the wide application of computer and micro-electronics technology and the use of large scale integrated circuit, digital signal processing technology to occupy the main technology of modern information science. The use of digital signal processing technology greatly improves the ability of information processing . During the collection of these signals, there is often a mixture of impurity noise that does not belong to these signals, In order to get a real clean signal so that we can actually detect and control, We need a filter to do that.[Methods]This paper first USES the method of direct and indirect method of IIR digital filter to filter the signal, Then the advanced signal processing is processed by Matlab software, and the actual signal waveform is obtained, and the realization of the filter is realized. [Results]Through the design and application of an infinite impulse response IIR filter, the signal of different frequency points is filtered out, and the original real signal is obtained. [Conclusion]This paper, through improved design method, USES analog filters to perform mathematical processing of the collected signals, and the corresponding function of digital filter is obtained. The simulation and implementation of Matlab software are presented to show the real signal waveform.Key words: Analog filter; IIR digital filter; FIR digital filter; Matlab simulation引言当今世界,飞速发展的滤波器技术在信号处理领域中占据了主要地位,并且广泛的存在于科学技术的各个领域。

第二篇 实验三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 数字滤波器设计及实现一、实验目的(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、将设计指标归一化处理。

实验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给出了这两种设计方法所得到的频响,虚线为冲激响应不变法的结果;实线为双线性变换法的结果。

无限冲激响应(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; //在这里设置断点}}。

  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滤波,每次输出一个点*/
/*滤波器的设计采用了案例的结果,应该重新设计*/。

相关文档
最新文档