FIR滤波器(带通滤波器)课设报告_第1页
FIR滤波器(带通滤波器)课设报告_第2页
FIR滤波器(带通滤波器)课设报告_第3页
FIR滤波器(带通滤波器)课设报告_第4页
FIR滤波器(带通滤波器)课设报告_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计任务书分院(系)信息科学与工程学院专业电子信息工程学生姓名学号设计题目FIR 滤波器(带通滤波器)内容及要求:1. 设计一个截止频率为1500Hz3000Hz的带通数字滤波器。2. 在 DSP TMS320C550上实现9FIR滤波。3. 对 FIR 滤波器各项指标进行评价。进度安排:2011 年 12 月 31 日选题、查阅资料。2011 年 01 月 01-11 日课内上机编写软件程序(或硬件原理图设计)调试程序及仿真,课外上机调试程序及仿真,调试程序及仿真、调试出结果、调试结果验收并写报告。指导教师(签字):年月日分院院长(签字):年月日摘要DSP 芯片是一种高性能的微处理器,其

2、技术发展大大推动了数字信号处理技术的发展与应用,目前从工业系统到家电产品,从军事装备到生物医学仪器,无不融入了DSP技术。本文阐述了带通数字滤波器的功能和基本原理,并且介绍了CCS3.3环境的相关内容,然后在CCS3.3中以TMS320C55x 芯片的汇编语言编程实现了带通数字滤波器的设计。而且通过仿真和验证,初步完成了设计。关键词 : DSP;微处理器;CCS3.3; TMS320C55x51 数字滤波器设计原理 21.1 数字滤波器的定义和分类 21.2 数字滤波器的优点 21.3 FIR 滤波器基本原理 31.3.1 FIR数字滤波器的特点及结构 31 .3.2 FIR 滤波器具有的优点

3、 51.4 IIR 数字滤波器基本原理 51.5 FIR 和 IIR 滤波器的比较 62 TMS320C5X 的硬件结构 72.4 C55X的 CPU 体系结构 72.5 指令缓冲单元(I) 72.6 程序流程单元(P) 72.7 地址程序单元(A) 82.8 数据计算单元(D) 83 数字滤波器设计方法93.4 窗函数法93.5 模拟数字变换法104 数字滤波器的MATLAB 辅助设计124.4 MATLAB 简介 124.5 FDAtool 界面介绍124.6 FIR 数字滤波器设计 134.6.1 得到滤波器冲激响应序数方法 134.6.2 FIR 参数设定及频域响应特性 145 数字滤

4、波器的CCS 实现 155.4 简述CCS环境 155.4.1 CCS主要特点 155.4.2 DSP/BIOS和 API 函数以及RTDX 插件 155.5 CCS配置 165.6 CCS环境中工程文件的使用 165.6.1 建立工程文件 165.6.2 创建新文件 175.6.3 向工程项目中添加文件 175.7 编译链接和运行目标文件5.7.1 对程序进行编译链接.5.7.2 装载 .out文件 6 运行并观察结果结 论 参考文献1818181921.错误!未定义书签。.致谢 23附录A C程序清单24附录B 滤波器输出系数27沈阳理工大学信息科学与技术学院DSP 技术课程设计报告绪论2

5、1 世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(PSP)做为技术核心,DSP已经成为推动数字化进程的动力。作为数字化最重要的技术之一,DSP无论在其应用的深度还是广度,正在以前所未有的速度向前发展。数字信号处理器,也称DSP 芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,它是现代电子技术、相结合的产物。一门主流技术,随着信息处理技术的飞速发展,计算机技术和数字信号处理技术数字信号处理技术逐渐发展成为它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许

6、多电子产品的研制、开发和应用中,发挥着重要的作用。采用DSP 芯片来实现数字信号处理系统是当前发展的趋势。近年来, DSP 技术在我国也得到了迅速的发展,不论是在科学技术研究,还是在产品的开发等方面,在数字信号处理中,其应用越来越广泛,并取得了丰硕的成果。数字滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。在许多信号处理应用中用数字滤波器替代模拟滤波器具有许多优势。数字滤波器容易实现不同的幅度和相位频率特性指标,克服了与模拟滤波器器件性能相关的电压漂移、温度漂移和噪声问题。用DSP 芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有

