- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TMS320C54x_fir滤波器设计_DSP实习报告格式_3237329
DSP实习报告
设计课题: FIR滤波器的DSP实现
专业班级: 信息73/74
学生姓名: 戴光明 袁耀行 瞿德安
指导教师: 邹俢国
设计时间: 2010.06
一、设计题目:
数字信号处理(DigitalSignalProcessing-DSP)是把数字或符号表示的序列,通过计算机设备,用数字的方式去处理,以达到更符合人们要求的信号形式。在很多数字信号的处理过程中,如对信号的过滤、检测、预测等都要广泛地用到滤波器。数字滤波器是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。
低通有限冲激响应滤波器(Finite ImpulseResponse Filter, FIR滤波器)有其独特的优点,因为FIR系统只有零点,系统总是稳定的,且为线性相位,允许实现多通道滤波器。数字滤波器是DSP的最基本的应用领域,一个DSP芯片执行数字滤波的能力反映了这种芯片功能的大小。数字滤波器因其设计灵活、实现方便等特点被广泛应用。
要求用TMS320C54x系列DSP设计实现FIR滤波器,使其有基本的滤波功能,并能通过仿真查看滤波前后的波形。
二、设计的原理图:
设h(n)(n=0,1,2…N-1)为滤波器的冲激响应,输入信号为x(n),则FIR滤波器就是要实现下列差分方程:
(1)
式(1)就是FIR滤波器的差分方程。FIR滤波器的最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位脉冲响应h(n)是一个有限长序列。由上面的方程可见, FIR滤波算法实际上是一种乘法累加运算,它不断地输入样本x(n),经延时(z-1),做乘法累加,再输出滤波结果y(n)。
对式(1)进行Z变换,整理后可得FIR滤波器的传递函数为:
(2)
由式(2)可以看出,FIR滤波器的一般结构如图所示:
FIR滤波器的结构图
三、系统功能及工作原理
程序中主要包含三个函数:main函数,InputWave函数,FIR函数。
各函数主要功能依次为:
Main():系统的主体部分。负责信号的输入输出。
InputWave(): 产生测试信号。
FIR():进行卷积运算,得到输出值。
------------------------------------------------fir.c------------------------------------------------------------------
#include math.h#define FIRNUMBER 25#define SIGNAL1F 1000#define SIGNAL2F 4500#define SAMPLEF 10000#define PI 3.1415926float InputWave();float FIR();float fHn[FIRNUMBER]={ 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009, -0.018,0.049,-0.02,0.11,0.28,0.64,0.28, -0.11,-0.02,0.049,-0.018,-0.009,0.01, -0.002,-0.002,0.001,0.0,0.0 };float fXn[FIRNUMBER]={ 0.0 };float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fIn[256],fOut[256]; int nIn,nOut;main(){ nIn=0; nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; fStepSignal1=2*PI/30; fStepSignal2=2*PI*1.4; while ( 1 ) { fInput=InputWave(); fIn[nIn]=fInput; nIn++; nIn%=256;
文档评论(0)