《基于matlab的FIR和IIR滤波器课程设计说明书》由会员分享,可在线阅读,更多相关《基于matlab的FIR和IIR滤波器课程设计说明书(27页珍藏版)》请在金锄头文库上搜索。
1、基于matlab的FIR和IIR滤波器目 录1引言11.1 MATLAB的介绍21.2 CCS的介绍22设计要求43 FIR滤波器设计53.1 FIR滤波器的Matlab设计53.1.1 FIR滤波器参数的设计53.1.2 检验方波的Matlab设计63.1.3 正弦叠加信号的Matlab设计73.2 FIR滤波器的CCS设计83.2.1 FIR滤波器的CCS设计程序103.2.2 CCS波形仿真图124 IIR滤波器设计154.1 IIR滤波器的Matlab设计154.1.1 IIR滤波器参数的设计154.1.2 检验方波的Matlab设计164.1.3 正弦叠加信号的Matlab设计174
2、.2 IIR滤波器的CCS设计194.2.1 IIR滤波器的CCS程序设计194.2.2 CCS波形仿真图23结束语25参考文献261引言数字信号处理(Digital Signal Processing),或者说对信号的数字处理(包括对信号进行采集、变换、滤波、估值、增强、压缩、识别等),是20世纪60年代前后发展起来的并广泛应用于多领域的新兴学科。 当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。 数字化、智能化和网络化是当代信息技术发展的大趋势,而
3、数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号的经采样和量化后,得到的是数字信号是一个二维离散空间序列。数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取
4、、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输时至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。1.1 MATLAB的介绍MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。主要应用于工程计算、信号处理与通讯、图像处理
5、、信号检测、金融建模设计与分析、控制系统设计以及计算生物学等众多应用领域。MATLAB是矩阵实验室(MatrixLaboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。 当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符
6、号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。1.2 CCS的介绍CCS软件简介CCS(Code Composer Studio)代码调试器是一种合成开发环境。 它是一种针对标准TMS320调试器接口的交互式方法。CCS目前有CCS1.1, CCS1.2 和CCS2.0等三个不同时期的版本,又有CC2000 ( 针对C2XX ),CCS5000 ( 针对C54XX )和CCS
7、6000 (针对C6X )三个不同的型号。我们所使用的是CCS50002.2的版本。 CCS5000具有以下特性: (1) TI编译器的完全集成的环境: CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。 (2)对C和DSP汇编文件的目标管理: 目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。 (3) 高集成的编辑器调整C和DSP汇编代码: CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。 (4) 编辑和调试时的后台编辑: 用户在使用编译器和汇
8、编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示 只要双击错误就可以直接到达出错处。 在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在 Windows95和Windows-me中支持多处理。PDM允许将命令传播给所有的或所选择的处理器。 (5) 在任何算法点观察信号的图形窗口探针:图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就
9、可以迅速地观察到信号。 (6) 文件探针在算法处通过文件提取或加入信号或数据: CCS5000允许用户从PC机读或写信号流。而不是实时的读信号,这就可以用已知的例子来仿真算法。 (7) 图形分析: CCS5000的图形分析能力在其环境中是集成的。 (8) 在后台(系统命令)执行用户的DOS程序: 用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。且允许用户将应用程序集成到CCS5000。 (9) 技术状态观察窗口: CCS5000的可视窗口允许用户进入C表达式及相关变量。结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。 (10) 代数分解
10、窗口: 允许用户选择查看写成代数表达式的C格式,提高可读性 。 (11) 目标DSP上的帮助: DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。 (12) 用户扩展: 扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中。2设计要求本次课设,主要针对DSP芯片进行程序设计,要求采用会变语言编写程序。通过此次课程设计,熟悉DSP芯片的硬件结构,加深对DSP芯片的认识;掌握对DSP芯片编程方法,掌握间接寻址方法的使用方法,重点掌握算法的设计。要求采用汇编语言针对DSP芯片设计低通滤波器:1 给出低通滤波器技术指标,在Matlab里先设计符合要求的低通滤波器,并得到滤波
11、器参数,并得到该滤波器的幅频特性和相频特性;2 FIR低通滤波器设计,给出设计流程图,在CCS软件环境下编写程序;3 分别用方波和正弦波验证FIR低通滤波器的设计;4 IIR低通滤波器设计,给出程序流程图,在CCS软件环境下编写程序;5 分别用方波和正弦波验证IIR低通滤波器的设计;6 与Matlab中设计的滤波器,进行对比研究。3 FIR滤波器设计3.1 FIR滤波器的Matlab设计 FIR结构中的延迟Z-1 在程序中实现是数据在存储器中的滑动,这对一个L阶的FIR数字滤波器来说,就是要求在存储器中开辟一个L个样本并进行乘累加运算。这在DSP中可以用两种方法来实现该缓冲区。对于线性缓冲区来
12、说,每当DSP读入一个样本后都将此样本向后移动,读完最后一个样本后,最前面的样本(最老的)被推出缓冲区,并输入最新的样本至缓冲区顶部。线性缓冲区的存储器延时可以由具有数据移动的DMOV指令来实现,它需要将缓冲区置于内部DARAM块中;对于循环缓冲区,每当输入新样本时,以新样本改写区中最老的样本,而缓冲区中的其他样本不需要其他样本移动。循环缓冲区可采用循环寻址技术来实现,它不需要必须定位在DARAM块中,但需要适当的缓冲区对准以满足循环寻址的要求。本次课设用的是循环寻址,下面主要介绍一下循环寻址的方法。循环缓冲实现延时的特点是:(1) 实现N阶FIR数字滤波器时,需要在数据存储器中开辟一个称为滑
13、窗的N个单元的缓冲区,滑窗中存放最新的N个样本。(2) 当每次输入新样本时以新的样本改写滑窗中最老的样本,而滑窗其他的数据不需要移动。(3) 利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首位相邻。3.1.1 FIR滤波器参数的设计FIR滤波器的参数用Matlab来设计,其程序为: N=15; %滤波器的阶数Wn=0.1 %滤波器的截止频率 b=fir1(N,Wn)freqz(b,512,1000) %滤波器的幅频特性和相频特性Wn = 0.1000b = Columns 1 through 9 0.0034 0.0074 0.0188 0.0395 0.0677 0.
14、0984 0.1248 0.1400 0.1400 Columns 10 through 16 0.1248 0.0984 0.0677 0.0395 0.0188 0.0074 0.0034滤波器的幅频特性和相频特性如图3-1和图3-2所示。图3-1 滤波器的幅频特性图图3-2 滤波器的相频特性图将1000个点的复频响应值均匀分布在0-2上,便得到所设计的FIR低通滤波器的幅值特性如上图。3.1.2 检验方波的Matlab设计检验方波的Matlab程序为:figure(4)x=0:2*pi/1024:2*pi;x1=2*square(1*pi*10*x);x2=conv(x1,b);subplot(2,1,1);plot(x1);axis(0 50*pi -3 3);grid on;subplot(2,1,2);plot(x2);axis(0 50*pi -3 3);grid on;输出方波如3-4所示图3-4 方波信号图由图可知,经低通滤波后方波信号变为等峰峰值为和周期的正弦信号。3.1.3 正弦叠加信号的Matlab设计正弦叠加信号的Matlab程序为: figure(3)x=0:2*pi/1024:2*pi;y1=sin(1*x*2*pi+pi/6);y2=sin(10