DSP实验报告2解读
DSP实验报告

DSP技术及应用实验报告(第二次)实验名称:1、CMD文件和Gel文件的编写2、正弦信号发生器班级:08级通信工程二班姓名:周卫星学号:2008550726指导老师:姚志强实验三、CMD文件和Gel文件的编写一、实验目的1. 掌握Gel文件的编写,2. 熟悉Code Composer Studio的使用二、实验设备1. 集成开发环境CCS2. 实验代码ccs_gel.s54、ccs_gel.cmd和ccs_gel.gel三、实验内容及结果1、建立项目并添加相应文件,连接编译(步骤同实验二一样),双击打开CMD 文件,对照教材理解CMD文件的编写结构,改变其中的内容,增加自定义段,保存并重新编译,比对前后两次编译得到的Map文件的异同。
/*Memory Directive,是对用户目标DSP储存空间说明。
用户可配置储存空间的页数、长度、起始点、名称等*/MEMORY {PAGE 0:VECS: org=0x0080, len=0x80PROM: org=0x1000, len=0x1000 /* 4k words */PAGE 1:STACK: o rg=0x100, len=0x400 /* 1k words */DARAM: org=0x2000, len=0x1000 /* 4k words */}/*以下为Sections Directive,是对程序中段的配置说明,也就是将程序中所用到的段配置到用户在Memory Directive所定义的memory单元。
*/SECTIONS{ .text:> PROM PAGE 0vectors :> VECS PAGE 0.bss :> DARAM PAGE 1.data :> DARAM PAGE 1}修改,在SECTIONS中最后一行加入了如下行:.lab :> DARAM PAGE1通过比较,修改后相对修改前多出了如下行:.lab 1 00002000 00000000 UNINITIALIZED2、了解GEL文件的功能。
dsp原理与应用实验报告总结

dsp原理与应用实验报告总结DSP(Digital Signal Processing)数字信号处理是利用数字技术对信号进行处理和分析的一种方法。
在本次实验中,我们探索了DSP的原理和应用,并进行了一系列实验以验证其在实际应用中的效果。
以下是对实验结果的总结与分析。
实验一:数字滤波器设计与性能测试在本实验中,我们设计了数字滤波器,并通过性能测试来评估其滤波效果。
通过对不同类型的滤波器进行设计和实现,我们了解到数字滤波器在信号处理中的重要性和应用。
实验二:数字信号调制与解调本实验旨在通过数字信号调制与解调的过程,了解数字信号的传输原理与方法。
通过模拟调制与解调过程,我们成功实现了数字信号的传输与还原,验证了调制与解调的可行性。
实验三:数字信号的傅里叶变换与频谱分析傅里叶变换是一种重要的信号分析方法,可以将信号从时域转换到频域,揭示信号的频谱特性。
本实验中,我们学习了傅里叶变换的原理,并通过实验掌握了频谱分析的方法与技巧。
实验四:数字信号的陷波滤波与去噪处理陷波滤波是一种常用的去除特定频率噪声的方法,本实验中我们学习了数字信号的陷波滤波原理,并通过实验验证了其在去噪处理中的有效性。
实验五:DSP在音频处理中的应用音频处理是DSP的一个重要应用领域,本实验中我们探索了DSP在音频处理中的应用。
通过实验,我们成功实现了音频信号的降噪、均衡和混响处理,并对其效果进行了评估。
实验六:DSP在图像处理中的应用图像处理是另一个重要的DSP应用领域,本实验中我们了解了DSP在图像处理中的一些基本原理和方法。
通过实验,我们实现了图像的滤波、边缘检测和图像增强等处理,并观察到了不同算法对图像质量的影响。
通过以上一系列实验,我们深入了解了DSP的原理与应用,并对不同领域下的信号处理方法有了更深刻的认识。
本次实验不仅加深了我们对数字信号处理的理解,也为日后在相关领域的研究与实践提供了基础。
通过实验的结果和总结,我们可以得出结论:DSP作为一种数字信号处理的方法,具有广泛的应用前景和重要的实际意义。
DSP实验报告定时器2

