DSP课程设计方案fir数字滤波器 .docx
精品名师归纳总结北 华 航 天 工 业 学 院课程设计报告(论文)专业班级:B11211同学姓名:张斌指导老师:李迎春设计时间:2021.05.30北华航天工业学院电子工程系基于 DSP的 FIR 数字滤波器 课程设计任务书姓名:张斌专 业:电子信息工程班 级:B11211指导老师:李迎春职 称:课程设计题目: 基于 DSP的 FIR 数字滤波器的设计设计课题: DSP的 FIR 数字滤波器的设计可编辑资料 - - - 欢迎下载精品名师归纳总结已知技术参数和设计要求:1. 设计一个采样频率为 32KHz,截止频率约为 6.5KHz 的低通 FIR 滤波器,要求阻带衰减大于50dB。FIR 滤波器的 DSP 编程接受 C 语言实现。在CCS Simulator 中调试。调试成功后,进行以下步骤。2. 由试验箱信号发生器产生 4KHz 的模拟方波信号,然后进行 AD 转换,存放在内存单元中观看这些数据的波形,然后通过 DA 转换后输出,在示波器上观看输出方波信号。3. 在串口数据的采集和发送程序中插入设计好的 FIR 低通滤波器。对采集的方波信号进行数字低通滤波得到基波重量,存放在内存单元中观看这些数据的波形,并将滤波得到的基波重量通过DA 转换后输出,在示波器上观看输出信号。4 扩展要求(依据实际进度选做):1) 对采集的方波信号进行 FFT变换,在 CCS中分析方波频谱。2) 采集 4KHz 的模拟三角波或正弦波信号,并在CCS中进行 Huffman 编码所需仪器设备:示波器,通用PC 一台, ICETEK-5100USB仿真器一台, 成果验收形式:参考文献: ICETEK-VC5509-A指导书 3.3-v3TM可编辑资料 - - - 欢迎下载精品名师归纳总结第 1 单元料。第 2、3 单元发设计任务书,明确设计任务、技术要求,查找资FIR滤波器设计及 DSP编程。时间支配第 4、5 单元 学习和把握 TMS320VC5509片A 上 A/D 的使用。第 6、7 单元 学习 D/A 转换器与 TMS320VC5509的A 接口与使用方法。第 8 单元在数据的采集和发送程序中插入设计好的FIR 低通滤波器,在示波器上观看输出信号。第 9 单元第 10 单元撰写课程设计报告。课程设计答辩。指导老师:李迎春教研室主任:2021 年 5 月 30 日注:本表下发同学一份,指导老师一份,栏目不够时请另附页。课程设计任务书装订于设计运算说明书(或论文)封面之后,目录页之前。目 录第 1 章 绪论 .错误!未定义书签。可编辑资料 - - - 欢迎下载精品名师归纳总结1.1 设计背景31.2 设计要求31.3 设计思路简介4第 2 章系统开发平台与环境 .41.1 CCS开发环境42.2 SEED-DEC281开2 发试验箱4第 3 章 FIR 滤波器设计过程43.1 FIR 滤波器设计总框图43.2 FIR 滤波器设计的原理 .错误!未定义书签。3.3FIR 滤波器的设计法5第 4 章系统软件设计64.1 程序源代码6第 5 章系统仿真105.1 仿真设置145.2 仿真图14第 6 章总结15参考文献15可编辑资料 - - - 欢迎下载精品名师归纳总结第 1 章 绪论1.1 设计背景在信号处理中,滤波占有特别重要的位置。数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点,它除了可防止模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,仍能中意滤波器对幅度和相位的严格要求。低通有限冲激响应滤波器 低通 FIR 滤波器有其特别的优点,由于系统只有零点,因此,系统总是稳固的,而且简洁实现线性相位和答应实现多通道滤波器。FIRDSP(数字信号处理器)与一般的微处理器相比有很大的区分,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题供应了 便利,本文选用 TMS320C54X 作为 DSP 处理芯片,通过对其编程来实现FIR 滤波器。可编辑资料 - - - 欢迎下载精品名师归纳总结对数字滤波器而言 ,从实现方法上 ,有 FIR 滤波器和无限冲激响应 IIR 滤波器之分。由于 FIR 滤波器只有零点 ,因此这一类系统不像 IIR 系统那样易取得比较好的通带与阻带衰减特性。但是FIR 系统有自己突出的优点 :系统总是稳固的。易实现线性相位。答应设计多通带阻带滤波器。其中后两项是IIR 系统不易实现的。1.2 设计要求利用 C 语言在 CCS 环境中编写一个 FIR 滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。1.3 设计思路简介在 TMS320C55x 系统开发环境 CCS( Code Composer Studio)下对FIR 滤波器的 DSP 实现原理进行争辩。利用 C 语言设计相应的滤波器,通过试验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP 上实现的FIR 滤波器能完成预定的滤波任务。可编辑资料 - - - 欢迎下载精品名师归纳总结第 2 章 系统开发平台与环境1.1 CCS 开发环境开头产生输入数据可编辑资料 - - - 欢迎下载精品名师归纳总结CCS 供应了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发初始进化程D,SP提高工作效率。CCS 供应了基本的代码生成工具,它们具有一系列的调试、分析才能。读入新数据并存放到CCS支持如下图 1.1 所示的开发周期的全部阶段。 栈顶可编辑资料 - - - 欢迎下载精品名师归纳总结编程和编译滤波处理调试分析可编辑资料 - - - 欢迎下载精品名师归纳总结设计概念性规划创建工程文件、编写源代码和配置文件储存滤波结果到语输法出单检查、探测元点设置和日志储存等实时调试、统计和跟踪可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结第 3 章 FIR 滤波器设计过程3.1 FIR滤波器设计总框图待滤波的样本点数处理完成图 1.1否是终止可编辑资料 - - - 欢迎下载精品名师归纳总结FIR 滤波器设计总框图如图3.2 FIR滤波器设计的原理设 a ii=0 ,1, 2, N-1 为滤波器的冲激响应 , 输入信号为 xn, 就FIR 滤波器的输入输出关系为:FIR 滤波器的结构如图 3.2 所示:XnXn-1Xn-2Xn-N+11111zzzz可编辑资料 - - - 欢迎下载精品名师归纳总结a0a1aN 2a N 1可编辑资料 - - - 欢迎下载精品名师归纳总结yn图 3.2 FIR滤波器的结构3.3 FIR 滤波器的设计方法循环缓冲算法 : 对于 N 级的 FIR 滤波器,在数据储备器中开创一个称之为滑窗的 N 个单元的缓冲区,滑窗中存放最新的N 个输入样本。每次输入新的样本时,一新样本改写滑窗中的最老的数据,而滑窗中的其他数据不需要移动。利用片内 BK (循环缓冲区长度)寄存器对滑窗进行间接寻址,环缓冲区的址首位相邻。下面,以 N=5 的 FIR 滤波器循环缓冲区为例,说明循环缓冲区中数据是如何寻址的。 5 级循环缓冲区的结构如图3.3 所示,顶部为低的址。数据储备器数据储备器数据储备器顶部xnxn-1xnxn-1xnxn-1xn-2xn-2xn-2xn-3xn-3xn-2底部xn-4xn+1xn-1可编辑资料 - - - 欢迎下载精品名师归纳总结当第一次执行完 y n图 3.34ai xn循环缓冲区的结构i 之后,间接寻址的帮忙寄存器ARx 指向i 0xn-4。然后,从 I/O 口输入数据 xn+1,将原先存放 xn-4 的数据储备单元4改写为 xn+1。接着,进行其次次乘法累加运算,yn1ai x n1i ,最终 ARx 指向 xn-3。然后从 I/O 口输入数据据储备器单元改写为 xn+2。i 0xn+2,将原先存放xn-4 的数第 4 章 系统软件设计4.1 程序源代码4.1.1 FILTER.c代码: #include "DSP28_Device.h" #include "filter.h"#include "ext_inf.h"unsigned int DataLong=1024。unsigned int i,j。unsigned int k= 0。unsigned short Ad_data2048。 short Ad_data_signed2048。 short filter_result1024。unsigned int convcount = 0。volatile unsigned int adconvover =0。interrupt void ISRTimer2void 。interrupt void advoid 。void mainvoid可编辑资料 - - - 欢迎下载精品名师归纳总结/* 初始化系统 */InitSysCtrl 。/* 关中断 */DINT 。IER = 0x0000。IFR = 0x0000。/* 初始化 PIE 中断*/InitPieCtrl 。/* 初始化 PIE 中断矢量表 */InitPieVectTable。/初始化 cputimer InitCpuTimers。/* 设置中断服务程序入口的址 */EALLOW 。PieVectTable.TINT2 = &ISRTimer2。PieVectTable.ADCINT = &ad。EDIS。/* 开中断 */IER |= M_INT1 。/ADC 中断EINT 。ERTM。/* 设置 CPU*/ DINT 。可编辑资料 - - - 欢迎下载精品名师归纳总结ConfigCpuTimer&CpuTimer2, 150, 22 。StartCpuTimer2。/* 开中断 */IER |= M_INT14 。EINT 。InitAdc 。for。if adconvover=1/*fir 滤波处理 */fori=0 。i<DataLong。i+Ad_data_signedi=shortAd_datai-0x5300。fir_filterAd_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROU ND_FIR 。adconvover=0。interrupt void advoidIFR=0x0000。PieCtrl.PIEACK.all=0xffff 。ifadconvover=0Ad_dataconvcount = AdcRegs.RESULT0。convcount+。可编辑资料 - - - 欢迎下载精品名师归纳总结if convcount=DataLong convcount=0。adconvover=1。/接满标志interrupt void ISRTimer2voidAdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1 。AdcRegs.ADCTRL2.bit.SOC_SEQ1=1。4.1.2 FIR_filter.c代码:/ const short x: 输入信号的缓冲数组, short 类型/ const short h:滤波器的系数数组, short类型/ short y:输出信号的缓冲数组, short 类型/ n: 滤波器长度/ m: 输入信号的长度,即 x 的长度/ s: 生成整型的滤波器系数时使用的移位数目void fir_filterconst short x,const short h,short y,int n,int m,int sint i,j 。long y0。long acc。_nassertm>=16。_nassertn>=16。 forj=0 。j<m 。j+可编辑资料 - - - 欢迎下载精品名师归纳总结acc=0。fori=0 。i<n 。i+ifi+j>=m break。elsey0=longxi+j*longhi。acc=acc+y0。*y+=shortacc>>s。第 5 章 系统仿真5.1 仿真设置1.fir_filterAd_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROUND_FIR 和 adconvover=0处设置断点2. 在 Graph Property Dialog 中设置 Start Address和 Display Type如图 5.1、图 5.2、图 5.3、图 5.4可编辑资料 - - - 欢迎下载精品名师归纳总结图 5.1图 5.2图 5.3可编辑资料 - - - 欢迎下载精品名师归纳总结图 5.43. 设置试验板输入信号的参数,再运行程序得到仿真图。5.2 仿真图(1)噪声三角波,频率为 4KHz ,振幅为 800mV。滤波前的波形如图 5.9和图 5.10,滤波后的波形如图 5.11 和图 5.12。图 5.9图 5.10可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结第 6 章 总结图 5.11图 5.12可编辑资料 - - - 欢迎下载精品名师归纳总结FIR 滤波器的设计是数字信号处理技术的基础,也是DSP 芯片的重要组成部分。 FIR 滤波器性能的好坏直接影响着DSP 的运行速度和精度,对现代电子技术的进展起准备性作用, FIR 滤波器的设计在以后的一段相当长的时间里将连续主导 DSP,而 DSP 随着电子技术的不断进展,应用领域愈来愈广泛。这次课程设计实现了一个简洁的FIR 滤波器的设计,在罗老师的细心指导和帮忙以及自己上网查找资料,较好的完成了课程设计的任务并达到了理想的目的。在这里我对罗老师表示感谢,感谢她的耐心和热心。通过这次课程设计使我对 DSP 芯片有了更深一步的明白,也不断的强化了自己的基础学问。可编辑资料 - - - 欢迎下载