当前位置:文档之家› DSP试验 大作业

DSP试验 大作业

DSP试验 大作业
DSP试验 大作业

学院:

学号:

姓名:

指导教师:

DSP 实验课大作业设计

一 实验目的

在DSP 上实现线性调频信号的脉冲压缩、动目标显示(MTI )和动目标检测(MTD),并将结果与MATLAB 上的结果进行误差仿真。

二 实验内容

2.1 MATLAB 仿真

设定带宽、脉宽、采样率、脉冲重复频率,用MATLAB 产生16个脉冲的LFM ,每个脉冲有4个目标(静止,低速,高速),依次做

2.1.1 脉压

2.1.2 相邻2脉冲做MTI ,产生15个脉冲

2.1.3 16个脉冲到齐后,做MTD ,输出16个多普勒通道 2.2 DSP 实现

将MA TLAB 产生的信号,在visual dsp 中做脉压,MTI 、MTD ,并将结果与MATLAB 作比较。

三 实验原理

3.1 线性调频

线性调频信号是指频率随时间而线性改变(增加或减少)的信号。本实验中用的是线性调频矩形脉冲信号,其表达式可写为:

2

002(2)

1()()(

)j f t

j f t t t s t u t e

rect e

T

T

πππμ+==

其中信号的复包络为

2

1,2

1()(

),(

)0,2j t

t T t t

u t rect e

rect T T t T T πμ?≤?=

=?>??

T 为脉冲宽度,B T μ=为调频斜率,B 为调频带宽,也称频偏。 3.2 脉冲压缩原理

脉冲压缩处理将发射的宽脉冲信号压缩成窄脉冲信号,它既可以发射宽脉冲以提高平均功率和雷达的检测能力,又能保持窄脉冲的距离分辨率。

本实验中是对线性调频脉冲信号的压缩处理,是通过在发射的长脉冲上加上频率调制,并通过匹配滤波器接收机来压缩接受到的信号,其过程如下图所示:

图1 LFM 脉冲压缩处理框图(频率域)

3.3 MTI (动目标显示)原理

MTI 是指利用用杂波抑制滤波器来抑制各种杂波,提高雷达信号的信杂比,以利于运动目标检测的技术。

实验中使用的是单延迟对消器,其原理如下图所示:

图2 单延迟线对消

()()()r y t x t x t T =--

3.4 MTD (动目标检测)原理

MTD 是一种利用多普勒滤波器组来抑制各种杂波,以提高雷达在杂波背景下检测运动目标能力的技术。

四 实验步骤

以下是该实验中设定的几个参数

BandWidth=2.0e6------------------------------------------------------------------带宽 TimeWidth=42.0e-6----------------------------------------------------------------脉宽 Fs=2.0e6---------------------------------------------------------------------------采样率 PRT=240e-6---------------------------------------------------------------脉冲重复周期 TargetDistance= [3000 8025 8025 12000] ----------------------------------目标距离 TargetV elocity= [50 0 -120 225] ----------------------------------------------目标速度 假设接收到的回波数是16个,噪声为高斯随机噪声。

4.1 在MATLAB中产生线性调频信号。

4.2 根据目标距离得出目标回波在时域的延迟量,根据目标速度得出多普勒相移,从而在MATLAB中产生4个目标的16个回波串(接收到的回波含噪声)。

4.3 由匹配滤波理论产生对应于目标回波的滤波系数(脉压系数),在时域中做线性卷积,实现匹配滤波(时域脉压);在频域中做回波信号和脉压系数的FFT,点乘后作逆FFT,实现频域脉压。两者进行比较,讨论其差别。

4.4 对16个去暂态点后的脉冲串按接收顺序进行排列,用一次相消器(一种滤波方式)实现MTI。

4.5做16通道的FFT,实现MTD。

4.6 在DSP中对MATLAB产生的回波数据和脉压系数进行处理,实现频域脉压。导入DSP的回波数据为时域数据,而脉压系数为频域数据。将导入DSP 的时域回波数据进行一次FFT变换到频域,然后将其与频域脉压系数进行点积,得到频域脉压结果。对该结果再做一次IFFT,将频域转换成时域。在这一步中需要调用库函数fft_flp32.asm。该子程序可实现8192点复数的FFT功能。由于C语言中无法实现复数运算,因此,对8192个复数按照实部虚部交替的顺序进行重排列,用长度为16384的数组来存放时域回波数据。频域相乘后,做乘积结果的IFFT,得到脉压结果。做IFFT,仍需调用库函数fft_flp32.asm,此时要通过FFT子程序实现IFFT的功能,要对频域的数据进行处理,才能达到这一目的。

4.7 对脉压后的数据按照脉冲号重排,相邻序列的数据相减(滑动对消),实现MTI。

4.8 调用子程序fft_16.asm,做16通道FFT,实现MTD。入口参数为16通道的脉压数据。

五实验结果及讨论

5.1脉压、MTI、MTD结果分析:

5.1.1脉压

图2 脉压