7、灵活性好的特点。用可编程DSP 芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷达等都涉及信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程都可能包含衰减一个频率范围,阻止或隔离一些频率成分,用数字滤波器来实现这些功能是方便、有效、可行的。431 数字滤波器设计原理1.1 数字滤波器的定义和分类数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台

8、完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF) 4。1.2 数字滤波器的优点相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。同时DSP 处理器 (Digital Signal Processor)的出现和FPGA

9、(FieldProgrammable Gate Array)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。数字滤波器具有以下显著优点:精度高 :模拟电路中元件精度很难达到10-3以上,而数字系统17 位字长就可以达到10-5 精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤波器来实现。灵活性大:数字滤波器的性能主要取决于乘法器的各系数,而这些系数是存放在系数存储器中的,只要改变存储器中存放的系数,就可以得到不同的系统,这些都比改变模拟滤波器系统的特性要容易和方便的多,因而具有很大的灵活性。可靠性高 :因为数字系统只有两个电平信号:"1 ”和

10、“ 0," 受噪声及环境条件的影响小,而模拟滤波器各个参数都有一定的温度系数,易受温度、振动、电磁感应等影响。并且数字滤波器多采用大规模集成电路,如用 CPLD 或 FPGA来实现,也可以用专用的DSP处理器来实现,这些大规模集成电路的故障率远比众多分立元件构成的模拟系统的故障率低。易于大规模集成:因为数字部件具有高度的规范性,便于大规模集成,大规模生产,且数字滤波电路主要工作在截止或饱和状态,对电路参数要求不严格。因此产品的成品率高,价格也日趋降低。相对于模拟滤波器,数字滤波器在体积、重量和性能方面的优势己越来越明显。比如在用一些用模拟网络做的低频滤波器中,网络的电感和电容的数值会

11、大到惊人的程度,甚至不能很好地实现,这时候若采用数字滤波器则方便的多。并行处理:数字滤波器的另外一个最大优点就是可以实现并行处理,比如数字滤波器可采用DSP 处理器来实现并行处理。TI 公司的 TMS320C5000 系列的 DSP 芯片采用8 条指令并行处理的结构,时钟频率为100MHZ 的 DSP 芯片,可高达100MIPs(即每秒执行百万条指令)。1.3 FIR 滤波器基本原理1.3.1 FIR 数字滤波器的特点及结构在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。FIR 滤波器不断地对输入样本 x(n)延时

12、后,再作乘法累加算法,将滤波结果y(n)输出,因此,FIR 实际上是一种乘法累加运算。在数字滤波器中,FIR 滤波器的最主要的特点是没有反馈回路,故不存在不稳定的问题,同时,可以在幅度特性是随意设置的同时,保证精确的线性相位。稳定和线性相位特性是FIR 滤波器的突出优点。另外,它还有以下特点:设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相对IIR 滤波器而言,阶次较高,其延迟也要比同样性能的IIR 滤波器大得多。3FIR 数字滤波器系统的传递函数为:(1.1)(1.2)通过反 z 变换 ,数字滤波器的差分方程为:由此得到系统的差分方程:(1.3)由上式可以得出如下图1.1 所示

13、的直接型结构,这种结构又可以称为卷积型结构。将转置理论应用于图1.1 可以得到转置直接型结构。将式中的系统函数H(z)分解成若干一阶和二阶多项式的连乘积:(1.4)(1.4)则可构成如图1.1 所示的级联型结构。其中为一阶节; 为二阶节。每个一阶节、二阶节可用图1.2 所示的直接型结构实现。当M1 = M 2时,即得到图1.3 所示的具体结构。这种结构的每一节都便于控制零点,在需要控制传输零点时可以采用。但是它所需要的系数a 比直接型的h(n)多,所需要的乘法运算也比直接型多。在对滤波器计算时间没有特殊要求的时候可以采用这种形式。若需要严格考虑滤波器的计算时间则需要折衷它们的优点和缺点来设计。

