当前位置:文档之家› DSP实验报告最终版

DSP实验报告最终版

DSP实验报告最终版
DSP实验报告最终版

DSP实验报告

小组成员

一、实验说明:

为了保证生产质量、生产效率和生产的安全性,在钢铁企业的定期常规设备检修必不可少,在设备检修的过程中,为了保证检修人员的人身安全和设备的安全,通常需设置检修报警提示,如:检修警报、检修指示灯等。

本次实验设计钢铁企业的滚带传送装置的检修控制系统,需要检修时,首先停止传动皮带的工作,切换到检修警报,检修警报开始工作以保证检修人员和设备的安全。当检修工作完成后,停止警报装置,返回传动电机的正常工作状态。

用实验箱上的小键盘来模拟控制台,当按1键时,直流电机(机器)正常运转,按2键进入检修模式,进入检修模式时LED灯闪烁,蜂鸣器鸣响,检修完毕后,按1键启动电机,进入正常生产工作状态。按3至6键可调整电机转速。

本实验将若干个DSP独立的实验集成为DSP综合实验系统。其内容主要包括:实验一:直流电机实验。控制直流电机的工作状态,旋转方向以及工作速率。

实验二:交通指示实验;使其循环闪烁,达到警示的目的。

实验三:音频信号发生实验。当按下2键,交通灯循环闪烁并且蜂鸣器响起。如图1所示。

图1 DSP综合实验组成图

二、试验原理及步骤:

本试验用到的试验箱中设备有:直流电机(DCMOTOR),键盘,蜂鸣器,矩阵led灯。

1、实验步骤

1)将试验箱硬件连线连接好,打开电源和计算机

2)设置CCS软件,点击debug—connect将试验箱和CCS软件连接。

3)右键单击project添加本实验程序,编译,将对应文件夹的*.out文件下

载,点击debug-run运行程序。

·按键盘“1”键,进入直流电机程序,按键盘“3-6”键可以改变直流电机转速,按“7”或“8”键改变电机旋转方向。

·按键盘“2”键,交通灯闪烁,蜂鸣器响起,同时电机停止转动

·按键盘“9”键,退出程序。

2、实验原理

1.键盘扫描原理:

矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到电源上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。

键盘的扫描码由DSP得CTRKEY给出,当有键盘输入时,读此端口得到扫描码,当无键按下时,读此端口的结果为0。CTRCLKEY。读取的方法如下: nScanCode=CTRKEY;nnn=CTRCLKEY;//nScanCode中为扫描码

对于高速运行的DSP,在两次读键盘之间可能需要增加延时语句。键盘连接

原理如下:

图2 键盘连接原理

键盘的扫描码由DSP得扩展地址0x602800给出,当有键盘输入时,读此端口得到扫描码,当无按键按下时读此端口的结果为0。各按键的扫描码排列如下所示(scancode.h)。

#define SCANCODE_0 0x70

#define SCANCODE_1 0x69

#define SCANCODE_2 0x72

#define SCANCODE_3 0x7A #define SCANCODE_4 0x6B #define SCANCODE_5 0x73 #define SCANCODE_6 0x74 #define SCANCODE_7 0x6C #define SCANCODE_8 0x75 #define SCANCODE_9 0x7D #define SCANCODE_Del 0x49 #define SCANCODE_Enter 0x5A #define SCANCODE_Plus 0x79 #define SCANCODE_Minus 0x7B #define SCANCODE_Mult 0x7C #define SCANCODE_Divid 0x4A #define SCANCODE_Num 0x77

2. 直流电机变速原理:

2.1TM320VC5509DSP 的McBSP 引脚 通过设置McBSP 的工作方式和状态,可以实现将它们当成通用I/O 引脚使用。 2.2直流电机控制

本试验采用直流电动机的脉宽调制(PWM )控制方式。 1)PWM 调压调速原理 直流电机转速n 的表达式为:

Φ

-=

K IR U n

其中,U 为电枢端电压;I 为电枢电流;R 为电枢电路总电阻;Φ为每极磁通量;K 为电动机结构参数。

所以直流电机的转速控制方法可分为两类:对励磁磁通进行控制的励磁控制法和对电枢电压进行控制的电枢控制法。其中励磁控制法在低速时收磁极饱和的限制,在高速时受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,所以这种控制方法用得很少。现在,大多数应用场合都使用电枢控制法。绝大多数直流电机采用开关驱动方式。开关驱动方式是使半导体功率器件工作在开关状态,通过脉宽调制PWM 来控制电动机电枢电压,实现调速。

图3 利用开关管对直流电动机进行PWM 调速控制的原理图和输入输出电压波形 上图是利用开关管对直流电动机进行PWM 调速控制的原理图和输入输出电压波形。图中,当开关管MOSFET 的栅极输入高电平时,开关管导通,直流电动机电枢绕组两端有电压Us ,t1秒后,栅极输入变为低电平,开关管截止,电动机电枢两端电压为0。T2秒后,栅极输入重新变为高电平,开关管的动作重复前面的过程。这样,对应着输入的高低电平,直流电动机电枢绕组两端的电压波形如图中所示。电动机的电枢绕组两端的电压平均值Uo 为:

Us

Us T

t t t Us t Uo α==++=

12

110 式中,a 为占空比,a=t1/T

占空比a 表示了在一个周期T 里,开关管导通的时间与周期的比值。A 的变化范围为0<=a<=1.由此式可知,当电源电压Us 不变的情况下,电枢的端电压的平均值Uo 取决于占空比a 的大小,改变a 值就可以改变端电压的平均值,从而达到调速的目的,这就是PWM 调速原理。

2)PWM 调速方法 在PWM 调速时,占空比a 是一个重要参数。以下三种方法都可以改变占空比的值:

(1)定宽调频法:这种方法是保持t1不变,只改变t2,这样使周期T (或频率)也随之改变。

