信号缩放.docx

上传人:b****8 文档编号:10290319 上传时间:2023-02-09 格式:DOCX 页数:21 大小:577.94KB
下载 相关 举报
信号缩放.docx_第1页
第1页 / 共21页
信号缩放.docx_第2页
第2页 / 共21页
信号缩放.docx_第3页
第3页 / 共21页
信号缩放.docx_第4页
第4页 / 共21页
信号缩放.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

信号缩放.docx

《信号缩放.docx》由会员分享,可在线阅读,更多相关《信号缩放.docx(21页珍藏版)》请在冰豆网上搜索。

信号缩放.docx

信号缩放

内蒙古工业大学信息工程学院

 

实验报告

 

课程名称:

DSP技术及应用

实验名称:

信号缩放

实验类型:

验证性■综合性□设计性□

实验室名称:

信息工程学院9楼机房

班级:

电子11-2班学号:

姓名:

组别:

同组人:

成绩:

实验日期:

2014年6月27日

实验报告撰写要求

一、实验前用预习报告纸撰写预习报告,预习报告包括以下内容

1、实验目的

2、实验用仪器设备、器材或软件环境

3、实验原理、方案设计、程序框图、预编程序等

4、实验过程中需要记录的实验数据表格

二、实验过程中,要认真观察,仔细记录

三、完成实验后用实验报告纸撰写实验报告,包括以下内容

1、仪器设备型号及编号

2、实验器材或软件环境

3、实验步骤、程序调试方法

4、实验数据处理及结果分析

5、实验中存在的问题

6、体会及思考题

四、报告撰写时,要求格式规范、书写整齐

 

预习报告成绩:

指导教师审核(签名):

年月日

预习报告

一、实验目的

(1)了解DSP软件工程项目的基本构成和程序的编译、汇编、链接过程

(2)了解cmd文件的作用;

(3)学会使用gel文件进行调试;

(4)认识定点算法中的数据溢出现象。

二、实验用仪器设备、器材或软件环境

(1)微机一台;

(2)CCS软件;

(3)DES5402PP-U实验箱。

三、预习要求

(1)参照教材学习DSP软件工程项目的基本构成和程序的编译、汇编、链接过程;

(2)参照教材学习cmd文件的编制及其作用;

(3)参照教材学习使用gel文件进行调试

四、实验要求

(1)记录100倍放大前后的正弦序列波形,观察是否存在失真;

(2)记录400倍放大前后的正弦序列波形,观察是否存在失真;

(3)用实验方法确定放大倍数超过何值时就会发生溢出,用理论计算解释之。

5.实验报告要求

(1)绘制程序流程图(要求与代码相对应);

(2)实验要求记录的数据、波形以及其他关键信息;

(3)程序调试中遇到的问题以及解决过程;

(4)实验代码清单。

 

实验报告成绩:

指导教师审核(签名):

年月日

实验报告

一、实验目的

(1)了解DSP软件工程项目的基本构成和程序的编译、汇编、链接过程;

(2)了解cmd文件的作用;

(3)学会使用gel文件进行调试;

(4)认识定点算法中的数据溢出现象。

二、实验用仪器设备、器材或软件环境

(1)微机一台;

(2)CCS软件;

(3)DES5402PP-U实验箱。

三、实验步骤

在CCS下的仿真器驱动程序的具体过程:

建立工程:

步骤1:

在弹出对话框中单击“Clear”按钮,清除以前定义的配置

单击加入系统配置按钮,将所选中的配置文件输入到CCS设置窗口当前正在创建的系统配置中

步骤2:

保存并退出

步骤3:

单击“File-Save(保存)”按钮,将配置保存在系统寄存器中。

步骤4:

通过“Project→AddFilestoProject”,将Volume.c添加到工程中。

步骤5:

用同样方法将Vector.asm添加到工程中。

(Vector.asm中包含的是将RESET中断指向C程序入口c_int00的汇编指令和其他中断的入口指令。

如果调试的程序较为复杂,则可在Vector.asm中定义更多的中断矢量)将load.asm添加到工程文件中。