14、这在算法设计时候要使用软件编辑环境来计算运行的时间问题。通常 FIR 的计算时间都较长。很多时候我们需要牺牲时间来获得想要得到的滤波器功能。1.1 FIR 滤波器直接型机构图1.2 级联型结构图1.3 级联型具体结构1.3.2 FIR 滤波器具有的优点可以在幅度特性随意设计的同时,保证精确、严格的线性相位;由于 FIR 滤波器的单位脉冲h(n)是有限长序列,因此FIR 滤波器没有不稳定的问题;由于FIR 滤波器一般为非递归结构,因此,在有限运算下不会出现递归型结构中的极限振荡等不稳定现象误 差较小; FIR 滤波器可以采用FFT算法实现,从而提高了运算效率。1.4 IIR 数字滤波器基本原理I

15、IR数字滤波器,即无限长单位冲激响应数字滤波器,是指单位冲激响应是无限长,系统函数在Z平面上有极点存在,结构上存在着输出到输入的反馈,即结构上是递归型的数字滤波器。换句话说,它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为:(1.4)式中ak、br为滤波系数。当br全为零时,该滤波器为FIR数字滤波器;当br不全为零时,则为IIR滤波器。与 FIR数字滤波器相比,IIR数字滤波器可用较低的阶数获得较好的频率选择特性,所用的存储单元少,成本低,信号延迟小,而且可以借助模拟滤波器设计。41.5 FIR 和 IIR 滤波器的比较在很多实际应用中如语音和音频信号处理中,数字滤波

16、器来实现选频功能。因此,指标的形式应为频域中的幅度和相位响应。在通带中,通常希望具有线性相位响应。在FIR 滤波器中可以得到精确的线性相位。在IIR 滤波器中通带的相位是不可能得到的,因此主要考虑幅度指标。IIR 数字滤波器的设计和模拟滤波器的设计有着紧密的联系,通常要设计出适当地模拟滤波器,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。 此外, 任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如 A/D 变换器前的抗混叠滤波器及D/A 转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。从性能上来说,IIR数字滤波器传递函数包括零点和极点两组可调因素,对

17、极点的唯一限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。而FIR滤波器却可以得到严格的线性相位。从结构上看,IIR滤波器必须采用递归结构来配置极点,

18、并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况有时会造成稳定性问题,甚至造成寄生振荡。相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅立叶变换算法,在相同的阶数条件下运算速度可以快的多。2 TMS320C5X 的硬件结构2.1 C55X 的 CPU 体系结构C55X有 1 条 32位的程序数据总线( PB) , 5条 16位数据总线( BB、 CB、 DB、 EB、FB)和1 条 24位的程序地址总线及5 条 23 位地址总线,这些总线

19、分别与CPU 相连。总线通过存储单元接口(M )与外部程序总线和数据总线相连,实现CPU 对外部存储器的访问。 这种并行的多总线结构,使 CPU 能在一个CPU 周期内完成1 次 32 位程序代码读、3 次 16 位数据读和两次16位数据写。C55X 根据功能的不同将CPU 分为 4个单元,指令缓冲单元(I) 、程序流程单元(P) 、地址流程单元(A) 、和数据计算单元(D) 。读程序地址总线(PDA)上传送24 位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码1。2.2 指令缓冲单元(I)C55X 的指令缓冲单元有指令缓冲队列IBQ 和指令译码器组成。在每个C

20、PU 周期内, I 单元将从程序数据接收的4B 程序代码放入指令缓冲队列,指令译码器从队列中取6B 程序代码,根据指令的长度可对8 位、16 位、24 位、 32 位和 48 位的变长指令进行译码,然后把译码数据送入P 单元、 A 单元和 D 单元去执行。2.3 程序流程单元(P)程序流程单元有程序地址产生电路和寄存器组凑成。程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。程序地址产生逻辑电路的任务是产生读取空间的24 位地址。一般情况下,它产生的是连续地址,如果指令要求读取非连续地址的程序代码时,程序地址产生逻辑电路能够接收来自I 单元的立即数和来自D 单元的寄存器值,并将产生的地