结果如图所示(修改程序,使横轴表示目标距离,以便分析),试验初试是设置的目标距离参数为TargetDistance= [3000 8025 8025,12000],现在图中只看到三个目标分别是(300,41.94)、(8025,122.7)、(12000,84.74),因为目标2和目标3的距离参数相同,即使距离参数不同,在小于雷达的距离分辨力'2

c R τ=

的情况下依然不能分辨。对于幅度sqrt(SigPower(k))= [1,1,0.5,1],目标1的回波由于雷达闭锁的影响,幅度较低;目标2和目标3的回波叠加在一起,且由于相位的影响,两个回波同相叠加而增强或者反相抵消而减弱,所以在16个回波中目标2和目标3的回波的和幅度有时增强,有时减弱;目标4回波的幅度是一般情况。

5.1.2 MTI

50

100

150

200

250

300

350

400

450

500

5

10

15

20406080100120140160180X: 108Y: 1Z: 71.2

MTI result

X: 161Y: 9Z: 163.4

X: 41Y: 15Z: 32.86

图2(a) MTI 三维图

图3(b) MTD X-Z View

图3(c) MTD Y -Z View

图2(b) MTI 正面图

在实验中做的是单延迟对消MTI ,即相邻两个脉冲做差,最后只剩下15个脉冲,对于静止目标,两次回波相差不大,互相抵消,回波2此时只剩下目标3的回波;由于MTI 滤波器幅频响应特点的影响,目标1和目标3的回波幅度减小大于目标4的回波幅度的减小,所以出现上图的幅度现象;另,由于随机噪声的影响,各次脉冲的幅度有一定的起伏。

5.1.3 MTD

50

100

150

200

250

300

350

400

450

500

-8

-6

-4

-2

2

4

6

8

0200400600800100012001400X: 160Y: -7Z: 1318

MTD result

X: 107Y: -5Z: 632.6

X: 107Y: 0Z: 1330

X: 40Y: 2Z: 640.1

图3(a) MTD 三维图

对图3中的幅度分析,MTD 中的目标的幅度是由不同脉冲相干积累得到,同时由于FFT 存在频谱泄漏,主瓣展宽等,所以结果中目标的幅度近似为脉压的16倍。对图3进行多普勒和时延分析,可以看图目标1的距离和速度都已经测出,目标2和目标3由于速度不同,落在了不同的FFT 通道,从而区分出来。在该实验参数的设置下目标4的速度-174.16m/s ,这显然是和实际不符的,即速度出现了模糊,究其原因为在该实验参数下的测速范围是-199~199m/s ,超出这个范围将会产生速度模糊(多普勒模糊)。

本实验雷达的多普勒分辨率为260.42r f f Hz N

δ==

对应的径向速度为:()

m

24.88 2

s

f v λδδ?==

其中2r f G H z =,N= TotalNumber=SampleNumber*PulseNumber=7680,在PulseNumber 不变的情况下,更改PRT 可以改变SampleNumber ,进而改变雷达

的测速范围,下面将更改PRT 为150e-6,此时2416.674800

r G H z f

f H z N δ==

=,()

m

39.8 2

s

f v λδδ?=

=,测速范围为-318~318m/s ,可满足试验要求。结果如

下图:

50

100

150

200

250

300

-8

-6

-4

-2

2

4

6

8

0200400600800100012001400X: 107Y: -3Z: 671.4

MTD result

X: 107Y: 0Z: 1351

X: 160Y: 6Z: 1072

X: 41Y: 1Z: 375

X: 40Y: 1Z: 573.8

图4 解多普勒模糊

此时目标4的速度V=228.8,存在一定的误差,但较原参数已有很大的改善。 以上方法在仿真实验中可以解决存在的问题,然而在实际中由于目标的速度是未知的,所以上述方法显然是不可行的。实际中为了解决多普勒模糊,采用两种脉冲重复频率,即1r f 和2r f 来解决多普勒模糊,且选择1r f 和2r f ,使得它们

相互成质数,一种选择是使12,(1)r rd r rd f Nf f N f ==+ ,在所希望的一个脉冲重复间隔(1/d rd T f = )周期内,两个脉冲重复频率1r f 和2r f 只在某一个位置上重合,此时:如果12d d f f > ,则21212

()d d

r

r r f f f M f f -+=

- ,如果12d d f f <,则2112

d d r r f f M f f -=

- ,

且真实多普勒为1122,d r d d r d f M f f f M f f =+=+ ,最后,如果12d d f f =,则

12d d d f f f ==,此时,可能发生盲多普勒,可用第三种脉冲重复频率加以解决。

5.2 DSP 结果与Matlab

结果对比,误差分析。

图5

频域脉压的相对误差

图6 MTI 数据的相对误差

图7 MTD 数据的相对误差

从上面的图中可以看出,MA TLAB 和DSP 的相对误差均在10-4之内,误差在可以接受的范围内。这样的误差可能是由于算法和不同字长的舍入造成的误差。

六 实验思考题及心得

6.1 MTI 结果中看不到静止目标

答:MTI 中利用相邻脉冲差值来检测目标,当目标静止时,两次回波的幅度和相位变化不大(杂波的影响),相差后几乎为零,所以MTI 结果中看不到静止的目标。

6.3 MTD 速度/多普勒通道的含义

