收藏 分享(赏)

基于matlab的fir和iir滤波器_课程设计说明书.doc

上传人:无敌 文档编号:633295 上传时间:2018-04-15 格式:DOC 页数:27 大小:507.50KB
下载 相关 举报
基于matlab的fir和iir滤波器_课程设计说明书.doc_第1页
第1页 / 共27页
基于matlab的fir和iir滤波器_课程设计说明书.doc_第2页
第2页 / 共27页
基于matlab的fir和iir滤波器_课程设计说明书.doc_第3页
第3页 / 共27页
基于matlab的fir和iir滤波器_课程设计说明书.doc_第4页
第4页 / 共27页
基于matlab的fir和iir滤波器_课程设计说明书.doc_第5页
第5页 / 共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

2、 滤波器参数的设计 .154.1.2 检验方波的 Matlab 设计 .164.1.3 正弦叠加信号的 Matlab 设计 .174.2 IIR 滤波器的 CCS 设计 .194.2.1 IIR 滤波器的 CCS 程序设计 .194.2.2 CCS 波形仿真图 .23结束语 .25参考文献 .26课程设计说明书11引言数字信号处理(Digital Signal Processing) ,或者说对信号的数字处理(包括对信号进行采集、变换、滤波、估值、增强、压缩、识别等) ,是 20 世纪 60 年代前后发展起来的并广泛应用于多领域的新兴学科。当今,数字信号处理技术正飞速发展,它不但自成一门学科,

3、更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化) ,这类模拟信号便成为一维数字信号。因此,数字信号实际上是数字序列表示的信号,语

4、音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号的经采样和量化后,得到的是数字信号是一个二维离散空间序列。数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输时至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。课程设计说明书21.1 MATLAB的介绍MATLAB 是由美国 mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿

5、真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。主要应用于工程计算、信号处理与通讯、图像处理、信号检测、金融建模设计与分析、控制系统设计以及计算生物学等众多应用领域。MATLAB 是矩阵实验室(Matrix Laboratory )之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学 ,工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRA

6、N 等语言完相同的事情简捷得多。当前流行的 MATLAB 5.3/Simulink 3.0 包括拥有数百个内部函数的主包和三十几种工具包(Toolbox) 。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。除内部函数外,所有 MATLAB 主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。1.2 CCS的介绍CCS 软件简介 CCS(Code Composer Studio)代

7、码调试器是一种合成开发环境。 它是一种针对标准 TMS320 调试器接口的交互式方法。 CCS 目前有CCS1.1, CCS1.2 和 CCS2.0 等三个不同时期的版本,又有 CC2000 ( 针对C2XX ),CCS5000 ( 针对 C54XX )和 CCS6000 (针对 C6X )三个不同的型号。我们所使用的是 CCS50002.2 的版本。CCS5000 具有以下特性:(1) TI 编译器的完全集成的环境:CCS5000 目标管理系统,内建编辑器,所有的调试和分析能力集成在一个课程设计说明书3Windows 环境中。(2)对 C 和 DSP 汇编文件的目标管理:目标编辑器保持对所有

8、文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。(3) 高集成的编辑器调整 C 和 DSP 汇编代码:CCS5000 的内建编辑器支持 C 和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。(4) 编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到 DOS 环境中,因为CCS5000 会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示 只要双击错误就可以直接到达出错处。在含有浮点并行调试管理器(PDM)的原有的 MS 窗口下支持多处理器CCS5000 在 Windows95 和 Windows-me 中支持多处

9、理。 PDM 允许将命令传播给所有的或所选择的处理器。(5) 在任何算法点观察信号的图形窗口探针:图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT 在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的 DSP 代码。图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。(6) 文件探针在算法处通过文件提取或加入信号或数据:CCS5000 允许用户从 PC 机读或写信号流。而不是实时的读信号,这就可以用已知的例子来仿真算法。(7) 图形分析:CCS5000 的图形分析能力在其环境中是集成的。(8) 在后台 (系统命令) 执

10、行用户的 DOS 程序:用户可以执行 CCS5000 中的 DOS 程序,并将其输出以流水方式送到CCS5000 的输出窗口。且允许用户将应用程序集成到 CCS5000。(9) 技术状态观察窗口:CCS5000 的可视窗口允许用户进入 C 表达式及相关变量。结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。(10) 代数分解窗口:允许用户选择查看写成代数表达式的 C 格式,提高可读性 。(11) 目标 DSP 上的帮助:DSP 结构和寄存器上的在线帮助可以使用户不必查看技术手册。课程设计说明书4(12) 用户扩展:扩展语言(GEL)使得用户可以将自己的菜单项加到 CCS5000 的

11、菜单栏中。2设计要求本次课设,主要针对 DSP 芯片进行程序设计,要求采用会变语言编写程序。通过此次课程设计,熟悉 DSP 芯片的硬件结构,加深对 DSP 芯片的认识;掌握对 DSP 芯片编程方法,掌握间接寻址方法的使用方法,重点掌握算法的设计。要求采用汇编语言针对 DSP 芯片设计低通滤波器:1 给出低通滤波器技术指标,在 Matlab 里先设计符合要求的低通滤波器,并得到滤波器参数,并得到该滤波器的幅频特性和相频特性;2 FIR 低通滤波器设计,给出设计流程图,在 CCS 软件环境下编写程序;3 分别用方波和正弦波验证 FIR 低通滤波器的设计;4 IIR 低通滤波器设计,给出程序流程图,

