ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:899.33KB ,
资源ID:3786612      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3786612.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP实习报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP实习报告.docx

1、DSP实习报告实习题目 数字滤波器设计 班 级: 姓 名: 学 号: 指导教师: 实验日期: 12月12日 -12月16日 目 录一、实习目的 - 2 -二、 实习要求 - 2 -三、实习设备: - 2 -四、 系统原理论述 - 2 -五、方案论证及系统设计 - 5 -六、程序流程图 - 6 -七、源程序 - 6 -八、仿真调试与实验 - 27 -九、实习总结 - 29 -十、参考文献 - 30 -数字滤波器设计一、实习目的 1、 掌握设计较复杂DSP系统的基本方法。2、 掌握DSP扩展数字I/O接口的方法。3、 了解SEED-DEC5502的硬件系统。4、 熟悉使用CCStudio v3.3

2、,MATLAB软件,学习C语言编程。5、 学习MATLAB编写程序时各相关函数的使用方法。二、 实习要求1、 DSP初始化。2、 学习MATLAB编写程序时各相关函数的使用方法。3、 设计出软件编程方法,并写出源代码;4、 TMS320C5502硬件系统。5、 熟练使用CCS 对程序进行调试6、 仿真与结果分析;三、实习设备:计算机、MATLAB 7.0、CCStudio v3.34、系统原理论述1、数字滤波器的设计原理数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。这种滤波器

3、一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位

4、响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中具有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:只包含实数算法,不涉及复数运算;不存在延迟失真,只有固定数量的延迟;长度为N的滤波器(阶数为N-1),计算量为N/2数量级。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。(3)性能分