答:不同的多普勒通道对应着不同的速度,目标速度的不同,导致多普勒频移不同,落到不同的多普勒通道。

6.2 速度模糊

如果目标的多普勒频移不超过单个滤波器带宽的一半,即(,)

22r r d f f f ∈-

+

多普勒滤波组就可以分辨出目标的多普勒频移,否则就会产生多普勒模糊。也就是说,雷达发射脉冲的重复频率PRF 不能低于目标最大多普勒频移的2倍,否则雷达无法分辨目标的多普勒信息

练习五、编写C 程序,建立磁盘文件,练习读写数据

一 实验目的

在VisualDSP4.5中学习并掌握对磁盘文件的读写,并对数据进行简单的运算。

二 实验内容

2.1 编写C 程序,产生1000个随机浮点数(随机类型和参数自行确定),建立一个磁盘文件,把所有随机数依序、按照相应格式写入文件。

2.2 关闭文件,再打开此文件,从文件中把数据读入,计算其均值、方差,并写入另一个文件中。

三 实验原理

3.1随机数的产生

利用rand()产生所需要的数据; 3.2 磁盘文件的读写

运用格式化文件输入、输出函数:

int fprintf(FILE *stream, const char *format, /*args*/ ...); int fscanf(FILE *stream, const char *format, /* args */...); 3.3 均值、方差

12

1

1;

1();

N

x i

i N

x i

x i m x N D x

m N

====

-∑∑

四 实验步骤

4.1 熟悉实验原理 4.2 编写C 程序

4.3 仿真、调试程序,直至程序满足实验要求

五 实验结果及讨论

5.1产生的随机数据和从外部文件中调入所产生的数据

5.2 均值和方差

图2 均值和方差

六实验思考题及心得

6.1此练习中,计算机和DSP各自起什么作用?如果DSP脱离计算机,此程序还能运行吗?

答:在此练习中,计算机提供文件存储的磁盘空间,DSP向计算机磁盘写入或读出数据,并进行运算;在此过程中DSP需要借助计算机的磁盘完成功能,

因此,DSP脱离计算机后该程序将无法正常运行。

练习六、调试器和EZ-KIT板的性能比较

一实验目的

对比程序在仿真环境下和EZ KIT板上的执行性能,并分析原因。

二实验内容

2.1把练习二改为执行5次、10次,在软仿真环境下运行,并用记录执行的时间;

2.2在EZ KIT板上执行此程序,记录执行时间。

三实验原理

运用VisualDSP中的linear profiling窗口观察并记录程序在仿真环境和EZ KIT 板上执行的时间。

四实验步骤

4.1修改练习二的程序,在程序中加入控制次数的for循环,以控制程序执行5次、10次。

4.2编译成功后,打开VisualDSP的linear profiling窗口观察并记录程序在仿真环境下的执行时间,通过tool/linear profiling打开linear profiling窗口。

4.3生成LDF文件,点击\tools\expert linker\creat LDF,按照默认选项,依次选择1:文件保存的路径(与原工程一致)、project type选择assembly;2:选择单处理器(single process),其余默认;3,finish。

4.3 在断电情况下连接EZ KIT板,创建EZ KIT session,并将上述LDF文件导入DSP中,运行程序,在linear profiling窗口中观察并记录程序执行的时间。五实验结果及讨论

结果:

硬件平台5次64点DFT耗时 0.94ms 10次64点DFT耗时 1.88ms 软件平台5次64点DFT耗时 16s 10 次64点DFT耗时 33s 讨论:软件仿真比硬件仿真慢,原因主要有两个方面:第一,软件仿真是在计算机上模拟程序在DSP上的运行,这就需要一定的系统开销,同时计算机内部的数据传输叫DSP中复杂,这也造成了系统开销;第二,DSP内部存在专用的硬件算法器,如乘累加,在计算机上是不存在这样的结构的。

练习七、用ADSP_TS201 EZ-KIT板实现定时器

一实验目的

利用ADSP-TS201 EZ-KIT板上的硬件资源,通过对板上A、B两个DSP的FLAG指示灯进行编程,来完成定时器的操作。

二实验内容

编译讲义上的程序到没有错误,观察FLAG灯的亮灭,并分析。

三实验原理

利用ADSP-TS201 EZ-KIT板上的定时器timer1,产生中断,在中断服务子程序中实现对FLAG的控制

四实验步骤

4.1 连接硬件

首先给EZ-KIT板加电,可以看到板上的FLAG灯在闪,板上的power灯(绿色)持续亮一段时间,RESET灯(红色)持续亮一段时间又熄灭。接下来板子上的USB_monitor灯一直亮。

4.2 打开VisualDSP++,选择Session/Select Session/ADSP_TS201S EZ_KIT Lite via Debug Agent,选择ADSP- TS201 EZ-KIT session。

4.3 打开工程,编译链接该工程,没有错误后运行程序。观察并记录结果。

4.4 通过改变中断服务程序xr4的值,可以看到灯闪亮的速度在变化。

五实验思考题及心得

5.1 灯的闪灭是通过什么来控制的?

