文档库 最新最全的文档下载
当前位置:文档库 › DSP实验报告(完美版)

DSP实验报告(完美版)

DSP实验报告(完美版)
DSP实验报告(完美版)

DSP实验报告

班级:11050641

学号:

姓名:

指导教师:

实验一、二 DSP芯片的开发工具及应用实验

1.实验目的

(1)熟悉CCS集成开发环境,掌握工程的生成方法;

(2)熟悉SEED-DTK DAD实验环境;

(3)掌握CCS集成开发环境的调试方法。

2.实验设备

DSP实验箱,计算机,CCS软件。

3.实验内容及步骤

(1) CCS软件的安装;

(2)了解SEED-DTK5416实验环境;

(3)打开CCS集成开发环境,进入CCS的操作环境;

(4)新建一个工程文件

○1在c:\ti\myprojects中建立文件夹volume1(如果CCS安装在其他

d:\ti ,则在d:\ti\myprojects中);

○2将c:\ti\tutorial\target\volume1拷贝到c:\ti\myprojects\ volume1;

○3从在CCS 中的Project 菜单,选择 New;

○4在Project Name域中,键入volume1;

○5在Location区域中,浏览步骤1所建立的工作文件夹;

○6在Project Type 域中,选择Executable(.out);

○7在Target域中,选择CCS配置的目标,并单击完成。

(5)向工程中添加文件

○1从Project/Add Files to Project,选择 volume.c,单击 Open(或右击Project View图标,选择Add Files to Project );

○2选择Project/Add Files to Project,在Files of type对话框中,选择Asm Source Files (*.a*, *.s*)。选择vectors.asm 和 load.asm, 单击Open;

○3选择 Project/Add Files to Project,在Files of type 对话框中选择 Linker Command File (*.cmd),选择volume.cmd,单击Open。(这个文件将片段映射到存储器中);

○4选择Project/Add Files to Project,到编辑器库文件夹(C:\ti\c5400\cgtools\lib),在Files of type对话框中选择Object and Library Files (*.o*, *.lib)。选择rts.lib文件,单击Open。这个库提供目标DSP 运行时间支持(runtime-support);

○5Project View窗口,右击volume1.pjt,选择Scan All Dependencies,

volume.h将出现在Project View窗中的Libraries文件夹;

头文件不要手动添加,自动到:当前目录(源文件所在)或预编译器的“include Search Path (-i)”option所指定的位置。显示头文件:Project—>show Dependencies。

○6单击 volume1.pjt上的+号,展开工程列表。这个列表称为Project View。

(6)查看源程序代码

双击Project View中 volume.c文件,CCS窗口的右半窗中出现C源代码。

(7)编译与运行程序

○1选择Project/Rebuild All或单击(Rebuild All)菜单条按钮,CCS重新进行编辑、汇编、连接工程里的所有文件。这个处理的有关信息在窗口低部一个小框里显示;

○2默认时,.out文件编译到位于当前工程文件夹中的调试(debug),目录中也可以通过CCS工具条选择一个存储目录;

○3选择File/Load Program。选中volume1.out,并按Open。

( c:\ti\myprojects\volume1\Debug\ 文件夹中。)CCS将程序装载到目标DSP上,打开显示程序反汇编指令的Disassembly窗口;

○4选择View/Mixed Source/ASM.,这样可以同时查看C源程序和产生的汇编代码;

○5在混合窗口单击汇编指令(单击有效指令,而不是指令的地址或指令所传递的区域),单击F1,CCS可以寻找此指令的帮助。这是学习指令的很好的方法;

○6选择Debug/Go Main,从主程序开始执行;

○7选择Debug/Run或单击 (Run)按钮;

○8选择Debug/ Halt,退出程序运行。

(8)更改程序的选择、定位语法错误

○1选择Project/Build Options;

○2在Build Options窗口的Compiler上,选择Category列表的Preprocessor,在Define Symbols区域键入FILEIO,按Tab键;

○3单击OK,保存新的选择设置;

○4选择Project/Rebuild All或单击(Rebuild All)按钮。只要工程选择更改,则必须重新编译所有的文件;

○5编译信息显示,程序包含编辑错误。单击Build,你可以看见语法错误信息;

○6双击描述语法错误位置的红色文字(第68行)。注意volume.c源程序已打开,且光标位于下面的行上: processing(input, output); ;

