基于TMS320VC5402的FIR数字滤波器的设计Word下载.docx
- 文档编号:21489520
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:16
- 大小:445.18KB
基于TMS320VC5402的FIR数字滤波器的设计Word下载.docx
《基于TMS320VC5402的FIR数字滤波器的设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC5402的FIR数字滤波器的设计Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
划
14周熟悉题目;
15周图书馆查阅书籍;
16周实验室做实验;
17总结
考
资
料
[1] 张萍.基于MATLAB与DSP的FIR数字滤波器的设计[J].中国科技信息,2007.[2] 吴燕波.基于MATLABFIR数字滤波器的设计[J].中国科技文献.
[3] SanjitK.Mitra.数字信号处理[M].孙洪,余翔宇,等译.北京:
电子工业出版社,2005.[4] 刘波,文忠,曾涯.MATLAB信号处理[M].北京:
电子工业出版
[5]张雄伟,陈亮,徐光辉.DSP芯片的原理与开发应用(第3版)[M].北京:
电子工业出版社,2003.
2010年6月23日
专业(班级):
课程设计题目:
指导教师评语:
成绩:
指导教师:
信息工程系课程设计成绩评定表
摘要
数字FIR滤波器广泛地应用于数字信号处理领域。
主要介绍了通过改进算法,利用TMS320C5402芯片的丰富指令和自动溢出保护功能,采用窗函数法,利用MATLAB工具软件辅助设计和仿真,对信号进行低通滤波,并使用CCS应用软件进行仿真及调试,实现了DSP下数字低通滤波器的设计。
关键词:
FIR数字滤波器;
滤波器设计;
数字信号处理
Abstract
FIRfilteriswidelyusedinthedigitalsignalprocessingfield.Mainlyintroduced
improvementonarithmetic,usingabundantinjunctionsandautomatismoverflowprotectivefunction
ofTMS320C5402,thusadoptedthemethodofwindowfunction,invirtueofprogramminglanguage
ofMATLAB.Furthermore,asimplifieddesignofanFIRfilterwasalsodiscussedwiththeanalysis
oftheFIRstructure.Inthisway,itcanbeimplementedeasilyonfixed2pointofDSPslug
Keywords:
FIRdigitalfilters;
filterdesign;
DSP
目录
前言6
1任务提出与方案论证7
1.1TMS320VC5402的主要特点7
1.2TMS320C5402编程8
1.3FIR数字滤波器9
2总体设计10
2.1FIR滤波器的窗函数设计步骤10
2.2FIR滤波器的matlab实现10
2.3FIR滤波器的dsp实现12
2.4滤波效果调试16
3总结17
参考文献18
前言
随着信息时代和数字世界的到来,数字信号处理已成为当今一项极其重要的学科和技术领域。
在此领域中经常遇到的问题是:
如何将信号中冗余的成分去掉获得所需要的有用信号。
其中的一个方法是利用有用信号和需要抑制的成分之间在频谱上的差别,设计一个滤波器使接收到的信号通过该系统后,有用信号的成分保持不变而其它成分则大大衰减。
FIR的实现是非递归的,稳定性好,精度高,而且可以获得严格的线性相位特性。
因此,它在数字音频、图像处理、数据传输等领域得到广泛应用。
1任务提出与方案论证
FIR滤波器的设计方法有窗函数设计法和频率采样设计法,下面扼要介绍窗函数设计法。
窗函数设计法的基本思想是要选取某一适合的理想频率特性,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR滤波器。
因此,这种方法的重点在于选择某种恰当的窗函数和一个合适的理想滤波器。
假设所希望得到的滤波器的理想响应为
FIR滤波器的设计就在于寻找一个传递函数
去逼近
,设
由于
的矩形频率特性,故ai(n)一定是无限长的序列,而且是非因果的,要设计的FIR滤波器的a(n)必然是有限长的,所以要用有限长的a(n)来逼近无限长的ai(n),最有效的方法是截断ai(n),或者用一个有限长的窗函数序列w(n)来截取ai(n),即a(n)=w(n)ai(n)
因此,窗函数序列的形状及长度选择很关键。
在设计过程中,可由所设计滤波器的过度带宽和阻带最小衰减的要求选定窗函数w(n)的形状。
1.1TMS320VC5402的主要特点:
TMS320VC5402是TI公司于1999年10月推出的性价比极高的定点数字信号处理器(DSP)。
运算速度高达100MIPS。
图1是它的内部硬件组成框图,包括:
CPU,总线,存储器,在片外设电路等。
主要特点如下:
●由一条程序总线、三条数据总线和四条地址总线构成增强型哈佛结构;
●40位算术逻辑单元(ALU),包括一个40位桶形移位寄存器和两个独立的40位累加器;
●17bitx17bit并行乘法器单元和一个专用的40位加法器,用于非流水线的单周期乘法/累加(MAC)操作;
●比较、选择、储存单元(CSSU),用于维特比加法/比较选择;
●两个地址发生器,包括8个辅助寄存器(AR0-AR7)和2个辅助寄存器算术单元(ARAU0、ARAU1);
●192K字×
16bit可寻址的存储器空间(64K字的程序空间、64K字的数据空间、64K字的I/O空间),片内提供16K双存取RAM,4KROM;
●在片外围电路包括:
软件可编程等待状态发生器、片内锁相环(PLL)时钟发生器、2个多通道带缓冲串行接口(McBSP)、2个可编程的定时器等;
除了上述高性能的硬件结构外,TMS320VC5402还提供了先进的指令集,实现单指令重复和块重复、32位长操作指令、具有并行存储和并行加载的算术指令、一条指令同时读2或3个操作数、从中断快速返回指令。
1.2 TMS320C5402编程
芯片TMS320C5402有7种寻址方式可供利用:
立即数寻址、绝对寻址、直接寻址、累加器寻址间接寻址、存储器映像寄存器寻址、堆栈寻址。
其中绝对寻址、直接寻址、间接寻址和存储器映像寄存器寻址在编程中用得比较频繁。
而在一般的情况下,应首先使用间接寻址和存储器映像寄存器寻址,因为这样可以节省指令周期。
在使用直接寻址时,一般选用DP寄存器的直接寻址(DP-ReferencedAddressing)方式。
此时,存储器被分为512页,地址0~127,这样一个确定的地址由DP值和指令的地址域两部分确定。
所以选取DP值的直接寻址方式时,须设定DP值,这样在程序实现时比较麻烦,通用的做法是采用TMS320C5402提供的伪指令功能,因为伪指令不占用程序的执行空间和时间。
加上TMS320C5402的多总线技术,提供了很多单字单指令周期的并行指令,如并行装入和存储指令、并行存储及加ö
指令、并行存储与乘指令,在程序中恰当地加入这些指令,可以提高程序的执行效率。
在实过程中,滤波器的通带截止频率和阻带下限截止频率分别为200Hz和500Hz.另外,C5402芯片在使用MAC或MAS指令时,首先对乘法结果进行溢出保护,即8000H×
8000H得到结果7FFFFFFFH,然后再进行并行的加或减的运算。
这样就进一步有效地减少了溢出,提高了FIR滤波器的性能,基本上克服了一般FIR滤波器对输入信号有衰减。
通过MATLAB编程仿真,得到滤波器系数
如下:
Sec1 b0 1.0000000
b1 1.3328459
b2 1.0000000
a0 1.0000000
a1 -0.4316700
a2 0.7075742
Sec2 b0 1.0000000
b1 1.8611640
a1 -0.7714902
a2 0.2617644
1.3FIR数字滤波器
FIR滤波器实质上就是一个分节的延迟线,把每一节的输出用滤波器系数进行加权累加,便得到滤波器的输出结果,它总是稳定并且可实现的。
在一些工程实际应用(如:
图像处理、数据调制解调)中,往往对相位要求较高。
FIR滤波器可以实现严格的线性相位,从而得到了广泛应用。
它的差分方程数学表达式为:
(1)
式中,N是FIR滤波器的抽头数,x(n)表示在n时刻输入的信号样值,h(n)表示滤波器的第n级抽头系数。
横截型FIR滤波器的结构如图2所示
2总体设计
2.1 FIR滤波器的窗函数设计步骤:
(1)由数字滤波器理想特性Hd(ejw)进行傅里叶逆变换,获得理想滤波器的单位脉冲响应hd(n)。
假设理想低通滤波器的截止频率为wc,其幅频特性为:
或
(2)由性能指标确定窗函数w(n)和窗口长度N,由过渡带近似于窗函数主瓣宽度求得窗口长度。
(3)求滤波器的单位脉冲响应h(n)=hd(n)w(n)。
(4)检验滤波器的性能指标。
2.2FIR滤波器的matlab实现
MATLAB信号处理工具箱中的各种FIR数字滤波器设计函数都是采用双线性变换法。
滤波器设计函数butter、cheby1、cheby2和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
要求调用如上函数直接设计fIR数字滤波器。
数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。
由图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可以通过滤波的方法在频域分离。
设计一个低通滤波器,性能指标为通带0~1000Hz,阻带截止频率为2000Hz,通带波动1%,阻带波动5%,采样频率为10000Hz,采用Kaiser窗。
主要程序
fc=1000;
fs=10000;
[n,Wn,beta,ftype]=kaiserord([10002000]
[10],[0.050.05],fs);
%得出滤波器的阶数
w=23fcPf
s%模拟到数字滤波器的技术指标的
转换
window=kaiser(n+1,beta);
%使用kaiser窗函数
b=fir1(n,w,window);
%使用标准频率响应的
加窗设计函数fir1
freqz(b,1,512);
%数字滤波器频率响应;
t=(1:
100)Pfs;
s=sin(23pi3t3800)+sin(23pi3t33000)+sin(23pi3t34000);
%混和正弦波信号
sf=filter(b,1,s);
%对信号s进行滤波
滤波器长度为13,归一化截止频率为0.2,凯塞窗控制旁瓣的参数为1.5099,以及传递给函数firl用于指定滤波器类型的ftype为low,同时得到如图1-2所示的结果,可以看出它能满足设计要求。
2.3FIR滤波器的dsp实现
2.3.2DSP程序设计可在CCS开发环境中完成,CCS提供有C编译器、汇编器等产生程序代码的工具。
低通滤波器的程序如下:
#include<
stdio.h>
stdlib.h>
string.h>
math.h>
#definePI3.1415926
voidmain()
{
floattemp;
intresult,num,feq,volume,i;
FILE*fp;
charbuf[20];
charname[128];
printf("
PleaseentertheDATfilename:
\n"
);
scanf("
%s"
buf);
Pleaseenterthenumberofpoint:
%d"
&
num);
PleaseenterthenumberofFEQ:
feq);
feq=feq;
PleaseentertheVolume:
volume);
fp=fopen(buf,"
wb"
sprintf(buf,"
16511010\n"
fwrite(buf,strlen(buf),1,fp);
for(i=0;
i<
num;
i++)
{
temp=sin(i*feq*2*PI/2048)*volume;
result=(int)temp;
sprintf(buf,"
0x%x\n"
result);
fwrite(buf,strlen(buf),1,fp);
}
fclose(fp);
ProgramEnd!
}
下面为一个FIR低通、带通、高通的通用程序
HIGHPASS.set0;
ifyouwanttouse,pleasesetthevalueto1
BANDPASS.set0
LOWPASS.set1
.globalstart,fir
.mmregs
COFF_FIR_START:
.sect"
coff_fir"
.ifLOWPASS
.include"
lowpass\lowpass.inc"
.elseifBANDPASS
bandpass\bandpass.inc"
.else
highpass\highpass.inc"
.endif
K_FIR_BFFR.set32
d_data_buffer.usect"
fir_bfr"
64
FIR_DP.usect"
fir_vars"
0
d_filin.usect"
1
d_filout.usect"
100h
.asgAR4,FIR_DATA_P
.asgAR6,INBUF_P
.asgAR7,OUTBUF_P
fir_prog"
nop
start:
LD#FIR_DP,DP
STM#d_data_buffer,FIR_DATA_P
RPTZA,#K_FIR_BFFR-1
STLA,*FIR_DATA_P+
STM#d_filin,INBUF_P
STM#d_filout,OUTBUF_P
STM#100h,BK
fir_loop:
NOP;
AddBreakpoint&
porbepoint
LD*INBUF_P,A
CALLfir
STHA,*OUTBUF_P+%
main_end:
bfir_loop;
AddBreakpoint
fir:
SSBXSXM
SSBXFRCT
STLA,*FIR_DATA_P
STM#(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P
fir_task:
MACD*FIR_DATA_P-,COFF_FIR_START,A
RET
.end
在CCS中仿真的波形图如下:
2.4滤波效果调试
将设计的低通滤波器的配置文件下载到器件中进行实际滤波测试,用示波器观察各个频率点上输出信号的幅值大小。
由滤波测试结果可知,该FIR滤波电路完全达到低通滤
波器5MHz的采样频率,1.5MHz的截止频率,以及16阶的技术指标参数。
3总结
本设计中通过滤波,滤除了输入信号中的高频成分,改善了波形质量。
将MATLAB的功能与DSP结合。
输入信号进行实时滤波处理。
考虑到整个系统的可行性,将所设计好的数字滤波器在MATLAB中进行了系统仿真,使得整个系统的性能达到最好。
4参考文献
参考文献:
[1] 张萍.基于MATLAB与DSP的FIR数字滤波器的设计[J].中国科技信息,2007.
[2] 吴燕波.基于MATLABFIR数字滤波器的设计[J].中国科技文献.
电子工业出版社,2005.
[4] 刘波,文忠,曾涯.MATLAB信号处理[M].北京:
[6]乔瑞萍,崔涛,张芳娟.TMS320C54x原理及应用[M].西安:
西安电子科技大学出版社,2005.
[7]刘益成.TMS320C54xDSP应用程序设计与开发[M].北京:
北京航空航天大学出版社,2002.
[8]张勇,曾炽祥,周好斌.TMS320C5000系列DSP汇编语言程序设计[M].西安:
西安电子科技大学出版社,2004.
[9]卢山,田野,郭黎利.利用DSP技术实现FIR滤波器[J].应用科技,2002,29(11):
19-21.
[10]文玮玮,董金明.数字滤波器在定点DSP上的实现[J].遥测遥控,2001,23
(1):
36-41.
[11]孙克梅,刘洋.数字滤波器在DSP上的实现[J].沈阳航空工业学院学报,2005,22(3):
53-54.
[12]周金治.基于Matlab与DSP的语音信号FIR滤波[J].兵工自动化,2005,24(6):
66-67.
[13]张伟利,朱煜.FIR滤波器在TMS320C5402中的实现[J].微处理机,2005
(2):
4-6.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TMS320VC5402 FIR 数字滤波器 设计