21、址传送到PAB。在 P 单元中使用的寄存器分为5 种类型。程序流寄存器:包括程序计数器、返回地址寄存器和控制流程关系寄存器。块重复寄存器:包括块重复寄存器0 和 (1 BRC0、 BRC1 ) BRC1 的保存寄存器(BRS1)、块重复起始地址寄存器0 和 1 以及块重复结束地址寄存器0 和 1。单重复寄存器:包括单重复寄存器和计算单重复寄存器。中断寄存器:包括中断标志寄存器0 和 1、中断使能寄存器0 和 1 以及调试中断使能寄存器0 和 1。状态奇存期:包括状态寄存器0, 1, 2 和 3。2.4 地址程序单元(A)地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。数据地址产生

22、电路能够接收来自I 单元的立即数和来自A 单元的寄存器产生读取数据空间的地址。对于使用间接寻址模式的指令,有 P 单元向 DAGEN 说明采用的寻址模式。A 单元包括一个16 位的算术逻辑单元,它既可以接收来自I 单元的立即数也可以与存储器、I/O 空间、 A 单元寄存器、D 单元寄存器和P单元寄存器进行双向通信。A 单元包括的寄存器有以下几种类型。数据页寄存器:包括数据页寄存器和接口数据页寄存器;指针:包括系数数据指针寄存器、堆栈针寄存器和8 个辅助寄存器;循环缓冲寄存器:包括循环缓冲大小寄存器、循环缓冲起始地址寄存器;临时寄存器:包括临时寄存器。2.5 数据计算单元(D)数据计算单元由移位

23、器、算数逻辑电路、乘法累加器和寄存器组构成。D 单元包含了 CPU 的主要运算部件。D 单元移位器能够接收来自I 单元的立即数,能够与存储器、I/O 单元、 A 单元寄存器、 D 单元寄存器和P 单元寄存器进行双向通信,此外,还可以向D 单元的 ALU 和A 单元的 ALU 提供移位后的数据。移位可以完成以下操作:对 40 位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供;对于 16 位寄存器、存储器或I/O 空间数据可完成左移31 位或 32位的移位操作;对于 16 位立即数可完成向左移最多15 位的移位操作。3 数字滤波器设计方法3.1 窗函数法窗

24、函数设计的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR 滤波器。 因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。对于给定的滤波器技术指标,选择滤波器长度和 具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。任何数字滤波器的频率响应A(ejw) 都是 w 的周期函数,它的傅立叶级数展开式为:3.1)3.2)其中的Wc为滤波器的归一化的截止频率。傅立叶系数hd(n)实际上就是理想数字滤波器的冲激响应。获得有限冲激响应数字滤波器的一种可能方法就是把无穷级数截取为有限项级数来近似,而吉布斯(Gibbs)现象使得直接截取法不甚令人

25、满意。窗函数法就是用被称为窗函数的有限加权系列W(n) 来修正式 (3.2)的傅立叶级数,以求得要求的有限冲激响应序列h(n),即有:h(n)=hd(n)W(n)(3.3)w(n)是有限长序列,当n>N-1 及 n<0时,W(n)=0。几种常用的窗函数工程中比较常用的窗函数有矩形窗函数、三角形(Bartlett)窗函数、汉宁(Harming)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞Kaiser)窗函数。窗函数的选择原则是:具有较低的旁瓣幅度,尤其是第一旁瓣幅度;旁瓣幅度下降速度要大,以利增加阻带衰减;主瓣的宽度要窄,以获得较陡的过渡带。通常上述

26、三点很难同时满足。当选用主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加:当选用最小的旁瓣幅度时,虽能得到匀滑的幅度响应和较小的阻带波动,但过渡带加宽。因此,实际选用的窗函数往往是它们的折衷。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。总之窗函数不仅有截短的作用,而且能够起到平滑的作用在很多领域得到应用。表 3.1给出了几种常用窗函数的性能对比表。表 3.1 常用窗函数的性能对比表3.2 模拟数字变换法模拟网络的逼近和综合理论已经发展的相当成熟,产生了许多效率很高的设计方法,很多常用滤波器不仅有简单而严格的设计公式,而且设计参数已表格化,设计起来方