(2)调宽调频法:这种方法是保持t2不变,只改变t1,这样使周期T (或频率)也随之改变。

(3)定频调宽法:这种方法是使周期T (或频率)保持不变。而改变t1和变t2。

前两种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起震荡,因此这两种方法用得很少。目前,在直流电机的控制中,主要使用定频调宽法。

2.3 ICETEK-CTR 直流电机模块: 1)原理图

ICETEK-CTR即显示控制模块上直流电机部分的原理图见下图。

图4 ICETEK-CTR直流电机部分原理图

图中PWM输入对应ICETEK-CTR-A板上P4外扩插座第26引脚的S22信号,DSP将在此引脚上给出PWM信号开控制直流电机转速;图中的DIR输入引脚ICETEK-CTR-A板上P4外扩插座第29引脚的S14信号,DSP将在此引脚上给出高电平或低电平来控制直流电机的方向。从DSP输出的PWM信号和转向信号先经过2个与门和1个非门再与各个开关管的栅极相连。

2)控制原理

当电动机要求正传时,S14给出高电平信号,该信号分为3路:第1路与门Y1的输出由PWM决定,所以开关管V1栅极受PWM控制;第2路直接与开关管V4的栅极相连,是V4导通;第三路经非门F1连接到与门Y2的输入端,使与门Y2输出为0,这样是开关管V3截止;从非门F1输出的另一路与开关管V2的栅极相连,其低电平信号也是V2截止。

同样,当电动机要求反转使,S14给出低电平信号,经过2个与门和1个非门组成的逻辑电路后,使开关管V3受PWM信号控制,V2导通,V1、V4全部截止。

2.4程序编制

程序中采用定时器中断产生固定频率的PWM波,100次中断为一个周期,在每一个中断中根据当前占空比判断输出波形的高低电平。

主程序用轮询方式读入键盘输入,得到转速和方向控制命令。

在改变电机方向时为减少电压和电流的波动采用先减速再反转的控制顺序。

2.5电机转动试验流程图

图5电机转动试验流程图

3.EMIF接口:

TMS320C5509DSP的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。ICETEK-VC5509-A将这些扩展引线到了板上的扩展插座上供扩展使用。

4.蜂鸣器

蜂鸣器由DSP通用I/O管脚输出控制,可将此管脚上的频率输出转换成声音输出。5509A的通用I/O口S13扩展蜂鸣器的输出频率。

控制的方法是使用DSP通用定时器设置S13以一定的频率改变高低状态,输出方波。对于通用定时器周期寄存器的设置,计数值为所需计数值的二分之一。

蜂鸣器的连接;由于选用的蜂鸣器所需电流较小,所以采用将DSP通用I/O

引脚直接驱动的方式。

5.交通灯实验

发光二极管是由连接在DSP扩展地址接口上的寄存器EWR和SNR控制的。这两个寄存器均为6位寄存器,其位定义如下:

表1 寄存器EWR

两个寄存器的地址均映射到2812DSP的扩展空间,CTRLR,DSP通过对该地址的写操作来修改二个寄存器各位的状态,当寄存器某位取‘1’时,相应提示灯被点亮,取‘0’则熄灭。当写入CTRLR的数据(8位有效值)的高两位为‘00’时,数据的低6位将写入EWR寄存器;高两位为‘01’时,数据的低6位将写入SNR寄存器。

三、实验流程图:

1、整体构思流程图如图1:

图1 主程序流程图

2、键盘扫描子程序流程图如图2:

图2 键盘扫描子程序流程图四、实验源程序:

#include "myapp.h"

#include "ICETEK-VC5509-EDU.h"

#include "scancode.h"

#define TLIGHTWE 0x0

#define TLIGHTNS 0x40

#define TLIGHTSWGREEN 0x01

#define TLIGHTNEGREEN 0x08

ioport unsigned int *tim0;

ioport unsigned int *prd0;

ioport unsigned int *tcr0;

ioport unsigned int *prsc0;

int nCursorCount;

void InitInterrupt();

void InitMcBSP();

int tKey,cKey,nKeyCode,nCount,nCount1,uN;

main()