5、析和计算机仿真2、FIR滤波器及IIR滤波器的设计方法目前,IIR数字滤波器设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便,IIR数字滤波器的设计步骤是:(1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;(2)根据转换后的技术指标设计模拟低通滤波器H(s);(3)在按一定规则将H(s)转换为H(z)。若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤:(4)将高

6、通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤(2)设计出模拟低通滤波器H(s),再由冲击响应不变法或双线性变换将H(s)转换为所需的H(z)。s - z 映射的方法有:冲激响应不变法、阶跃响应不变法、双线性变换法等。下面讨论双线性变换法。双线性变换法是指首先把s 平面压缩变换到某一中介平面s1 的一条横带(宽度为2T,即从- T到T) ,然后再利用的关系把s1平面上的这条横带变换到整个z 平面。这样s 平面与z 平面是一一对应关系, 消除了多值变换性, 也就消除了频谱混叠现象。s 平面到z 平面的变换可采用 (2-5) (2-6)令,有: (2-7)从s1

7、平面到z 平面的变换,即 (2-8)代入上式,得到: (2-9) 一般来说,为使模拟滤波器的某一频率与数字滤波器的任一频率有对应关系,可引入代c, (2-10)则 (2-11) 这种s 平面与z 平面间的单值映射关系就是双线性变换。有了双线性变换,模拟滤波器的数字化只须用进行置换。IIR滤波器的优点是可利用模拟滤波器设计的结果,缺点是相位是非线性的,若需要线性相位,则要用全通网络进行校正。FIR滤波器的优点是可方便地实现线性相位。 FIR滤波器单位冲激响应h(n)的特点:其单位冲激响应h(n)是有限长(),系统函数为: (2-12)在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原

8、点z=0处。Fir滤波器线性相位的特点:如果FIR滤波器的单位抽样响应h(n)为实数,而且满足以下任一条件:偶对称h(n)h(N-1-n)奇对称h(n)-h(N-1-n)其对称中心在n(N-1)/2处,则滤波器具有准确的线性相位。窗函数设计法: 一般是先给定所要求的理想滤波器频率响应,由导出,我们知道理想滤波器的冲击响应是无限长的非因果序列,而我们要设计的是是有限长的FIR滤波器,所以要用有限长序列来逼近无限长序列,设: (2-13) 常用的方法是用有限长度的窗函数w(n)来截取 即: (2-14) 这里窗函数就是矩形序列RN(n),加窗以后对理想低通滤波器的频率响应将产生什么样的影响呢?根据

9、在时域是相乘关系,在频域则是卷积关系: (2-15) 其中,为矩形窗谱,是FIR滤波器频率响应. 通过频域卷积过程看的幅度函数H()的起伏现象,可知,加窗处理后,对理想矩形的频率响应产生以下几点影响:(1)使理想频率特性不连续点处边沿加宽,形成一个过渡带,其宽度等于窗的频率响应的主瓣宽度。(2)在截止频率的两边的地方即过渡带的两边,出现最大的肩峰值,肩峰的两侧形成起伏振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多少,则取决于旁瓣的多少。(3)改变N,只能改变窗谱的主瓣宽度,改变的坐标比例以及改变的绝对值大小,但不能改变主瓣与旁瓣的相对比例(此比例由窗函数的形状决定)。(4)对窗函数的要求:a

10、、窗谱主瓣尽可能窄,以获取较陡的过渡带;b、尽量减小窗谱的最大旁瓣的相对幅度;即能量集中于主瓣,使肩峰和波纹减小,增大阻带的衰减。五、方案论证及系统设计本次实习有两种方案,C语言和汇编语言实现,由于考虑到算法的特点,以及C语言的简练,我采用C语言版。1、新建一个项目:点击ProjectNew,将项目命名为FIR1.pjt,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。2、新建一个源文件:点击FileNewSource File可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(FIR1),保

11、存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为fir.asm ,同样建立并命名一个为C5509.asm。3、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击fir1.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的fir.asm文件,并用同样的方法添加.cmd文件。六、程序流程图 七、源程序FIR低通滤波器1、MATLAB程序b=fir1(79,0.1,Blackman

12、(80); %80 point hamming window FIR filter, Wn=0.2fvtool(b,1) %Flter Visualization Tool可心以查看幅度响应、冲激响应等h=buffer(round(b*32768),8) %参数*215,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrite(table.txt,h) %参数表输出到文件中 %然后只要把参数表从table.txt中拷到代码中,每行前面加上 .word2、fir2_t.c源代码#include math.h#include tms320.h#include dsplib.h#inc

13、lude test.hshort i;short eflag1= PASS;short eflag2= PASS;DATA rNX;DATA *dbptr = &db0;void main() int i; short xNX; for(i=0;iNX;i+)xi=0; for (i=0;iNX;i+) xi=(int)(sin(PI*300*i/15000)+sin(PI*8000*i/15000)*32768/3) ; / clear for (i=0; iNX; i+) ri = 0; / clear output buffer (optional) for (i=0; iNH+2; i

14、+) dbi = 0; / clear delay buffer (a must) / compute fir2(x, h, r, dbptr, NX, NH);/双MAC运算,速度快/ fir(x, h, r, dbptr, NX, NH);/单MAC运算,速度相对双MAC要慢一些while(1);3、text 。h源代码/*#define NX 300#define NH 80#define FNAME t4#define MAXERROR 10DATA xNX ;*/#define NX 320#define NH 80/#define FNAME t6#define MAXERROR

15、10#define PI 3.1415926/#pragma DATA_SECTION(h,.coeffs)DATA hNH=0,0,0,-1,-3,-4,-6,-7,-6,-3,4,14,28,44,61,75,82,78,60,25,-29,-100,-183,-269,-348,-404,-423,-389,-290,-116,135,461,849,1280,1731,2171,2571,2902,3137,3260,3260,3137,2902,2571,2171,1731,1280,849,461,135,-116,-290,-389,-423,-404,-348,-269,-18

16、3,-100,-29,25,60,78,82, 75,61,44,28,14,4,-3,-6;#pragma DATA_SECTION(db,.dbuffer)DATA dbNH+2 ;DATA rtestNX;DATA rNX;FIR高通滤波器1、MATLAB程序b=fir1(79,0.1,high); %80 point hamming window FIR filter, Wn=0.2fvtool(b,1) %Flter Visualization Tool可心以查看幅度响应、冲激响应等h=buffer(round(b*32768),8) %参数*215,把小数点移最高位后面后取整,然后

17、排成8个一行便于输出。csvwrite(table.txt,h) %参数表输出到文件中 %然后只要把参数表从table.txt中拷到代码中,每行前面加上 .word 2、fir2_t.c源代码#include math.h#include tms320.h#include dsplib.h#include test.hshort i;short eflag1= PASS;short eflag2= PASS;DATA rNX;DATA *dbptr = &db0;void main() int i; short xNX; for(i=0;iNX;i+)xi=0; for (i=0;iNX;i+

18、) xi=(int)(sin(PI*300*i/15000)+sin(PI*8000*i/15000)*32768/3) ; / clear for (i=0; iNX; i+) ri = 0; / clear output buffer (optional) for (i=0; iNH+2; i+) dbi = 0; / clear delay buffer (a must) / compute fir2(x, h, r, dbptr, NX, NH);/双MAC运算,速度快/ fir(x, h, r, dbptr, NX, NH);/单MAC运算,速度相对双MAC要慢一些 while(1)

19、; 3、text 。h文件源代码/*#define NX 300#define NH 80#define FNAME t4#define MAXERROR 10DATA xNX ;*/#define NX 320#define NH 80/#define FNAME t6#define MAXERROR 10#define PI 3.1415926/#pragma DATA_SECTION(h,.coeffs)DATA hNH= 0,7,14,21,28,34,38,38, 32,20,0,-27,-59,-94,-126,-152, -164,-159,-130,-77,0,98,208,3

20、21, 423,498,531,507,414,246,0,-319,-699,-1124,-1571,-2013,-2424,-2777,-3048,-3219,29494,-3219,-3048,-2777,-2424,-2013,-1571,-1124, -699,-319,0,246,414,507,531,498, 423,321,208,98,0,-77,-130,-159, -164,-152,-126,-94,-59,-27,0,20, 32,38,38,34,28,21,14,7;#pragma DATA_SECTION(db,.dbuffer)DATA dbNH+2 ;DA

21、TA rtestNX;DATA rNX;FIR带通滤波器1、MATLAB程序N=50;windows=Chebwin(N);b=fir1(N-1,0.30 0.60 ,windows ); %50 point hamming window FIR filterfvtool(b,1) %Flter Visualization Tool可以查看幅度响应、冲激响应等h=buffer(round(b*32768),4) %参数*215,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrite(table.txt,h) %参数表输出到文件中 %然后只要把参数表从table.txt中拷到代码

22、中,每行前面加上 .word 2、fir2_t.c源代码#include math.h#include tms320.h#include dsplib.h#include test.hshort i;short eflag1= PASS;short eflag2= PASS;DATA rNX;DATA *dbptr = &db0;void main() int i; short xNX; for(i=0;iNX;i+)xi=0; for (i=0;iNX;i+) xi=(short)(1+sin(PI*4000*i/15000)*sin(PI*6000*i/15000)*32768/3) ;

23、/ clear for (i=0; iNX; i+) ri = 0; / clear output buffer (optional) for (i=0; iNH+2; i+) dbi = 0; / clear delay buffer (a must) / compute fir2(x, h, r, dbptr, NX, NH);/双MAC运算,速度快/ fir(x, h, r, dbptr, NX, NH);/单MAC运算,速度相对双MAC要慢一些 while(1); 3、test.h程序/*#define NX 320#define NH 50#define FNAME t4#defin

24、e MAXERROR 10DATA xNX ;*/#define NX 320#define NH 50/#define FNAME t6#define MAXERROR 10#define PI 3.1415926/#pragma DATA_SECTION(h,.coeffs)DATA hNH=0,0,-2,-2,2,-4,12,47,-20,-112,-8,21,-57,347,458,-612,-830,246,-168,119,3295,1245,-6742,-4627,7390,7390,-4627,-6742,1245,3295,119,-168,246,-830,-612,458

25、,347,-57,21,-8,-112,-20,47,12, -4,2,-2,-2;#pragma DATA_SECTION(db,.dbuffer)DATA dbNH+2 ;DATA rtestNX;FIR带阻滤波器1、MATLAB程序b=fir1(39,0.1 0.3,stop); %40 point hamming window FIR filterfvtool(b,1) %Flter Visualization Tool可心以查看幅度响应、冲激响应等h=buffer(round(b*32768),4) %参数*215,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrit

26、e(table.txt,h) %参数表输出到文件中 %然后只要把参数表从table.txt中拷到代码中,每行前面加上 .word2、fir2_t.c源代码#include math.h#include tms320.h#include dsplib.h#include test.hshort i;short eflag1= PASS;short eflag2= PASS;DATA rNX;DATA *dbptr = &db0;void main() int i; short xNX; for(i=0;iNX;i+)xi=0; for (i=0;iNX;i+) xi=(short)(1+sin(

27、PI*3000*i/15000)*sin(PI*4000*i/15000)*32768/3) ; / clear for (i=0; iNX; i+) ri = 0; / clear output buffer (optional) for (i=0; iNH+2; i+) dbi = 0; / clear delay buffer (a must) / compute fir2(x, h, r, dbptr, NX, NH);/双MAC运算,速度快/ fir(x, h, r, dbptr, NX, NH);/单MAC运算,速度相对双MAC要慢一些 while(1); 3、text 。h文件源

28、代码/*#define NX 300#define NH 90#define FNAME t4#define MAXERROR 10DATA xNX ;*/#define NX 320#define NH 40/#define FNAME t6#define MAXERROR 10#define PI 3.1415926/#pragma DATA_SECTION(h,.coeffs)DATA hNH= 0,23,21,-40, -167,-297,-307,-132, 125,221,0,-352, -321,555,2155,3588, 3638,1641,-1841,-5155, 2605

29、7,-5155,-1841,1641, 3638,3588,2155,555, -321,-352,0,221, 125,-132,-307,-297, -167,-40,21,23;#pragma DATA_SECTION(db,.dbuffer)DATA dbNH+2 ;DATA rtestNX;DATA rNX;IIR低通滤波器1、MATLAB程序clearclcwp=2*2000/10000ws=2*2500/10000n,wn=cheb1ord(wp,ws,3,40)b,a=cheby1(n,3,wn)freqz(b,a,512,10000)s, g=tf2sos(b,a)%s2=s/20*32768s1=round(s/20*32768)k=s1(:,5),s1(:,6),s1(:,3),s1(:,1),s1(:,2)s3=k(1,:),k(

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

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