27、便准确。而数字滤波器在很多场合要完成的任务与模拟滤波器相同,如做低通、高通、带通和带阻滤波器等。 因此, 完全可以借助于模拟滤波器的理论和设计方法来设计数字滤波器。IIR 数字滤波器具有无限的冲激响应,与模拟滤波器相匹配,所以IIR 滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波器效果不断的调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,

28、大大简化了计算量。用模拟- 数字变换法设计IIR 数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下几种:1巴特沃斯(Butterworth)滤波器BW 滤波器是根据幅频特性在通带内具有最平坦特性而定义的滤波器,对一个N 阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在 =0处都为零,BW 滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶数N的增大而更接近于理想低通滤波器。2切贝雪夫(Chbyshew)滤波器CB 低通滤波器的模拟函数由切贝雪夫多项式定义,且其在通带内的幅频响应是波动的,在阻带则单调变化。3逆切贝雪夫

29、(Inverse-Chbyshe)滤波器 wICB滤波器的误差在通带内是单调增加的CB滤波器的误差在通带内均匀起伏地分布,ICB滤波器的误差在阻带内是均匀起伏地分布的,因而在相同阶数时CB 滤波器的过渡特性将优于BW 滤波器。4考尔(Cauer简写为C)滤波器也称为椭圆滤波器,其幅度特性是由雅可比(Tacobian)椭圆函数决定的,在通带和阻带内都具有“等波纹 ”幅度特性,其系统函数不仅具有极点而且也有零点。 上述滤波器是最常用的,此外还有贝塞耳(Bessel)滤波器等。设计时选用那种类型,设计者应视用途、指标要求等自行决定。一般地说,在相同设计指标下,“ C滤波器”过渡带最为陡峭,或者阶数最

30、低,“ CB”滤波器次之,“ BW”滤波器则更不及“ CB”滤波器陡峭,或者所需阶数最高。但从设计的复杂性和参数变化对滤波器特性的影响,即参数灵敏度的角度看,情况恰恰相反。4 数字滤波器的MATLAB 辅助设计4.1 MATLAB 简介MATLAB 是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB 来解算问题要比用C,FORTRAN 等语言完相同的事情简捷得多,当前流行的MATLAB 5.

31、3/Simulink 3.0 包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。MATLAB 具有许多的优点比如:语言简洁紧凑,使用方便灵活,库函数极其丰富 ;MATLAB 既具有结构化的控制语句(如 for 循环, while 循环,break语句和if 语句),又有面向对象编程的特性;程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行,等等优

32、点。因此在各个学科和领域得到了广泛的应用。4.2 FDAtool 界面介绍FDAtool( Filter Design Analysis tool) 是 MATLAB 信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0 以上的版本还专门增加了滤波器设计工具箱(Filter Designtoolbox) 。 FDAtool 可以设计几乎所有的基本的常规滤波器,包括fir 和 iir 的各种设计方法。它操作简单,方便灵活。FDAtool 界面总共分两大部分,一部分是design filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的