{ int j;

unsigned char dbScanCode,dbOld;

PLL_Init(20);

SDRAM_init();

InitCTR();

PLL_Init(20);

SDRAM_init();

InitCTR();

//直流电机

//unsigned char dbScanCode,dbOld;

//unsigned char dbOld;

dbScanCode=dbOld=0;

nCount=nCount1=0;

PLL_Init(20);

SDRAM_init();

InitCTR();

InitMcBSP();

CTRLR=0x0c1;

for (;;)

{

dbScanCode=GetKey();

dbScanCode&=0x0ff;

if(dbScanCode==SCANCODE_9) break;

switch(dbScanCode)

{

case 1:

CTRLR=0x1;

CTRLR=0x40;

{

int nMusicCount;

int nWork;

int uN;

PLL_Init(20);

SDRAM_init();

InitCTR();

InitMcBSP();

CTRGR=8; // BUZZE=1 打开蜂鸣器, 见ICETEK-CTR的全局控制寄存器描述// 设置合适的音长和音高

for ( nWork=0;nWork

{

music[nWork][0]*=10;//10

music[nWork][1]*=3;//3

music[nWork][1]/=12;//12

}

// 设置DX0管脚为通用输出管脚以驱动蜂鸣器

// SPCR0&=0x0fffeffff; // /XRST=0

// PCR0|=0x2000; // RIOEN=1

InitInterrupt();

TIME_init();

nMusicCount=0;

while ( dbScanCode == 1 )

{

nMusicCount++;

nMusicCount%=nMusicNumber;

if ( music[nMusicCount][0]==0 )

*tcr0&=0x0fffffcff; // 静音

else

{

*prd0=music[nMusicCount][0]; // 切换音符

*tcr0=0xe0;

}

dbScanCode=GetKey();

//if ( dbScanCode==SCANCODE_Enter ) break;

Delay(music[nMusicCount][1]);

}

//直流电机

uN=60;

CTRGR=1; //直流电机使能,DCME=1

InitInterrupt();

TIME_init();

while ( dbScanCode ==1 )

{

if ( nCount1==0 )

{

dbScanCode=GetKey();

if ( dbScanCode!=dbOld )

{

dbOld=dbScanCode;

if ( dbScanCode==SCANCODE_9 )

break; //退出

else if ( dbScanCode==SCANCODE_7 )

PCR1|=2; //反转

else if ( dbScanCode==SCANCODE_8)

PCR1&=0x0fffd; //反转

else if ( dbScanCode==SCANCODE_3 )

uN=80;

else if ( dbScanCode==SCANCODE_4 )

uN=60;

else if ( dbScanCode==SCANCODE_5 )

uN=40;

else if ( dbScanCode==SCANCODE_6 )

uN=20;

}

}

}

}

break;

case 2:

CTRLR=0x2;

CTRLR=0x40;

for(;;)

{

int nMusicCount;

int nWork;

PLL_Init(20);

SDRAM_init();

InitCTR();

InitMcBSP();

CTRGR=8; // BUZZE=1 打开蜂鸣器, 见ICETEK-CTR的全局控制寄存器描述

// 设置合适的音长和音高

for ( nWork=0;nWork

{

music[nWork][0]*=5;//10

music[nWork][1]*=3;//3

music[nWork][1]/=5;//12

}

// 设置DX0管脚为通用输出管脚以驱动蜂鸣器

// SPCR0&=0x0fffeffff; // /XRST=0

// PCR0|=0x2000; // RIOEN=1

InitInterrupt();

TIME_init();

nMusicCount=0;

while ( dbScanCode == 2 )

{

nMusicCount++;

nMusicCount%=nMusicNumber;

if ( music[nMusicCount][0]==0 )

*tcr0&=0x0fffffcff; // 静音

else

{

*prd0=music[nMusicCount][0]; // 切换音符

*tcr0=0xe0;

}

dbScanCode=GetKey();

Delay(music[nMusicCount][1]);

for(j=0;j<30;j++) // North

{

CTRLR=TLIGHTNS+(TLIGHTSWGREEN<

CTRLR=TLIGHTNS;

Delay(38);

}

for(j=0;j<30;j++) // West

{

CTRLR=TLIGHTWE+(TLIGHTSWGREEN<

Delay(38);

CTRLR=TLIGHTWE;

Delay(38);

}

for(j=0;j<30;j++) // South

{

CTRLR=TLIGHTNS+(TLIGHTNEGREEN<

Delay(38);

CTRLR=TLIGHTNS;

Delay(38);

}

for(j=0;j<30;j++) // East

{

CTRLR=TLIGHTWE+(TLIGHTNEGREEN<

CTRLR=TLIGHTWE;

Delay(38);

}

}

}

break;

}

Delay(16);

}

CloseCTR();

exit(0);

}

void InitInterrupt(void)

{

// 设置中断控制寄存器

IVPD=0x80;

IVPH=0x80;

IER0=0x10;

DBIER0 =0x10;

IFR0=0xffff;

asm(" BCLR INTM");

}

void interrupt Timer() //中断响应函数

{

PCR0^=0x20;

nCount++; nCount%=100;

if ( nCount>uN ) PCR2|=4;

else PCR2&=0x0fffb;

nCount1++; nCount1%=5120;

}

void InitMcBSP()

{

// IOPin: McBSP1.FSX S15

//SPCR2.XRST_=0,PCR.XIOEN=1,PCR.FSXM=1,PCR.FSXP=0/1 SPCR2_1&=0x0fffe;

PCR1|=0x2800;

}

void TIME_init(void)

{

tim0 = (unsigned int *)0x1000;

prd0 = (unsigned int *)0x1001;

tcr0 = (unsigned int *)0x1002;

prsc0 = (unsigned int *)0x1003;

*tcr0 = 0x04f0;

*tim0 = 0;

*prd0 = 0xffff;

*prsc0 = 2;

*tcr0 = 0x00e0;

}

五、实验过程中遇到的困难及实验心得:

1.关键问题:

本次试验过程中,我们遇到了很多困难。虽然,之前我们已经将各个实验功能都实现了,但是光是将这些实验加到一起,组成一个综合型的实验就要比我们想象中难得多,更不用说还要将这些实验加以改进、完善。我们首先遇到的问题就是如何将各个实验整合到一起。在多次失败的尝试后,我们终于找到了方法。最大的问题就是由于自己的程序编写能力不足,不能够达到想要的效果。例如,我们想将交通灯的实验和音频信号发生实验相结合,但是多次尝试都没能实现,明明在程序中没有错误,可是就是不发声。其他主要遇到具体问题如下:

1)将各独立的程序作为子程序放在文件里带来的公共参数的定义冲突问题。

在刚开始实验的阶段,由于经验不足,在将独立的程序融入到主中时,在定义公共参数的时候,函数的重新定义以及参数的反复负值,导致程序不能正常的运行。在综合程序的调试时,缺少某些函数和变量的定义。

2)直流电机不能正常运转,比如,运行程序时,电机无法正常运转.

3)交通灯只亮两圈。

2.解决方案:

1)在主程序之前统一定义公共变量和函数,避免在子程序中重复定义。对于

缺少的函数或变量,首先检查了是否在程序开始部分将需要的头文件全部include进来;其次,对于已经包含的头文件,对比原来独立程序的相同名称的头文件,检查是否没有将所有的变量定义复制过来。

2)向其他成功显示信息的组的成员求教,发现成功的情况是在电机实验的基

础上对实验内容进行添加修改的。也许是因为程序包含的文件中,有些许定义方面有差别,或者是实验硬件本身兼容性的问题,所以沿用了成功的组的经验,转而在步进电机的实验上进行添加修改,问题得以解决.

3)电机无法正常运转,我们经过多次试验,最后终于找到了原因,有的是因