实验二DSP系统定时器的使用一、实验目的:1、掌握5402 DSP片上定时器的初始化设置及应用;2、掌握DSP系统中实现定时的原理及方法;3、了解5402 DSP中断寄存器IMR、IFR的结构和使用;4、掌握5402 DSP系统中断的初始化设置过程和方法;5、掌握在C语言中嵌入汇编语句实现数字I/O的方法。
二、实验原理:1、定时器及其初始化在5402内部包括两个完全相同的定时器:定时器0和定时器1。
每个定时器分别包括3个寄存器:定时器周期寄存器PRD、定时器寄存器TIM、定时器控制寄存器TCR,其中TCR 寄存器中包括定时器分频系数TDDR、定时器预分频计数器PSC两个功能寄存器。
通过PRD 和TDDR可以设置定时器的初始值,TIM(16bits)和PSC(4bits)是用于定时的减法计数器。
CLKOUT是定时器的输入时钟,最大频率为100Mhz。
定时器相当于20bit的减法计数器。
定时器的结构如图1所示。
图1 定时器的组成框图定时器的定时周期为:CLKOUT×(TDDR+1)×(PRD+1)其中,CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。
在正常工作情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。
当系统复位或者定时器单独复位时,PRD中的时间常数重新加载到TIM。
同样地,每当复位或PSC减到0后,定时器分频系数TDDR自动地加载到PSC。
PSC在CLKOUT作用下,作减1计数。
当PSC 减到0时,产生一个借位信号,令TIM作减l计数。
TIM减到0后,产生定时中断信号TINT,传送至CPU和定时器输出引脚TOUT。
例如:欲设置定时器0的定时周期为1ms,当DSP工作频率为100Mhz时,通过上式计算可得出:TDDR=15,PRD=6520。
2、定时器的使用下面是一段定时器应用程序,每检测到一次中断,ms+1,利用查询方式每计500个数就令XF引脚的电平翻转一次,在XF引脚输出一矩形波信号,因定时器1ms中断一次,故500ms就使LED翻转一次,这样LED指示灯就不停地闪烁。
DSP实验二 拨码开关实验

《DSP技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:项目满分5分得分一、实验名称拨码开关实验二、实验目的1.了解DSP开发系统的组成和结构2.了解IO的基本编程方法三、实验内容1. 2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON。
2.E300板上的开关SW4的第二位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。
3.运行Code Composer Studio (CCS)(CCS3.3需要“DEBUG→Connect”)4. 用“Project\open”打开系统项目文件路径为“c:\DSP_examep\DSP281X_examples\e300_02_switch\Example_281x_switch.pjt”双击该文件5、输入主要程序。
6、编译程序并装载。
7.单击“Debug-GoMain”跳到主程序的开始;8. 单击“Debug\RUN”运行程序。
需要判断是高电平亮,还是低电平亮,可以使用中断调试。
在运行状态,在需要设置断点的位置的右边,双击,就可以产生红点。
表明设置了断点。
在view目录下,(如右边图所示:)打开watch window,(此项是用来检查和编辑变量或C表达式可以不同格式显示变量值,还可以显示数值、结构或指针等包含多个元素的变量),在本实验中观察temp变量的变化。
步骤:在debug目录下点run,在断点处,程序会停下来,可以观察temp变量的值。
(也可按“F10”单步运行程序,观察temp变量的值。
)9. 任意拨动E300底板上的拨动开关,观察LED和拨动开关的对应情况。
(LED1-LED7分别对应DSP数据总线的D0-D7)10.单击“Debug \ Halt”暂停持续运行,开关将对灯失去控制.11.关闭所有窗口,本实验完毕.四、实验程序与结果分析实验程序:#include "DSP281x_Device.h" // DSP281x Headerfile Include File#include "DSP281x_Examples.h" // DSP281x Examples Include Filevoid main(void){unsigned int temp;temp = 0;DINT;InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();for(;;){asm(" nop ");temp = *(int *)0x2200&0x00ff;if(temp!=0x80){temp=(temp<<1)&0x00ff;asm(" nop ");* (int *)0x2200 = temp;}else * (int *)0x2200 =0x01;asm(" nop ");}}结果分析:多次拨动E300底板上的拨码开关,观察LED亮灭后,我们发现拨动开关的对LED1-LED7分别对应DSP数据总线的D0-D7,并且LED低电平时导通。
DSP第二次实验报告