33、各种特性。 design filter 部分主要分为:filter type(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、 bandpass(带通)、 bandstop(带阻)和非凡的fir 滤波器。design method(设计方法)选项,包括iir 滤波器的butterworth(巴特沃思)法、chebyshev type (切比雪夫ii 型)法、chebyshev type i(切比雪夫iii 型)法、elliptic(椭圆滤波器)法和fir 滤波器的equiripple 法、least-squares(最小乘方)法、window(窗函数)法。filter

34、order(滤波器阶数)选项,定义滤波器的阶数,包括specify order(指定阶数)和 minimum order(最小阶数)。在specify order中填入所要设计的滤波器的阶数(n 阶滤波器,specify order n-1 ) ,假如选择minimum order 则 matlab 根据所选择的滤波器类型自动使用最小阶数。frenquency specifications 选项,可以具体定义频带的各参数,包括采样频率fs和频带的截止频率。它的具体选项由filter type 选项和 design method 选项决定,例如bandpass(带通)滤波器需要定义fstop1

35、(下阻带截止频率)、 fpass1 (通带下限截止频率) 、 fpass2(通带上限截止频率)、 fstop2 (上阻带截止频率), 而 lowpass(低通)滤波器只需要定义fstop1 、 fpass1 。 采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。magnitude specifications 选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义wstop1 (频率fstop1 处的幅值衰减)、 wpass(通带范围内的幅值衰减)、wstop2(频率 fstop2 处的幅值衰减)。当采用窗函数设计时,通带截

36、止频率处的幅值衰减固定为6db,所以不必定义。window specifications 选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。设置好参数后点击下方的(design Filter )滤波器设计即可得到所设计的滤波器。设计完成后,可通过主菜单选项Analysis 来分析滤波器的幅频响应和相频响应特性。点击Analysis 中的 Magnitude Response 对幅频特性和相频特性进行分析。4.3 FIR 数字滤波器设计4.3.1 得到滤波器冲激响应序数方法在主菜单中选择Targets Code Composer Studio(r) IDE 命令,弹出Export

37、to CodeComposer (r)IDE 窗口。设置Numerator及 Export as选项单击Select target按钮,选择目标DSP,这里选择C55X simulate 单击 OK 确认。滤波器冲激响应系数将按默认名称s.h显示出来结果见附录D。对 IIR 系数输出,在主菜单中选择File Export 命令,打开Export 对话框,选择输出到Text file, 单击 OK 确认,即可将参数输出到指定文件中。在设计过程中,可以对比滤波器幅频和相频特性及它们的设计要求,对参数和滤波类型做出调整。4.3.2 FIR 参数设定及频域响应特性设 计 FIR 带 通 滤 波 器 ,

38、 采 样 频 率 fs=8000Hz , fstop1=1400Hz ,fpass1=1500Hz,fpass2=3000Hz,fstop2=3100Hz阻带的最小衰减为 ,40dB, 通带的最大衰减为 3dB。频率响应特性如图4.1 所示。4.1 FIR 带通滤波器参数设置及频率响应特性5 数字滤波器的CCS 实现5.1 简述 CCS环境CCS,即Code Composer Studio,是TI 公司在1999年推出的一个开放、具有强大集成开发环境。它最初是由GO DSP 公司为 TI 的 C6000 系列 DSP 开发的。在TI 收购了 GO DSP后,将CCS扩展到了其它系列。现在所有T

39、I 的 DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和 C6000的 CCS中才提供。以前的 DSP 软件开发都是在一个分散的开发环境下进行,程序的编写、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。而CCS 的出现是 DSP开发软件的一次革命性的变化。CCS主要由代码生成工具、CCS集成开发环境、DSPBIOS和 API 函数以及RTDX 组成。5.1.1 CCS主要特点集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h 文件、 .cmd文件等。集成代码生成工具,包括汇编器、优化的C 编译器和连接器等。具有完整的基本调试工具, 可

40、以载入执行文件(.out), 查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在 C 源代码级进行调试。支持多片DSP 联合调试。断点工具,支持硬件断点、数据空间读/写断点、条件断点等。探针工具,用于进行算法仿真,数据监视等。剖析工具,用于评估代码执行的时间。数据图形显示工具,可绘制时域/频域波形、眼图、 星座图等,并可以自动刷新。提供GEI 工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。5.1.2 DSP/BIOS和 API 函数以及RTDX 插件DSP/BIOS(Basic Input Output System)和 API(Applicatio

41、n Program Interface)函数为 CCS的主要插件之一。DSPBIOS可以看作是一个准实时操作系统,支持TI DSP 芯片的各种实时操作系统都是以DSP/BIOS作为底层软件,为嵌入式应用提供基本的运行服务。并且,它还能实时获取目标机的信息,并将其传递给主机上的BIOSCOPE 工具,对应用程序进行实时分析RTDX (Real Time Data Exchange)插件是CCS中另一个十分重要的插件。实时数据交换技术为CCS 提供了一个实时、连续的可视环境,开发人员可以看到 DSP应用程序工作的真实过程。RTDX 允许系统开发者在不停止运行目标应用程序的情况下在计算机和DSP 芯

42、片之间传输数据,同时还可以在主机上利用对象链接嵌入(OLE)技术分析和观察数据。RTDX 可以在 DSPBIOS中使用,也可以脱离DSP/BIOS 使用。由于CCS 中的Simulator 不支持 RTDX,所以必须在连接有硬件仿真器或目标板的Emulator 下使用。5.2 CCS配置击桌面图标的“ setupC CStudio v3.1 ”图标,运行 CCS设置程序,如图5.1 所示:点击 Add Save&quit 完成设置。5.1 用标准配置文件设置系统配置5.3 CCS环境中工程文件的使用5.3.1 建立工程文件在 CCS集成环境下开发汇编程序或者C/C+程序,首先要建立一个

43、工程项目文件( *.pjt ) ,再向工程项目文件中添加汇编程序源文件(*.asm) , C/C+源文件(*.c )和链接命令文件( *.cmd) , 并设置工程项目选项。使用CCS开发应用程序的一般步骤如下:创建或打开一个工程项目文件(*.pjt ) ,编辑各类文件,可以使用CCS提供的集成编辑环境,对链接命令文件和源程序进行编辑。对工程项目进行编译。在编译过程中如果出现语法错误,将在编译链接信息视窗( build ) 窗口中显示错误信息,用户可以根据显示的信息找到错误的位置,更改错误。对结果和数据进行分析和算法评估。用户可以利用CCS提供的探测点. 图形显示和性能评价等工具,对运行结果及输

44、出数据进行分析,评估算法的可能性。下面分别进行介绍建立工程文件,单击Project New命令,系统将弹出如图所示的对话框,在该对话框中输入项目文件名,如fir 单击“完成”系统就会创建一个名为fir.pjt 的工程项目文件如图5.2 所示。图 5.2 创建新的工程项目文件对话框5.3.2 创建新文件选择File New 可打开一个新的编辑窗口。在新窗口中输入源代码。选择FileSave,在出现的对话框中输入一个文件名,并选择一个扩展名(C 源代码选择*.c,汇编源代码选择*.asm) ,然后单击保存将源程序保存6。5.3.3 向工程项目中添加文件添加文件:单击Project Add File

45、 to Project 命令然后会弹出如图5.3所示的对话框,单击打开完成对文件的添加。5.3 向工程项目中添加文件对话框5.4 编译链接和运行目标文件5.4.1 对程序进行编译链接对程序进行编译:执行Project Compile 命令就可以对当前的汇编程序进行编译生成 .obj 文件。如果程序存在语法错误,那么就会在下面的编译链接信息框中显示错误信息。根据错误提示,读者可对程序进行修改2。对程序进行编译链接执行Project Build 命令,就可以对当前的项目文件同时进行编译,汇编和链接操作,并生成与工程项目名称相同的可执行的.out 文件。如果有错误信息, 则会在 “编译链接 ”信息框

46、中显示。也可以执行Project下的 build All 命令, 所有项.out文件。5.4.2 装载 .out 文件单击主菜单“ File中 ”“ LoadP rogram”选项,在对话框中,在CCS 安装目录下,找到构建该工程的Debug 目录,选择构建生成后的.out 文件,并打开CCS 装载完毕后,该*.out文件到目标 ”dsp之后,会自动弹出“ Disassembly窗口如图 ”5.4所示。5.4 CCS 调试程序时出现的视窗加工程界面6 运行并观察结果在主菜单中选择Debug Animate命令或按Alt+F5 键运行程序。观察 Input和 Output视窗中滤波器前后的时域观

47、察波形图,观察滤波效果。数字滤波器仿真结果如图所示6.1 FIR 带通滤波器滤波前后时域波形图6.2 FIR 带通滤波器滤波前频域波形图6.3 FIR 带通滤波器滤波后频域波形图图 6.1 的仿真波形图时域部分上面的波形为两个参考波频率叠加后的波形, 图 6.2 为滤掉干扰信号后的低频信号,频域波形窗口中第一部分所示的是 Display Type 为 FFT Magitude 的两个参考信号的后的频域波形, 图 6.3 为经过滤波后保留的通带频率 1500HZ 阻带频率 3000HZ的带通信号的频域波形图。结论本文以窗函数法设计线性相位FIR 数字滤波器,介绍用MATLAB 工具软件设计数字滤

48、波器的方法并在CCS 上仿真结果观察波形图可以看出本次设计基本实现了目标要求,但还存在误差,分析误差原因为在用DSP实现 FIR 滤波器时,在定点运算中,乘法运算的结果因位数增多而需要进行截止或舍入处理,因而引起了乘法运算的量化效应。由于舍入和截尾都是非线性过程,所以量化效应相当于在滤波器某些链路中引入了非线性环节,给分析和设计带来问题。如何设置FIR 滤波器的参数以及加窗的计算等对滤波器的功能有着非常重要的影响。本文在MATLAB 平台上,研究了基于窗函数法并同时考虑衰减等多个参数设置问题。MATLAB 具有强大的数值计算和图形功能,虽然其执行效率较低,但其编程效率与可读性、可移植性要远高于

49、其他高级语言。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,运用它来进行辅助设计,在系统的准确性和高效率方面起到了至关重要的作用。在对设计的数字滤波器的进行调试,仿真时采用了CCS开发环境。CCS加速和增强了实时,嵌入信号处理的开发过程,它提供配置、构造、调试、跟踪和分析程序的工具,在基本代码产生工具的基础上增加了调试和实时分析的功能。开发设计人员可在不中断程序运行的情况下检查算法的对错,实现对硬件的实时跟踪调试,从而大大缩减了程序的开发时

50、间。参考文献1 汪春梅, 孙洪波 .TMS320C 55x DSP原理及应用.第二版.北京:电子工业出版社20082 姜 阳,周锡青.DSP原理与应用实验.西安:西安电子科技大学出版社,20083 方华刚 . DSP原理与应用. 北京:机械工业出版社,2006.14 程佩青,数字信号处理教程第二版,清华大学出版社,2001.85 TMS320C55X DSP Programmer s Guide SPRU376AZ.Texas Instruments,20016 TMS320C55X DSP Mnemonic Instruction Set Reference Guide SORU374GZ.

51、 Texas Instruments,20027 TMS320C55XDSP AssemblyLanguage Tools User sG uide SPRU280HZ.Texas Instruments,2004.致谢通过这次设计,我把自己所学的理论知识运用于实践,受益非浅。本次设计让我对DSP知识及CCS5000环境还有MATLAB , 都有进一步的了解,同时对软、硬件设计也有了更深入的理解和掌握。对我而言,本设计不仅是对大学所学过的知识的总结和考察,而且更是一个扩大自己知识面,锻炼动手能力的机会,经过这次的设计,使我在理论和实践方面都有了很大的提高。在整个课程设计过程中,指导老师给予我很

52、多的关注和指导,勤勉教学,诲人不倦,帮助我顺利的完成这次设计任务,在这里我要对老师表示诚挚的谢意。附录 A C 程序清单1 主程序FIR.C #include "s.h #include "math.h"/输入信号1 频率/输入信号2 频率/采样频率/滤波器系数长度#define signal_1_f 200#define signal_2_f 3800#define signal_3_f 1700#define signal_sample_f 8000#define pi 3.1415926#define coff_L 88#define bufer_L 256

53、int data_inbufer_L;int outbufer_L;int firout;int xcoff_L+1;int k=0;int bufer=bufer_L;extern int fir(int *,int);extern int init(int *,int);extern int outdata(int *,int,int);void inputwave();void main()inputwave();init(x,BP);while(1)x0=data_ink;firout=fir(x,BP);/滤波outdata(out,firout,bufer);k+;/断点、动画运行if ( k>=bufer_L) k=0;/输入波形void inputwave()float wt1;float wt2;float wt3;int i;for (i=0;i<=bufer_L;i+)wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;wt2=wt2/signal_sample_f;wt3=2*pi*i*signal_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论