○7语法错误位于光标位置的上一行(丢了个分号),如:puts("begin

processing"); ;

○8注意:Edit窗口标题栏中的文件名附近出现星号(*),指示源程序已经被修改,文件保存后,星号消失;

○9选择File/Save,或按Ctrl+S,将更改保存到volume.c;

10选择Project/Build,或(Incremental Build)单击工具条,CCS重新编○

译已经修改的文件;

11选择File/Load Program,选中volume1.out;

12选择Debug/Go Main,从主函数开始执行。由→执行可以暂停;

13选择Debug/Run或(Run)单击菜单条;

14选择Debug/Halt,退出程序运行。

(9)使用断点(Breakpoints)和观察窗口(Watch Window)程序执行时常常需要检查变量的值。

○1File/Reload Program;

○2双击Project View 窗中的volume.c。可以将窗口变大,看到更多的源代码;

○3将光标放在dataIO( );

○4单击(Toggle Breakpoint)工具条,或按F9。选择空白区指示断点已经设置(红色图标);

○5选择View/Watch Window,在CCS窗口的右下角出现单个区域,同时,这个区域显示观察变量的值;

○6如果不在主程序,选择Debug/Go Main;

○7选择Debug/Run,或按F5;

○8选择Watch1;

○9单击Name栏中表达式图标,键入要观察的变量名dataIO;

10单击观察窗口中的白色区域,保存更改。这个值将立即出现在下面的例○

子中;

11单击 (Step Over)或按F10,跨过对dataIO()的调用;

12完成后,单击(Remove All Breakpoints)。

(10)使用带结构的Watch Window

除了观察简单变量的值,也可以观察一个结构的元素的值。

○1选择Watch1;

○2单击Name栏中的表达式图标,键入要观察表达式名称str;

○3单击观察窗口中的白色空间,保存更改。数值将立即出现在下面的例子中;

○4从Reviewing the Source Code调出 volume.c中全局申明、并初始化的类型为PARMS的结构。volume.h定义了PARMS的结构类型;

○5单击str上的+号,CCS将结构中所有元素和元素值。双击结构中元素的Value,编辑元素的值;

○6在Watch window 中Value栏,更改变量的值。注意:Watch Window中数值的更改,数值也变为红色,表示已经手动修改;

○7选择Watch Window中str变量,按Delete 键。其他变量同理;

○8选择Debug/Breakpoints,在Breakpoints中,单击Delete All,然后单击OK。

(11)添加探针Probe Point(为了文件I/O)

可以添加探针(Probe Point),从PC机中的文件读数据。

按照下面的步骤使用探针:

从主PC中传递输入数据,到算法所使用的目标的缓冲器中;

从目标的缓冲器中传递输出数据,到主PC中;

用数据修改窗口。

下面将学习如何使用Probe Point ,将PC文件中的内容,作为测试数据,传递到目标DSP中。另外,也可以使用断点修改所有打开的窗口。

○1选择File/Load Program,选中volume1.out,单击Open;

○2双击Project View中的volume.c;

○3将光标放到主程序中dataIO();

○4单击(Toggle Probe Point)。选择空白区域指示探针已经设置(兰色图标),如果废止

选择区,此行为兰色显亮;

○5从File菜单,选择File I/O。出现File I/O对话框,因此可以选择输入输出文件;

○6在File Input,单击Add File;

○7浏览volume1工程文件夹,选中sine.dat,单击Open。sine.dat文件是正弦波的十六进制数值,出现sine.dat文件的控制窗口。再后,当运行程序时,可以在数据文件中使用此窗口启动、停止、返回、或快进;

○8在File I/O对话框,更改Address 为inp_buffer,Length为100,在Wrap Around中可以添加选中符号;

○9单击Add Probe Point。出现 Break/Probe Points对话框中的 Probe Points;

10在Probe Point列表中,显亮行为:VOLUME.C line 61 --> No ○

Connection;

11在Connect To区域中,单击下箭头,从列表中选中sine.dat;

12单击 Replace。Probe Point列表改向显示这个Probe Point连接到○

sine.dat文件;

13单击OK。File I/O对话框显示文件现在连接到Probe Point;

14单击OK,关闭File I/O对话框。

(12)显示图形

在这个例子中,可以查看关于时间的信号图形。

○1选择View/Graph/Time/Frequency;

○2在Graph Property Dialog对话框,更改Graph Title,Start Address,Acquisition Buffer Size, Display Data Size,DSP Data Type,Autoscale,和Maximum Y-value属性,下拉或重新拉大对话框,查看所有属性;

○3单击OK。出现Input Buffer的Input图形窗口;

○4右击Input graph窗口,从下拉菜单中选择Clear Display;

○5再次选择View/Graph/Time/Frequency;

○6这次更改Graph Title为Output,Start Address 为out_buffer,所有其他设置都正确;

○7单击OK,显示输出图形Output graph窗口,右击Output graph 窗口,从下拉菜单中选择Clear Display。

(13)激活程序和图形

至此,已经放置断点,传递主 PC中的数据,到目标DSP,可暂停目标DSP,或继续目标DSP 应用程序。但是,Probe Point不修改图形。本节建立断点(breakpoint),修改图形,使用Animate命令,遇到断点后继续自动执行。

○1在volume.c窗口,将光标放在调用dataIO的行上;

○2单击(Toggle Breakpoint),或按F9,选中空白区域放置红色图标,代表断点;

将断点breakpoin和探测点Probe Point放在同一行,这样传递数据和修改图形时目标只须暂停一次。

○3调整窗口,使得两个窗口都可以看见;

○4单击(Animate),或按F12运行程序。Animate=Run—halt —continue;

○5每遇到探测点Probe Point一次,CCS就从sine.dat文件获得100个数值,并将它们写入inp_buffer地址;

○6选择Debug/Halt,退出程序运行。

注意:DSP 在探测点暂停。CCS遇到探测点时,暂停目标。因此,如果使用探测点,不能保证实时性。

这一阶段开发,你可以检测算法,然后可以使用RTDX和DSP/BIOS分析实时特性。

(14)调整增益Gain

处理函数将输入缓冲器中的每个值乘以增益,并将结果放在输出缓冲器。

在while循环中执行下面的语句。

1.*output++ = *input++ * gain;

这个语句将inp_buffer中的数值乘以增益,并结果放在out_buffer中相映的位置。增益初始化设置在MINGAIN上,定义在头文件volume.h中。如

果修改输出,则需要修改增益。办法之一是,使用观察变量:

○1选择View/Watch Window,选中Watch1;

○2单击Name栏中的表达式图标,键入gain,作为观察的变量;

○3单击观察窗口中的白色空间,保存更改。在下面的例子中将立即出现这个数值;

○4如果程序已经暂停,单击(Animate),重新启动程序,观察前面建立的输入输出图形;

○5从Debug菜单,选中Halt;

○6在观察窗口,选中增益值(1),将其改为10;

○7从Debug菜单,选中 Animate 。注意更改 Output graph 中信号幅度,反映在下面的例子中的增益。

4.实验结果及分析

5.实验体会

通过本次实验,我熟悉了CCS集成开发环境,掌握了工程的生成方法,熟悉了SEED-DTK DAD实验环境,掌握了CCS集成开发环境的调试方法,为后续的实验打下了坚实的基础。

实验三常用的指令实验

1.实验目的

(1)了解DSP开发系统的组成和结构;

(2)熟悉DSP开发系统的连接;

(3)熟悉DSP的开发界面;

(4)了解C54x常用的寻址方式;

(5)了解C54x常用的指令的用法。

2.实验设备

计算机,CCS软件,DSP仿真器,实验箱。

3.实验内容及步骤

(1)系统连接

进行DSP实验之前,先必须连接好仿真器、实验箱及计算机,连接方式如下图所示:

(2)上电复位

在硬件安装完成后,确认安装正确、各实验部件及电源连接正常后,接通仿真器电源或启动计算机,此时,仿真盒上的“红色小灯”应点亮,否则DSP 开发系统与计算机连接有问题。

(3)运行CCS程序

待计算机启动成功后,实验箱220V电源置“ON”实验箱上电,启动CCS,此时仿真器上的“绿色小灯”应点亮,并且CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG接口或CCS相关设置存在问题,掉电,检查仿真器的连接、JTAG接口连接,或检查CCS相关设置是否正确。

(4)修改样例程序,尝试DSP其他的指令;

(5)填写实验报告;

(6)启动CCS并加载“exp01.out”;

(7)关闭所有窗口,本实验完毕。

4.实验结果及分析

可见XF灯以一定频率闪烁;单击“Halt”暂停程序运行,则XF灯停止闪烁,如再单击“Run”,则“XF”灯又开始闪烁。

5.实验体会

通过本次实验,我了解了DSP开发系统的组成和结构,熟悉了DSP开发系统的连接,熟悉了DSP的开发界面,了解了C54x常用的寻址方式,了解了C54x常用的指令用法,理论与实践相结合,更加有助于我们对所学知识的巩

固。

实验四数据存储实验

1.实验目的

(1)掌握TMS320C54的程序空间的分配;

(2)掌握TMS320C54的数据空间的分配;

(3)熟悉操作TMS320C54数据空间的指令。

2.实验设备

计算机,CCS软件,DSP仿真器,实验箱。

3.实验内容及步骤

(1)连接好DSP开发系统,运行CCS软件;

(2)在CCS的Memory窗口中查找C5402各个区段的数据存储器地址,在可以改变的数据地址随意改变其中的内容;

(3)在CCS中装载实验示范程序,单步执行程序,观察程序中写入和读出的数据存储地址的变化

程序代码如下:

;File Name:exp01.asm

;the program is compiled at no autoinitialization mode

.mmregs

.global _main

;声明_main可被其他模块引用,程序加载到目标板后,

;会自动跳转到标号为_main的汇编指令

STACK: .usect ".stack",10h

.text

_main:

stm #STACK+10h,sp ;设置堆栈指针

STM #0, CLKMD ; (to divider mode before setting) TstStatu1:

LDM CLKMD, A

AND #01b, A ;poll STATUS bit

BC TstStatu1, ANEQ

STM #0xF7FF, CLKMD ; set C5402 DSP clock to 10MHz

loop:

ssbx xf ;将XF置1,熄灭LED5

call delay ;调用延时子程序,延时

rsbx xf ;将XF置0,点亮LED5

call delay ;调用延时子程序,

b loop ;程序跳转到"loop"

;延时子程序

delay:

stm 270fh,ar3 ; 270fh=9999

loop1:

stm 0f9h,ar4 ; 0f9h=249

loop2:

banz loop2,*ar4-

banz loop1,*ar3-

ret

.end

(4)联系其他寻址方式的使用;

(5)启动CCS并加载“exp02.out”

○1用“View”下拉菜单中的“Memory”查看内存单元;

○2输入要查看的内存单元地址,本实验要查看0x1000-0x100F单元的数值变化,输入地址0x1000;

○3查看0x1000-0x100F单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;

○4单击“Halt”暂停程序运行;

○5查看0x1000-0x100F单元内数值的变化;

○6关闭各窗口,本实验完毕。

4.实验结果及分析

5.实验体会

通过本次实验,我掌握了TMS320C54的程序空间和数据空间的分配,熟悉了操作TMS320C54数据空间的指令。

实验五 I/O接口实验

1.实验目的

(1)了解I/O的扩展;

(2)掌握I/O口的操作方法;

(3)熟悉PORTR,PORTW指令的用途;

(4)了解数字量与模拟量的区别和联系。

2.实验设备

计算机,CCS软件,DSP仿真器,实验箱。

3.实验内容及步骤

(1)DSP-II型实验系统与DSP-I型实验系统相比较而言,数字量输入输出是完全封闭的,不需要任何跳线配置,只要根据自己的需求进行实验就可以了;(2)运行CCS程序,装载示范程序,调整K0-K7的开关,观察LP1-LP7LED亮灭的变化,以及输入和输出状态是否一致;(注意:输出为0时点亮灯)

(3)数字量输入信号全部拓展出来,用户可以进行自己的数字量采集实验。数字量输入接口主要有两个,如书中所述;

(4)启动CCS,并加载“exp03.out”

○1单击“Run”运行程序;

○2任意调整K0-K7开关,可以观察到对应LP0-LP7灯“亮”或“灭”;单击“Halt”,暂停持续运行,开关将对灯失去控制;

○3关闭各窗口,本实验完毕。

4.实验结果及分析

5.实验体会

通过本次实验,我了解了I/O的扩展,掌握了I/O口的操作方法,熟悉了PORTR、PORTW指令的用途,了解了数字量与模拟量的区别和联系,巩固了以前

学到的相关知识。

实验六定时器与中断实验1.实验目的

(1)掌握C54的定时器;

(2)掌握C54定时器的控制方法;

(3)学会使用定时器中断方式控制程序流程。

2.实验设备

计算机,CCS软件,DSP硬件仿真器,实验箱。

3.实验内容及步骤

定时器控制设计流程图:

(1)调入样例程序,装载并运行

○1将中断服务主程序补充完整,要求能够实现SEED_DEC2812板卡上指示灯D1和D3交替闪烁。

定时器控制程序:

interrupt void ISRTimer2(void)

{

CPUTimer2.InterruptCount++;

If(Led_Flag==1)

{ LED1_ON;

*LED3=0;

Led_Flag==0;}

Else{ LED1_OFF;

*LED3=1;

Led_Flag=1;

}

}

○2尝试将指示灯D1和D3交替闪烁的时间改为2S

定时器控制程序:

interrupt void ISRTimer2(void);

void main(void)

{ /*初始化系统*/

InitSysCtrl();

DINT;

IER = 0x0000;

IFR = 0x0000;

Led_Flag = 0;

/*初始化PIE*/

InitPieCtrl();

/*初始化PIE中断矢量表*/

InitPieVectTable();

/*初始化外设*/

InitPeripherals();

EALLOW;

PieVectTable.TINT2 = &ISRTimer2;

EDIS;

ConfigCpuTimer(&CpuTimer2,30,2000000);

StartCpuTimer2();

/*开中断*/

IER |= M_INT14;

EINT;

ERTM;

for(;;);

}

interrupt void ISRTimer2(void)

{

CpuTimer2.InterruptCount++;

if(Led_Flag==1)

{ LED1_ON;

*LED3=0;

Led_Flag=0;

}

else

{LED1_OFF;

*LED3=1;

Led_Flag=1;

} //添加程序,完成LED1,LED3交替闪烁

}

(2)定时器实验通过LP0-LP7LED来显示;

(3)启动CCS,并加载“exp04.out”

○1单击“Run”运行程序,可观察LED灯(LP0-LP7)以一定的间隔时间不停摆动;

○2单击“Halt”,暂停程序运行,LED灯停止闪烁;单击“Run”,运行程序,LED灯又开始闪烁;

○3关闭所有窗口,本实验完毕。

4.实验结果及分析

5.实验体会

通过本次实验,我熟悉了C54x的定时器,掌握了C54x定时器的控制方法,学会了如何使用定时器中断方式控制程序流程。

实验七 A/D转换实验

1.实验目的

(1)熟悉A/D转换的基本原理;

(2)掌握TLV320AD50的技术指标和常用方法;

(3)熟悉DSP的多通道缓存串口的应用方法;

(4)掌握并熟练使用DSP和AD50的接口及其操作。

2.实验设备

计算机,CCS软件,DSP实验箱,短路块及导线。

3.实验内容及步骤

(1)用短接块短接JAD1的INM和INMF,以及JAD2的INM和INMF,JD跳线断开,设置输入信号为交流,用短接块短接SS1的1,2脚,设置输出低频信号,短接S2的Sin脚,设置输出正弦波信号,则模拟信号产生单元out1输出为低频正弦波,用导线连接模拟信号产生单元的out1脚和JAD3的1脚;

(2)运行CCS软件,加载示范程序;

(3)按下F12运行程序,查看数据存储器中的内容变化;

(4)调节输入信号的频率或幅值,做同样的采样实验;

(5)观察采样结果;

(6)填写实验报告;

(7)启动CCS,并打开“exp06.out”文件

○1双击“exp06.pjt”及“Source”,可查看各源代码;加载“exp06.out”文件;

○2在“exp06.c”中“READAD50()”处,设置断点;

○3单击“Run”运行程序,程序运行到断点处停止;

○4用下拉菜单中的View/Graph的“Time/Frequency”打开一个图形观察窗口;

○5设置该图形观察窗口的参数,观察起始地址为0x1000H,长度为256的存储单元内的数据,该数据为输入信号经A/D转换之后的数据,数据类型为16位整型;

○6单击“Animate”运行程序,在图形观察窗口观察A/D转换后的数据波形变化;

○7单击“Halt”暂停程序运行;

○8用“View”的下拉菜单中“Memory”打开存储器数据观察窗口;

○9设置该存储器数据观察窗口的参数,选择地址为0x1000,数据格式C格式16进制数;

○10单击“Animate”运行程序,调整存储器数据观察窗口,并在该窗口中观察数据变化,A/D转换后的数据存储在地址为0x1000-0x10FF单元内,变化数据将变为红色;

○11单击“Halt”停止程序运行;

○12关闭“exp06.pjt”工程文件,关闭各窗口,本实验完毕。

4.实验结果及分析

5.实验体会

通过本次实验,我熟悉了A/D转换的基本原理,掌握了TLV320AD50的技术指标和常用方法,熟悉了DSP的多通道缓冲串口的应用方法,掌握并可以熟练使用DSP和AD50的接口及其操作。

生物化学实验六——酵母RNA的提取与含量测定 山东大学实验报告

实验六——酵母RNA的提取与含量测定 13生物基地 201300140059 刘洋 2015-05-10 同组者:张奕 一、实验目的 1.掌握稀碱法提取酵母RNA的原理和方法。 2.掌握紫外分光光度计的使用。 3.了解和掌握紫外吸收法测定RNA浓度的原理。 二、实验原理 酵母核酸中RNA含量较多,DNA则少于2%。RNA可溶于碱性溶液,当碱被中和后,可加乙醇使其沉淀,由此即可得到RNA制品。但是用碱液提取的RNA有不同的降解。 核酸及其衍生物,核苷酸、核苷、嘌呤和嘧啶有吸收紫外光的性质,其吸收高峰在260nm 左右,且一定浓度范围内其浓度与吸光度成正比(浓度为5μg/ml—45μg/ml吸光度与浓度成正比),利用此性质,可用RNA标准液绘制RNA吸光标准曲线(标准曲线的斜率为0.022-0.024左右),测定样品RNA浓度。由于蛋白质在280nm的光吸收,对核酸测定有一定的干扰作用,最大吸收峰在280nm处,原因是蛋白质组成中常含有酪氨酸和色氨酸等芳香族氨基酸。所以如果有蛋白质的干扰必须得先测260nm处的吸光度,再测280nm处的吸光度,通过计算消除其对核酸的影响。 三、实验器材 干酵母粉 电子天平 量筒 容量瓶100ml 磁力搅拌器 试管 100℃水浴锅pH试纸(pH1-14)烧杯 离心机 722型分光光度计锥形瓶 离心管 四、实验试剂 0.2%氢氧化钠溶液95%乙醇 无水乙醚酸性乙醇(5ml浓Hcl加入到500ml95%乙醇中混匀)RNA标准蛋白溶液(200μg/ml)

1.RNA的提取 (1)称取4g干酵母粉,放入200ml锥形瓶中,加入40ml0.2%的氢氧化钠溶液混匀,在沸水浴中煮沸30min中并冷却; (2)冷却后,把液体倒入离心管中,在4000r/min的条件下离心15min; (3)离心后留上清液加入95%的酸性乙醇40ml,边加边搅拌,静置5min左右,再4000r/min的条件下离心5min; (4)离心后保留沉淀,用20ml 95%乙醇分两次洗涤沉淀,每次洗后在3000r/min的条件下离心5min; (5)离心后的沉淀再用无水乙醇10ml洗涤两次,每次用3000r/min离心5min; (6)离心结束后,收集沉淀与滤纸上,称重备用。 2.RNA样液的配制 (1)取粗RNA0.2-0.25g与烧杯中,加入5mlNaOH溶液,搅拌,溶解,调成糊状。 (2)再加入蒸馏水40ml,搅拌混匀,调PH至7.0后,放入100ml容量瓶中定容。 (3)再分3-4次分别取2ml定容后溶液于100ml容量瓶中继续定容待测,并且把容量瓶依次编号为A、B、C。 3.RNA标准曲线的绘制 (1)取洁净的试管,依次标号为1-10、A、B、C后,按照下表分别往各试管中加所需液体,并用磁力搅拌器混匀。 (2)混匀后以0号试管为参比液,在260nm下测各试管的吸光度A,并根据0-9试管的吸光值绘制出RNA标准曲线,并最终得出样品的浓度。 六、注意事项 1.离心机的使用,使用前一定要将两离心液(包括外壳)在天平上调平,对称放置在离 心机上,防止力臂不对称而损坏离心机。 2.紫外分光光度计的使用,要先预热10分钟,往比色皿中到液体只需到三分之二即可, 防止液体溢出腐蚀仪器,爱护仪器。

DSP实验报告

一、综合实验内容和目的 1、实验目的 (1) 通过实验学习掌握TMS320F28335的浮点处理; (2) 学习并掌握A/D模块的使用方法; (3) 学习并掌握中断方式和查询方式的相关知识及其相互之间的转换; (4) 学习信号时域分析的方法,了解相关电量参数的计算方法; (5) 了解数字滤波的一些基本方法。 2、实验内容 要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T,信号的均方根大小V rms、平均值V avg、峰-峰值V pp。 其中,均方根V rms的计算公式如下: V= rms 式中N为采样点数,()u i为采样序列中的第i个采样点。 要求2:所设计软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,且小于3个波形周期大小。 要求3:对采集的数据需要加一定的数字滤波。 二、硬件电路 相关硬件:TMS320F28335DSP实验箱,仿真器。

硬件结构图 三、程序流程图 1、主程序流程图 程序的主流程图2、子程序流程图

参数计算的流程图 四、实验结果和分析 1、实验过程分析 (1) 使用的函数原型声明 对ADC模件相关参数进行定义:ADC时钟预定标,使外设时钟HSPCLK 为25MHz,ADC模块时钟为12.5MHz,采样保持周期为16个ADC时钟。 (2) 定义全局变量 根据程序需要,定义相关变量。主要有:ConversionCount、Voltage[1024]、Voltage1[1024]、Voltage2[1024]、filter_buf[N]、filter_i、Max、Min、T、temp、temp1、temp2、temp3、Num、V、Vav、Vpp、Vrm、fre。这些变量的声明请见报告后所附的源程序。 (3) 编写主函数 完成系统寄存器及GPIO初始化;清除所有中断,初始化PIE向量表,将程

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

DSP实验报告

东南大学自动化学院 实验报告 课程名称: DSP技术及课程设计 实验名称:直流无刷电机控制综合实验 院(系):自动化专业:自动化 姓名:ssb 学号:08011 实验室:304 实验组别: 同组人员:ssb1 ssb2 实验时间:2014年 6 月 5 日评定成绩:审阅教师:

目录 1.实验目的和要求 (3) 1.1 实验目的 (3) 1.2 实验要求 (3) 1.2.1 基本功能 (3) 1.2.2 提高功能 (3) 2.实验设备与器材配置 (3) 3.实验原理 (3) 3.1 直流无刷电动机 (3) 3.2 电机驱动与控制 (5) 3.3 中断模块 (7) 3.3.1 通用定时器介绍及其控制方法 (7) 3.3.2 中断响应过程 (7) 3.4 AD模块 (8) 3.4.1 TMS320F28335A 芯片自带模数转换模块特性 (8) 3.4.2 模数模块介绍 (8) 3.4.3 模数转换的程序控制 (8) 4.实验方案与实验步骤 (8) 4.1 准备实验1:霍尔传感器捕获 (8) 4.1.1 实验目的 (8) 4.1.2 实验内容 (9) 4.1.2.1 准备 (9) 4.1.2.2 霍尔传感器捕获 (9) 4.2 准备实验2:直流无刷电机(BLDC)控制 (10) 4.2.1 程序框架原理 (10) 4.2.1.1 理解程序框架 (10) 4.2.1.2 基于drvlib281x库的PWM波形产生 (11) 4.2.2 根据捕获状态驱动电机运转 (12) 4.2.2.1 目的 (12) 4.2.2.2 分析 (12) 4.3 考核实验:直流无刷电机调速控制系统 (13) 4.3.1 初始化工作 (13) 4.3.2 初始化定时器0.... . (13) 4.3.3初始化IO口 (13) 4.3.4中断模块.... (13) 4.3.5 AD模块 (14) 4.3.6在液晶屏显示 (15) 4.3.7电机控制 (17) 4.3.7.1 控制速度方式选择 (17) 4.3.7.2 控制速度和转向 (18) 4.3.8延时子函数 (19) 4.3.9闭环PID调速 (19)

山东大学信息安全实验报告

山东大学软件学院 信息安全导论课程实验报告 学号:201300301385 姓名:周强班级: 2013级八班 实验题目:缓冲区溢出实验 实验学时:日期: 实验目的: (1)了解缓冲区溢出的原理 (2)利用缓冲区溢出现象构造攻击场景 (3)进一步思考如何防范基于缓冲区溢出的攻击 硬件环境: 软件环境: WindowsXP操作系统 VS2008 实验步骤与内容: (1)了解缓冲区溢出的原理 缓冲区溢出简单来说就是计算机对接收的输入数据没有进行有效的检测(理情况下是程序检测数据长度并不允许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区本身的容量,而导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据。 看一个代码实例,程序如下: void function(char *str) { char buffer[16]; strcpy(buffer,str); } 上面的strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。

(2)利用缓冲区溢出现象构造攻击场景 首先打开Microsoft Visual C++,新建工程和cpp文件,复制实验指导书的代码进行编译连接: 单击运行按钮,然后第1次输入“zhouqianga”,第2次输入2个“ga”,即可看到输出“correct”。

按F10开始进行逐步调试: 当第一次执行gets()函数之前,内存情况如下图所示

在最新的版本中gets被认为是不安全的,gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。现在都被要求改为get_s。来防止溢出。 如下图所示。 (3)学习例子程序2:数据被执行 在xp系统下,直接运行Exploit-1.1.exe,如下图所示:

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

山东大学-中间件实验报告

山东大学软件学院 中间件技术课程实验报告

onResize(); }, error : function(e) { alert('初始化数据错误!'); } }); }); 并从bootstrap上找一些已经写好的布局,作为参考。加入到网页的界面中。 一、数据库操作的封装 1、AutoCreateDB——自动创建数据库 (1)可以根据下列query的结果判断数据库是否存在: Object obj = dao.QueryOnly("SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME=?",new Object[] { DATABASE }); 不存在则创建数据库,则执行executeCreate方法。 (2)AutoCreateDB自动创建数据库的表 遍历表,对于数据库中的每一个表,都执行“检测、若不存在则创建”操作,可以根据该query的结果判断数据库的表是否存在,不存在则创建数据库表,则执行executeCreate方法。 2、JdbcDao数据库相关操作 (1)在JdbcDao 中定义应用与数据库建立连接,其相关参数从 config.properties中获取: /**获取Connection连接*/ public Connection getConnection(){ Connection conn = null; System.out.println(JDBC_URL); System.out.println(USER_NAME); System.out.println(USER_PWD); try { conn = DriverManager.getConnection(JDBC_URL,USER_NAME,USER_PWD);

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)技术是用来抑制各种杂波,来实现检测或者显示运动目标的技术。利用它可以抑制固定目标的信号,显示运动目标的信号。以线性调频

山东大学软件测试实验报告

实验一。黑盒测试 一、等价类划分 电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或三位数字; (2)前缀:非'0'或'1'的三位数字; (3)后缀:4 位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 根据题目,分别将地区码、前缀、后缀进行分类,分析结果如下: 输入有效等价类编号无效等价类编号 地区码空白 1 包含其他字符 3 三位数字 2 少于三位 4 多于三位 5 前缀非0或 非1的三位数6 包含其他字符8 包含0的三位数9 包含1的三位数10 少于三位数11 多于三位数12 后缀四位数字7 包含其他字符13 少于四位数14 多于四位数15 根据上图的分析,可的测试用例 测试数据预期结果覆盖类地区码前缀后缀 空白555 4344 接受(有效)1、6、7 232545 4343 接受(有效)2、6、7 A23 322 4343 拒绝(无效) 3 21322 4343 拒绝(无效) 4 2323322 4343 拒绝(无效) 5 232 32A4343 拒绝(无效)8 232 208 4343 拒绝(无效)9 232 1114343 拒绝(无效)10

232 32 4343 拒绝(无效)11 232 322224343 拒绝(无效)12 232 322 4AS2 拒绝(无效)13 232 322 434拒绝(无效)14 232 322 434311拒绝(无效)15 三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明不是三角形、三角形是三边不等的、是等腰的、还是等边的。 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

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文件,选中,鼠标左键单击“打开”。

小鼠脾脏细胞原代培养及观察计数实验报告-山东大学

小鼠脾脏细胞原代培养及观察计数 【实验目的】 1.学习掌握细胞培养的基本原理以及具体方法,并对小鼠脾细胞进行原代培养; 2.掌握无菌操作的具体过程及无菌操作台的使用; 3.学习掌握染色法鉴别细胞的生死状态的原理及方法; 4.学习使用血球计数板对细胞总数及活细胞数进行计数; 【实验原理】 1.细胞培养 细胞培养指的是在无菌条件下,把动、植物细胞从组织中取出,在体外模拟体的生理环境,使离体的细胞在体外生长和繁殖,并且维持其结构和功能的一种培养技术。动物细胞培养可分为原代培养和传代培养。从供体获得组织细胞,在无菌条件下,用胰蛋白酶消化或机械分散等方法,将动物组织分散成单个细胞开始首次培养长出单层细胞的方法称为细胞的原代培养。当培养的动物细胞生长增殖达到一定密度,形成致密的单层细胞时,用胰蛋白酶将细胞消化分散成单细胞,从一个容器中以1:2或其他比例转移到另一个容器中扩大培养的方法,称为细胞的传代培养。传代培养的累计次数就是细胞的培养代数。 高等生物是由多细胞构成的整体,在整体条件下要研究单个细胞或某一群细胞在体的功能活动是十分困难的。但如果把活细胞拿到体外培养、增殖并进行观察和研究,则要方便和简单得多。被培养的动物细胞是非常好的实验对象和实验研究材料,对体外培养的活细胞进行研究可以帮助人类揭开生、老、病、死的规律,探索优生、抗衰老和防治各种疾病的途径和机制,也可以人为地诱导和改变细胞的遗传性状和特性,使其向有利于人类健康长寿的方向发展。因此动物细胞体外培养技术是研究细胞分子机制非常重要的实验手段,被广泛应用于医学、生物技术、基因工程等研究领域。 细胞培养的意义:具有其他生物技术无可比拟的优点;培养条件易改变和控制,便于单因子分析;便于人们直接对细胞结构、细胞生长及发育等过程的观察;在生物学的各个领域(如分子生物学、细胞生物学、遗传学、免疫学、肿瘤学及病毒学等)已被广泛应用。 细胞培养的局限性:在脱离机体复杂环境下,细胞培养条件与躯体环境有一定距离;观察到的结果有时难以正确反映机体的状况;细胞培养得到的产物少。 培养细胞的条件有水的质量、无菌环境,最适温度、渗透压、气体条件、最适PH、营养条件和培养基质等。 2.细胞死活鉴定 细胞生死状态的鉴别方法主要是化学染色法和荧光染色法。 活细胞和死亡细胞在生理技能和性质上主要存在一下差异: ①细胞膜通透性的差异:活细胞的细胞膜是一种选择性膜,对细胞起保护和屏障作用,只允许物质选择性地通过;而细胞死后,细胞膜受损,其通透性增加。基于此,发展出了以台盼蓝、伊红、苯胺黑、赤藓红、甲基蓝以及荧光染料碘化丙啶或溴化乙啶等为染料鉴别细胞生死状态的方法,上述染料能使死亡细胞着色,而活细胞不被着色。此外,应用植物质壁分离的性质也可鉴定植物细胞的生死状态。活细胞的原生质具有选择透过性,死细胞因其原生质的选择透过性已遭破坏,故与高渗透压溶液接触时不产生质壁分离。 ②代上的差异:活细胞中新代作用强,细胞的酶具有较强的活性和还原能力。基于此,发展处了以荧光素二乙酸酯(FDA)、荧光素二丙酸酯、荧光素二丁酸酯或荧光素二苯甲酰酯等酯化的荧光素鉴别细胞生死状态的方法,上述酯化的荧光素亲脂性提高,容易被细胞吸收进入,活细胞的酯酶具有较强的活性,可将酯化的荧光素分解而释放出能发荧光的荧光素,该物质不能自由透过活的细胞膜,积累在细胞,荧光显微镜下显示有明亮的绿色或黄绿色荧光;而死亡细胞的酯酶因失去活性,不能分解酯化的荧光素,荧光显微镜下显示不发光。另外,可用亚甲基蓝为染料鉴定酵母细胞的生死状态。亚甲基蓝是一无毒染料,氧化型为蓝色,还原型为无色。活细胞因具有较强的还原能力,能使亚甲蓝从蓝色的氧化型变成无色的还原型,故活的酵母细胞在用亚甲基蓝染色后显示无色;死亡酵母细胞或代缓慢的衰老酵母细胞,因无还原能力或还原能力极弱,使亚甲蓝仍处于氧化态,故呈现蓝色或淡蓝色。 3.血球计数板的使用

山东大学计算机网络实验报告

计算机网络试验报告 学院:计算机科学与技术学院 班级:13计基地

目录 一、实验简述 (3) 二、实验内容 (3) 实验一:双队列模型 (3) 一、实验模型 (3) 二、具体实现 (3) 三、结果展示 (4) 实验二:802.11 无线竞争模型 (6) 一、实验模型 (6) 二、具体实现 (6) 三、实验结果 (6) 1.图表结果 (6) 2.数据结果 (8) 三、实验感想 (8) 一、双队列单服务器 (8) 二、802.11无限竞争模型 (8)

一、实验简述 实验一要求采用尽量公平的调度算法,实现一个服务器服务2个队列的功能。且满足以下条件:到达包数是泊松过程(Poisson process);服务时间是指数分布(exponentially distributed);只有一部服务器(server);队列长度无限制;可加入队列的包数为无限。 实验二基于802.11协议采用二进制指数回退算法,没有中央控制器的调度算法实现对五个站的调度机制。要求尽可能达到公平。 二、实验内容 实验一:双队列模型 一、实验模型 本次计算机网络实验主要是关于服务器处理包的过程模拟,其中一个重要的基础排队模型是M/M/1 排队模型。M/M/1排队模型是一种单一服务器(single-server)的排队模型,有以下主要特点: 1.到达人数是泊松过程(Poisson process) 2.服务时间是指数分布(exponentially distributed) 3.只有一台服务器(server) 4.队列长度无限制 5.可加入队列的人数为无限 M/M/1排队模型在任何状态下,只有两种事情可能发生: 1.有人加入队列。如果模型在状态k,它会以速率λ进入状态k + 1 2.有人离开队列。如果模型在状态k(k不等于0),它会以速率μ进入状 态k -1 二、具体实现 1.赤字轮询算法 赤字轮询算法引入赤字的概念, 即在较长时间统计平均意义上平衡各条流所获得的吞吐量。因为各流之间不同业务造成的数据包大小的差异以及各流内部数据包大小的不同都可能造成在一个轮询周期内各虚拟队列所发送的字节数具有较大偏差。 DRR算法为每个虚拟队列维护一个赤字字节数, 使得本次轮询未能发送的字节会在下一次甚至下几次轮询过程中得到补偿。具体过程如下:将有

东南大学信息学院DSP课程第二次实验报告

数字信号处理第二次实验报告 --------IIR 数字滤波器的设计 姓名:印友进 学号:04012540 一、实验目的 (1)掌握双线形变换法及脉冲响应不变法设计IIR 数字滤波器的具体设计方法及其原理,熟悉用双线形变换法及脉冲响应不变法设计低通,高通和带通IIR 数字滤波器的计算机编程。 (2)观察双线形变换法及脉冲响应不变法设计的滤波器的频域特性,了解双线形变换法及脉冲响应不变法的特点。 (3)熟悉巴特沃思滤波器,切比雪夫滤波器和椭圆滤波器的频率特性。 二、实验原理 (1)脉冲响应不变法 用数字滤波器的单位脉冲响应序列()h n 模仿模拟滤波器的冲激响应()a h n ,让()h n 正好等于()a h n 的采样值,即()()a h n h n =,其中T 为采样间隔,如果以()a H n 及()H z 分别表示()a h n 的拉式变换及()h n 的Z 变换,则有 ) 2(1)(m T j s H T z H m a e z sT ∑∞-∞==+=π (2)双线性变换法 S 平面与z 平面之间满足以下映射关系: 1 1 1212,112 T s z s z T T z s --+ -=?= +- s 平面的虚轴单值地映射于z 平面的单位圆上,s 平面的左半平面完全映射到z 平面的单位圆内。 双线性变换不存在混叠问题。双线性变换是一种非线性变换(tan 2 2 T ω Ω= ),这种非线性引起的幅频特性畸变可通过预畸而得到校正。 IIR 低通、高通、带通数字滤波器设计采用双线性原型变换公式:

(3)实验中有关变量的定义 c r s f f At f T δ通带边界频率阻带边界频率通带波动 最小阻带衰减采样频率采样周期 (4)设计一个数字滤波器一般包括以下两步 a. 按照任务要求,确定滤波器性能指标 b. 用一个因果稳定的离散时不变系统的系统函数去逼近这一性能要求 (5)数字滤波器的实现 对于IIR 滤波器,其逼近问题就是寻找滤波器的各项系数,使其系统函数逼近一个所要求的特性。先设计一个合适的模拟滤波器,然后变换成满足约定指标的数字滤波器。 用双线形变换法设计IIR 数字滤波器的过程: a. 将设计性能指标中的关键频率点进行“预畸” b. 利用“预畸”得到的频率点设计一个模拟滤波器。 c. 双线形变换,确定系统函数 三、实验内容 (1)fc=0.3kHz ,δ=0.8dB ,fr=0.2kHz ,At=20dB ,T=1ms ;设计一切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。 源程序: clc,clear; % 预畸变,W=2/T*tan(w/2) % w 为数字角频率,w=2*pi*fc/fs

山东大学嵌入式实验报告

嵌入式实验报告 班级:电信工X班姓名:XXX 学号:20120012XXXX 实验一、ARM汇编指令实验-简单数据搬移实验 实验目的: 熟悉实验开发环境,掌握简单ARM汇编的使用方法 实验内容 熟悉开发环境并使用LDR/STR,MOV等指令访问寄存器或存储单元; 使用ADS/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。 实验要求 (1)按照前面叙述介绍的方法,在ADS下创建一个工程asmlabl,定义两个变量x,y和堆栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD查看寄存器和memory和寄存器中数据的变化。 (2)在指令后面加上适当注释,说明指令功能。 (3)指出程序执行后各相关寄存器及存储器单元的具体内容。 程序代码截图如下: 程序运行结果截图:

由实验结果可知堆栈的第二个单元中存放了x+y的值6D 练习题 编写程序实现对一段数据的最大值和最小值搜索,最大值存在于max变量之中,最小值存在于min变量之中。提示:数据的定义采用伪指令:DCD来实现。 基本思路:利用R0做基地址,将R1,R2分别放入第一单元的内容,利用R3做循环计数,利用R4遍历读取第2至最后一个数据,如果R1的数据小于新读入的R4数据则将R4的内容存入R1,如果R2的内容大于R4的内容则将R4的内容存入R2,。遍历完成之后,R1将存放最大数据,R2将存放最小数据。 程序代码截图如下: 程序运行结果截图:

实验二ARM汇编指令实验2-字符串拷贝实验 实验目的 通过实验掌握使用LDB/STB,b等指令完成较为复杂的存储区访问和程序分支,学会使用条件码。 实验内容

DSP实验报告

数字信号处理课程实验报告 题目:P30-2-6和P63-3-22-d 信道编码 专业:xxx 学号:xxx 姓名:xx

一、书上习题运算 一、实验内容 2.6一个特定的线性和时不变系统,描述它的差分方程如下:y(n)+0.1y(n-1)-0.06y(n-2) = x(n)-2x(n-1)求系统脉冲响应的前10个样本。 如果此系统输入为x(n)=[5+3cos(0.2πn)+4sin(0.6πn)]μ(n),在0≤n≤20求出y(n)的响应。 3.22计算下列序列的N点循环卷积z(n)。 D x1(n)=nR N(n);x2=(N-n)R N(n);N=10 二、实验程序代码 2.6程序: function[x,n]=impseq(np,ns,nf) if ns>np|ns>nf|np>nf error('输入位置参数不满足ns<=np<=nf') else n=[ns:nf]; x=[(n-np)==0]; end a=[1,0.1,0.06];b=[1-2]; x=impseq(0,0,20); h=filter(b,a,x); n=0:20; x=5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n); y=conv(h,x) stem(y) 3.22程序: function y=circonvt(x1,x2,N) x1=[x1,zeros(1,N-length(x1))]; x2=[x2,zeros(1,N-length(x2))]; m=[0:N-1]; x2m=x2(mod(-m,N)+1); H=toeplitz(x2m,[0,x2(2:N)]); y=x1*H; n=0:9; x1=n; x2=10-n; y=circonvt(x1,x2,10) stem(y) 三、实验结果 2.6