答:灯的闪灭是通过中断服务函数控制的,每次中断到来时,利用异或取反,使FLAG灯的状态改变,从而控制灯的闪灭。

5.2 代表秒的灯闪一次,定时器发生了多少次中断?

答:代表秒的灯闪一次,定时器发生了10次中断。

练习九、中断响应、标志查询

一实验目的

1.1 模拟产生外部中断和可编程I/O(Flag0~3);

1.2 学会使用中断服务子程序及查询方式;

1.3 熟练使用断点调试。

二实验内容及步骤

实验一

1、添加外部中断,以IRQ0为例。如图1所示。

图1 外部中断IRQ

2、编写C语言程序,在主程序中以查询标志位en的方式进行加法计算,en 为1则开始进行加法运算(data1[n]+data2[n]),在中断服务子程序中加入断点观察每次进入中断服务子程序的指令周期间隔。数组data1和data2,每个长度20(这个可以自己设定),用include函数将外部“.dat”文件包含进来。在中断服务子程序中设置标志位en为1。加法完成后程序停止,此时在VisualDSP Mermoy 中察看计算结果是否正确。

根据如下代码提示部分完成程序的编写:

void main(void)

{

initial(); //初始化寄存器函数

// irq0_isr() 外部IRQ0中断服务子程序,在子程序中断中置en标志位

interrupt(SIGIRQ0,irq0_isr);

while(1)

{

while(标志位==1)

{

result[n]=input1[n]+input2[n];//实现加法运算;

en=0;//设置标志位为0;

n++;

}

if(n==N+1) //数组长度

{

break;//跳出最外层while循环;

}

}

}

void initial()

{

//配置系统配置寄存器SYSCON 外部总线接口寄存器

__builtin_sysreg_write(__SYSCON,0x279e7);

__builtin_sysreg_write(__INTCTL,0x0); //设置外部中断触发方式为边沿触发,关闭定时

}

实验二

设置可编程I/O的输入,在程序中查询FLAG灯的变化状态,加断点观察中断产生的时间间隔。

1、设置FLAG输入,本实验以FLAG1为例,如图2所示:

图2 FLAG1输入

2、编写如下程序

void main(void)

{

initial(); //初始化寄存器函数

while(1)

{

//查询flag

flag1=__builtin_sysreg_read(__SQSTAT); //SQSTAT程序控制状态寄存器

flag1=flag1&0x00020000;

while(flag1!=0x00000000)

{

flag1=__builtin_sysreg_read(__SQSTAT);

flag1=flag1&0x00020000;

}

flag1=__builtin_sysreg_read(__SQSTAT);

flag1=flag1&0x00020000;

while(flag1!=0x00020000)

{

flag1=__builtin_sysreg_read(__SQSTAT);

flag1=flag1&0x00020000;

}

}

while(1)

{

int i=0,k=0;

for(i=0;i<10000;i++)

{

i=0;

k=i;

}

}

}

void initial()

