DSP实习报告基于DSP的FIR和IIR滤波器设计

上传人:夏** 文档编号:498003142 上传时间:2023-06-23 格式:DOC 页数:28 大小:820KB
返回 下载 相关 举报
DSP实习报告基于DSP的FIR和IIR滤波器设计_第1页
第1页 / 共28页
DSP实习报告基于DSP的FIR和IIR滤波器设计_第2页
第2页 / 共28页
DSP实习报告基于DSP的FIR和IIR滤波器设计_第3页
第3页 / 共28页
DSP实习报告基于DSP的FIR和IIR滤波器设计_第4页
第4页 / 共28页
DSP实习报告基于DSP的FIR和IIR滤波器设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《DSP实习报告基于DSP的FIR和IIR滤波器设计》由会员分享,可在线阅读,更多相关《DSP实习报告基于DSP的FIR和IIR滤波器设计(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(table.txt,h) %参数表输出到文件中 %然后只要把参数表从table.txt中拷到代码中,每行前面加上 .word 运行结果如下:N=104生成table.txt文档-11,-12,12,13,-15,-16,18,20-23,-26,29,33,-37,-4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号