DSP课程设计方案fir数字滤波器.docx
- 文档编号:11725910
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:12
- 大小:130.63KB
DSP课程设计方案fir数字滤波器.docx
《DSP课程设计方案fir数字滤波器.docx》由会员分享,可在线阅读,更多相关《DSP课程设计方案fir数字滤波器.docx(12页珍藏版)》请在冰豆网上搜索。
DSP课程设计方案fir数字滤波器
北华航天工业学院
课程设计报告(论文)
设计课题:
DSP的FIR数字滤波器的设计
专业班级:
B11211
学生姓名:
张斌
指导教师:
李迎春
设计时间:
2014.05.30
北华航天工业学院电子工程系
基于DSP的FIR数字滤波器课程设计任务书
姓名:
张斌
专业:
电子信息工程
班级:
B11211
指导教师:
李迎春
职称:
课程设计题目:
基于DSP的FIR数字滤波器的设计
已知技术参数和设计要求:
1.设计一个采样频率为32KHz,截止频率约为6.5KHz的低通FIR滤波器,要求阻带衰减大于50dB。
FIR滤波器的DSP编程采用C语言实现。
在CCSSimulator中调试。
调试成功后,进行以下步骤。
2.由实验箱信号发生器产生4KHz的模拟方波信号,然后进行AD转换,存放在内存单元中观察这些数据的波形,然后通过DA转换后输出,在示波器上观察输出方波信号。
3.在串口数据的采集和发送程序中插入设计好的FIR低通滤波器。
对采集的方波信号进行数字低通滤波得到基波分量,存放在内存单元中观察这些数据的波形,并将滤波得到的基波分量通过DA转换后输出,在示波器上观察输出信号。
4.扩展要求(根据实际进度选做):
1)对采集的方波信号进行FFT变换,在CCS中分析方波频谱。
2)采集4KHz的模拟三角波或正弦波信号,并在CCS中进行Huffman编码
所需仪器设备:
示波器,通用PC一台,ICETEK-5100USB仿真器一台,
成果验收形式:
参考文献:
ICETEK-VC5509-A指导书3.3-v3
TM
时间
安排
第1单元发设计任务书,明确设计任务、技术要求,查找资料。
第2、3单元FIR滤波器设计及DSP编程。
第4、5单元学习和掌握TMS320VC5509A片上A/D的使用。
第6、7单元学习D/A转换器与TMS320VC5509A的接口与使用方法。
第8单元在数据的采集和发送程序中插入设计好的FIR低通滤波器,在示波器上观察输出信号。
第9单元撰写课程设计报告。
第10单元课程设计答辩。
指导教师:
李迎春教研室主任:
2014年5月30日
注:
本表下发学生一份,指导教师一份,栏目不够时请另附页。
课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。
目录
第1章绪论..............................................4
1.1设计背景.............................................4
1.2设计要求.............................................4
1.3设计思路简介.........................................4
第2章系统开发平台与环境.................................5
1.1CCS开发环境.........................................5
2.2SEED-DEC2812开发实验箱..............................5
第3章FIR滤波器设计过程...............................5
3.1FIR滤波器设计总框图.................................5
3.2FIR滤波器设计的原理.................................6
3.3 FIR滤波器的设计法................................6
第4章系统软件设计.......................................7
4.1程序源代码...........................................7
第5章系统仿真..........................................11
5.1仿真设置............................................14
5.2仿真图....................................14
第6章总结..............................................15参考文献.................................................15
第1章绪论
1.1设计背景
在信号处理中,滤波占有十分重要的地位。
数字滤波是数字信号处理的基本方法。
数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。
低通有限冲激响应滤波器(低通FIR滤波器)有其独特的优点,因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。
DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。
对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。
由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。
但是FIR系统有自己突出的优点:
①系统总是稳定的。
②易实现线性相位。
③允许设计多通带(阻带)滤波器。
其中后两项是IIR系统不易实现的。
1.2设计要求
利用C语言在CCS环境中编写一个FIR滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。
1.3设计思路简介
在TMS320C55x系统开发环境CCS(CodeComposerStudio)下对FIR滤波器的DSP实现原理进行讨论。
利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。
第2章系统开发平台与环境
1.1CCS开发环境
CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
CCS支持如下图1.1所示的开发周期的所有阶段。
图1.1
第3章FIR滤波器设计过程
3.1FIR滤波器设计总框图
FIR滤波器设计总框图如图
3.2FIR滤波器设计的原理
设ai(i=0,1,2,…,N-1)为滤波器的冲激响应,输入信号为x(n),则FIR滤波器的输入输出关系为:
FIR滤波器的结构如图3.2所示:
图3.2FIR滤波器的结构
3.3 FIR滤波器的设计方法
循环缓冲算法:
对于N级的FIR滤波器,在数据存储器中开辟一个称之为滑窗的N个单元的缓冲区,滑窗中存放最新的N个输入样本。
每次输入新的样本时,一新样本改写滑窗中的最老的数据,而滑窗中的其他数据不需要移动。
利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,环缓冲区地址首位相邻。
下面,以N=5的FIR滤波器循环缓冲区为例,说明循环缓冲区中数据是如何寻址的。
5级循环缓冲区的结构如图3.3所示,顶部为低地址。
图3.3循环缓冲区的结构
当第一次执行完
之后,间接寻址的辅助寄存器
指向x(n-4)。
然后,从I/O口输入数据x(n+1),将原来存放x(n-4)的数据存储单元改写为x(n+1)。
接着,进行第二次乘法累加运算,
,最后
指向x(n-3)。
然后从I/O口输入数据x(n+2),将原来存放x(n-4)的数据存储器单元改写为x(n+2)。
第4章系统软件设计
4.1程序源代码
4.1.1FILTER.c代码:
#include"DSP28_Device.h"
#include"filter.h"
#include"ext_inf.h"
unsignedintDataLong=1024。
unsignedinti,j。
unsignedintk=0。
unsignedshortAd_data[2048]。
shortAd_data_signed[2048]。
shortfilter_result[1024]。
unsignedintconvcount=0。
volatileunsignedintadconvover=0。
interruptvoidISRTimer2(void)。
interruptvoidad(void)。
voidmain(void)
{
/*初始化系统*/
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滤波处理*/
for(i=0。
i i++) Ad_data_signed[i]=(short)(Ad_data[i]-0x5300)。 fir_filter(Ad_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROUND_FIR)。 adconvover=0。 } } } interruptvoidad(void) { IFR=0x0000。 PieCtrl.PIEACK.all=0xffff。 if(adconvover==0){ Ad_data[convcount]=AdcRegs.RESULT0。 convcount++。 } if(convcount==DataLong){ convcount=0。 adconvover=1。 //接满标志 } } interruptvoidISRTimer2(void) { AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1。 AdcRegs.ADCTRL2.bit.SOC_SEQ1=1。 } 4.1.2FIR_filter.c代码: //constshortx[]: 输入信号的缓冲数组,short类型 //constshorth[]: 滤波器的系数数组,short类型 //shorty[]: 输出信号的缓冲数组,short类型 //n: 滤波器长度 //m: 输入信号的长度,即x[]的长度 //s: 生成整型的滤波器系数时使用的移位数目 voidfir_filter(constshortx[],constshorth[],shorty[],intn,intm,ints) { inti,j。 longy0。 longacc。 _nassert(m>=16)。 _nassert(n>=16)。 for(j=0。 j j++) { acc=0。 for(i=0。 i i++) { if(i+j>=m) break。 else { y0=(long)x[i+j]*(long)h[i]。 acc=acc+y0。 } } *y++=(short)(acc>>s)。 } } 第5章系统仿真 5.1仿真设置 1.fir_filter(Ad_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROUND_FIR)和adconvover=0处设置断点 2.在GraphPropertyDialog中设置StartAddress和DisplayType如图5.1、图5.2、图5.3、图5.4 图5.1 图5.2 图5.3 图5.4 3.设置实验板输入信号的参数,再运行程序得到仿真图。 5.2仿真图 (1)噪声三角波,频率为4KHz,振幅为800mV。 滤波前的波形如图5.9和图5.10,滤波后的波形如图5.11和图5.12。 图5.9 图5.10 图5.11 图5.12 第6章总结 FIR滤波器的设计是数字信号处理技术的基础,也是DSP芯片的重要组成部分。 FIR滤波器性能的好坏直接影响着DSP的运行速度和精度,对现代电子技术的发展起决定性作用,FIR滤波器的设计在以后的一段相当长的时间里将持续主导DSP,而DSP随着电子技术的不断发展,应用领域愈来愈广泛。 这次课程设计实现了一个简单的FIR滤波器的设计,在罗老师的精心指导和帮助以及自己上网查找资料,较好的完成了课程设计的任务并达到了理想的目的。 在这里我对罗老师表示感谢,感谢她的耐心和热心。 通过这次课程设计使我对DSP芯片有了更深一步的了解,也不断的强化了自己的基础知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计 方案 fir 数字滤波器