为DSP试验箱没有正常工作,我们又检查了程序,发现程序没问题,最后我们终于可使电机正转反转,并且可以调整电机速度。

4)交通灯只亮两圈,最后我们明白了需要加循环,这样才能使交通灯循环亮

起。

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课程的实用性和趣味性。

北邮dsp软件实验报告

Matlab仿真实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级: 学号: 姓名:

时间:2015年12月23日 实验一:数字信号的FFT分析 1.实验目的 通过本次试验,应该掌握: (a)用傅里叶变换进行信号分析时基本参数的选择 (b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。 2.实验容、要求及结果。 (1)离散信号的频谱分析: 设信号x(n)=0.001*cos(0.45n)+sin(0.3n)-cos(0.302n-) 此信号的0.3谱线相距很近,谱线0.45的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。 【实验代码】:

k=2000; n=[1:1:k]; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); subplot(2,1,1); stem(n,x,'.'); title(‘时域序列'); xlabel('n'); ylabel('x(n)'); xk=fft(x,k); w=2*pi/k*[0:1:k-1]; subplot(2,1,2); stem(w/pi,abs(xk)); axis([0 0.5 0 2]); title('1000点DFT'); xlabel('数字频率'); ylabel('|xk(k)|'); 【实验结果图】:

DSP实验报告-深圳大学-自动化

深圳大学实验报告课程名称:DSP系统设计 实验项目名称:DSP系统设计实验 学院:机电与控制工程学院 专业:自动化 指导教师:杜建铭 报告人1:. 学号:。班级:3 报告人2:. 学号:。班级:3 报告人3:. 学号:。班级:3 实验时间: 实验报告提交时间: 教务处制

实验一、CCS入门试验 一、实验目的 1. 熟悉CCS集成开发环境,掌握工程的生成方法; 2. 熟悉SEED-DEC2812实验环境; 3. 掌握CCS集成开发环境的调试方法。 二、实验仪器 1.TMS320系列SEED-DTK教学试验箱24套 2. 台式PC机24台 三、实验内容 1.仿真器驱动的安装和配置 2. DSP 源文件的建立; 3. DSP程序工程文件的建立; 4. 学习使用CCS集成开发工具的调试工具。 四、实验准备: 1.将DSP仿真器与计算机连接好; 2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接; 3.启动计算机,当计算机启动后,打开SEED-DTK2812的电 源。SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮,请断开电源,检查电源。 五、实验步骤 (一)创建源文件 1.进入CCS环境。

2.打开CCS选择File →New →Source File命令 3.编写源代码并保存 4.保存源程序名为math.c,选择File →Save 5.创建其他源程序(如.cmd)可重复上述步骤。 (二)创建工程文件 1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定弹 出对话框: 2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成 即可完成工程创建; 3.点击Project选择add files to project,添加工程所需文件;

dsp实验报告

DSP 实验课大作业实验报告 题目:在DSP 上实现线性调频信号的脉冲压缩,动目标显示和动目标检测 (一)实验目的: (1)了解线性调频信号的脉冲压缩、动目标显示和动目标检测的原理,及其DSP 实现的整个流程; (2)掌握C 语言与汇编语言混合编程的基本方法。 (3)使用MATLAB 进行性能仿真,并将DSP 的处理结果与MATLAB 的仿真结果进行比较。 (二)实验内容: 1. MATLAB 仿真 设定信号带宽为B= 62*10,脉宽-6=42.0*10τ,采样频率为62*10Fs =,脉冲重复周期为-4T=2.4*10,用MATLAB 产生16个脉冲的线性调频信号,每个脉冲包含三个目标,速度和距离如下表: 对回波信号进行脉冲压缩,MTI ,MTD 。并且将回波数据和频域脉压系数保存供DSP 使用。 2.DSP 实现 在Visual Dsp 中,经MATLAB 保存的回波数据和脉压系数进行脉压,MTI 和MTD 。 (三)实验原理 1.脉冲压缩原理 在雷达系统中,人们一直希望提高雷达的距离分辨力,而距离分辨力定义为:22c c R B τ?==。其中,τ表示脉冲时宽,B 表示脉冲带宽。从上式中我们可以看

出高的雷达分辨率要求时宽τ小,而要求带宽B大。但是时宽τ越小雷达的平均发射功率就会很小,这样就大大降低了雷达的作用距离。因此雷达作用距离和雷达分辨力这两个重要的指标变得矛盾起来。然而通过脉冲压缩技术就可以解决这个矛盾。脉冲压缩技术能够保持雷达拥有较高平均发射功率的同时获得良好的距离分辨力。 在本实验中,雷达发射波形采用线性调频脉冲信号(LFM),其中频率与时延成正比关系,因此我们就可以将信号通过一个滤波器,该滤波器满足频率与时延成反比关系。那么输入信号的低频分量就会得到一个较大的时延,而输入信号的高频分量就会得到一个较小的时延,中频分量就会按比例获得相应的时延,信号就被压缩成脉冲宽度为1/B的窄脉冲。 从以上原理我们可以看出,通过使用一个与输入信号时延频率特性规律相反的滤波器我们可以实现脉冲压缩,即该滤波器的相频特性与发射信号时共轭匹配的。所以说脉冲压缩滤波器就是一个匹配滤波器。从而我们可以在时域和频域两个方向进行脉冲压缩。 滤波器的输出() h n= y n为输入信号() x n与匹配滤波器的系统函数() *(1) y n x n s N n =--。转换到频域就是--卷积的结果:* ()()*(1) s N n =。因此我们可以将输入信号和系统函数分别转化到频域:Y k X k H k ()()( Y k,然后将结果再转化到时域, h n H k →,进行频域相乘得() ()() x t X k →,()() 就可以得到滤波器输出:()() →。我们可用FFT和IFFT来实现作用域的 Y k y n 转换。原理图如下: 图1.脉冲压缩原理框图 2.MTI原理 动目标显示(MTI)技术是用来抑制各种杂波,来实现检测或者显示运动目标的技术。利用它可以抑制固定目标的信号,显示运动目标的信号。以线性调频

DSP运行实验报告

DSP运行实验报告 一、实验目的 熟悉CCS软件仿真下,DSP程序的下载和运行;熟悉借助单片机的DSP程序下载和运行; 熟悉借助仿真器的DSP程序下载和运行;熟悉与DSP程序下载运行相关的CCS编程环境。 二、实验原理 CCS软件仿真下,借用计算机的资源仿真DSP的内部结构,可以模拟DSP程序的下载和运行。 如果要让程序在实验板的DSP中运行、调试和仿真,可以用仿真器进行DSP程序下载和运行。初学者也可以不用仿真器来使用这款实验板,只是不能进行程序调试和仿真。 在本实验板的作用中,单片机既是串口下载程序的载体,又是充当DSP 的片外存储器(相对于FLASH),用于固化程序。 三、实验设备、仪器及材料 安装有WINDOWS XP操作系统和CCS3.3的计算机。 四、实验步骤(按照实际操作过程) 1、CCS软件仿真下,DSP程序的下载和运行。 第一步:安装CCS,如果不使用仿真器,CCS 的运行环境要设置成一个模拟仿真器(软仿真)。

第二步:运行CCS,进入CCS 开发环境。 第三步:打开一个工程。 将实验目录下的EXP01目录拷到D:\shiyan下(目录路径不能有中文),用[Project]\[Open]菜单打开工程,在“Project Open”对话框中选 EXP01\CPUtimer\CpuTimer.pjt,选“打开”, 第四步:编译工程。 在[Project]菜单中选“Rebuild All”,生成CpuTimer.out文件。 第五步:装载程序。 用[File]\[Load Program]菜单装载第四步生成CpuTimer.out文件,在当前工程目录中的Debug 文件夹中找到CpuTimer.out文件,选中,鼠标左键单击“打开”。

DSP实验报告二CCS的使用

实验二 CCS使用操作:报告: 1.实验目的 (1) 熟悉CCS集成开发环境,掌握工程的生成方法。 (2) 掌握CCS集成开发环境的调试方法。 2.实验容及步骤 (1)查阅CCS发展历史,给出CCS发展的版本和适用的芯片。 Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。它包含适用于每个TI 器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。CCS IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。借助于精密的高效工具,用户能够利用熟悉的工具和界面快速上手并将功能添加至他们的应用。 版本 4 之前的 CCS 均基于 Eclipse 开放源码软件框架。Eclipse 软件框架可用于多种不同的应用,但是它最初被开发为开放框架以用于创建开发工具。我们之所以选择让 CCS 基于Eclipse ,是因为它为构建软件开发环境提供了出色的软件框架,并且正成为众多嵌入式软件供应商采用的标准框架。CCS 将 Eclipse 软件框架的优点和仪器 (TI) 先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。 CCS 有 2 个版本:白金版和微处理器版。各版本支持的处理器不同。支持的核白金版:TMS320C6000、TMS320C5000、TMS320C2800、TMS470、TMS570、ARM 7、ARM9、ARM 11、ARM Cortex M3(不包含 Stellaris Cortex M3)、ARM Cortex R4、ARM Cortex A8 和 MSP430 处理器版:TMS320C2800 和MSP430 CCS 白金版和微处理器版都使用以下各项:主机:PC 操作系统:Microsoft Windows Vista 和 XP (2) 使用CCS时,经常遇到下述扩展名文件,说明分别是什么文件。 ①project. mak :即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程, VC6把MAK文件转换成DSP文件来处理。 ②program. c :定义的变量、数组、函数的声明 ③program. asm :Oracle管理文件(OMF) ④filename. h :H C程序头文件 ⑤filename. lib :LIB 库文件 ⑥project. cmd :CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件 ⑦program. obj :OBJ 对象文件 ⑧program. Out: C语言输出文件 ⑨project. Wks :WKS Lotus 1-2-3电子表格;Microsoft Works文档 保存配置文件时产生的文件: ①programcfg.cmd 连接器命令文件 ②programcfg.h54 头文件 ③programcfg.s54 汇编源文件 DSP源文件的建立;

DSP实验报告

实验一 离散系统的时域分析 一、实验目的 1、掌握离散时间信号的MATLAB 表示; 2、信号运算; 3、差分方程的求解; 4、离散时间信号的卷积运算。 二、实验原理 1、离散时间信号 离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n 取整数代表时间的离散时刻。 在matlab 中用向量来表示一个有限长度的序列。 2、序列的类型 为了分析的方便,在数字信号处理中规定了一些基本的序列。 a) 单位采样序列 function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0]; 调用该函数 [x,n]=impseq(-2,8,2); stem(n,x) 0010()001()0n n n n n n n n n δδ =?=? ≠? =?-? ≠?