DSP实验报告(第二次实验)实验四、正弦信号发生器学院:信息工程学院班级:11级通信工程3班姓名:李慧学号:2011551309指导老师:姚志强完成日期:2014.4.12验四、正弦信号发生器一、 实验目的1. 掌握利用DSP 产生正弦信号的原理2. 熟悉子程序调用的程序结构以及堆栈的使用3. 掌握CCS 的图形输出操作二、 实验设备1. 集成开发环境Code Composer Studio (简称CCS )2. 实验代码Sin.s54、Lab.cmd 和Lab.gel三、实验内容1. 阅读理解多项式逼近正弦的文档2. 阅读和理解Sin.s543. 调试正弦波发生器4. 加入断点,并选取图形观测,利用动画及时更新5. 试利用迭代的方法来实现正弦信号发生器四、实验结果和提示1.2345sin()= 3.140625 + 0.02026367 - 5.325196 + 0.5446778 + 1.800293x x x x x x ,x 为第一象限内的弧度值。
因为sin()sin(),sin()sin()x x x x π-=-=-,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。
由于有限精度,规定弧度值从~ππ-,其中π=0x7FFF ,π/2=0x4000,π-=0x8000。
利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A 中的当前弧度值,以便计算结束后实现x 增量。
正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。
x 自动增长时要注意当x 超过π后必须调整到~ππ-的范围内才能调用计算子程序,即若,2x x x ππ>=-则。
2. 需要使用临时数据时,必须用frame 语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。
要注意的是frame 的下一条指令不能使用直接寻址。
DSP实验报告(二)

DSP实验报告(二)实验二应用FFT对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。
2、熟悉应用FFT对典型信号进行频谱分析的方法。
3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
二、实验原理与方法①一个连续信号的频谱可以用它的傅立叶变换表示为+ Xa(jW)=-jWtx(t)edtòa-如果对该信号进行理想采样,可以得到采样序列x(n)=xa(nT)同样可以对该序列进行z变换,其中T为采样周期X(z)=+ x(n)z-n+ -令z为ejw,则序列的傅立叶变换X(ejw)=x(n)ejwn-其中ω为数字频率,它和模拟域频率的关系为w=WT=W/fs式中的是采样频率。
上式说明数字频率是模拟频率对采样率的归一化。
同模拟域的情况相似。
数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。
序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系。
1X(e)=Tjw+ - w-2pXa(j)T即序列的频谱是采样信号频谱的周期延拓。
从式可以看出,只要分析采样序列的谱,就可以得到相应的连续信号的频谱。
注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。
在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。
无限长的序列也往往可以用有限长序列来逼近。
有限长的序列可以使用离散傅立叶变换。
当序列的长度是N时,定义离散傅立叶变换为:X(k)=DFT[x(n)]=其中W=e2pj-NN-1n=0WNkn它的反变换定义为:1x(n)=IDFT[X(k)]=N根据式和,则有N-1n=0X(k)WNknX(z)|z=Wnk=NN-1n=0x(n)WNnk=DFT[x(n)]j2pN可以得到X(k)2pk的点,就NN是将单位圆进行N等分以后第k个点。
所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。
DSP原理及应用实验二---堆栈的使用方法

• 1、实验要求: 用软件仿真的方法编译并调试幻灯 片第3页的实验参考程序,在存储器 中观察正确结果。
• 2、实验步骤
请认真倾听教师讲解的要点,也可参阅附 件1及附件2,结合思考题完成实验。写实验 报告时自行写出实验步骤。 操作步骤要点: (1)新建项目/新建文件/添加文件到项目/编 辑文件; (2)点“rebuild all”工具进行编译、汇编和 链接; (3)装载上一步生成的out文件; (4)运行后点“view/memory”观察运行结果。
• 3、实验程序——堆栈的使用方法
(1)汇编主程序文件
(3)链接命令文件
(2)中断向量表文件
• 4、实验思考题:
(1)修改主程序,实现堆栈区100个单元全 部数据变为“DEAD”。 (2)通过单步调试,观察SP和寄存器内容的 变化,简述堆栈的特点? (3) 重新编写主程序,用其它指令。
DSP实验报告_百度文库(精)

