DSP课程设计方案 fir数字滤波器.docx

上传人:b****5 文档编号:5691014 上传时间:2022-12-31 格式:DOCX 页数:15 大小:279.37KB
下载 相关 举报
DSP课程设计方案 fir数字滤波器.docx_第1页
第1页 / 共15页
DSP课程设计方案 fir数字滤波器.docx_第2页
第2页 / 共15页
DSP课程设计方案 fir数字滤波器.docx_第3页
第3页 / 共15页
DSP课程设计方案 fir数字滤波器.docx_第4页
第4页 / 共15页
DSP课程设计方案 fir数字滤波器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

DSP课程设计方案 fir数字滤波器.docx

《DSP课程设计方案 fir数字滤波器.docx》由会员分享,可在线阅读,更多相关《DSP课程设计方案 fir数字滤波器.docx(15页珍藏版)》请在冰豆网上搜索。

DSP课程设计方案 fir数字滤波器.docx

DSP课程设计方案fir数字滤波器

目录

第1章绪论..............................................1

1.1设计背景.............................................1

1.2设计要求.............................................1

1.3设计思路简介.........................................1

第2章系统开发平台与环境.................................2

1.1CCS开发环境.........................................2

2.2SEED-DEC2812开发实验箱..............................2

第3章FIR滤波器设计过程...............................3

3.1FIR滤波器设计总框图.................................3

3.2FIR滤波器设计的原理.................................3

3.3 FIR滤波器的设计方法................................4

第4章系统软件设计.......................................5

4.1程序流程图...........................................5

4.2程序源代码...........................................6

第5章系统仿真..........................................11

5.1仿真设置............................................11

5.2仿真图..............................................12

第6章总结..............................................16

参考文献.................................................17

第1章绪论

1.1设计背景

在信号处理中,滤波占有十分重要的地位。

数字滤波是数字信号处理的基本方法。

数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。

低通有限冲激响应滤波器(低通FIR滤波器)有其独特的优点,因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。

DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。

对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。

由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。

但是FIR系统有自己突出的优点:

①系统总是稳定的。

②易实现线性相位。

③允许设计多通带(阻带)滤波器。

其中后两项是IIR系统不易实现的。

1.2设计要求

利用C语言在CCS环境中编写一个FIR滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。

1.3设计思路简介

在TMS320C54x系统开发环境CCS(CodeComposerStudio)下对FIR滤波器的DSP实现原理进行讨论。

利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。

第2章系统开发平台与环境

1.1CCS开发环境

CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。

CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。

CCS支持如下图1.1所示的开发周期的所有阶段。

图1.1

2.2SEED-DEC2812开发实验箱

SEED-DECxxxx系列嵌入式DSP开发板本着模块化、总线型、开放式、系列化的设计思想,采用统一的系统结构、模块结构和机械结构,以多种典型DSP处理器构成具有标准总线和相同物理尺寸的高性能嵌入式DSP开发板。

SEED-DEC2812嵌入式DSP开发板原理框图如图1.2所示:

图1.2

第3章FIR滤波器设计过程

3.1FIR滤波器设计总框图

FIR滤波器设计总框图如图3.1所示

图3.1FIR滤波器设计总框图

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所示

图4.1程序流程图

4.2程序源代码

4.2.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.2.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)标准矩形波,频率为300Hz,振幅为800mV。

滤波前的波形如图5.5和图5.6,滤波后的波形如图5.7和图5.8。

图5.5

图5.6

图5.7

图5.8

(2)噪声三角波,频率为400Hz,振幅为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芯片有了更深一步的了解,也不断的强化了自己的基础知识。

参考文献

[1]程佩青.数字信号处理教程[M].北京:

清华大学出版社,1999年

[2]孙宗瀛,谢鸿林.TMS320C5xDSP原理设计与应用[M].北京:

清华大学出版社,2002年

[3]乔瑞萍,崔涛,张芳娟.TMS320C54xDSP原理及应用[M].西安:

西安电子科技大学出版社,2005年

[4]张雄伟.DSP芯片的原理与开发应用(第三版)[M].北京:

电子工业出版社,2003年

[5]郑红.TMS320C54XDSP应用系统设计[M].北京:

北京航空航天大学出版社,2002年

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1