(该文件包含一个简单的汇编循环程序,被C程序调用。

调用时带有一个参数(argument),执行此程序共需约1000×argument个指令周期

步骤6:

将“C:

\ti\c5400\cgtools\lib”下的rts.lib加入到工程文件中。

(该文件是采用C语言开发DSP应用程序的运行支持库函数)

步骤7:

同理全部添加项目:

编译和运行程序:

“Project→RebuildAll”,对工程进行重新编译。

•“File→LoadProgram”,选volume.out并打开,将Build生成的程序加载到DSP。

•“View→MixedSource/ASM”。

该设置使得C程序与其汇编结果同时显示。

•“Debug→GoMain”。

使得程序从主程序开始执行。

•“Debug→Run”,可以在Output窗口看到“beginprocessing”信息。

•“Debug→Halt,中止正在执行的程序。

单击“确定”按钮,FileI/O对话框指示文件连至一个ProbePoint。

在FileI/O对话框中,在Address域填入inp_buffer,在length域填入100,选中WrapAround复选框(读取数据的循环特性。

“View→Graph→Time/Frequency(显示→图形→时域/频域)”。

弹出GraphProperty对话框

在GraphProperty对话框中,更改GraphTitle(图形标题)、StartAddress(起始地址)、AcquisitionBufferSize(采集缓冲区大小)、DSPDataType(DSP数据类型)、Autoscale(自动伸缩属性)及MaximumY-value(最大Y值)。

(3)单击OK按钮,出现一个显示inp_buffer波形的图形窗口。

(4)在图形窗口中右击,从弹出菜单中选择ClearDisplay,清除已显示波形。

(5)再次执行“View→Graph→Time/Frequency”。

(6)将GraphTitle修改为outputbuffer,StartAddress修改为out_buffer,其他设置不变。

(7)单击OK按钮,出现一个显示out_buffer波形的图形窗口,右击从菜单中选择ClearDisplay命令,清除已有显示波形

在Debug菜单单击Animate。

此命令将运行程序,碰到断点后临时中断程序运行,更新窗口显示,然后继续执行程序(与Run不同的是,Animate会继续执行程序直到碰到下一个断点。

只有人为干预时,程序才会真正中止运行。

可以将Animate命令理解为一个“运行→中断→继续”的操作)。

 

最终显示的波形:

四、实验源程序

*volume.c

*Copyright2001byTexasInstrumentsIncorporated.

*Allrightsreserved.PropertyofTexasInstrumentsIncorporated.

*Restrictedrightstouse,duplicateordisclosethiscodeare

*grantedthroughcontract.

*U.S.PatentNos.5,283,9005,392,448

*/

/*"@(#)DSP/BIOS4.51.005-23-01(barracuda-i10)"*/

/***************************************************************************/

/**/

/*VOLUME.C*/

/**/

/*Audiogainprocessinginamainloop*/

/**/

/***************************************************************************/

#include

#include"volume.h"

/*Globaldeclarations*/

intinp_buffer[BUFSIZE];/*processingdatabuffers*/

intout_buffer[BUFSIZE];

intgain=MINGAIN;/*volumecontrolvariable*/

unsignedintprocessingLoad=BASELOAD;/*processingroutineloadvalue*/

/*Functions*/

externvoidload(unsignedintloadValue);

staticintprocessing(int*input,int*output);

staticvoiddataIO(void);

/*

*========main========

*/

voidmain()

{

int*input=&inp_buffer[0];

int*output=&out_buffer[0];

puts("volumeexamplestarted\n");

/*loopforever*/

while(TRUE)

{

/*

*Readinputdatausingaprobe-pointconnectedtoahostfile.

*Writeoutputdatatoagraphconnectedthroughaprobe-point.

*/

dataIO();

/*applygain*/

processing(input,output);

}

}

/*

*========processing========

*

*FUNCTION:

applysignalprocessingtransformtoinputsignal.

*

*PARAMETERS:

addressofinputandoutputbuffers.

*

*RETURNVALUE:

TRUE.

*/

staticintprocessing(int*input,int*output)

{

intsize=BUFSIZE;

while(size--){

*output++=*input++*gain;

}

/*additionalprocessingload*/

load(processingLoad)

return(TRUE);

}

/*

*========dataIO========

*

*FUNCTION:

readinputsignalandwriteprocessedoutputsignal.

*

*PARAMETERS:

none.

*

*RETURNVALUE:

none.

*/

staticvoiddataIO()

{

/*dodataI/O*/

return;

}

volume.cmd

/*

*Copyright2001byTexasInstrumentsIncorporated.

*Allrightsreserved.PropertyofTexasInstrumentsIncorporated.

*Restrictedrightstouse,duplicateordisclosethiscodeare

*grantedthroughcontract.

*/

/*

*========volume.cmd========

*

*/

MEMORY

{

PAGE0:

EPROG:

origin=0x1400,len=0x7c00

VECT:

origin=0xff80,len=0x80

PAGE1:

USERREGS:

origin=0x60,len=0x1c

BIOSREGS:

origin=0x7c,len=0x4

IDATA:

origin=0x80,len=0x1380

EDATA:

origin=0x1400,len=0x8000

EDATA1:

origin=0x9400,len=0x4c00

}

SECTIONS

{

.vectors:

{}>VECTPAGE0

.sysregs:

{}>BIOSREGSPAGE1

.trcinit:

{}>EPROGPAGE0

.gblinit:

{}>EPROGPAGE0

frt:

{}>EPROGPAGE0

.text:

{}>EPROGPAGE0

.cinit:

{}>EPROGPAGE0

.pinit:

{}>EPROGPAGE0

.sysinit:

{}>EPROGPAGE0

.bss:

{}>IDATAPAGE1

.far:

{}>IDATAPAGE1

.const:

{}>IDATAPAGE1

.switch:

{}>IDATAPAGE1

.sysmem:

{}>IDATAPAGE1

.cio:

{}>IDATAPAGE1

.MEM$obj:

{}>IDATAPAGE1

.sysheap:

{}>IDATAPAGE1

.stack:

{}>IDATAPAGE1

}

;vector.asm

;Copyright2001byTexasInstrumentsIncorporated.

;Allrightsreserved.PropertyofTexasInstrumentsIncorporated.

;Restrictedrightstouse,duplicateordisclosethiscodeare

;grantedthroughcontract.

;U.S.PatentNos.5,283,9005,392,448

;

;"@(#)DSP/BIOS4.51.005-23-01(barracuda-i10)"

;========vectors.asm========

;PlugintheentrypointatRESETintheinterruptvectortable

;

.sect".vectors"

.ref_c_int00;Centrypoint

.align0x80;mustbealignedonpageboundary

RESET:

;resetvector

BD_c_int00;branchtoCentrypoint

STM#200,SP;stacksizeof200

nmi:

RETE;enableinterruptsandreturnfromone

NOP

NOP

NOP;NMI~

;softwareinterrupts

sint17.space4*16

sint18.space4*16

sint19.space4*16

sint20.space4*16

sint21.space4*16

sint22.space4*16

sint23.space4*16

sint24.space4*16

sint25.space4*16

sint26.space4*16

sint27.space4*16

sint28.space4*16

sint29.space4*16

sint30.space4*16

int0:

RETE

NOP

NOP

NOP

int1:

RETE

NOP

NOP

NOP

int2:

RETE

NOP

NOP

NOP

tint:

RETE

NOP

NOP

NOP

rint0:

RETE

NOP

NOP

NOP

xint0:

RETE

NOP

NOP

NOP

rint1:

RETE

NOP

NOP

NOP

xint1:

RETE

NOP

NOP

NOP

int3:

RETE

NOP

NOP

NOP

.end

;load.asm

;Copyright2001byTexasInstrumentsIncorporated.

;Allrightsreserved.PropertyofTexasInstrumentsIncorporated.

;Restrictedrightstouse,duplicateordisclosethiscodeare

;grantedthroughcontract.

;U.S.PatentNos.5,283,9005,392,448

;

;"@(#)DSP/BIOS4.51.005-23-01(barracuda-i10)"

;

;========load.asm========

;

;C-callableinterfacetoassemblylanguageutilityfunctionsforthe

;volumeexample.

.mmregs

.global_load

.text

N.set1000;multipleoffour.

;

;========_load========

;ThisfunctionsimulatesaloadontheDSPbyexecutingN*loadValue

;instructions,whereloadValueistheinputparametertoload().

;

;trueexecutiontime:

(loadValue)*((N/4+25)+13

;

;Preconditions:

a=loadValue

;

;Postconditions:

none.

;

;Modifies:

a

;

;voidload(unsignedintloadValue)

;

_load:

bcdone,aeq;doneifa=0

sub#1,a

stlma,ar4;ar4=loopCount-1

ld#(N/4-2),a;a=(N/4)-2

loop:

stlma,brc;initializecountregisterforblockrpt

nop

nop

rptb$1

nop

nop

nop

$1nop

banzloop,*ar4-

done:

.if__far_mode;-mfflagwillassemblefarmodereturnopcode

fret

.else

ret

.endif

;/*endload()*/

.end

VOLUME_H

*Restrictedrightstouse,duplicateordisclosethiscodeare

*grantedthroughcontract.

*U.S.PatentNos.5,283,9005,392,448

*/

/*"@(#)DSP/BIOS4.51.005-23-01(barracuda-i10)"*/

/*

*========volume.h========

*

*/

#ifndef__VOLUME_H

#define__VOLUME_H

#ifndefTRUE

#defineTRUE1

#endif

#defineBUFSIZE0x64

#defineFRAMESPERBUFFER10

#defineMINGAIN1

#defineMAXGAIN10

#defineMINCONTROL0

#defineMAXCONTROL19

#defineBASELOAD1

#endif/*__VOLUME_H*/

5、实验中遇到的问题

1.对软件不够熟悉,但是很快通过老师讲解结合课本和视频便掌握了软件操作步骤。

不过需要多次试验,才能熟能生巧。

2.对定点算法中的数据溢出现象开始没观测到,后来发现程序添加有问题,添加后现象明显。

六、实验心得体会

在本次试验中,我们通过视频讲解和老师的辅导,很快的学会了软件操作。

这是效率比较快的一次试验。

但是虽然掌握了软件方法但是实话实说,对于软件的个步骤原理还是不能够很好的理解。

后来通过老师的指导,熟悉了各个操作步骤的含义。

在本次试验中对DSP有了进一步的学习。

加强了理论和实践相结合的学习,在实验中我们之所以有时候遇见参数更改会不知所措,是因为我们还不够了解试验原理。

不够明白试验的意图。

只有明白试验的原理和试验所要达到的目的,才能够更有方向的进行试验操作和试验的方法的摸索。

本次试验的最大的启示就是只有明白为什么出发才能够更好的完成试验。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

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

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