实验0 实验设备安装才CCS调试环境实验目的:按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。
实验步骤:以演示实验一为例:1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源;2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out;3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示;4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示;6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:心得体会:通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。
熟悉了DSP实验箱基本模块。
让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。
实验二基本算数运算2.1 实验目的和要求加、减、乘、除是数字信号处理中最基本的算术运算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、填写实验报告。
5、样例程序实验操作说明
A.实验前准备:
①实验箱和CPU配置:SW2的2、4置ON,1、3置OFF;S2全置ON,S23置ON,JP3拨码开关的3、6位置ON,其余置OFF;S2全部置OFF.
②用到西安连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”;
#define UINT32unsigned long
#define TRUE1
#define FALSE0
//---------------------------------------------------------
//----------------定义寄存器地址--------------
#define AD_Addr 0x20008
#define AD_in (*(unsigned int *)AD_Addr) //AD输入
//----------------------------------------------------------
/*全局变量定义*/
//---------------------------------------------------------
int i=0;
int flag = 0;
double fs,fstop,r,rm;
int i,j,p,k=0;
//--------------------------------------------------------------------
//函数名称: void firdes(double npass)
//函数说明:
//输入参数:
//输出参数:无
//--------------------------------------------------------------------
void firdes(double npass)
{
int t;
for (t=0; t<FLen; t++)
{
h[t] = sin((t-(FLen-1)/2.0)*npass*pi)/(pi*(t-(FLen-1)/2.0));
#define Len 256
#define FLen 51
#define pi 3.1415927
//-----------------------------------------------------------
void f int1_isr();
实验代码
#include <math.h> //数学计算定义
//-------------------------------------------------------------
//---------------------------------------------------------------
//-----------------------------------------------------------
double npass,h[FLen], x[Len], y[Len], xmid[FLen];
int in_x[Len];
int m = 0;
int intnum = 0;
double xmean=0;
/* ******************宏定义***************
************************************************************
*/
#define UCHARunsigned char
#define UINT16unsigned int
2、实验设备
1.计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。
3、实验原理
1.有限冲击响应数字滤波器的基础理论;
2.模拟滤波器原理(巴特沃斯滤波器、且比学府滤波器、贝塞尔滤波器);
3.数字滤波器系数的确定方法。
4、实验步骤
1、复习如何设计FIR数字滤波;阅读本实验原理,掌握设计步骤;
2、阅读本实验所提供的样例子程序;
#define IODIR_ADDR 0x3400
#define IODATA_ADDR 0x3401
//---------------定义寄存器操作--------------
#define IODIR *(ioport unsigned int *)IODIR_ADDR
#define IODATA *(ioport unsigned int *)IODATA_ADDR
B.实验
启动CCS 3.1,打开文件Exp_fir.pjt工程文件;在i=0处设置断点;打开VIEW/GRAPH/TIME/FREQUENCY打开窗口,进行如下改动(参照图片),其中x,y分别表示经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果;
五、成果展示及代码
单击“Animate”运行程序,在实验箱上调整观察窗口并观察滤波的效果(滤波效果明显);
DSP实验报告
院系:哈尔滨理工大学荣成校区
专业:电子信息工程
学号:1230160101
姓名:董小天
日期:2015年6月16日
实验二有限冲击响应滤波器(FIR)算法实验
一、实验目的
1.掌握用窗函数发设计FIR数字滤波器的原理和方法;
2.熟悉线性相位FIR数字滤波器特性;
3.了解各种窗函数对滤波特性的影响;
#define IER0 (*(volatile unsigned int*)0x0000) //Interrupt Enable Register 0
#define IFR0 (*(volatile unsigned int*)0x0001) //Interrupt Flag Register 0
#define IER1 (*(volatile unsigned int*)0x0045) //Interrupt Enable Register 1
#define IFR1 (*(volatile unsigned int*)0x0046) //Interrupt Flag Register 1