山东大学微生物生理生化反应实验报告

山东大学实验报告2015年 12 月 7日 姓名黄新迪系年级2014级生科3班组别5 同组者高岩、国文洁、梁萧 科目微生物学实验题目微生物的生理生化反应 微生物的生理生化反应 一、【实验目的】 1. 证明不同微生物对各种有机大分子物质的水解能力不同,从而说明不同微生物有着不同的酶系统。 2.掌握进行微生物大分子物质水解试验的原理和方法。 3.了解糖发酵的原理和在肠细菌坚定中的重要作用。 4.掌握通过糖发酵鉴别不同微生物的方法。 5. 了解吲哚和甲基红试验的原理以及其在肠道细菌鉴定中的意义和方法。 二、【实验仪器与试剂】 菌种:枯草芽孢杆菌、大肠杆菌、铜绿假单胞菌、普通变形杆菌、产气肠杆菌 培养基:培养基:固体淀粉培养基、固体油脂培养基(大分子水解试验);葡萄糖发酵培养基、乳糖发酵培养基(内装有倒置的德汉氏小管)(糖发酵试验);蛋白胨水培养基(吲哚试验);葡萄 糖蛋白胨水培养基; 试剂:卢戈氏碘液、乙醚、吲哚试剂、甲基红试剂、蒸馏水、 仪器:酒精灯、接种针、培养皿、试管、试管架、烧杯、量筒、德汉氏小管 三、【实验原理】 1.在所有生活细胞中存在的全部生物化学反应称之为代谢,代谢过程主要是酶促反应过程,由于各种 微生物具有不同的酶系统,所以他们能利用的底物不同,或虽利用相同的底物但产生的代谢产物却不同,因此可以利用各种生理生化反应来鉴别不同的细菌,尤其是在肠杆菌科细菌的鉴定中,生理生化试验占有重要的地位。