单位采样序列的另一种生成方法 n0=-2; n=[-10:10]; nc=length(n); x=zeros(1,nc); for i=1:nc if n(i)==n0 x(i)=1 end end stem(n,x) b) 单位阶跃序列 function [x,n]=stepseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)>=0]; 调用该函数 [x,n]=stepseq(-2,8,2); stem(n,x) 000 10()001()0n n n n n n n n n εε >=?=? =?-?

c) 实数指数序列 x(n)=an (运算符“.^”) n=[0:10]; x=0.9.^n; stem(n,x) d) 复数指数序列 n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n); real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x) ()()j n x n e αω+=(0.1j0.3)n x(n)e (10n 10) -+= -<<

DSP实验报告重叠保留法和重叠相加法(精)

北京邮电大学 实 学班姓学 日 验报告 MATLAB 实现线性卷积运算院:信息与通信工程学院级:名: ______ 号: 期: 实验名称:用 索引

一、实验原 理 ..................................................................................................................... 3 1、算法产生背景 (3) 2、算法基本思 想 ...........................................................................................................................3 1)重叠相加法 (3) 2)重叠保留 法 ...........................................................................................................................4 二、流程图设计 . ................................................................................................................. 5 1、重叠相加 法 . .............................................................................................................................. 5 2、重叠保留 法 . (6) 三、MATLAB 源代 码 . ........................................................................................................... 7 1、重叠相加源码 ...........................................................................................................................7 2、重叠保留源 码 ...........................................................................................................................8 四、实验结果与分析 ........................................................................................................... 9 ①调用CONV (计 算 . ......................................................................................................................... 9 ②测试重叠相加算法 (9) ③测试重叠保留算 法 .....................................................................................................................9 五、讨论与总结 . ............................................................................................................... 10 1、算法效率分 析: .....................................................................................................................10 A. 重叠相加法 . (10)

DSP实验报告+心得体会

龙岩学院 实验报告 班级07电本(1)班学号2007050344 姓名杨宝辉同组人独立 实验日期2010-5-18 室温大气压成绩 基础实验 一、实验目的 1. 掌握CCS实验环境的使用; 2. 掌握用C语言编写DSP程序的方法。 二、实验设备 1. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320F2812主控板; 3. DSP硬件仿真器。 三、实验原理 浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。 四、实验步骤 1.打开CCS 并熟悉其界面; 2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中; 3.把X0 , Y0 和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令); 4.选择view->graph->time/frequency…。设置对话框中的参数: 其中“Start Address”