12、在 CCS 软件环境下编写程序;5 分别用方波和正弦波验证 IIR 低通滤波器的设计;6 与 Matlab 中设计的滤波器,进行对比研究。课程设计说明书53 FIR滤波器设计3.1 FIR滤波器的 Matlab设计FIR 结构中的延迟 Z-1 在程序中实现是数据在存储器中的滑动,这对一个L 阶的 FIR 数字滤波器来说,就是要求在存储器中开辟一个 L 个样本并进行乘累加运算。这在 DSP 中可以用两种方法来实现该缓冲区。对于线性缓冲区来说,每当 DSP 读入一个样本后都将此样本向后移动,读完最后一个样本后,最前面的样本(最老的)被推出缓冲区,并输入最新的样本至缓冲区顶部。线性缓冲区的存储器延时

13、可以由具有数据移动的 DMOV 指令来实现,它需要将缓冲区置于内部 DARAM 块中;对于循环缓冲区,每当输入新样本时,以新样本改写区中最老的样本,而缓冲区中的其他样本不需要其他样本移动。循环缓冲区可采用循环寻址技术来实现,它不需要必须定位在 DARAM 块中,但需要适当的缓冲区对准以满足循环寻址的要求。本次课设用的是循环寻址,下面主要介绍一下循环寻址的方法。循环缓冲实现延时的特点是:(1) 实现 N 阶 FIR 数字滤波器时,需要在数据存储器中开辟一个称为滑窗的 N 个单元的缓冲区,滑窗中存放最新的 N 个样本。(2) 当每次输入新样本时以新的样本改写滑窗中最老的样本,而滑窗其他的数据不需要

14、移动。(3) 利用片内 BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首位相邻。3.1.1 FIR滤波器参数的设计FIR 滤波器的参数用 Matlab 来设计,其程序为: N=15; %滤波器的阶数Wn=0.1 %滤波器的截止频率 b=fir1(N,Wn)freqz(b,512,1000) %滤波器的幅频特性和相频特性Wn =0.1000b =课程设计说明书6Columns 1 through 90.0034 0.0074 0.0188 0.0395 0.0677 0.0984 0.1248 0.1400 0.1400Columns 10 through 160.1248 0.

15、0984 0.0677 0.0395 0.0188 0.0074 0.0034滤波器的幅频特性和相频特性如图 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);图 3-1 滤波器的幅频特性图图 3-2 滤波器的相频特性图课程设

16、计说明书7grid on;subplot(2,1,2);plot(x2);axis(0 50*pi -3 3);grid on;输出方波如 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(100*x*2*pi);y3=y1+y2;y4=conv(y3,b);subplot(4,1,1);plot(y1);图 3-4 方波信号图0 50 100 150-3-2-101230

17、50 100 150-3-2-10123课程设计说明书8subplot(4,1,2);plot(y2);subplot(4,1,3);plot(y3);subplot(4,1,4);plot(y4);输出正弦叠加信号的波形如图 3-5 所示上图由上向下,第一个图是低频正弦波,第二个图是高频正弦波,第三个图是低频与高频的叠加,最后一个是叠加后的正弦波经低通滤波器后出现的波形,基本与低频正弦信号相同。3.2 FIR滤波器的 CCS设计根据 Matlab 中设计的滤波器参数,也就是我么需要的 H(n),将它们用 Q15的定标方式写进汇编程序。程序编写完成后,加载 Matlab 中生成的*.dat 文

18、件,就可以得到滤波之后的图像。这里同样以方波和正弦波进行检验。其中生成方波的*.dat 文件程序如下x=0:2*pi/1024:2*pi;x1=2*square(2*pi*x);plot(x1);axis(0,1000,-4,4);图 3-5 正弦叠加信号0 200 400 600 800 1000 1200-1010 200 400 600 800 1000 1200-1010 200 400 600 800 1000 1200-2020 200 400 600 800 1000 1200-101课程设计说明书9xlout=x1/max(x1);x1t0_ccs=round(32767*xl

19、out);fid=fopen(square.dat,w);fprintf(fid,1651 1 0210 0 c8n);fprintf(fid,%dn,x1t0_ccs);fclose(fid)生成正弦波的*.dat 文件程序如下figure(3)x=0:2*pi/1024:2*pi;y1=sin(1*x*2*pi+pi/6);y2=sin(100*x*2*pi);y3=y1+y2;plot(y3);xout=y3/max(y3); %归一化 xto_ccs=round(32767*xout) fid=fopen(sin.dat,w); %打开文件 fprintf(fid,1651 1 0210 0 c8n); %输出文件头 fprintf(fid,%dn,xto_ccs); %输出 fclose(fid);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报