2.淀粉的水解:由于微生物对淀粉这种大分子物质不能直接利用,必须靠产生的胞外酶将大分子物质 分解才能被微生物吸收利用.胞外酶主要为水解酶,通过加水裂解大的物质为较小的化合物,使其能被运输至细胞内.如淀粉酶水解淀粉为小分子的糊精,双糖和单糖;而淀粉遇碘液会产生蓝色,因此能分泌胞外淀粉酶的微生物,则能利用其周围的淀粉,在淀粉培养基上培养用碘处理其菌落周围不呈蓝色,而是无色透明圈,据此可分辨微生物能否产生淀粉酶。 3.油脂的水解:在油脂培养基上接种细菌,培养一段时间后观察菌苔的颜色,若出现红色斑点,则说 明此中菌可产生分解油脂的酶。 4. 糖发酵试验:糖发酵试验是常用的鉴别微生物的生化反应,在肠道细菌的鉴定上尤为重要.绝大多数 细菌都能利用糖类作为碳源和能源,但是它们在分解糖类物质的能力上有很大的差异.有些细菌能分解某种糖产生有机酸(如乳酸,醋酸,丙酸等)和气体(如氢气,甲烷,二氧化碳等);有些细菌只产酸不产气. 例如大肠杆菌能分解乳糖和葡萄糖产酸并产气。产酸后再加入溴甲酚指示剂后会使溶液呈黄色,且德汉氏小管中会收集到一部分气体。若细菌不能使糖产酸产气,则最后溶液为指示剂的紫色,且德汉氏小管中无气体。 5.IMVC实验主要用于快速鉴别大肠杆菌和产气肠杆菌。 (1)吲哚试验:是用来检测吲哚的产生,在蛋白胨培养基中,若细菌能产生色氨酸酶,则可将蛋白胨中的色氨酸分解为丙酮酸和吲哚,吲哚与对二甲基苯甲醛反应生成玫瑰色的玫瑰吲哚。但并 非所有的微生物都具有分解色氨酸产生吲哚的能力,所以吲哚实验可以作为一个生物化学检测 的指标。大肠杆菌吲哚反应阳性,产气肠杆菌为阴性。 (2)甲基红试验(MR):某些细菌在糖代谢过程中分解葡萄糖生成丙酮酸,后者进而被分解产生甲酸,乙酸和乳酸等多种有机酸,培养基就会变酸,使加入培养基中的甲基红指示剂由橙黄色转 变为红色,即甲基红反应。大肠杆菌为阳性,产气肠杆菌为阴性。 四、【实验步骤】

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) -+= -<<