设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”, 设置好后观察信号序列的波形(sin函数,如图); 5.单击运行; 6.观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化; 7.修改输入序列的长度或初始值,重复上述过程。 五、实验心得体会 通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。 从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

DSP实验报告5

DSP 第五次实验 1.实验目的: (1)进一步熟悉matlab 实验环境和语言。 (2)掌握求序列圆周翻褶的MATLAB 方法。 (3)掌握求序列DFT 及IDFT 矩阵的MATLAB 方法。 (4)掌握用MATLAB 求解用圆周卷积计算线性卷积的时域的方法。 (5)掌握用FFT 计算有限长序列的线性卷积和线性相关的方法。 2.实验内容及总结: 1.圆周翻褶 【例3.27】 已知()[2,3,4,5,6],8X n N ==,求x(n)的8点圆周翻褶序列88(())()x n R n -。 代码: clc;clear all x=[2,3,4,5,6];N=8; x=[x,zeros(1,N-length(x))];nx=0:N-1 y=x(mod(-nx,N)+1); subplot(121),stem([0:N-1],x);title('原序列'); xlabel('n');ylabel('x(n)');grid; subplot(122),stem([0:N-1],y);title('圆周翻褶序列'); xlabel('n');ylabel('x((n))8 R8(n)');grid; 结果:

总结: 对于圆周翻褶 (0),0 ()(())() (),11 N N x n y n x n R n x N n n N = =-=? -≤≤-MA TLAB可用 y=x(mode(-nx,N)+1)求得。因此,要求X(n)=[2,3,4,5,6],N=8的8点圆周翻褶序列,要先将x(n)补零到8点长度再求圆周翻褶。 x=[x,zeros(1,N-length(x))];nx=0:N-1 %x补零到8点长 y=x(mod(-nx,N)+1); %圆周翻褶从一开始,因此得到8点长 %序列,应该再加一 2.DFT矩阵,IDFT矩阵 【例3.29】已知N=4的DFT矩阵w4,求IDFT矩阵w4I。 代码:

DSP实验报告3

DSP 实验报告3 姓名 学号 时间 2015.6.9 地点 实验大楼A631 实验题目 卷积运算 一、 实验目的 1、学习如何用DSP 的C 语言程序实现卷积与相关的计算; 2、学习用CCS 调试程序的详细过程; 3、学习如何设置断点。 二、 实验内容及步骤 1、创建一个新项目工程 将“maxminmath 文件夹”复制到“D:\CCStudio_v3.3\MyProjects ”下。 2、打开工程调试程序,并说明程序的功能; 3、编程实现以下功能: 已知()()n R n x 4=,()()n R n h 4=,求()()()n h n x n y *= a 、采用子程序调用的方式实现,并且注释程序; b 、把x ,h 和y 添加到Watch 窗口中作为观察对象; c 、观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“+”号把数组展开),并将变化过程记录下来。 三、 实验程序 给出卷积运算的子程序: void main() { int x[7]={0,0,0,1,1,1,1},h[7]={1,1,1,1,0,0,0},y[7]={0}; int i,j; for(i=0;i<7;i++) for(j=0;j<7;j++) {if(i+j<7) y[i]=y[i]+x[i+j]*h[j]; y[i]=y[i]%2;} } 评 阅

四、实验结果 y值的变化情况如下: 五、实验思考题 1、试用汇编语言编写实现卷积运算的程序; .global start ;定义全局变量 .mmregs .data; 开始数据段 .bss m,1; 开设全局变量,每个变量占用一个字 .bss n,1 .bss z,1 .text; 开始文本段 start: ST #1000h,AR1 ST #3000h,AR2 ST #5000h,AR3 ST #0,@m RPT 999 RPT m+ LOOP: MVPD 6000h MVDD *AR1+,*AR4 MVDD *AR2+,*AR5 MACP *AR4,*AR5,src B LOOP ST A,*AR3+ xh: b xh;空循环 .end

DSP实验报告(DOC)

哈尔滨工程大学信息与通信工程学院 实验名称:DSP原理与应用实验 班级:20100813 学号:2010081317 学生姓名:满达

