1、课 程 设 计 任 务 书分院(系)信息科学与工程学院专业电子信息工程学生姓名学号设计题目FIR滤波器(带通滤波器)内容及要求:1.设计一个截止频率为1500Hz3000Hz的带通数字滤波器。2.在DSP TMS320C5509上实现FIR滤波。3.对FIR滤波器各项指标进行评价。进度安排:2011年12月31日 选题、查阅资料。2011年01月01-11日课内上机编写软件程序(或硬件原理图设计)调试程序及仿真,课外上机调试程序及仿真,调试程序及仿真、调试出结果、调试结果验收并写报告。指导教师(签字): 年 月 日分院院长(签字): 年 月 日摘 要 DSP芯片是一种高性能的微处理器,其技术发
2、展大大推动了数字信号处理技术的发展与应用,目前从工业系统到家电产品,从军事装备到生物医学仪器,无不融入了DSP技术。本文阐述了带通数字滤波器的功能和基本原理,并且介绍了CCS3.3环境的相关内容,然后在CCS3.3中以TMS320C55x芯片的汇编语言编程实现了带通数字滤波器的设计。而且通过仿真和验证,初步完成了设计。关键词:DSP;微处理器;CCS3.3;TMS320C55x目 录1 数字滤波器设计原理21.1数字滤波器的定义和分类21.2数字滤波器的优点21.3 FIR滤波器基本原理31.3.1 FIR数字滤波器的特点及结构31 .3.2 FIR滤波器具有的优点51.4 IIR数字滤波器基
3、本原理51.5FIR和IIR滤波器的比较62 TMS320C5X的硬件结构72.1 C55X的CPU体系结构72.2 指令缓冲单元(I)72.3 程序流程单元(P)72.4 地址程序单元(A)82.5 数据计算单元(D)83 数字滤波器设计方法93.1 窗函数法93.2 模拟数字变换法104 数字滤波器的MATLAB辅助设计124.1 MATLAB简介124.2FDAtool界面介绍124.3 FIR数字滤波器设计134.3.1得到滤波器冲激响应序数方法134.3.2 FIR参数设定及频域响应特性145 数字滤波器的CCS实现155.1 简述CCS环境155.1.1 CCS主要特点155.1.
4、2 DSP/BIOS和API函数以及RTDX插件155.2 CCS配置165.3 CCS环境中工程文件的使用165.3.1 建立工程文件165.3.2 创建新文件175.3.3 向工程项目中添加文件175.4 编译链接和运行目标文件185.4.1 对程序进行编译链接185.4.2 装载.out文件186运行并观察结果19结 论21参考文献22致谢23附录A C程序清单24附录B 滤波器输出系数27 IV沈阳理工大学信息科学与技术学院DSP技术课程设计报告绪 论21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(PSP)做为技术核心,DSP已经成为推动数字化进程的动力。作为数字化最重要
5、的技术之一,DSP无论在其应用的深度还是广度,正在以前所未有的速度向前发展。数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,它是现代电子技术、相结合的产物。一门主流技术,随着信息处理技术的飞速发展,计算机技术和数字信号处理技术数字信号处理技术逐渐发展成为它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。 数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。采用DSP芯片来实现数字信号处理系统是当前发展的趋势。 近年来,DSP技术在我国也得到
6、了迅速的发展,不论是在科学技术研究,还是在产品的开发等方面,在数字信号处理中,其应用越来越广泛,并取得了丰硕的成果。数字滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。在许多信号处理应用中用数字滤波器替代模拟滤波器具有许多优势。数字滤波器容易实现不同的幅度和相位频率特性指标,克服了与模拟滤波器器件性能相关的电压漂移、温度漂移和噪声问题。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几乎每一科学和工程领域例如声学、物理学、通信、
7、数据通信、控制系统和雷达等都涉及信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程都可能包含衰减一个频率范围,阻止或隔离一些频率成分,用数字滤波器来实现这些功能是方便、有效、可行的。1 数字滤波器设计原理1.1 数字滤波器的定义和分类 数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(F
8、IR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF) 4。1.2 数字滤波器的优点 相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。同时DSP处理器(Digital Signal Processor)的出现和FPGA(FieldProgrammable Gate Array)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。数字滤波器
9、具有以下显著优点:精度高:模拟电路中元件精度很难达到10-3以上,而数字系统17位字长就可以达到10-5精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤波器来实现。灵活性大:数字滤波器的性能主要取决于乘法器的各系数,而这些系数是存放在系数存储器中的,只要改变存储器中存放的系数,就可以得到不同的系统,这些都比改变模拟滤波器系统的特性要容易和方便的多,因而具有很大的灵活性。可靠性高:因为数字系统只有两个电平信号:1”和“0,受噪声及环境条件的影响小,而模拟滤波器各个参数都有一定的温度系数,易受温度、振动、电磁感应等影响。并且数字滤波器多采用大规模集成电路,如用CPLD或FPGA来实现,也
10、可以用专用的DSP处理器来实现,这些大规模集成电路的故障率远比众多分立元件构成的模拟系统的故障率低。易于大规模集成:因为数字部件具有高度的规范性,便于大规模集成,大规模生产,且数字滤波电路主要工作在截止或饱和状态,对电路参数要求不严格。因此产品的成品率高,价格也日趋降低。相对于模拟滤波器,数字滤波器在体积、重量和性能方面的优势己越来越明显。比如在用一些用模拟网络做的低频滤波器中,网络的电感和电容的数值会大到惊人的程度,甚至不能很好地实现,这时候若采用数字滤波器则方便的多。 并行处理:数字滤波器的另外一个最大优点就是可以实现并行处理,比如数字滤波器可采用DSP处理器来实现并行处理。TI公司的TM
11、S320C5000系列的DSP芯片采用8条指令并行处理的结构,时钟频率为100MHZ的DSP芯片,可高达100MIPs(即每秒执行百万条指令)。1.3 FIR滤波器基本原理1.3.1 FIR数字滤波器的特点及结构 在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。FIR滤波器不断地对输入样本x(n)延时后,再作乘法累加算法,将滤波结果y(n)输出,因此,FIR实际上是一种乘法累加运算。 在数字滤波器中,FIR滤波器的最主要的特点是没有反馈回路,故不存在不稳定的问题,同时,可以在幅度特性是随意设置的同时,保证精确的线性相
12、位。稳定和线性相位特性是FIR滤波器的突出优点。另外,它还有以下特点:设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相对IIR滤波器而言,阶次较高,其延迟也要比同样性能的IIR滤波器大得多。3FIR数字滤波器系统的传递函数为: (1.1) 通过反z变换,数字滤波器的差分方程为: (1.2) 由此得到系统的差分方程: (1.3) 由上式可以得出如下图1.1所示的直接型结构,这种结构又可以称为卷积型结构。将转置理论应用于图1.1可以得到转置直接型结构。将式中的系统函数H(z)分解成若干一阶和二阶多项式的连乘积:(1.4) (1.4)则可构成如图1.1所示的级联型结构。其中 为一阶节
13、;为二阶节。每个一阶节、二阶节可用图1.2所示的直接型结构实现。当M1 = M2时,即得到图1.3所示的具体结构。这种结构的每一节都便于控制零点,在需要控制传输零点时可以采用。但是它所需要的系数a比直接型的h(n)多,所需要的乘法运算也比直接型多。在对滤波器计算时间没有特殊要求的时候可以采用这种形式。若需要严格考虑滤波器的计算时间则需要折衷它们的优点和缺点来设计。这在算法设计时候要使用软件编辑环境来计算运行的时间问题。通常FIR的计算时间都较长。很多时候我们需要牺牲时间来获得想要得到的滤波器功能。图1.1 FIR滤波器直接型机构图图1.2 级联型结构图图1.3 级联型具体结构1.3.2 FIR
14、滤波器具有的优点可以在幅度特性随意设计的同时,保证精确、严格的线性相位;由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题;由于FIR滤波器一般为非递归结构,因此,在有限运算下不会出现递归型结构中的极限振荡等不稳定现象误差较小;FIR滤波器可以采用FFT算法实现,从而提高了运算效率。1.4 IIR数字滤波器基本原理IIR数字滤波器,即无限长单位冲激响应数字滤波器,是指单位冲激响应是无限长,系统函数在Z平面上有极点存在,结构上存在着输出到输入的反馈,即结构上是递归型的数字滤波器。换句话说,它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为: (
15、1.4)式中ak、br为滤波系数。当br全为零时,该滤波器为FIR数字滤波器;当br不全为零时,则为IIR 滤波器。与FIR数字滤波器相比,IIR数字滤波器可用较低的阶数获得较好的频率选择特性,所用的存储单元少,成本低,信号延迟小,而且可以借助模拟滤波器设计。41.5 FIR和IIR滤波器的比较 在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。因此,指标的形式应为频域中的幅度和相位响应。在通带中,通常希望具有线性相位响应。在FIR滤波器中可以得到精确的线性相位。在IIR滤波器中通带的相位是不可能得到的,因此主要考虑幅度指标。IIR数字滤波器的设计和模拟滤波器的设计有着紧密的联
16、系,通常要设计出适当地模拟滤波器,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。此外,任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如A/D变换器前的抗混叠滤波器及D/A转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。从性能上来说,IIR数字滤波器传递函数包括零点和极点两组可调因素,对极点的唯一限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高
17、的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。而FIR滤波器却可以得到严格的线性相位。从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况有时会造成稳定性问题,甚至造成寄生振荡。相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外F
18、IR滤波器可以采用快速傅立叶变换算法,在相同的阶数条件下运算速度可以快的多。2 TMS320C5X的硬件结构2.1 C55X的CPU体系结构C55X有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位地址总线,这些总线分别与CPU相连。总线通过存储单元接口(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两次16位数据写。C55X根据功能的不同将CPU分为4个单元,指令缓冲单元(I)、程序流程单元(P)、地址流程单
19、元(A)、和数据计算单元(D)。读程序地址总线(PDA)上传送24位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码1。2.2 指令缓冲单元(I)C55X的指令缓冲单元有指令缓冲队列IBQ和指令译码器组成。在每个CPU周期内,I单元将从程序数据接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。2.3 程序流程单元(P)程序流程单元有程序地址产生电路和寄存器组凑成。程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。程序
20、地址产生逻辑电路的任务是产生读取空间的24位地址。一般情况下,它产生的是连续地址,如果指令要求读取非连续地址的程序代码时,程序地址产生逻辑电路能够接收来自I单元的立即数和来自D单元的寄存器值,并将产生的地址传送到PAB。在P单元中使用的寄存器分为5种类型。l 程序流寄存器:包括程序计数器、返回地址寄存器和控制流程关系寄存器。l 块重复寄存器:包括块重复寄存器0和1(BRC0、BRC1)BRC1的保存寄存器(BRS1)、块重复起始地址寄存器0和1以及块重复结束地址寄存器0和1。l 单重复寄存器:包括单重复寄存器和计算单重复寄存器。l 中断寄存器:包括中断标志寄存器0和1、中断使能寄存器0和1以及
21、调试中断使能寄存器0和1。l 状态奇存期:包括状态寄存器0,1,2和3。2.4 地址程序单元(A)地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。数据地址产生电路能够接收来自I单元的立即数和来自A单元的寄存器产生读取数据空间的地址。对于使用间接寻址模式的指令,有P单元向DAGEN说明采用的寻址模式。A单元包括一个16位的算术逻辑单元,它既可以接收来自I单元的立即数也可以与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。A单元包括的寄存器有以下几种类型。l 数据页寄存器:包括数据页寄存器和接口数据页寄存器;l 指针:包括系数数据指针寄存器、堆栈针寄存器和8
22、个辅助寄存器;l 循环缓冲寄存器:包括循环缓冲大小寄存器、循环缓冲起始地址寄存器;l 临时寄存器:包括临时寄存器。2.5 数据计算单元(D)数据计算单元由移位器、算数逻辑电路、乘法累加器和寄存器组构成。D单元包含了CPU的主要运算部件。D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O单元、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。移位可以完成以下操作:l 对40位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供;l 对于16位寄存器、存储器或I/O空间数据可完成左移31
23、位或32位的移位操作;l 对于16位立即数可完成向左移最多15位的移位操作。3 数字滤波器设计方法3.1 窗函数法窗函数设计的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR滤波器。因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。对于给定的滤波器技术指标,选择滤波器长度和具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。任何数字滤波器的频率响应 都是w的周期函数,它的傅立叶级数展开式为:(3.1) (3.2) 其中的Wc为滤波器的归一化的截止频率。傅立叶系数hd(n)实际上就是理想数字滤波器的冲激响应。获得有限冲激响应数字滤波
24、器的一种可能方法就是把无穷级数截取为有限项级数来近似,而吉布斯(Gibbs)现象使得直接截取法不甚令人满意。 窗函数法就是用被称为窗函数的有限加权系列W(n)来修正式(3.2)的傅立叶级数,以求得要求的有限冲激响应序列h(n),即有: h(n)=hd(n)W(n) (3.3)w(n)是有限长序列,当nN-1及n0时,W(n)=0。几种常用的窗函数工程中比较常用的窗函数有矩形窗函数、三角形(Bartlett)窗函数、汉宁(Harming)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞Kaiser)窗函数。窗函数的选择原则是:l 具有较低的旁瓣幅度,尤其是第一旁瓣幅
25、度;l 旁瓣幅度下降速度要大,以利增加阻带衰减;l 主瓣的宽度要窄,以获得较陡的过渡带。通常上述三点很难同时满足。当选用主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加:当选用最小的旁瓣幅度时,虽能得到匀滑的幅度响应和较小的阻带波动,但过渡带加宽。因此,实际选用的窗函数往往是它们的折衷。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。总之窗函数不仅有截短的作用,而且能够起到平滑的作用在很多领域得到应用。表3.1给出了几种常用窗函数的性能对比表。表3.1 常用窗函数的性能对比表3.2 模拟数字变换法模拟网络的逼近和综合理论已经发展的相当成熟,产生了许多效
26、率很高的设计方法,很多常用滤波器不仅有简单而严格的设计公式,而且设计参数已表格化,设计起来方便准确。而数字滤波器在很多场合要完成的任务与模拟滤波器相同,如做低通、高通、带通和带阻滤波器等。因此,完全可以借助于模拟滤波器的理论和设计方法来设计数字滤波器。IIR 数字滤波器具有无限的冲激响应,与模拟滤波器相匹配,所以IIR 滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波器效果不断的调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间
27、内完成。利用MATLAB 强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大简化了计算量。用模拟-数字变换法设计IIR数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下几种:1巴特沃斯(Butterworth)滤波器 BW滤波器是根据幅频特性在通带内具有最平坦特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在=0处都为零,BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶数N的增大而更接近于理想低通滤波器。2切贝雪夫(Chbyshew)滤波器 CB低通滤波器的模拟函数由切
28、贝雪夫多项式定义,且其在通带内的幅频响应是波动的,在阻带则单调变化。3逆切贝雪夫(Inverse-Chbyshew)滤波器ICB滤波器的误差在通带内是单调增加的CB滤波器的误差在通带内均匀起伏地分布,ICB滤波器的误差在阻带内是均匀起伏地分布的,因而在相同阶数时CB滤波器的过渡特性将优于BW滤波器。4考尔(Cauer简写为C)滤波器也称为椭圆滤波器,其幅度特性是由雅可比(Tacobian)椭圆函数决定的,在通带和阻带内都具有“等波纹”幅度特性,其系统函数不仅具有极点而且也有零点。上述滤波器是最常用的,此外还有贝塞耳(Bessel)滤波器等。设计时选用那种类型,设计者应视用途、指标要求等自行决定
29、。一般地说,在相同设计指标下,“C”滤波器过渡带最为陡峭,或者阶数最低,“CB”滤波器次之,“BW”滤波器则更不及“CB”滤波器陡峭,或者所需阶数最高。但从设计的复杂性和参数变化对滤波器特性的影响,即参数灵敏度的角度看,情况恰恰相反。4 数字滤波器的MATLAB辅助设计4.1 MATLAB简介MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言
30、完相同的事情简捷得多,当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。MATLAB具有许多的优点比如:语言简洁紧凑,使用方便灵活,库函数极其丰富;MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性;程序的可移植性很好,基本上不做修改就可以在各种型号的
31、计算机和操作系统上运行,等等优点。因此在各个学科和领域得到了广泛的应用。4.2 FDAtool界面介绍FDAtool(Filter Design Analysis tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design toolbox)。FDAtool可以设计几乎所有的基本的常规滤波器,包括fir和iir的各种设计方法。它操作简单,方便灵活。FDAtool界面总共分两大部分,一部分是design filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤
32、波器的各种特性。design filter部分主要分为:filter type(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、bandpass(带通)、bandstop(带阻)和非凡的fir滤波器。design method(设计方法)选项,包括iir滤波器的butterworth(巴特沃思)法、chebyshev type i(切比雪夫i型)法、chebyshev type ii(切比雪夫ii型)法、elliptic(椭圆滤波器)法和fir滤波器的equiripple法、least-squares(最小乘方)法、window(窗函数)法。filter order(滤
33、波器阶数)选项,定义滤波器的阶数,包括specify order(指定阶数)和minimum order(最小阶数)。在specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify ordern-1),假如选择minimum order则matlab根据所选择的滤波器类型自动使用最小阶数。 frenquency specifications选项,可以具体定义频带的各参数,包括采样频率fs和频带的截止频率。它的具体选项由filter type选项和design method选项决定,例如bandpass(带通)滤波器需要定义fstop1(下阻带截止频率)、fpass1(通带
34、下限截止频率)、fpass2(通带上限截止频率)、fstop2(上阻带截止频率),而lowpass(低通)滤波器只需要定义fstop1、fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。 magnitude specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义wstop1(频率fstop1处的幅值衰减)、wpass(通带范围内的幅值衰减)、wstop2(频率fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。window specif
35、ications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。 设置好参数后点击下方的(design Filter)滤波器设计即可得到所设计的滤波器。设计完成后,可通过主菜单选项Analysis来分析滤波器的幅频响应和相频响应特性。点击Analysis中的Magnitude Response对幅频特性和相频特性进行分析。4.3 FIR数字滤波器设计4.3.1 得到滤波器冲激响应序数方法 在主菜单中选择TargetsCode Composer Studio(r)IDE命令,弹出Export to Code Composer (r)IDE窗口。设置Numerator及Export
36、 as选项单击Select target按钮,选择目标DSP,这里选择C55X simulate单击OK确认。滤波器冲激响应系数将按默认名称s.h显示出来结果见附录D。 对IIR系数输出,在主菜单中选择FileExport命令,打开Export对话框,选择输出到Textfile,单击OK确认,即可将参数输出到指定文件中。在设计过程中,可以对比滤波器幅频和相频特性及它们的设计要求,对参数和滤波类型做出调整。4.3.2 FIR参数设定及频域响应特性 设计FIR带通滤波器,采样频率fs=8000Hz,fstop1=1400Hz,fpass1=1500Hz,fpass2=3000Hz,fstop2=3
37、100Hz,阻带的最小衰减为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扩展到了其它系列。现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和C6000的CCS中才提供。 以前的DSP软件开发都是在一个分散的开发环境下进行,程序的编写、
38、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。而CCS的出现是DSP开发软件的一次革命性的变化。CCS主要由代码生成工具、CCS集成开发环境、DSPBIOS和API函数以及RTDX组成。5.1.1 CCS主要特点集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等。集成代码生成工具,包括汇编器、优化的C编译器和连接器等。具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试。支持多片DSP联合调试。断点工具,支持硬件断点、数据空间读/写断点、条件断点等。探针工具,用于进
39、行算法仿真,数据监视等。剖析工具,用于评估代码执行的时间。数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新。提供GEI工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。5.1.2 DSP/BIOS和API函数以及RTDX插件DSP/BIOS(Basic Input Output System)和API(Application Program Interface)函数为CCS的主要插件之一。DSPBIOS可以看作是一个准实时操作系统,支持TI DSP芯片的各种实时操作系统都是以DSP/BIOS作为底层软件,为嵌入式应用提供基本的运行服务。并且
40、,它还能实时获取目标机的信息,并将其传递给主机上的BIOSCOPE工具,对应用程序进行实时分析RTDX (Real Time Data Exchange)插件是CCS中另一个十分重要的插件。实时数据交换技术为CCS提供了一个实时、连续的可视环境,开发人员可以看到DSP应用程序工作的真实过程。RTDX允许系统开发者在不停止运行目标应用程序的情况下在计算机和DSP芯片之间传输数据,同时还可以在主机上利用对象链接嵌入(OLE)技术分析和观察数据。RTDX可以在DSPBIOS中使用,也可以脱离DSP/BIOS使用。由于CCS中的Simulator不支持RTDX,所以必须在连接有硬件仿真器或目标板的Em
41、ulator下使用。5.2 CCS配置击桌面图标的“setup CCStudio v3.1”图标,运行CCS设置程序,如图5.1所示:点击AddSave&quit完成设置。图5.1 用标准配置文件设置系统配置5.3 CCS环境中工程文件的使用5.3.1 建立工程文件在CCS集成环境下开发汇编程序或者C/C+程序,首先要建立一个工程项目文件(*.pjt),再向工程项目文件中添加汇编程序源文件(*.asm),C/C+源文件(*.c)和链接命令文件(*.cmd),并设置工程项目选项。使用CCS开发应用程序的一般步骤如下:l 创建或打开一个工程项目文件(*.pjt),编辑各类文件,可以使用CCS提供的
42、集成编辑环境,对链接命令文件和源程序进行编辑。l 对工程项目进行编译。在编译过程中如果出现语法错误,将在编译链接信息视窗(build)窗口中显示错误信息,用户可以根据显示的信息找到错误的位置,更改错误。l 对结果和数据进行分析和算法评估。用户可以利用CCS提供的探测点.图形显示和性能评价等工具,对运行结果及输出数据进行分析,评估算法的可能性。 下面分别进行介绍建立工程文件,单击ProjectNew命令,系统将弹出如图所示的对话框,在该对话框中输入项目文件名,如fir单击“完成”系统就会创建一个名为fir.pjt的工程项目文件如图5.2所示。图5.2 创建新的工程项目文件对话框5.3.2 创建新
43、文件选择FileNew可打开一个新的编辑窗口。在新窗口中输入源代码。选择FileSave,在出现的对话框中输入一个文件名,并选择一个扩展名(C源代码选择*.c,汇编源代码选择*.asm),然后单击保存将源程序保存6。5.3.3 向工程项目中添加文件添加文件:单击ProjectAdd File to Project命令然后会弹出如图5.3所示的对话框,单击打开完成对文件的添加。图5.3 向工程项目中添加文件对话框5.4 编译链接和运行目标文件5.4.1 对程序进行编译链接对程序进行编译:执行ProjectCompile命令就可以对当前的汇编程序进行编译生成.obj文件。如果程序存在语法错误,那么
44、就会在下面的编译链接信息框中显示错误信息。根据错误提示,读者可对程序进行修改2。对程序进行编译链接执行ProjectBuild命令,就可以对当前的项目文件同时进行编译,汇编和链接操作,并生成与工程项目名称相同的可执行的.out文件。如果有错误信息,则会在“编译链接”信息框中显示。也可以执行Project下的build All命令,所有项目中的文件重新编译,汇编和链接,生成.out文件。5.4.2 装载.out文件单击主菜单“File”中“Load Program”选项,在对话框中,在CCS安装目录下,找到构建该工程的Debug目录,选择构建生成后的.out文件,并打开CCS装载完毕后,该“*.out”文件到目标dsp之后,会自动弹出“Disassembly”窗口如图5.4所示。图5.4 CCS调试程序时出现的视窗加工程界面6 运行并观察结果在主菜单中选择DebugAnimate命令或按Alt+F5键运行程序。观察Input和Output视窗中滤
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922