山东大学嵌入式实验报告

嵌入式实验报告 班级:电信工X班姓名:XXX 学号:20120012XXXX 实验一、ARM汇编指令实验-简单数据搬移实验 实验目的: 熟悉实验开发环境,掌握简单ARM汇编的使用方法 实验内容 熟悉开发环境并使用LDR/STR,MOV等指令访问寄存器或存储单元; 使用ADS/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。 实验要求 (1)按照前面叙述介绍的方法,在ADS下创建一个工程asmlabl,定义两个变量x,y和堆栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD查看寄存器和memory和寄存器中数据的变化。 (2)在指令后面加上适当注释,说明指令功能。 (3)指出程序执行后各相关寄存器及存储器单元的具体内容。 程序代码截图如下: 程序运行结果截图:

由实验结果可知堆栈的第二个单元中存放了x+y的值6D 练习题 编写程序实现对一段数据的最大值和最小值搜索,最大值存在于max变量之中,最小值存在于min变量之中。提示:数据的定义采用伪指令:DCD来实现。 基本思路:利用R0做基地址,将R1,R2分别放入第一单元的内容,利用R3做循环计数,利用R4遍历读取第2至最后一个数据,如果R1的数据小于新读入的R4数据则将R4的内容存入R1,如果R2的内容大于R4的内容则将R4的内容存入R2,。遍历完成之后,R1将存放最大数据,R2将存放最小数据。 程序代码截图如下: 程序运行结果截图:

实验二 ARM 汇编指令实验2-字符串拷贝实验 实验目的 通过实验掌握使用LDB/STB ,b 等指令完成较为复杂的存储区访问和程序分支,学会使用条件码。 实验内容

相关文档
相关文档 最新文档