实验一自相关函数实验 一.实验目的:熟悉C语言编程和VDSP编译环境。学会用C语言编程实现自相关函数对正弦信号的应用。 二.实验要求:用VDSP集成环境产生一个正弦信号,然后用自相关函数对其进行处理,观察自相关函数运算后的波形。 自相关函数: 自相关函数是信号在时域中特性的平均度量,它用来描述信号在一个时刻的取值与另一时刻取值的依赖关系,其定义式为 对于周期信号,积分平均时间T为信号周期。对于有限时间内的信号,例如单个脉冲,当T趋于无穷大时,该平均值将趋于零,这时自相关函数可用下式计算 自相关函数就是信号x(t)和它的时移信号x(t+τ)乘积的平均值,它是时移变量τ的函数。 例如信号的自相关函数为 由此可见,正弦(余弦)信号的自相关函数同样是一个余弦函数。它保留了原信号的频率成分,其频率不变,幅值等于原幅值平方的一

半,即等于该频率分量的平均功率,但丢失了相角的信息。 三.实验结果: 正弦信号经过自相关后的波形 四.实验结论: 自相关函数应用在检测信号回声(反射)。若在宽带信号中存在 着带时间延迟的回声,那么该信号的自相关函数将在 处也达到峰值(另一峰值在 处),这样可根据确定反射体的位置,同时自相关系数在处的值将给出反射信号相对强度的度量。 实验二 包络检波实验 一.实验目的:熟悉C 语言编程和VDSP 编译环境。学会用C 语言编程实现对信号进行包络提取。 二.实验要求: 一个低频信号a(t)调制在一个高频信号t 0cos ω上,如图所示,这个信号表示为t t a t y 0cos )()(ω?= 低频信号和高频载波是相乘关系,将低频信号a(t)提取出来的过程就是求解包络. 1) 将y(t)平方处理, t t a t a t t a t 02202222cos )()(cos )()(y ωω?+=?=

DSP实验报告

DSP实验报告

软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。 因为-20log δs=30 ,所以log δs=-30/20 ,δs=0.03162

DSP控制器原理及技术实验报告

实验二定时器 一.实验目的 1. 熟悉如何编写 28335 的中断服务程序; 2. 掌握长时间间隔的定时器的处理。 3. 掌握片外设的设置方法。 二.实验容 1. 系统初始化; 2. DSP 的初始设置; 3. 定时中断的编写; 三.实验要求 1. 通过本实验,熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用; 2. 分析给定程序代码功能,并在实验报告中给出程序流程图和必要的注释; 3. 改变定时时间,下载运行,观察结果,在报告中计算出运行时间。 四.实验背景知识 TMS320F28335 片上有 3 个 32-位 CPU 定时器,分别被称为 CPU 定时器 0、1 和2。每个定时器中均有一个 32-位减计数器,当计数器减到 0 时,产生一个中断。其中,CPU 定时器 0 的中断 TINT0 为 PIE 中断,CPU 定时器 1 的中断 TINT1 直接连到 CPU中断的 INT13,CPU 定时器 2 的中断 TINT2 直接连到 CPU 中断的 INT14。如下图所示。 CPU 定时器 2 保留为实时操作系统(如 DSP BIOS)使用,而 CPU 定时器 0、 1 则可被用户使用,SEED-DEC28335 未使用 CPU 定时器 0,用户可以根据应用的需要灵活使

用。 CPU 定时器的原理框图和定时中断如下图所示。 定时器在工作过程中,首先用 32 位计数寄存器(TIMH:TIM)装载周期寄存器(PRDH:PRD)部的值。计数寄存器根据 SYSCLKOUT 时钟递减计数。当计数寄存器等于 0 时,定时器中断输出产生一个中断脉冲。 定时器计数器(TIMH: TIM): TIM 寄存器保存当前 32 位定时器计数值的低 16 位,TIMH 寄存器保存高 16 位。每隔(TDDRH:TDDR+1)个时钟周期 TIMH:TIM 减 1,当 TIMH:TIM 递减到 0 时,TIMH:TIM 寄存器重新装载 PRDH:PRD 寄存器保存的周期值,并产生定时器中断TINT信号。 定时器周期寄存器(PRDH:PRD):PRD 寄存器保存 32 位周期值的低 16 位,PRDH 保存高 16 位。当 TIMH: TIM 递减到零时,在下次定时周期开始之前 TIMH: TIM 寄存器重新装载 PRDH:PRD 寄存器保存的周期值;当用户将定时器控制寄存器(TCR)的定时器重新装载位(TRB)置位时, TIMH: TIM 也会重新装载 PRDH: PRD 寄存器保存的周期值。 五.实验准备 1 实验硬件准备 1. 将 DSP 仿真器与计算机连接好; 2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC28335 单元的 J18 相连接; 3. 启动计算机,当计算机启动后,打开SEED-DTK28335的电源。观察 SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯灯及 SEED-DEC28335 的电源指示灯 D2 是否均亮;若有不亮,断开电源,检查电源。 2 实验软件准备

DSP实验报告

姓名:班级:自动化15 学号:2015 实验一数据存储实验 一实验目的 1.掌握TMS320F2812程序空间的分配; 2.掌握TMS320F2812数据空间的分配; 3.能够熟练运用TMS320F2812数据空间的指令。 二实验步骤与内容 实验步骤 1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法 如下所示: 2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON; 其余OFF 3.E300底板的开关SW4的第2位置ON,其余位置OFF。其余开关设置为 OFF。 4.上电复位 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。 5.运行CCS程序 1)待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电

2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300 TechV-2812\normal ; 6.成功运行CCS5.5程序后,出现如下图所示界面: 7.右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择 “Open Project”命令打开该工程,如下图所示,可以双击才看左侧源文件; 8.点击菜单栏Project/Build All命令编译整个工程,编译完成后点击 按钮进入仿真模式,完全进入后如下图所示:

