DSP实习报告基于DSP的FIR和IIR滤波器设计.doc
《DSP实习报告基于DSP的FIR和IIR滤波器设计.doc》由会员分享,可在线阅读,更多相关《DSP实习报告基于DSP的FIR和IIR滤波器设计.doc(28页珍藏版)》请在三一办公上搜索。
1、实习题目 FIR和IIR滤波器设计 班 级: 信息08-1 姓 名: 学 号: 04号 指导教师: 实验日期: 2011.12.5-2011.12.9 目 录一、 实习目的2二、 实习要求2三、 滤波器的实现2(一)、有限冲激响应滤波器(FIR)的实现2(二)、无限冲激响应滤波器(IIR)的实现5五、 程序代码及运行结果8(一)、FIR滤波器程序代码81、FIR低通滤波器实现82、FIR高通滤波器实现103、FIR带通滤波器实现134、FIR带阻滤波器实现16(二)、IIR滤波器程序代码191、IIR低通滤波器实现192、IIR高通滤波器实现203、IIR带通滤波器实现224、IIR带阻滤波器
2、实现23六、 实习总结25七、 实习心得26七、参考文献27FIR和IIR滤波器设计一、 实习目的1、 掌握数字滤波器的设计过程;2、 了解FIR和IIR的原理和特性;3、 熟悉设计FIR和IIR数字滤波器的原理和方法。二、 实习要求1、 通过MATLSB设计确定FIR和IIR滤波器系数;2、 DSP初始化。3、 A/D采样;4、 FIR和IIR运算,观察滤波器前后的波形变化;5、 对带有噪声的不同输入信号进行FIR和IIR滤波,观察滤掉后噪声后的波形;6、 熟练使用CCS 对程序进行调试。三、 滤波器的实现 (一)、有限冲激响应滤波器(FIR)的实现 1、FIR滤波器的基本结构 数字滤波是将
3、输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。 一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足常系数线性差分方程: 其中x(n)为输入序列,y(n)为输出序列,ai、bi为滤波器系数N为滤波器的阶数。 当上式所有的ai均为0,则得FIR滤波器的差分方程: 对式进行z变换,可得FIR滤波器的传递函数: FIR滤波器的结构图如图1所示。 图1 FIR滤波器的结构 2、有限冲激响应滤波器的MATLAB设计 FIR滤波器系数的产生可以通过MATLAB得到。MATLAB是Math Works公司用于数值计算和信号处理的数学计算工具包,可以方便直观地进行分析、
4、计算和系统仿真 。 FIR滤波器设计有两种实现方法:方法1:直接通过MATLAB的滤波器设计函数,其语法如下: b=fir1(n,Wn) b=fir1(n,Wn,ftype) b=fir1(n,Wn,Window) b=fir1(n,Wn,ftype,Window) 其中n为滤波器的阶数,Wn为滤波器的截止频率,ftype用来决定滤波器的类型, 当ftype=high时,可设计高通滤波器; 当ftype=stop时,可设计带阻滤波器。Window用来指定滤波器采用的窗函数类型,其默认值为汉明(Hamming)窗。 方法2:采用滤波器设计工具箱来设计滤波器的参数,可以方便地得到所需滤波器。该方法
5、按照如下步骤来实现: (1) 打开MATLAB滤波器设计工具箱中的滤波器设计与分析工具(FDATool)。 (2) 在滤波器设计页面中设置滤波器参数: 滤波器类型选择带通;设计方法选择FIR(有限冲激响应滤波器)、窗函数法设计;滤波器阶数选择最小阶数,窗类型采用Kaiser窗;频率选择归一化频率,阻带1设为0.15,通带1设为0.2,通带2设为0.5,阻带2设为0.55;幅度单位选分贝,阻带1设为20dB,通带设为1dB,阻带2设为20dB。(3) 单击设计滤波器按钮,在右上窗口可以看到所设计滤波器的幅频、相频等各种图形。 (4) 在File菜单,选择“Export”子菜单出现Export窗口
6、,选择输出到Text-file,单击“OK”按钮即可将参数输出到指定文件中。本次实习选用方法1来求FIR滤波器的系数。 3、FIR滤波器DSP实现 FIR滤波器的输出表达式: y(n)=b0x(n)+b1x(n-1)+ +bn-1x(n-N+1) 其中bi为滤波器系数,x(n)为滤波器在n时刻的输入,y(n)为n时刻的输出。 其基本算法: 采用乘法累加运算。即不断地输入样本x(n),经过z-1延时后,再进行乘法-累加,最后输出滤波结果y(n)。 FIR滤波器的DSP实现有三种方法:方法一:独立编写汇编语言。方法二:独立编写C语言。方法三:调用DSPLIB库函数。其调用形式有:ushort of
7、lag = fir (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,ushort nh) 其中xnx 为输入向量,其个数为nx,hnh为滤波器的系数,其阶数为nh,rnx为输出向量,个数为nx,dbuffernh+2是延时缓冲区,其长度为nh = nh + 2。ushort oflag = fir2 (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,ushort nh) 4、FIR滤波器程序流程图 图2 FIR滤波器程序流程图 (二)、无限冲激响应滤波器(IIR)的实现 1、IIR
8、滤波器的基本结构 无限冲激响应滤波器的差分方程如下: 在零初始条件下,对上式进行z变换,得到系统的传递函数: 无限冲激响应滤波器的结构如图2所示。图3 IIR滤波器结构 2、无限冲激响应滤波器(IIR)的MATLAB设计 同有限冲激响应滤波器一样,无限冲激响应滤波器也可以在MATLAB中通过两种不同的方法进行设计。 方法1:利用滤波器设计函数直接生成滤波器。MATLAB中提供了多种IIR滤波器的设计方法,包括巴特沃斯滤波器,切比雪夫型、切比雪夫型滤波器,椭圆滤波器等,本次实习采用椭圆滤波器求滤波器的系数ak和bk。 方法2:采用滤波器设计与分析工具设计滤波器。其具体步骤为: (1) 打开FDA
9、Tool ;(2) 设置滤波器参数 ;(3) 单击设计滤波器按钮;(4) 单击File菜单,选择“Export”子菜单,选择输出到“Text-file”,单击“OK” 。在本次实习中选择方法一。 3、IIR滤波器DSP实现 1)、IIR滤波器的DSP实现方法 IIR滤波器的DSP实现有三种方法: 方法一:独立编写汇编语言。 方法二:独立编写C语言。 方法三:调用DSPLIB库函数。其调用形式有: ushort oflag = iircas5 (DATA *x, DATA *h, DATA *r, DATA *dbuffer, short nbiq,ushort nx),其中h的存放系数顺序为h
10、 = a11 a21 b21 b01 b11 . a1i a2i b2i b0i b1i。 ushort oflag = iircas51 (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nbiq,ushort nx),其中h的存放系数顺序为h = b01 b11 b21 a11 a21 .b0i b1i b2i a1i a2i。 2)、高阶IIR滤波器的实现 一个高阶IIR滤波器可以由若干个二阶基本节相级联或并联构成。由于调整每个二阶基本节的系数,只涉及这个二阶基本节的一对极点和零点,不影响其他极、零点,因此用二阶基本节构成的IIR滤波器便
11、于系统的性能调整,受量化噪声影响小,因而得到了广泛的应用。其方法是将高阶IIR滤波器分解成若干个二阶基本节,然后进行级联来实现。若干个二阶基本节的结构如图3所示。 图4 i个二阶基本节 3、IIR滤波器程序流程图 图5 程序流程图五、 程序代码及运行结果 (一)、FIR滤波器程序代码CCS软件环境下主程序代码如下 #include math.h#include tms320.h#include dsplib.h#include test.hshort i;short eflag1= PASS;short eflag2= PASS;DATA rNX;DATA *dbptr = &db0;void
12、 main() int i; short xNX; for(i=0;iNX;i+)xi=0; for (i=0;iNX;i+) xi=(short)(1+sin(PI*3000*i/10000)*sin(PI*4000*i/10000)*32768/3) ; for (i=0; iNX; i+) ri = 0; / clear output buffer (optional) for (i=0; iNH+2; i+) dbi = 0; / clear delay buffer (a must) fir2(x, h, r, dbptr, NX, NH);/双MAC运算,速度快 while(1);
13、 1、FIR低通滤波器实现 (1)MATLAB程序代码 clear allclcwp=0.4;ws=0.6;B=ws-wp;%计算过渡带宽N=ceil(6.6*pi/B) %按哈明窗计算滤波器长度wc=(ws+wp)/2;b=fir1(N-1,wc);%80 point hamming window FIR filter, Wn=0.2fvtool(b,1)%Flter Visualization Tool可心以查看幅度响应、冲激响应等 h=buffer(round(b*32768),8); %参数*215,把小数点移最高位后面后取整,然后排成8个 %一行便于输出。 csvwrite(tabl
14、e.txt,h) %参数表输出到文件中 %然后只要把参数表从table.txt中拷到代码中,每行前面加上 .word 运行结果如下:N=104生成table.txt文档-11,-12,12,13,-15,-16,18,20-23,-26,29,33,-37,-42,47,52-59,-65,73,81,-89,-99,109,120-132,-145,158,173,-189,-207,226,247-269,-294,321,352,-385,-423,466,515-572,-639,719,816,-938,-1095,1307,1612-2087,-2936,4911,14758,14
15、758,4911,-2936,-20871612,1307,-1095,-938,816,719,-639,-572515,466,-423,-385,352,321,-294,-269247,226,-207,-189,173,158,-145,-132120,109,-99,-89,81,73,-65,-5952,47,-42,-37,33,29,-26,-2320,18,-16,-15,13,12,-12,-11图形如图1.1所示。图1.1 幅频响应(2)、CCS软件程序代码 Text.h代码#define NX 320#define NH 104#define MAXERROR 10#
16、define PI 3.1415926#pragma DATA_SECTION(h,.coeffs)DATA hNH=-11,-12,12,13,-15,-16,18,20,-23,-26,29,33,-37,-42,47,52,-59,-65,73,81,-89,-99,109,120,-132,-145,158,173,-189,-207,226,247,-269,-294,321,352,-385,-423,466,515,-572,-639,719,816,-938,-1095,1307,1612,-2087,-2936,4911,14758,14758,4911,-2936,-208
17、7,1612,1307,-1095,-938,816,719,-639,-572,515,466,-423,-385,352,321,-294,-269,247,226,-207,-189,173,158,-145,-132,120,109,-99,-89,81,73,-65,-59,52,47,-42,-37,33,29,-26,-23,20,18,-16,-15,13,12,-12,-11;#pragma DATA_SECTION(db,.dbuffer)DATA dbNH+2 ;DATA rtestNX;DATA rNX;运行结果如图1.2所示:图a 滤波前x的波形图b 滤波后r的波形图
18、1.2 滤波前后的波形 2、FIR高通滤波器实现 (1)、MATLAB程序代码clear allclcwp=0.3;ws=0.2;B=wp-ws;%计算过渡带宽N0=ceil(6.6*pi/B);N=N0+mod(N0+1,2) wc=(ws+wp)/2;b=fir1(N-1,wc,high);fvtool(b,1)%Flter Visualization Tool可心以查看幅度响应、冲激响应等h=buffer(round(b*32768),8) ;csvwrite(table.txt,h) 运行结果:N=209 生成Table.txt文档0,6,8,6,0,-6,-9,-70,8,11,8,
19、0,-9,-14,-100,12,18,13,0,-15,-23,-170,19,29,22,0,-24,-36,-270,30,45,34,0,-37,-56,-410,46,68,50,0,-55,-82,-610,67,99,73,0,-80,-118,-880,96,141,104,0,-114,-168,-1240,135,200,148,0,-161,-239,-1770,193,286,212,0,-234,-347,-2580,287,428,320,0,-360,-541,-4080,469,715,548,0,-654,-1021,-8060,1043,1725,1468,
20、0,-2454,-5211,-737524578,-7375,-5211,-2454,0,1468,1725,10430,-806,-1021,-654,0,548,715,4690,-408,-541,-360,0,320,428,2870,-258,-347,-234,0,212,286,1930,-177,-239,-161,0,148,200,1350,-124,-168,-114,0,104,141,960,-88,-118,-80,0,73,99,670,-61,-82,-55,0,50,68,460,-41,-56,-37,0,34,45,300,-27,-36,-24,0,22
21、,29,190,-17,-23,-15,0,13,18,120,-10,-14,-9,0,8,11,80,-7,-9,-6,0,6,8,60,0,0,0,0,0,0,0图形如图1.2所示。图1.3 幅频响应 (2)、CCS程序代码 Text.h代码 #define NX 320 #define NH 209#define MAXERROR 10#define PI 3.1415926#pragma DATA_SECTION(h,.coeffs)DATA hNH=0,6,8,6,0,-6,-9,-7,0,8,11,8,0,-9,-14,-10,0,12,18,13,0,-15,-23,-17,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 实习 报告 基于 FIR IIR 滤波器 设计

链接地址:https://www.31ppt.com/p-4140919.html