电信信息工程课程设计数字滤波器总体设计毕业论文设计.docx
《电信信息工程课程设计数字滤波器总体设计毕业论文设计.docx》由会员分享,可在线阅读,更多相关《电信信息工程课程设计数字滤波器总体设计毕业论文设计.docx(21页珍藏版)》请在冰豆网上搜索。
电信信息工程课程设计数字滤波器总体设计毕业论文设计
第1章绪论
1.1数字滤波器
数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号(对应数字频率)转换为所要求的输出离散时间信号的特定功能装置)。
应用数字滤波器处理模拟信号(对应模拟频率)时,首先须对输入模拟信号进行限带、抽样和模数转换。
数字滤波器输入信号的数字频率(2π*f/fs,f为模拟信号的频率,fs为采样频率,注意区别于模拟频率),按照奈奎斯特抽样定理,要使抽样信号的频谱不产生重叠,应小于折叠频率(ws/2=π),其频率响应具有以2π为间隔的周期重复特性,且以折叠频率即ω=π点对称。
为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。
数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。
数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。
1.2数字滤波器的应用现状与发展趋势
滤波器的主要分类有以下几种:
(1)按处理信号类型分类,可分为模拟滤波器和离散滤波器两大类。
其中模拟滤波器又可分为有源、无源、异类三个分类;离散滤波器又可分为数字、取样模拟、混合三个分类。
(2)按选择物理量分类,滤波器可分为频率选择、幅度选择、时间选择(例如PCM制中的话路信号)和信息选择(例如匹配滤波器)等四类滤波器。
(3)按频率通带范围分类,滤波器可分为低通、高通、带通、带阻、全通五个类别,而梳形滤波器属于带通和带阻滤波器,因为它有周期性的通带和阻带。
为适应各种需要,出现了一批新型滤波器,这里介绍几种已得到广泛应用的新型滤波器:
(1)电控编程CCD横向滤波器(FPCCDTF):
电荷耦合器(CCD)固定加权的横向滤波器(TF)在信号处理中,其性能和造价均可与数字滤波器和各种信号处理部件媲美。
这种滤波器主要用于自适应滤波;P-N序列和Chirp波形的匹配滤波;通用化的频域滤波器及相关积运算;语音信号和相位均衡;相阵系统的波束合成和电视信号的重影消除等均有应用。
当然,更多的应用有待进一步开拓。
总之,FPCCDTF是最有希望的发展方向。
(2)晶体滤波器:
它是适应单边带技术而发展起来的。
在20世纪70年代,集成晶体滤波器的产生,使它的发展产生一个飞跃。
近十年来,晶体滤波器致力于下面一些研究:
实现最佳设计,除具有优良的选择外,还具有良好的时域响应;寻求新型材料;扩展工作频率;改造工艺,使其向集成化发展。
它广泛应用于多路复用系统中作为载波滤波器,在收发信中,单边带通信机中作为选频滤波器,在频谱分析仪和声纳装置中作为中频滤波器。
(3)声表面滤波器:
它是理想的超高频器件。
它的幅频特性和相位特性可以分别控制,以达到要求,而且它还有体积小,长时间稳定性好和工艺简单等特点。
通常应用于:
电视广播发射机中作为残留边带滤波器;在彩色电视接收机中调谐系统的表面梳形滤波器。
此外,在国防卫星通信系统中已广泛采用。
声表面滤波器是电子学和声学相结合的产物,而且可以集成,所以,它在所有无源滤波器中最有发展前途的。
我国现有滤波器的种类和所覆盖的频率已基本上满足现有各种电信设备。
从整体而言,我国有源滤波器发展比无源滤波器缓慢,尚未大量生产和应用。
从下面的生产应用比例可以看出我国各类滤波器的应用情况:
LC滤波器占50%;晶体滤波器占20%;机械滤波器占15%;陶瓷和声表面滤波器各占1%;其余各类滤波器共占13%。
从这些应用比例来看,我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。
随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。
我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任。
第2章数字滤波器总体设计
2.1设计任务
1.在MATLAB软件上设计一个FIR滤波器。
2.在CCS仿真软件上编写DSP程序。
3.确定DSP处理芯片,通过对其编程来实现数字滤波器的设计与仿真。
4.完成系统调试、实验。
要求有程序清单。
2.2总体设计方案
应用MATLAB软件设计FIR数字滤波器,并对所设计的滤波器进行仿真:
应用DSP集成开发环境—CCS调试汇编程序,用TMS320C5402来实现了FIR数字滤波。
在Matlab中利用滤波器设计、分析工具(FDATool),根据指定的滤波器性能快速设计一个FIR,然后把滤波器系数以头文件形式导人CCS中,头文件中含滤波器阶数和系数数组,在Matlab中调试、运行DSP程序并显示、分析处理后的数据。
使用该方法,便于采用语言来实现程序。
头文件名不变,当Matlab中设计的滤波器系数改变时,相应头文件中系数也改变,方便了程序调试、仿真。
软件整体设计流程如下图所示:
2-1设计方案图
2.3FIR滤波器设计
FIR滤波器的设计问题在于寻求一系统函数,使其响应逼近滤波器要求的理想频率响应。
2.4窗函数设计的基本方法
从时域出发,设计h(n)逼近理想hd(n),设理想滤波器的单位脉冲响应为hd(n),则有
(2-1)
(2-2)
所求得的hd(n)一般是无限长的,且是非因果的。
要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断hd(n),或者说用一个窗口函数w(n)对hd(n)进行加窗处理,即h(n)=hd(n)w(n)。
因此,应选择合适的窗函数。
2.5滤波器的
算法实现
FIR滤波器的输出表达式为
(2-3)
式中,为滤波器系数;x(n)表示滤波器在n时刻的输入;y(n)为n时刻的输出。
它的基本算法是一种乘法-累加运算,即不断地输入样本x(n),经过延时后,再进行乘法-累加,最后输出滤波结果y(n)。
1)线性缓冲区法
线性缓冲区法又称延迟线法。
其特点:
(1)对于N级的FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存
(2)放最新的N个输入样本;
(3)从最老样本开始取数,每取一个样本后,将此样本向下移位;
(4)读完最后一个样本后,输入最新样本存入缓冲区的顶部。
2)循环缓冲区法
本次设计的FIR滤波器所采用的就是循环缓冲区法。
循环缓冲区法的特点如下:
(1)对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本;
(2)从最新样本开始取数;
(3)读完最后一个样本(最老样本)后,输入最新样本来代替最老样本,而其他数据位置不变;
(4)用片内BK(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环缓冲区地址首尾相邻。
2.6FIR滤波器的优点与缺点
可以在幅度特性随意设计的同时,保证精确、严格的线性相位;由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题;由于FIR滤波器一般为非递归结构,因此,在有限运算下不会出现递归型结构中的极限振荡等不稳定现象误差较小;FIR滤波器可以采用FFT算法实现,从而提高了运算效率。
总结FIR数字滤波器的优点:
(1)单位冲击响应只有有限项;
(2)FIR滤波器无反馈回路,是一种无条件稳定系统;
(3)FIR滤波器可以设计成具有线性相位特性。
FIR数字滤波器的缺点:
(1)因为无极点,要获得好的过渡带特性,需以较高的阶数为代价;
(2)无法利用模拟滤波器的设计结果,一般无解析设计公式,要借助计算机辅助设计程序完成。
第3章TMS320C54x硬件结构设计
3.1TMS320C54x的主要特性
TMS320C54x系列DSP是TI公司在继TMS320C1x、TMS320C2x、TMS320C5x之后推出的新一代16位定点数字信号处理器,运算速度高达100MIPS。
TMS320C54x的体系结构采用改进的哈佛结构,程序与数据分开存放,内部具有8条高度并行的总线。
图3-1是它的内部硬件组成框图,包括:
CPU,总线,存储器,在片外设电路等。
主要特点如下:
3.1.1CPU部分
(1)先进的多总线结构(1条程序总线,3条数据总线和4条地址总线);
(2)40位算术逻辑运算单元(ALU),包括1个40位桶型移位寄存器和2个独立的40位累加器;
(3)17位×17位并行乘法器,与40位专用加法器相连,用于非流水线式单周期乘法/累加(MAC)运算;
(4)比较选择存储单元(CSSU),用于加法/比较选择;
(5)指数编码器,可以在单周期内计算40位累加器中数值得到指数;
(6)双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)存储器;
3.1.2存储器系统
(1)192K字可寻址存储空间(64K字程序存储器,64K字数据存储器以及64K字I/O空间);
(2)片内ROM,可配置位程序/数据存储器;
(3)片内双寻址RAM(DARAM);
C5402中的DARAM分为若干块。
由于在每个机器周期内,允许对同一DARAM块寻址2次,因此CPU可以在一个机器周期内对同一DARAM读出1次。
一般情况下,DARAM总是映象到数据存储空间,主要用于存放数据。
但是,它也可以映象到程序存储空间,用来存放程序代码。
3.1.3指令系统
(1)单指令重复和块指令重复操作;
(2)块存储器传送操作;
(3)32位长操作数指令;
(4)同时读入2或3个操作数的指令;
(5)能并行存储和并行加载的算术指令;
(6)条件存储指令;
(7)快速从中断返回的指令;
(8)具有延迟转移和调用指令;
(9)指令的执行采用指令预提取、指令提取、指令译码、访问操作数、读取操作数和执行等6级流水线并行结构,大大提高了指令的执行速度。
3.1.4在片外围电路
(1)软件可编程等待状态发生器;
(2)可编程分区转换逻辑电路;
(3)带有内部震荡器或者用外部时钟源的片内锁相环(PLL)时钟发生器;
(4)时分多路;
(5)缓冲串行口(BSP);
(6)16位可编程定时器;
(7)8位并行主机接口(HPI);
(8)外部总线关断控制,以断开外部的数据总线、地址总线和控制信号;
(9)数据总线具有总线保持器特性。
3.1.5电源
(1)可采用5V、3.3V、3V和1.8V或2.5V的超低电压供电;
(2)可采用功耗下降指令IDLE1,IDLE2和IDLE3控制芯片的功耗;
(3)可控制禁止CLKOUT信号。
3.1.6在片仿真接口
具有符合IEEE1149.1标准的在片仿真接口。
图3-1TMS320C5402DSP内部硬件组成框图
第4章数字滤波器的CCS实现
4.1CCS简介
CodeComposerStudio简称CCS,是TI公司推出的、为开发TMS320系列DSP软件的继承开发环境(IDE)。
CCS工作在Windows操作系统下,类似于VC++的集成开发环境,采用图形接口界面,提供了环境配置、工程管理工具、源文件编辑、程序调试、跟踪和分析等工具。
它将前面介绍的各种代码产生工具,诸如汇编器、链接器、C/C++编译器、建库工具等集成在一个统一的开发平台中。
CCS所集成的代码调试工具具有各种调试功能,包括原TI公司提供的C源代码调试器和模拟器所具有的所有功能,能对TMS320系列DSP进行指令级的仿真和进行可视化的实时数据分析;此外,还提供了丰富的输入/输出库函数和信号处理的库函数,极大地方便了TMS320系列DSP软件的开发过程,提高了工作效率。
4.2CCS特点
集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等。
集成代码生成工具,包括汇编器、优化的C编译器和连接器等。
具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试。
支持多片DSP联合调试。
断点工具,支持硬件断点、数据空间读/写断点、条件断点等。
探针工具,用于进行算法仿真,数据监视等。
剖析工具,用于评估代码执行的时间。
数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新。
提供GEI工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。
4.3CCS的配置
点击桌面图标的“setupCCStudiov3.3”图标,运行CCS设置程序,如图4-1所示:
点击Add→Save&quit完成设置。
图4-1
4.4CCS环境中工程文件的使用
4.4.1建立工程文件
在CCS集成环境下开发汇编程序或者C/C++程序,首先要建立一个工程项目文件(*.pjt),再向工程项目文件中添加汇编程序源文件(*.asm),C/C++源文件(*.c)和链接命令文件(*.cmd),并设置工程项目选项。
使用CCS开发应用程序的一般步骤如下:
1)创建或打开一个工程项目文件(*.pjt),编辑各类文件,可以使用CCS提供的集成编辑环境,对链接命令文件和源程序进行编辑。
2)对工程项目进行编译。
在编译过程中如果出现语法错误,将在编译链接信息视窗(build)窗口中显示错误信息,用户可以根据显示的信息找到错误的位置,更改错误。
3)对结果和数据进行分析和算法评估。
用户可以利用CCS提供的探测点.图形显示和性能评价等工具,对运行结果及输出数据进行分析,评估算法的可能性。
下面分别进行介绍建立工程文件,单击Project→New命令,系统将弹出如图所示的对话框,在该对话框中输入项目文件名,如fir单击“完成”系统就会创建一个名为fir.pjt的工程项目文件如图4-2所示。
图4-2
4.4.2创立新文件
选择File→New可打开一个新的编辑窗口。
在新窗口中输入源代码。
选择File→Save,在出现的对话框中输入一个文件名,并选择一个扩展名,然后单击保存将源程序保存。
4.4.3向工程中添加文件
添加文件:
单击Project→AddFiletoProject命令然后会弹出如图所示的对话框,单击打开完成对文件的添加。
导入C源程序,cmd文件以及rts.lib文件,在E:
\CCStudio_v3.1\C5400\cgtools\lib文件夹下。
如图4-3,4-4,4-5,4-6所示。
图4-3
图4-4
图4-5
图4-6
4.5编译链接装载
对程序进行编译:
执行Project→Compile命令就可以对当前的汇编程序进行编译生成.obj文件。
如果程序存在语法错误,那么就会在下面的编译链接信息框中显示错误信息。
根据错误提示,读者可对程序进行修改。
对程序进行编译链接执行Project→Build命令,就可以对当前的项目文件同时进行编译,汇编和链接操作,并生成与工程项目名称相同的可执行的.out文件。
如果有错误信息,则会在“编译链接”信息框中显示。
也可以执行Project下的buildAll命令,所有项目中的文件重新编译,汇编和链接,生成.out文件。
装载:
单击主菜单“File”中“LoadProgram”选项,在对话框中,在CCS安装目录下,找到构建该工程的Debug目录,选择构建生成后的.out文件,并打开CCS装载完毕后,该“*.out”文件到目标dsp之后,会自动弹出“Disassembly”窗口如图4-7,4-8所示。
图4-7
图4-8
4.6利用Matlab产生噪声信号用于滤波器测试
将代码另存为M文件,在Matlab中运行后将会生成input.dat文件。
该数据文件中含有500Hz、3000Hz、8000Hz三种频率的信号,用于滤波器滤波效果测试。
信号的时域图和频谱分别图4-9,图4-10所示。
图4-9
图4-10
4.7将滤波器设计文件载入到内存中
选择File->Data->Load…打开之前Matlab生成的input.dat文件。
如下图4-11所示。
图4-11
将Address设置为input,Length设置为200,Page设置为Data。
如下图4-12所示。
图4-12
运行程序,点击RUN按钮,程序即开始运行。
4.8查看滤波器滤波效果
打开View->Graph->Time/Frequency,设置数据,如下图4-13所示。
图4-13
然后重复前三个步骤,只改变图形选项中的DisplayType、GraphTitle、StartAddress:
左上图:
数据时域图(StartAddress:
input),右上图:
输入数据频谱(DisplayType:
FFTMagnitude),左下图:
输出数据时域图(StartAddress:
output),右下图:
输出数据频谱(DisplayType:
FFTMagnitude)。
4.9观察结果
图4-14
图4-15
图4-16
图4-17
第5章调试与分析
在本系统的硬件调试中主要测试步骤如下:
①首先测量电路板的电源和地是否有短路现象,电路板上所采用器件多为小封装器件,管脚间距小,容易出现短路现象,焊接完成后要认真检查。
②系统上电检测,上电前应该首先检查电源的正负极性及输入电压的幅度,然后上电。
上电后应快速检测电路板上主要电源芯片的输出电压和DSP内核电压,以免损坏电路板上器件。
③检测系统的复位信号是否工作正常,系统在复位后部分器件会检测自身的工作状态。
④用示波器查看系统中主要的时钟信号的波形,包括DSP输入时钟信号、DSP输出时钟信号、ADC和DAC的系统时钟信号及帧同步时钟信号(需要结合DSP的开发环境和仿真器进行测试)。
⑤测量所准备的测试信号源的工作电压和工作频率是否在系统的允许范围内。
利用TMS320VC5402实现FIR的程序中应注意以下几点:
1.数据定标。
输入数据和滤波器系数均小于1,以Q15表示,将FRCT标志置1,输入数据与滤波器系数乘完后结果自动左移一位,和累加器并取高16位输出。
2.数据存放要求。
输入数据块和系数块都放在双寻址数据存储区,起始地址为m位地址边界(2m>N)。
3.循环寻址的使用。
为了使用循环寻址,还要设置BK为块长N。
由于使用了循环寻址,数据和系数的指针在操作后以循环的方式增1。
4.数据的初始化。
输入数据块要初始化为全0。
利用TMS320VC5402的FIRS指令和循环寻址,可以更简洁的方法实现对称抽头的FIR滤波器。
当给系统送入一个包含lk,3k,5k的正弦波模拟信号源作为系统的输入信号源,并将
MATLAB仿真得到的低通数字滤波器的系数带入所编写的程序代码中,编译运行后循环执行滤波程果符合预期结果。
程序设置断点运行后,设置观察图形窗口变量及参数为:
采用双踪观察启始地址分别为x和y,长度为256的单元中数值的变化,数值类型为32位浮点型变量,这两个数组中分别存放的是经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果;单击“Animate”运行程序,调整观察窗口并观察滤波结果。
结论
本次课程设计主要的思想是应用MATLAB软件来设计FIR数字滤波器,并对所设计的滤波器进行仿真。
应用DSP集成开发环境—CCS调试汇编程序,用TMS320C5402来实现了FIR数字滤波。
在Matlab中利用滤波器设计、分析工具,根据指定的滤波器性能快速设计一个FIR,然后把滤波器系数以头文件形式导人CCS中,头文件中含滤波器阶数和系数数组,在Matlab中调试、运行DSP程序并显示、分析处理后的数据。
头文件名不变,当Matlab中设计的滤波器系数改变时,相应头文件中系数也改变。
致谢
关于这次课程设计,不仅学到了知识和设计方法,而且培养我们的独立思考能力和解决问题的能力。
这要感谢老师的指导和帮助过我的同学。
让我们得到了有效的锻炼。
在实践的过程中有许多的困难需要去克服,有许多的知识还不清楚,这需要请教老师或者和同学一起探讨,这让我意识到一些必要的合作是很重要的。
通过这次的设计我们受到良好的训练,真是受益匪浅,这在之后步入社会都是一笔财富。
参考文献
[1]刘艳萍.DSP技术原理及应用教程[M].北京:
航空航天大学出版社,2011
[2]郑红.DSP应用系统设计实践[M].北京航空航天大学出版社,2006
[3]罗军辉.MATLAB7.0在数字信号处理中的应用[M].机械工业出版社,2005
[4]姜建山.FIR数字滤波器的MATLAB设计与DSP实现[J].电测与仪表.2006(12)
[5]刘敏.MATLAB通信仿真与应用[M].北京:
国防工业出版社,2001.
[6]丁玉美.数字信号处理[M].西安:
西安电子科技大学出版社,2001.
[7]何振亚.数字信号处理的理论与应用[M].北京:
人民邮电出版社,1983.
[8]郭德才.基于Matlab的FIR数字低通滤波器的设计与仿真[J].吉林大学,2009.
[9]陈明军.改进窗函数在FIR数字滤波器设计中的应用[J].继电器,2007.
[10]程明.基于MATLAB的数字滤波器分析[J].通信电源技术,2006.
[11]郑君里.信号与系统[M].北京:
高等教育出版社,2000.
[12]程卫国.MATLAB5.3应用指南[M].北京:
人民邮电出版社,1999.
[13]钟麟.MATLAB仿真技术与应用教程[M].北京:
国防工业出版社,2004.
摘要I
ABSTRACTII