{

__builtin_sysreg_write(__SYSCON,0x279e7);

__builtin_sysreg_write(__INTCTL,0x0); //设置外部中断触发方式为边沿触发

__builtin_sysreg_write(__FLAGREG,0); //清除所有FLAG设置}

三实验结果

3.1中断响应

图3(a) 程序执行前图3(b) 程序执行后

图3(c) 计算结果

实验中进行的是21个数据的加和的简单操作,周期数是211350-896=210454≈21×10000。 3.2标志查询

图4(b) 程序执行后

程序运行的周期数为5977-865=5112≈0.5×10000

四 实验思考题

实验一中为什么设触发方式为边沿触发?为什么flag 查询的时候时间正好是外部中断的一半?

答:边沿触发在一个时钟周期内只可能触发中断一次,如果是电平触发的话,有可能在中断服务程序执行结束后,电平仍为有效电平,重新触发,所以实验一中选择边沿触发,在一个时钟周期内只可靠的触发一次。flag 查询时,就存在一次查询结束后电平依然为有效电平的情况,所以在一个时钟周期内查询了两次,所以最终flag 查询的时间正好是外部中断的一半。

图4(a) 程序执行前

DSP上机大作业

DSP上机实验报告

实验一: VISUAL DSP++的使用入门 1.实验一的目的 实验一的主要目的是熟悉VISUAL DSP++的开发环境。针对ADSP-21065L SHARC DSP,利用几个用C、C++和汇编语言写成的简单例子来描述VISUAL DSP+十编程环境和调试器(debugger)的主要特征和功能。 2.实验一的4个基本练习 练习一: 启动Visual DSP++,建立一个用C源代码的工程(Project),同时用调试器来评估用C语言所编写代码的性能; 练习二: 创立一个新的工程,修改源码来调用一个汇编(asm)程序,重新编译工程,用调试器来评估用汇编语言所写程序的性能; 练习三: 利用调试器的绘图(plot)功能来图形显示一个卷积算法中的多个数据的波形; 练习四: 利用调试器的性能统计功能(Statistical profile来检查练习三中卷积算法的效率。利用所收集到的性能统计数据就能看出算法中最耗时的地方。 3.实验步骤: (1)练习一实验步骤: Step l 进入Visual DSP+十并打开一个工程(Project) 进入Visual DSP++,显示Visual DSP++的集成开发和调试环境窗口(Integrated Development and Debugger Environment,简称IDDE)。 选择菜单File 中Open 打开文件: …DSP_exp\unit_1\dot_product_c \dotprodc.dpj。 Dotprodc工程由定义数组和计算数组点积和的两个C语言源文件dotprod_main.c(主程序)和dotprod.c(子程序)以及一个描述程序和数据存储位置的链接描述文件dotprodc.ldf。 Step 2 编译dotprodc工程 在菜单Project中选择Build Project来对工程进行编译。此时,输出窗口显示程序编译时的各种状态信息(包括出错和编译进程信息)。当编译检测到错误时,将在输出窗口出现相应的出错信息,用鼠标双击它,编译器将自行打开源文件。这时可对源文件编辑、修改错误,再次进行编译。当编译不再有错时,输出窗口将显示“Build completed successfully”。

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实验报告-深圳大学-自动化

深圳大学实验报告课程名称: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大作业

一、简答题:(要求:手写,须写出各题必要的知识点,本大题共30分,每小题5分。) 1、可编程DSP芯片有那九大特点? 2、TMS320C54x芯片的流水线操作共有多少个操作阶段,每个阶段执行什么任务,完成一条指令需要那些操作周期? 3、DSP系统硬件设计过程都有那些步骤?

4、TMS320C54x的数据寻址方式各有什么特点,应该应用在什么场合场所? 5、链接器能完成什么工作?链接器命令文件中,MEMORY命令和SECTION命令的任务是什么? 6、什么是“自举”? 二、分析题:(要求:手写,结果需要有一定的分析计算过程,本大题共55分,每小题5分。)

1、已知:(80H)= 20H,(81H)= 30H。 LD #0, DP LD 80H, 16,B ADD 81H, B 运行以上程序后,DP、B分别等于多少? 2、回答标准串行口数据的发送和接收过程。 3、已知:A = FFFD876624, T = 0000,则运行EXP A指令后,A和T各为多少? 4、已知:B = 420D0D0D0D, T = FFF9,则运行NORM B指令后,B和T各为多少? 5、在不含循环的程序中,RPTZ #9语句和其前一句、后一句以及后第二句各运行几次? 6、说明语句: STM #0080H, IMR的功能?

7、已知中断向量TINT = 014H,中断向量地址指针IPTR = 0111H,求中断向量地址是多少? 8、已知(30H)=50H,AR2=40H,AR3=60H,AR4=80H MVKD 30H, *AR2 MVDD *AR2, *AR3 MVDM *AR3, *AR4 运行以上程序后,(30H),(40H)、*AR3,AR4的值分别是多少? 9、在堆栈操作中,PC当前地址为4020h,SP当前地址为0013h,运行PSHM AR7后,PC和SP的值分别是多少? 10、请仔细分析下列程序代码,并说明每句程序代码的作用。 sample.out -m sample.map -stack 100 sample.obj meminit.obj -l rts.lib MEMORY { PAGE 0: VECT: origin = 0xff80, length 0x80 PAGE 0: PROG: origin = 0x2000, length 0x400 PAGE 1: DATA: origin = 0x800, length 0x400 } SECTIONS {

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 。

DSP大作业快速傅立叶变换实验与设计

DSP 原理及应用 大作业 ——快速傅立叶变换 专业:XXXX 姓名:XXX 学 号:08201081XX 指导老师: XX 时间:2XXXX 快速傅立叶变换(FFT )实验 一、设计目的 1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉FFT子程序。 2.熟悉应用FFT对典型信号进行频谱分析的方法 3?了解应用FFT进行信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT。 4.掌握用窗函数法设计FFT快速傅里叶的原理和方法; 5 ?熟悉FFT快速傅里叶特性; 二、所需设备

PC 兼容机一台,操作系统为Windows2000(或Windows98 , WindowsXP,以下 默认为Windows2000),安装Code Composer Studio 2.0 软件。 三、设计内容 本试验要求使用FFT变换求一个时域信号的频域特性,并从这个频域特性求出该信号的频 率值。使用c语言实现对FFT算法的仿真,然后使用DSP汇编语言实现对FFT 的DSP 编程。本实验采用软件仿真,不需设置硬件。 四、设计原理 在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我 们可以使用离散Fouier变换(DFT)。这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT N 1 1 N-1 X(k)=》x(nW,n⑷x(n)=石送X(kW「n 定义为:心,W N =e反换为:N心有限长序 列的DFT是其Z变换在单位圆上的等距采样,或者是序列Fourier变换的等距采样,因此可以用于序列的谱分析。 FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。常用的FFT是以2为基数的,其长度N=2L,它的效率高,程序简单使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。 在运用DFT进行频谱分析的过程中可能产生几种问题:⑴混叠 序列的频谱时被采样信号的周期延拓,当采样速率不满足Nyquist定理时, 就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。 避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。 ⑵泄漏 实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。 泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。 DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏来观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点或谷点被尖桩的栅栏”所拦住,不能别我们观察到。 减小栅栏效应的一个方法就是借助于在原序列的末端填补一些零值,从而 变动DFT的点数,这一方法实际上是人为地改变了对真实频谱采样的点数和位置,相当于搬动了每一根尖桩栅栏”的位置,从而使得频谱的峰点或谷点暴露出来。

北邮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运行实验报告 一、实验目的 熟悉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大作业修改过后

题目温度采集分析系统设计 学生姓名 学号 专业电子信息工程 指导教师 时间 2018.1.1

摘要:本课题设计基于TMS320F28335型号DSP的高速度、宽范围、高精度的温度采集系统方案。系统以TMS320F28335为控制核心,通过测温电路采集温度数据,经AD转换后给DSP 控制器,通过FIR滤波器计算出温度值,DSP通过RS232接口上传温度值到电脑上位机显示温度,通过LCD12864显示温度及时间,重点介绍AD转换接口电路以及系统控制软件的设计过程。 一、功能设计要求 设计一个电池供电野外温度采集分析系统,功能包括: 1.每小时采集环境温度10次,进行FIR滤波 2.每天通过串口发送单天平均气温 3.有三个按键:K1切换温度/时间显示。K2、K3修改时间,K2=time+,K3=time- 4.当电池电压低于安全值时,发送报警信息 二、硬件设计 1.系统方案: 该系统包括温度采集电路模块、TMS320F28335芯片、A/D转换部分和LCD液晶显示,首先要初始化A/D转换模块,然后等待中断,当产生中断后对采集到的模拟信号进行处理,并通过低频率的FIR滤波后得到一天的温度输出,为确保转换精度要进行多次取值求平均,转换结果放在结果寄存器的高12位上,通过编程将处理后的温度值送到LCD上进行显示。设计采用热敏电阻PT100组成的温度采集电路,利用热敏电阻输出电压值与温度间的函数关系式,检测温度的变化;然后将采集的温度送入TMS320F28335的片上A/D,将电压转换为数字信号,并通过低频率的FIR滤波后得到一天的温度输出;最后通过LCD12864显示结果。 图1 系统方案 2.主控方案:TMS320F28335主控芯片 控制芯片32位TMS320F28335芯片,该DSP芯片专门用于控制领域,最高可在150 MHz主频下工作,可进行双16 ×16乘加和32 ×32乘加操作,运算与控制速度快,并带有18 K×16位片上SRAM和128 K×16位片上FLASH;并带有两个事件管理模块,可以同

DSP大作业

无限冲激响应滤波器(IIR)算法及实现 姓名:徐旭日 学号:20130700332 专业班级:电子信息工程(2)班 指导老师:王忠勇 日期:2016/6/2

摘要:21世纪是数字化的时代,随着信息处理技术的飞速发展,数字信号处理技术逐渐发 展成为一门主流技术。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等。这些优势决定数字滤波器的应用越来越广泛。数字滤波器是数字信号处理中最重要的组成部分之一,被广泛应用于语音图像处理、数字通信、谱分析、模式识别、自动控制等领域。本课题通过软件设计IIR数字滤波器,并对所设计的滤波器进行仿真:应用DSP集成开发环境—CCS调试程序,用TMS320F2812实现IIR数字滤波。具体工作包括:对IIR数字滤波器的基本理论进行分析和探讨。应用DSP集成开发环境调试程序,用TMS320F2812来实现IIR数字滤波。通过硬件液晶显示模块验证试验结果,并对相关问题进行分析。 关键词:数字滤波器;DSP;TMS320F2812;无限冲激响应滤波器(IIR)。 引言:随着数字化飞速发展,数字信号处理技术受到了人们的广泛关注,其理论及算法 随着计算机技术和微电子技术的发展得到飞速发展,被广泛应用于语音图像处理、数字通信、谱分析、模式识别、自动控制等领域。数字信号处理由于运算速度快,具有可编程的特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。采用DSP芯片来实现数字信号处理系统是当前发展的趋势。 在数字信号处理中,数字滤波占有极其重要的地位。滤波是信号处理中的一个重要概念。滤波分经典滤波和现代滤波。经典滤波的概念,是根据傅里叶分析和变换提出的一个工程概念。根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。只允许一定频率范围内的信号成分正常通过,而阻止另一部分频率成分通过的电路,叫做经典滤波器或滤波电路。数字滤波是语音和图像处理、模式识别、谱分析等应用中的一个基本处理算法。在许多信号处理应用中用数字滤波器替代模拟滤波器具有许多优势。数字滤波器容易实现不同幅度和相位频率特性指标。用DSP芯片实现数字滤波除具有稳定性好、精度高、不受环境影响外,还具有灵活性好的特点。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。 原理: 1.无限冲激响应数字滤波器的基础理论。 利用模拟滤波器成熟的理论及其设计方法来设计IIR数字低通滤波器是常用的方法。 H s,再按照一 设计过程是:按照数字滤波器技术指标要求一个过渡模拟低通滤波器() a H s转换成数字低通滤波器函数H(z)。由此可见,设计的关键问题就 定的转换关系将() a H s转换成z平面上的H(z)。 是要找到这种关系,将s平面的() a H s从s平面转换到z平面的方法有多种,但工程上常用的是脉冲响 将系统函数() a 应不变法和双线性变换法。在课题中我们采用双线性变换法设计IIR数字低通滤波器。 通过采用非线性频率压缩的方法,将整个模拟频率轴压缩到±π/T之间,再用

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实验报告

软件实验 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大作业

西工大DSRt作业

实验1基于CCS的简单的定点DSF程序 一、实验要求 1、自行安装CCS3.3版本,配置和运行CCS 2、熟悉CCS开发环境,访问读写DSP勺寄存器AC0-AC3 AR0-AR7, PC, T0-T3 3、结合C5510的存储器空间分配,访问DSR的内部RAM 4、编写一个最简单的定点DSP程序,计算下面式子 y=0.1*1.2+35*20+15*1.6 5、采用定点DSP进行计算,确定每个操作数的定点表示方法,最后结果的定点表示方法,并验证结果 6、对编写的程序进行编译、链接、运行、断点执行、单步抽并给出map映射文件 二、实验原理 DSP芯片的定点运算---Q格式(转)2008-09-03 15:47 DSP 芯片的 定点运算 1. 数据的溢出: 1>溢出分类:上溢(oveflow ): 下溢(underflow ) 2>溢出的结果:Max Min Min Max un sig ned char 0 255 sig ned char -128 127 un sig ned int 0 65535 signed int -32768 32767

上溢在圆圈上按数据逆时针移动;下溢在圆圈上顺时钟移动。 例:signed int : 32767+1 = —32768 ; -32768-1 = 32767 unsigned char : 255+1 = 0; 0-1 = 255 3>为了避免溢出的发生,一般在DSP中可以设置溢出保护功能。当 发生溢出时,自动将结果设置为最大值或最小值。 2. 定点处理器对浮点数的处理: 1>定义变量为浮点型(float , double ),用C语言抹平定点处理器和浮点处理器 2>放大若干倍表示小数。比如要表示精度为0.01的变量,放大100倍去运算,3>定标法:Q格式:通过假定小数点位于哪一位的右侧,从而确定小 数的精度。Q0 :小数点在第0位的后面,即我们一般采用的方法Q15 小数点在第15位的后面,0~ 14位都是小数位。转化公式:Q= (int ) (F X pow(2, q)) F =(float ) (Qx pow (2,—q)) 3. Q格式的运算 1>定点加减法:须转换成相同的Q格式才能加减 2>定点乘法:不同Q格式的数据相乘,相当于Q值相加 3>定点除法:不同Q格式的数据相除,相当于Q值相减 4>定点左移:左移相当于Q值增加 5>定点右移:右移相当于Q减少 4. Q格式的应用格式 实际应用中,浮点运算大都时候都是既有整数部分,也有小数部分的。 所以要选择一个适当的定标格式才能更好的处理运算。一般用如下两 种方法:

西工大DSP大作业

实验1 基于CCS的简单的定点DSP程序 一、实验要求 1、自行安装CCS3.3版本,配置和运行CCS 2、熟悉CCS开发环境,访问读写DSP的寄存器AC0-AC3,ARO-AR7, PC, T0-T3 3、结合C5510的存储器空间分配,访问DSP的内部RAM 4、编写一个最简单的定点DSP程序,计算下面式子y=0.1*1.2+35*20+15*1.6 5、采用定点DSP进行计算,确定每个操作数的定点表示方法, 最后结果的定点表示方法,并验证结果 6、对编写的程序进行编译、链接、运行、断点执行、单步抽并给出map映射文件 二、实验原理 DSP芯片的定点运算---Q格式(转) 2008-09-03 15:47 DSP芯片的定点运算 1.数据的溢出: 1>溢出分类:上溢(overflow):下溢(underflow) 2>溢出的结果:Max Min Min Max unsigned char 0 255 signed char -128 127 unsigned int 0 65535 signed int -32768 32767 上溢在圆圈上按数据逆时针移动;下溢在圆圈上顺时钟移动。例:signed int :32767+1=-32768;-32768-1=32767

unsigned char:255+1=0;0-1=255 3>为了避免溢出的发生,一般在DSP中可以设置溢出保护功能。当 发生溢出时,自动将结果设置为最大值或最小值。 2.定点处理器对浮点数的处理: 1>定义变量为浮点型(float,double),用C语言抹平定点处理器和浮点处理器的区 2>放大若干倍表示小数。比如要表示精度为0.01的变量,放大100倍去运算,运算 3>定标法:Q格式:通过假定小数点位于哪一位的右侧,从而确定小 数的精度。Q0:小数点在第0位的后面,即我们一般采用的方法Q15 小数点在第15位的后面,0~14位都是小数位。转化公式:Q=(int) (F×pow(2,q))F=(float)(Q×pow(2,-q)) 3.Q格式的运算 1>定点加减法:须转换成相同的Q格式才能加减 2>定点乘法:不同Q格式的数据相乘,相当于Q值相加 3>定点除法:不同Q格式的数据相除,相当于Q值相减 4>定点左移:左移相当于Q值增加 5> 定点右移:右移相当于Q减少 4.Q格式的应用格式 实际应用中,浮点运算大都时候都是既有整数部分,也有小数部分的。 所以要选择一个适当的定标格式才能更好的处理运算。一般用如下两 种方法: 1>使用时使用适中的定标,既可以表示一定的整数复位也可以表示 小数复位,如对于2812的32位系统,使用Q15格式,可表示

dsp实验报告5

一、实验原理: 1、无限冲击响数字滤波器的基础理论; 2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3、双线性变换的设计原理。 二、实验内容: 1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2; 2)“A/D转换单元”的拨码开关设置: JP3 3)检查:计算机、DSP仿真器、实验箱是否正确连接,系统上电; 4)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意,置拨码开关S23的1到ON,两信号混频输出; 三、程序分析: cpu_init(); //CPU初始化 fs = 25000; //设置采样频率为2500HZ nlpass = 0.18; //设置通带上限频率归一化参数为0.18 nlstop = 0.29; //设置阻带下限截止频率归一化参数为0.29 biir2lpdes(fs,nlpass,nlstop,a,b); 根据双线性变换法求滤波器的系数a和b set_int(); //调用低通滤波器子程序对信号进行滤波 中断程序注释: interrupt void int1()

{ in_x[m] = port8002; //读取port8002端口的数值 in_x[m] &= 0x00FF; //取后八位送入X[m] m++; //每取一个数字m加1 intnum = m; if (intnum == Len) //当取到128个字节时,重新读取port8002端口的数值 { intnum = 0; xmean = 0.0; for (i=0; i

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硬件实验报告北邮

北京邮电大学DSP硬件实验报告 学院: 电子工程学院 专业: 姓名: 学号: 班级:

实验一常用指令实验 一、实验目的 熟悉DSP开发系统的连接 了解DSP开发系统的组成和结构和应用系统构成 熟悉常用C54X系列指令的用法(程序寻址,寄存器,I/O口,定时器,中断控制)。 二、实验步骤与内容 (一)简单指令程序运行实验 源程序: ;File Name:exp01.asm ;the program is compiled at no autoinitialization mode --程序在非自动初始化模式下编译 .mmregs --(enter memory-mapped registers into the symbol table) --进入记忆映射注册进入符号表 .global _main --(identify one or more global(external)symbols)--定义一个或多个全局变量 _main: stm(累加器的低端存放到存储器映射寄存器中) #3000h,sp(堆栈指针寄存器);堆栈指针的首地址设为#3000h ssbx(状态寄存器位置位)xf ;状态寄存器位置位,灯亮 call (非条件调用,可选择延迟)delay(存储器延时) ;调用delay函数延时 rsbx(状态寄存器复位)xf ;状态寄存器位复位,灯灭 call delay ;调用delay函数延时 b (累加器)_main ;可选择延迟的无条件转移,循环执行 nop(无操作) nop ;delay .5 second delay: ;延迟0.5秒 stm 270fh,ar3 (辅助寄存器3) ;把地址存放到存储器映射寄存器中 loop1: stm 0f9h,ar4 (辅助寄存器4);把地址存放到存储器映射寄存器中 loop2: banz loop2,*ar4- ;AR4不为0时转移,指针地址减一

哈工大DSP大作业

DSP-F2812的最小系统设计 姓名 学号 班级 时间

一、设计目的: TMS320F2812DSP是TI公司一款用于控制的高性能、多功能、高性价比的32位定点DSP。它整合了DSP和微控制器的最佳特性,集成了事件管理器,A/D转换模块、SCI通信接口、SPI外设接口、eCAN 总线通信模块、看门狗电路、通用数字I/O口、多通道缓冲串口、外部中断接口等多个功能模块,为功能复杂的控制系统设计提供了方便,同时由于其性价比高,越来越多地被应用于数字马达控制、工业自动化、电力转换系统、医疗器械及通信设备中。 通过本课程的学习,我对DSP的各个模块有了较为深入的了解,希望可以通过对最小系统的设计,进一步加深对DSP的学习,能在实践中运用DSP,提高自己的动手实践能力。 二、设计思路 所谓最小系统就是由主控芯片加上一些电容、电阻等外围器件构成,其能够独立运行,实现最基本的功能。为了验证DSP的最基本的功能,我设计了如下单元:有源电路的设计、复位电路及JATG下载口电路的设计、外扩RAM的设计、串口电路的设计、外扩A/D模块电路的设计。 三、详细设计步骤和原理 1、电源电路的设计 TMS320F2812工作时所要求的电压分为两部分:3.3V的Flash电压和1.8V的内核电压。TMS320F2812对电源很敏感,所以在此推荐

选择电压精度较高的电源芯片TPS767D318。TPS767D318芯片输入电压为+5V,芯片起振,正常工作之后,能够产生3.3V和1.8V两种电压电压供DSP使用。如下图所示: 2、复位电路及JATG下载口电路的设计 考虑到TPS767D301芯片自身能够产生复位信号,此复位信号可以直接供DSP芯片使用,所以不用为DSP设置专门的复位芯片。 在实际设计过程中,考虑到JATG下载口的抗干扰性,在与DSP 相连接的接口均需要采用上拉设计。

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