9.用“View”下拉菜单中的“Memory/Browser”查看内存单元,参数设置 如下图:注意:下面的参数设置都是以16进制。 此时可以观测到以0x003F9020为起始地址的存储单元内的数据; 10.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运 行,0x003F9020H~ 0x3F902FH单元的数据的变化,如下图所示: 11.关闭Memory Browser窗口,点击按钮,退出仿真模式。右键点击 Project Explorer窗口下的工程文件“e300_01_mem”,选择Close Project命令关闭该工程,然后关闭CCS软件,本实验完毕。 内容

dsp实验报告

DSP实验报告 姓名 学院自动化学院 专业测控专业 班级 学号 指导教师林雪燕 2018年 6月

实验一CCS 使用实验 一、实验目的 1. 熟悉CCS集成开发环境,掌握工程的生成方法; 2. 熟悉SEED-DEC6713实验环境; 3. 掌握CCS集成开发环境的调试方法; 二、实验内容 (一)幅值可变的正弦波曲线 设计一个程序,输出的正弦波幅值是输入正弦波幅值的多倍。输入输出界面要有必要的文字说明。 (二)自编Hello World程序 能够输出HelloWorld。恰逢教学检查组来我校,可以改输出为欢迎词。 三、实验要求 1. DSP 源文件的建立; 2. DSP 程序工程文件的建立; 3. 编译与链接的设置,生成可执行的DSP 文件; 4. 学习使用CCS 集成开发工具的调试工具; 四、实验步骤 (一)创建源文件 1.打开CCS 选择File →New→Source File 命令 2.编写源代码并保存 3.保存源程序(如名为sine.c),选择File →Save 4.创建其他源程序(如.cmd)可重复上述步骤。 (二)创建工程文件 1. 打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定。 2. 在Project 中填入工程名,Location 中输入工程路径,点击完成。 3. 点击Project 选择add files to project,添加工程所需文件。 4. 在弹出的对话框中的下拉菜单中分别选择.c点击打开,添加源程序sine.c 5. 同样的方法可以添加文件sine.cmd、rts.lib 到工程中 (三)工程编译与调试 1.点击Project →B uild all,对工程进行编译,如正确则生成out 文件;若是修改程序,可以使用Project →Build命令,进行编译连接,它只对修改部分做编译连接工作。可节省编译与连接的时间。编译通过,生成.out 文件。 2.点击File →load program,在弹出的对话框中载入debug文件夹下 的.out 可执行文件。 3.点击debug →Go Main 回到 C 程序的入口 4.使用F5 快捷键,运行程序,在Stdout 观察窗中查看程序运行结果,并记录。 五、实验结果

DSP实验报告

DSP课程设计实验报告 学院 班级 姓名 学号 指导教师 2010年 6月

课程设计第一部分:学习程序实例 [实验4.1] 卷积运算 一、 实验目的 1. 掌握卷积运算的基本原理; 2. 掌握用C 语言编写DSP 程序的方法。 二、 实验设备 1. 一台装有CCS 软件的计算机; 2. DSP 实验箱的TMS320C5410主控板; 3. DSP 硬件仿真器。 三、 实验原理 卷积是数字信号处理中经常用到的运算。其基本的表达式为: ()()()∑=-= n m m n x m h n y 0 写实现程序时需要注意两点:(1)序列数组长度的分配,尤其是输出数组y (n) 要有足够的长度;(2)循环体中变量的位置,即n 和m 的关系。 四、 实验结果 打开工程Ex5_1.pjt 修改程序: 将输入序列x 的长度改为N1=15,h 的长度改为N2=20,将输入序列x 的函数改为x[i]=i+1,Run 之后出现问题,发现可能是由于x 长度15,h 长度20,卷积运算之后y 的长度为34,超出了之前程序定义好的三个都是20,存储长度没有改导致出错,于是将原来的float y[20]改为float y[100];改之后发现程序运行无误。 绘制波形图的方式: 波形图如下:H 图:

X图: Y图: 该CCS程序用C语言编写,实现得功能较为简单,在源程序的基础上可以很快地实现数据的修改从而得到新的结果,通过运行该程序,对于CCS的操作和使用方法有了初步的认识,同时也熟悉了利用C语言开发DSP程序的过程和 所需要的条件。

§4.2 [实验4.2] 相关运算 一、实验目的 1.掌握相关系数的估计方法; 2.掌握用C语言编写DSP程序的方法。 二、实验设备 1. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。 三、实验结果 打开工程Ex5_2.pjt修改程序: 修改了m和n的长度: m=15; //10 n=45; //40 修改了for循环: for(i=0;i

DSP实验报告

实验一 CCS软件的基本使用——数据块传送程序编写及软件仿真 一:实验目的 1,掌握CCS软件的基本使用方法; 2,了解汇编语言在CCS中的使用方法,注意事项; 3,掌握数据块传送程序编写及软件仿真; 二:操作步骤的要点 1,新建项目/新建文件/添加文件到项目/编辑文件; 2,点“rebuild all”工具进行编译、汇编和链接; 3,装载上一步生成的out文件; 4,运行后点“view/memory”观察运行结果。 三:实验程序——数据传送程序 1,汇编主程序文件 .title "shiyan1b.asm" ;定义标题为“shiyan1b” .mmregs ;定义了全局变量(存储器)STACK .usect "STACK",10H ;堆栈分段名“STACK”,为其分配了16个空间 .bss x,5 ;bss 段,x引导 .data table: .word 1,2,3,4,5 ; .def _c_int00

.text _c_int00: STM #x,AR1 RPT #4 MOVP table,*AR1+ end B end .end 2,中断向量表文件 .title "vectors.asm" .ref _c_int00 .sect ".vectors" B _c_int00 .end 3,链接命令文件 /*shiyan1b.cmd */ vectors.obj /*中断向量的目标文件*/ shiyan1.obj /*产生目标文件*/ -o shiyan1.out /*产生可执行下载文件,文件名可以根据不同项目而定*/ -m shiyan1.map /*产生存储器映射文件,文件名可以根据不同项目而定*/ -estart /*程序入口*/ MEMORY

相关主题
文本预览
相关文档 最新文档