课程设计实验总结

2022-03-26 版权声明 我要投稿

年复一年,日复一日,当一段工作完成后,或是一个项目结束后,回首工作与项目的过程,从中反思不足之处,可获得宝贵的成长经验。因此,我们需要写一份工作报告,但如何写出重点突出的总结呢?今天小编为大家精心挑选了关于《课程设计实验总结》,供大家阅读,更多内容可以运用本站顶部的搜索功能。

第一篇:课程设计实验总结

数电实验课程设计总结报告(电子表)

数字电路课程设计 数字定时器:

课程设计任务书:

1)集成数字定时器 2)技术指标

1、设计一个数字定时器,要求它具有数字钟的功能,又可以按预定时刻发出控制信号对被控对象实施开关控制

2、时钟功能:具有24小时计时方式,显示时、分、秒。计时范围要求自00点00分00秒到23点59分59秒

3、要求具有校时电路,可对小时、分、秒分别校准。

4、可以同时设置四个以上的预定时刻,时刻的预选以5分钟为单位。

5、被控对象在达到预选时刻后,电铃连续响10秒,而监听器在10秒内断续鸣叫5次,即想一秒停一秒。

集成数字定时器的组成和工作原理

数字定时器一般由振荡器、分频器、计数器、译码器、显示器及部分扩展电路等组成,其基本逻辑功能框图如下所示:

数字电子钟的基本组成:

振荡器

振荡器是数字电子钟的核心,其作用是产生一个频率标准,即时间标准信号,然后再由分频器生成秒脉冲,所以,振荡器频率的精度和稳定度就基本决定了数字电子钟的准确度,为产生稳定的时间标准信号,一般采用石英晶体振荡器。如果精度要求不是很高的话我们可以采用由集成逻辑门与RC组成的时钟源振荡器。一般而言,选用石英晶体振荡器所选用的晶振频率为32768Hz,再通过15级2分频集成电路得到1Hz的标准秒脉冲。

分频器

振荡器产生的时标信号频率很高,要使它变成用来计时的“秒”信号,需要若干级分频电路,分频器的级数和每级分频次数要根据时标信号的频率来决定。其功能主要有两个:一是产生标准秒脉冲信号,二是提供功能扩展电路所需的信号。

计数器

有了“秒”信号了就可以根据60秒为一分,60分为一小时,24小时为一天的进制,分别选定没“秒”、“分”、“时”的计数器。从这些计数器的输出可得到一分、一小时、一天的时间进位信号。在秒计数器钟因为是60进制通常用两个十进制计数器的集成片组成,其中秒个位是十进制的、十位是6进制的。可采用反馈归零法变“秒”十位为6进制,实现秒的60进制,同样,分计数器的与秒的一样,只是时计数器里需要变成24进制,也用反馈归零法实现。

译码器及显示器

因为计数器全部采用8421BCD码十进制计数集成芯片,所以“秒”、“分”、“时”的个位和十位都有四个状态输出端(Qa、Qb、Qc、Qd)。将这些输出端,接至译码电路,就可产生驱动七段数码显示器的信号。常用的集成芯片有74LS48和4511等。

校时电路

当数字钟接通电源或者计时出现误差时需要校正时间,校时电路的要求是:在小时校正时不影响分和秒的正常计数;在分校时时不影响时和秒的正常计数。

方案的实现:

秒脉冲发生器的设计:

本设计采用CD4060CMOS集成电路十四位二进制计数器/分频器来实现。

电路由两部分组成。2hz信号在经过一级D触发器构成的二分频电路就获得了1HZ的秒脉冲。

计数器的设计:

分和秒计数器都是模数为60的计数器,可以选用74LS90芯片级联组成模数为60的计数器。也可以用4518双重BCD加法计数器芯片,采用反馈归零法实现秒60进制,而时计数器是一个二十四进制的特殊进制计数器,其要求是“24翻一”,计数规律是:当数字时钟运行到“23时59分59秒”时计数器再加一个秒脉冲时数字钟自动运行到“00时00分00秒”,实现日常生活的24小时计数制,在次可以选用74LS74与74LS191来实现,也可以选用4518集成芯片采用反馈归零法完成二十四进制。由于4518使用起来简单,所用的芯片也少故本例采用4518来实现。

校时电路的设计:

由设计的要求可知该电路对校时电路的要求还是比较高的,设计的校时电路中三个控制开关S1,S2,S3分别用来实现“时”、“分”、“秒”的校准,开关处于正常位置分别接高电平,所以“时”、“分”、“秒”计数器按正常计数。当将S1置校时位置时,S1闭合,由分频器送来0.5秒的脉冲信号直接进入“时”计数器,使小时指示每0.5秒计一个字达到快速校时的目的。当“时”校准后,复位开关S1,再按下开关S2置“校分”位置,和校时的原理一样,将0.5秒的脉冲信号接入“分”计数器的CP端使“分”快速计数。当分校到合适的数字后,复位开关S2,数字钟进入正常走时状态。“秒”校准开关S3控制着一RS触发器(可以选用74LS74双D触发器集成片中的一D触发器来实现RS的功能)的状态。当S3置一“正常”位置时,触发器置“1”, 端输出低电平,关闭D8,Q端输出高电平,使D7打开,“秒”信号正常进入“秒”计数器,使时钟正常计时。若开关S3置于“秒校”位置,则触发器置零,Q端输出低电平,封锁D7,“秒”信号不能通过,而 端输出高电平,打开D8,使0.5秒的信号进入“秒”计数器,此时“秒”计数器快速计时。待“秒”校准后,松开复位S3,使其恢复置正常位置。其中周期为0.5秒的脉冲信号取自分频器。另外开关S

1、S

2、S

3、在搏动时可能会产生抖动的现象,为了减少这种现象的发生可以在每个开关的两端各接一个电容以缓解抖动。

电路设计好之后先通过仿真来验证电路的可行性:

经仿真之后,进行安装与调试:

在实验面板上组装数字式电子钟时,应严格按图连接引脚,注意走线整齐,布局合理,器件的悬空端、清“0”端,置“1”端要正确处理。首先对照图对应安装好各元器件。并通过检查确认没问题才进行下一步操作。另外芯片、数码管、三极管、蜂鸣器„„的安装一定要注意极性。千万别装反了。插拔芯片时要注意用力均匀,避免芯片管脚在插拔过程中变弯、折断。实践证明,新安装的电路板往往难以达到预期的效果,这是因为在设计的时候不可能周全地考虑元件的误差、器件参数的分散性、寄生参数等各种各样的客观因素。此外,电路板的安装中仍存在有可能没有查出来的错误。需要通过电路板的整体测试与调整,才可发现设计方案中的不足,之后查出电路安装中的错误并采取措施加以改进和纠正,就可以使之达到预定的技术要求。

电路安装完毕后,必须在不通电的情况下,对电路板进行认真细致的检查,以便纠正安装错误。检查应特别注意:元器件引脚之间有无短路、断路。IC座是否插反。电源的正、负极性有没有接反,正、负极之间有没有短路现象,电源线、地线是否接触良好。

设计心得及体会

这次实验总体来说完成的比较顺利,虽然中间也有一些考虑不周的小失误,但总体还成成功完成了实验。

本次我们组所选择的实验题目是一个纯数电的题目。相对于模电题目来说,这个题目所使用的芯片较多,超过以往历次实验,使用了10片以上的芯片,如此多的芯片导致线路连接起来十分复杂,使用了至少100根导线连接,复杂的电路要求十分准确的连接线路,在初次连接时就要确保正确,一个小小的连接错误就可能使整个系统失效,并且检查起来十分困难。我们在初次连接时使用了分块连接分块检查功能的方法,每连接一部分电路就验证一次功能,确保电路的正确性。

虽然电路连接很复杂,但是相对于模拟电路,调试起来十分轻松,没有模电各种滤波,系统参数的调节等麻烦。在仿真成功,电路连接正确的情况下,系统经过简单调试,很快工作了起来。但在定时电路中出现了一些小问题,在经过电路修改后,系统正常工作了起来。

这次实验中我们第一次使用所学的知识做了个具有完整功能的系统,虽然功能只与5元的电子表类似,但始终是我们的劳动成果,为我们以后设计更加复杂的系统做好准备。

第二篇:dsp课程设计实验报告总结

DSP课程设计总结

(2013-2014学年第2学期)

目 :

专业班级 :

电子1103

学生姓名 :

号 :

11052304

指导教师 :

设计成绩 :

2014 年 6 月

1 目

一 设计目的--------3 二 系统分析--------3 三 硬件设计 3.1 硬件总体结构----------------------------3 3.2 DSP模块设计----------------------------4 3.3 电源模块设计---------------------------4 3.4 时钟模块设计---------------------------5 3.5 存储器模块设计-------------------------6 3.6 复位模块设计---------------------------6 3.7 JTAG模块设计-------------------------7 四 软件设计

4.1 软件总体流程----------------------7 4.2 核心模块及实现代码--------8 五 课程设计总结----------------------14

2

一、 设计目的

设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。

二、 系统分析

1.1设计要求 硬件要求:

(1)使用TMS320VC5416作为核心芯片。 (2)具有最简单的led控制功能。 (3)具有存放程序的外部Flash芯片。 (4)外部输入+5V电源。 (5)绘制出系统的功能框图。

(6)使用AD(Altium Designer)绘制出系统的原理图和PCB版图。 软件要求:

利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。在DSP中采集信号,并且对信号进行频谱分析,滤波等。通过键盘选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD上显示。

三、 硬件设计

3.1 硬件总体结构

3

3.2 DSP总体结构

3.3 电源模块设计

3.4 时钟模块设计

4

3.5 存储器模块设计

3.6复位模块设计

5

3.7 JTAG模块设计

四、 硬件设计

4.1 软件总体流程

6

4.2核心模块及实现代码 1.采集数据去直流

in_x[m] = port8002 & 0x00ff;//读取数据

m++;

intnum = m;

if (intnum == Len)

//以256个点为采样周期 { intnum = 0; xavg = 0.0; for (s=0; s

7

xavg = xavg/Len;//采样均值 for (s=0; s

//输入实部 pi[s] = 0;

//输入虚部 for (p=0; p

xmid[0] = x[s]; r = 0; rm= 0;

for (j=0; j

} y[s] = rm;

r = xmid[j] * h[j]; rm = rm + r; xmid[FLen-p-1] = xmid[FLen-p-2];

4. LCD显示

SendCMD(CLEAR);

showperson();

Delay(1);

//----------------------------

SendCMD(CLEAR);

SendCMD(0x0080);

//设定DDRAM的地址在第一行 80H

delay_100us();

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

{

SendDat(data_buff3[i]);

delay_100us();

asm(" nop "); } asm(" nop ");

SendCMD(0x0090);

shownum(f1);

//------------------------------ SendCMD(0x0088);

//设定DDRAM的地址在第二行 90H delay_100us(); for(i =0;i<16;i++)

{

SendDat(data_buff4[i]);

delay_100us(); }

SendCMD(0x0098);

shownum(f2); 4.3 软件实验效果图 1.去直流

12

2.滤波前fft

3.滤波后fft

13 4.窗口函数

五 课程设计总结

在为期两个多星期的综合设计中,重新熟悉了一下AD和CCS软件的操作 。在画原理图时,各元件的连接及封装形式都应参照手册。只有深刻了解各管脚的功能,才能准确快速地画好原理图。画好原理图后,要先编译一下看是否有连接错误。

如果原理图有所改变,可以在PCB中重新导入。如果元器件管脚或IO引脚变绿,可能是间距违反了规定的rule。可以将rule里的间距改小一点。在pcb连线过程中,我发现 移动clk时钟器件,其管脚变绿,但rule并无问题。后经查阅资料,取消了Drc功能,才恢复正常。在连接滤波电容时,将滤波电容靠近其滤波元器件。

在软件设计过程中,前两天一直没有搞清楚设计要求,进展缓慢。首先了结了一下各个模块程序的输入输出变量的含义,只有 这样才能正确地调用各个函数。在计算频率时,其实我只计算了一个频率。

14 输入是一个混频信号,由于左右对称,在128点内可得到两个最大幅度,0到30(或其他分界点亦可,视滤波效果而言),比较一次,30到128,再比较一次。滤波函数仅仅只是计算了窗口函数,故还需将输入信号函数和窗口函数进行卷积得到最终结果。

在编写LCD显示模块程序时,经常出现乱码。Unsigned

char类型的字符串数组,一个汉字相当于两个英文字母,如果地址1没有安排好容易出现乱码。

15

第三篇:无线课程设计实验报告

扩频实验报告

学 院: 电子信息工程学院

专 业: 通信工程 组员: 12211008 吕兴孝 12211010 牟文婷 12211096 郑羲 12211004 冯顺 任课教师: 姚冬萍 1实验四 扩频实验

一、实验目标

在本实验中你要基于labview+usrp平台实现一个扩频通信系统,你需要在对扩频技术有一定了解的基础上编写程序,完成所有要求的实验任务。在这一过程中会让你对扩频技术有更直接和感性的认识,并进一步掌握在labview+usrp平台上实现通信系统的技巧。

二、实验环境与准备

软件环境:labview 2012(或以上版本);

硬件环境:一套usrp和一台计算机;

实验基础:了解labview编程环境和usrp的基本操作;

知识基础:了解扩频通信的基本原理。

三、实验介绍

1、扩频通信技术简介

扩频通信技术是一种十分重要的抗干扰通信技术,可以大大提高通信系统的抗干扰性能,在电磁环境越来越恶劣的情况下,扩频技术在诸多通信领域都有了十分广泛的应用。

扩频技术简单来讲就是将信息扩展到非常宽的带宽上——确切地说,是比数据速率大得多的带宽。在扩频系统中,发端用一种特定的调制方法将原始信号的带宽加以扩展,得到扩频信号;然后在收端对接收到的扩频信号进行解扩处理,把它恢复为原始的窄带信号。

扩频系统之所有具有较强的抗干扰能力,是因为接收端在接收到扩频信号后,需要通过相关处理对接收信号进行带宽的压缩,将其恢复成窄带信号。对于干扰信号而言,由于与扩频信号不相关,所以会被扩展到很宽的频带上,使之进入信号带宽内的干扰功率大幅下降,即增加了相关器输出端的信号/干扰比。因此扩频系统对大多数人为干扰都具有很强的抵抗能力。

22、发射端程序简介

本实验包括发射端和接收端两个主程序,其中发射端主程序top_tx的前面板如图1所示。

图1 发射端程序前面板

前面板上部的选项卡控件中可以配置各项参数。在硬件参数部分中可以配置usrp的ip地址、载波频率等参数;在信号参数部分中可以配置调制方式、设配采样速率、成型滤波器等参数;在信道模型参数部分中你可以选择不同的信道模型并设置噪声功率;在右侧你可以设置扩频码的长度。在前面板下方为显示界面,包括发送信号的时域/频域波形以及星座图和眼图。

发射端的程序框图主要由两部分组成。

主程序框图左侧的transmitter子程序完成发射信号的生成、扩频、调制等功能,程序框图如图2所示。

3图2 transmitter的程序框图

3、接收端程序简介

接收端主程序top_rx的前面板如图3所示。

图3 接收端程序前面板

与发射端程序类似,接收端主程序前面板上部为各项参数的输入,例如硬件参数、扩频参数、同步参数等。前面板下部显示生成的图形,包括星座图、眼图、信噪比/误码率曲线等。 接收端端的程序框图也主要由两部分组成。

主程序框图右侧的receiver.vi子程序主要完成发射信号的接受、同步、解扩和解调等功能,程序框图如图3所示。 4 图3 receiver.vi 的程序框图

matched filter子程序完成匹配滤波;其中rx init子程序是接收机的初始化;

synch子程序使同步模块,完成收发同步;channel estimated子程序完成信道估计;equalize子程序的作用是信道均衡;strip control子程序用来删除控制信息,即训练序列;decode子程序实现信号的解调;de-dsss子程序用来实现解扩;error detect子程序的作用是计算误码率。

接收端主程序框图的其他部分主要用来完成usrp的配置、计算信噪比/误码率曲线以及生成所需的图形。

四、实验任务

1、ds-ss.vi子程序

ds-ss子程序的作用是对信源进行直接扩频(direct sequence spread spectrum)。其原理是利用10个以上的chips来代表原来的0或1,使得原来较高功率、较窄的频谱变成具有较宽频的低功率频谱,这种特性类似于噪声功率谱,因此接收端只有知道正确的扩频码才能进行正确的接收,进而增加了传输的可靠性。它是一种数字调制方法,具体说,就是将信源与一定的pn码(伪随机码、chip)进行同或运算。例如,在发射端用11000100110代替1,用00110010110代替0,这个过程就实现了扩频。上述过程如图4所示。

5 图4 扩频的实现过程

前面板:

图6 ds-ss前面板 ds-ss程序框图:

图7 ds-ss程序框图

实验步骤:

1、首先产生所需长度的伪随机序列(pn序列): pn序列(pseudo-noise sequence)即伪噪声序列,这类序列具有类似随机噪声的一些统计特性,但和真正的随机信号不同,它可以重复产生和处理,故称作

pn码最见的用途是在扩频系统中用来扩展信号频谱;伪随机噪声序列。此外pn 码也可以用来作为信源信息。

图8 mt generate bits输入输出

其中total bits为生成的伪随机序列的总长度、pn sequence order用来设定pn序列的循环周期(如果pn sequence order设为n,则周期为)、seed in指定pn序列生成器移位寄存器的初始状态(默认为0xd6bf7df2);output bit stream为伪随机序列的输出。

此外mt generate bits函数还有user defined模式,在此模式下函数可以 根据用户自定义的输入序列生成所需长度的循环序列。其输入输出如图9所示:

图9 user defined模式的输入输出 其中user base bit pattern为用户指定的序列,控件会不断循环用户指定的序列output bit stream为生成序列的直到输出序列的长度达到total bits所设定的值。输出。

本例中用到了三个mt generate bits函数,分别用来生成保护序列、同步序列和信息序列。

2、利用产生的序列对信源序列进行扩展:

图10 扩频模块

输入信源bit码、pn扩频码、误差;输出扩频码、误差。

7

2、de-dsss.vi子程序

de-dsss子程序的作用是在接收端实现对信号的解扩。解扩操作即扩频操作的逆过程。继续使用上面的例子,当你在发射端用11000100110代替1,而用00110010110代替0后,在接收机处只要把收到的序列是11000100110恢复成1,而00110010110恢复成0,这就是解扩。上述过程如图0所示。

图11 解扩的实现过程

前面板:

图12 de-dsss前面板 de-dsss程序框图:

8 图13 de-dsss程序框图

五、实验步骤:

1、产生所需长度的并与发射端相同伪随机序列(pn序列),同ds-ss;

2、然后利用产生的序列对接收信号进行解扩:

输入:将信源与pn序列通过“数组大小”模块返回其长度,相除得到的商作为搜索深度;输入经信道传输后的扩频码、与发送端同步的扩频序列以及误差。输出得解扩后码序列以及误差。

3、实验验证

在ds-ss子程序中,你可以手动输入一串0/1作为信源序列,并设置好pn序列的长度(设为n)。单独运行ds-ss子程序,观察输出的序列长度是否扩展了n倍,并注意输出序列中pn码是否与相应的0或者1对应。验证成功的话便表明你的ds-ss子程序编写正确。并利用类似的方法验证de-dsss子程序的正确性。

然后验证发射端主程序是否能正确的发射我们想要的扩频信号。首先正确的

连接usrp并合理的配置发射端的各项参数,运行程序。

然后你可能会看到如图

9至图所示的发射信号时域波形和频域波形。

图14不扩频的时域信号

图16扩频后的时域信号

图17扩频后的频域信号 图15不扩频的频域信号

10可以看出经过扩频的发射信号与不经过扩频的发射信号相比,在频域上进行

了展宽,在时域上变得更加密集。这与扩频的基本原理相符,说明发射端的设计基本正确。

在接收端,我们需要使得参数能够与发射端匹配,这样才能正常的接收。特

别需要注意capture time、packet length和rx sample rate这几个参数,你首先需要理解它们的意义,这样才能够正确的配置它们。如果你在发射端没有修改默认参数的话,接收端的默认参数恰好能够与发射端匹配。你需要同时运行发射端和接收端程序,在发射端正确运行时观察接收端能否正确接收。程序会计算当前信噪比下的误码率,并逐渐增大信噪比、最终得出一条信噪比/误码率曲线,如图3-4- 11所示。你可能需要稍等一段时间才能够看到程序运行完成的结果。在接收端程序运行的同时,你可以进入receiver子程序中的ber detected子程序,在里面观察当前信噪比接收到的数据数和误码数,如图3-4- 12所示。

图18误码率曲线 图19运行时的数据显示

然后你可以尝试改变收发端的各项参数,观察不同参数对运行结果的影响。最后你需要按照要求完成实验报告。

六、实验结果 qpsk: 将usrp连接电脑,更改ip地址等参数。频率使用915mhz避免干扰。如下图20: 11 发送端前面板调制参数以及发送星座图发送时域波形如下图21:

12 发送端眼图和发送端频域波形如下,眼图的尖锐程度和发送频率有关,如图22:

接收端的硬件参数和误码率如下图,如图23:

13 接收端眼图如图24所示: bpsk: 调制参数如下: 14bpsk:发送端硬件参数

发送端星座图:

15 接收端眼图:

接收端星座图及误码率曲线(信噪比较低):

16

五、实验扩展

1、解释接收端同步模块的具体实现方式及其利用的基本原理。

(1)初始同步,或称粗同步、捕获。它主要解决载波频率和码相位的不确定性,保

证解扩后的信号能通过相关器后面的中频滤波器,这是所有问题中最难解决的问题。

(2)跟踪,或称精同步。

接收机对接收到的信号,首先进行搜索,对收到的信号与本地码相位差的大小进行判断,若不满足捕获要求,即收发相位差大于一个码元,则调整时钟再进行搜索。直到使收发相位差小于一个码元时,停止搜索,转入跟踪状态。 图3-4- 5同步流程图

图3-4- 6跟踪流程图

2、扩频通信技术除了有较强的抗干扰能力外,还具有哪些优点?逐一例举出来并简述扩频技术具有这些优点的原因。

(1)易于重复使用频率,提高了无线频谱利用率

无线频谱十分宝贵,虽然从长波到微波都得到了开发利用,仍然满足不了社会

17的需求。在窄带通信中,主要依靠波道划分来防止信道之间发生干扰。为此,世界各国都设立了频率管理机构,用户只能使用申请获准的频率。扩频通信发送功率极低,采用了相关接收技术,且可工作在信道噪声和热噪声背景中,易于在同一地区重复使用同一频率,也可与各种窄道通信共享同一频率资源。所以,在美国及世界绝大多数国家,扩频通信无须申请频率,任何个人与单位都可以无执照使用。

(2)抗干扰性强,误码率低

扩频通信在空间传输时所占用的带宽相对较宽,而接收端又采用相关检测的办法来解扩,使有用宽带信息信号恢复成窄带信号,而把非所需信号扩展成宽带信号,然后通过窄带滤波技术提取有用的信号。这样,对于各种干扰信号,因其在接收端的非相关性,解扩后窄带信号中只有很微弱的成分,信噪比很高,因此抗干扰性强。在商用的通信系统中,扩频通信是唯一能够工作在负信噪比条件下的通信方式。

(3)隐蔽性好,对各种窄带通信系统的干扰很小

由于扩频信号在相对较宽的频带上被扩展了,单位频带内的功率很小,信号湮没在噪声里,一般不容易被发现,而想进一步检测信号的参数如伪随机编码序列就更加困难,因此说其隐蔽性好。再者,由于扩频信号具有很低的功率谱密度,它对使用的各种窄带通信系统的干扰很小。

(4)可以实现码分多址

扩频通信提高了抗干扰性能,但付出了占用频带宽的代价。如果让许多用户共用这一宽频带,则可大大提高频带的利用率。由于在扩频通信中存在扩频码序列的扩频调制,充分利用各种不同码型的扩频码序列之间优良的自相关特性和互相关特性,在接收端利用相关检测技术进行解扩,则在分配给不同用户码型的情况下可以区分不同用户的信号,提取出有用信号。这样一来,在一宽频带上许多对用户可以同时通话而互不干扰。

(5)抗多径干扰

这两种技术在扩频通信中都易于实现。利用扩频码的自相关特性,在接收端从多径信号中提取和分离出最强的有用信号,或把多个路径来的同一码序列的波形相加合成,这相当于梳状滤波器的作用。另外,在采用频率跳变扩频调制方式的扩频系统中,由于用多个频率的信号传送同一个信息,实际上起到了频率分集的作用。

(6)能精确地定时和测距

电磁波在空间的传播速度是固定不变的光速,人们自然会想到如果能够精确测

18量电磁波在两个物体之间的传播时间,也就等于测量两个物体之间的距离。在扩频通信中如果扩展频谱很宽,则意味着所采用的扩频码速率很高,每个码片占用的时间就很短。当发射出去的扩频信号在被测量物体反射回来后,在接收端解调出扩频码序列,然后比较收发两个码序列相位之差,就可以精确测出扩频信号往返的时间差,从而算出两者之间的距离。测量的精度决定于码片的宽度,也就是扩展频谱的宽度。码片越窄,扩展的频谱越宽,精度越高。

(7)适合数字话音和数据传输,以及开展多种通信业务

扩频通信一般都采用数字通信、码分多址技术,适用于计算机网络,适合于数据和图像传输。

(8)安装简便,易于维护

扩频通信设备是高度集成,采用了现代电子科技的尖端技术,因此,十分可靠、小巧,大量运用后成本低,安装便捷,易于推广应用。

3、伪随机序列有许多种,例如m序列、gold序列、m序列等。尝试使用不同的方法来产生伪随机序列,并用其实现对信号的扩频。

(1)m序列是目前广泛应用的一种伪随机序列,m序列每一周期中 1 的个数比 0 的个数多 1 个。状态“0”或“1”连续出现的段称为游程。游程中“0”或“1” m序列的一个周期(p=2^n-1)中,的个数称为游程长度。游程总数为 2^n-1,“0”、“1”

各占一半。2个彼此移位等价的相异m序列,按模2相加所得的序列仍为m序列,并与原m序列等价。

(2)gold序列gold码序列是一种基于m序列的码序列,具有较优良的自相关和互相关特性,产生的序列数多。gold码的自相关性不如m序列,具有三值自相关特性;互相关性比m序列要好,但还没有达到最佳。是由两个码长相等、码时钟速率相同的m序列优选对通过模2相加而构成的。

4、适当的在系统中添加干扰,以验证扩频的良好的抗干扰能力。

强扩频通信系统扩展的频谱越宽,处理增益越高,抗干扰能力就越强。简单

地说,如果信号频谱展宽10倍,那么干扰方面需要在更宽的频带上去进行干扰,分散了干扰功率,从而在总功率不变的条件下,其干扰强度只有原来的1/10。另外,由于接收端采用扩频码序列进行相关检测,空中即使有同类信号进行干扰,如果不能检测出有用信号的码序列,干扰也起不了太大作用,因此抗干扰性能强是扩频通信的最突出的优点。 19 20

第四篇:油品分析实验课程设计运用论文

1利用多媒体手段设计《油品分析》课程的意义

多媒体作为一种现代教学的手段,已被广泛应用于理论教学当中。对于实验课程,也应充分利用多媒体的多种优势,最大限度地辅助实验教学的实施。

1.1简化过程,便于理解

多媒体手段可充分利用视、听、说向学习者提供声、像、图、文等综合信息,这样更有利于学习者长时间保持注意力。特别是利用二维、三维动画及虚拟技术可以在多媒体中模拟出仪器设备的内部结构及虚拟出某些现象科学的规律原理等,可以帮助学习者显著提高认识、理解这些规律原理本质。

1.2节约课时,便于自学

传统的实验教学是将学生分成若干小组,一个小组一个小组地轮流学习和实验。多媒体的运用将解决学生围观可视性差的矛盾,将仪器内部结构以三维动画的形式清晰地展示给所有学员,同时授课,学时可缩短几倍。另外,学生的基础参差不齐,有了多媒体课件,学生可以根据自身掌握的情况,随时自行查阅所学内容,避免了课上统一进度的弊端。

1.3节约试样,减少污染

多媒体课件的应用可实现电脑模拟操作环节,可一改传统的重复失败所造成的试样大量消耗和废液大量产生。一方面大大节约了实验用油,另一方面降低了废液处理所带来的环境污染和经济浪费。鉴于此,将每一个实验项目以多媒体课件的形式,从试验所用仪器设备、操作过程到数据计算等各方面加以分析、诠释,使各个环节简单、直观、明了地展现出来,形成了一套可视性强、可读性好、适用面广,推广性强的学习软件。使学生对该课程的学习变得简单容易,益于普及。

2课程设计思路

该课程中,实验项目复杂多样,既有化学反应的实验,也有物理指标的检测,但课程设计思路可以统一为两大模块:一是学习模块;二是测验模块。各功能模块由不同的组件组成,课件具有结构合理、交互性强、界面友好等特点。

3课程设计方案

3.1项目的总体设计

首先进行项目分析,课件的目标分析,使用对象分析和开发成本估算。然后确定总体设计方案。课件要有较强的交互性,制作此课件的目的是普及方法,就应该适应各层次培训人员的需要。再次是详细确定多媒体课件的内容和功能。在教学理论的指导下,详细分析教学内容、划分教学单元,做好课件内容设计。按照国家标准方法精编提纲,正确表达实验方法的知识内涵,选择适当的教学模式。使结构内容设计达到巧妙新颖、信息适量、媒体和谐的要求。

3.2课件的程式设计

课件程式设计中最重要的就是脚本的编写,脚本是是教学目标的详细注解,是程序设计的蓝本。脚本包括多媒体教材内容的文字描述、解说词、整体框架设计、版面布局、各部分的具体表现方法等多方面内容。

3.3素材的准备和梳理

素材是一种课件制作中不可缺少的要素,它决定着软件设计的生动性、观赏性和准确性。我们按照总体方案的要求和脚本设计进行素材的准备,收集所需的文本、图片、视频、配音、声音、动画素材等,然后进行梳理,将它们分别冠以一定意义的名称分类存入素材目录备用。

3.4课件的制作完成

在课件的实现部分,最主要的就是制作动画和编制程序。动画的制作又包括界面的设计和内容动画的设计。设计界面,首先要满足用户的实际需要,制作出生动活泼,富于艺术效果,具有较强的吸引力的界面,但一定要注意要突出教学内容,不能喧宾夺主。

3.5课件的测试和试用

在制作完成以后,应对课件进行了多方面、全方位的测试,对不妥之处进行精雕细琢,以求课件的尽可能地完善。

第五篇:C++课程设计实验报告()(范文)

C++课程设计报告

设计题目:

院: 专业班级: 学生姓名: 学生学号: 指导教师:

计算机技术与科学

3班 樊冠男 40912140 马军亮

提交时间:

2011/1/12 成

绩:

目录

C++课程设计报告

第一章 引言

C++课程设计报告

第二章 概要设计

C++课程设计报告

第三章 软件实现

C++课程设计报告

第四章 结果与讨论

第六篇:约瑟夫环课程设计实验报告

《数据结构》

课程设计报告

课程名称:

课程设计题目:姓名: 院系: 专业: 年级: 学号: 指导教师: 《数据结构》课程设计

joseph环

计算机学院

2011年12月18日

目 录

1 课程设计的目的………………………………………………………………2 2 需求分析………………………………………………………………………2 3 课程设计报告内容……………………………………………………………3

1、概要设计……………………………………………………………………3

2、详细设计……………………………………………………………………3

3、调试分析……………………………………………………………………x

4、用户手册……………………………………………………………………x

5、测试结果……………………………………………………………………6

6、程序清单……………………………………………………………………7 4 小结 …………………………………………………………………………10

1、 课程设计的目的

(1) 熟练使用C++编写程序,解决实际问题;

(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

2、 需求分析

1、问题描述:

编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。

2、要求:

利用不带表头结点的单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

3、测试数据:

m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

输出形式:建立一个输出函数,将正确的输出序列

3、课程设计报告内容

概要设计:

在理解了题目后,我先想到的是我们所学的单链表,利用单链表先建立循环链表进行存贮,建立完循环链表后,我将所要编写的函数分为了两块,一块是经过学过的单链表改编的循环链表的基本操作函数,还有一块是运行约瑟夫环的函数。

详细设计:

我先建立一个结构体,与单链表一样,只是多了一个存密码的code域

struct LinkNode {

int data;

//顺序

int code;

//密码

LinkNode *next;

}; 建立一个类LinkList ,包含的函数:

LinkList();

//构造函数

void Creat(const int );

//创建循环链表

int Delete(LinkNode* );

//删除报到数的结点

int Joseph(int );

// 约瑟夫环 私有成员是

LinkNode* head;

//指向第一个结点的指针 LinkNode* elem;

// 同上

int len;

//长度

我定义了一个elem指针是为了约瑟夫环里运行方便,elem只在约瑟夫环这个函数里用到,其他函数没有特别大的用处。

构造函数与书上的没什么大差别,创建循环链表时,要考虑几个问题,一个是题目要求是不带头结点,所以head指针直接指向了第一个结点,我在创建链表时把第一个结点初始化data为1,表明这个结点是第一个结点。具体如下:

void LinkList::Creat(const int number)

//number为结点个数,也就是参与的人数 {

if(number==1)

//只有一个人的情况 {

head=elem=new LinkNode;

head->data=1;

cout<<"请输入密码:"<

cin>>head->code;

head->next=head; }

else {

head=elem=new LinkNode;

head->data=1;

cout<<"请依次输入各个密码:"<

cin>>head->code; LinkNode*q=head;

q=head;

for(int i=1;i

//将每个结点链接上,在链接时填入密码 {

LinkNode*p=new LinkNode;

p->data=i+1;

cin>>p->code;

q->next=p;

q=p; }

q->next=head;

//构成循环链表 }

len=number; }

在构建约瑟夫环的执行函数时,我首先考虑了递归调用的函数,原本的这个程序的所有的都定为elemtype类型的,虽然编译没出错,但是在连接时发生了错误,在老师的指导下改成了具体的int型。 int LinkList::Joseph(int m) {

if(len>1) {

LinkNode *q; if(m==1)

//在初始报数为1的情况下

{ q=elem; int a=q->code;

//将选中的结点的密码记录在a中 elem=elem->next; cout<

//用已经删除的结点的存的密码作为下一次循环的报数值 } else

//一般情况下 { for(int i=1;i

elem=elem->next; //找到需要出列的结点

q=elem; elem=elem->next;

//此处的elem指针指向要删除的结点的下一个结点,下

次递归调用时从这里开始向下循环报数

int a=q->code;

cout<

//在只有一个结点的情况下 cout

最后还有一个Delete函数,在删除结点的时候要考虑几个特殊情况,头尾结点。删除第一个结点时,需要将head指针下移,尾结点的next也要指向第二个结点;删除尾结点时,要将尾结点前的结点与第一个结点相连。在设计这个函数时,我只考虑了当len大于1的情况,在只剩下一个结点时,不必要删除,直接输出data的值即可(在约瑟夫函数中有写)。具体函数如下: int LinkList::Delete(LinkNode *a)

{

if(len>1) //只考虑长度大于1的情况

{

if(head==a) {

int out=head->data; LinkNode* q=head;

while(q->next!=head) {

q=q->next; } q->next=head->next; head=head->next; delete a; len--;

//用len记录删除后的循环链表的长度 return out; }

else

{ LinkNode* q=head; int out=a->data;

while(q->next!=a) {

q=q->next; } if(a->next=head) .//删除的是尾结点时(不知道为什么我写程序里总是编译出现错误)

{

q->next=head;

//重新链接

delete a;

len--;

return out; } else

{

q->next=a->next;

delete a;

len--;

return out;

} }

} }

5、测试结果:

6 程序清单:

#include struct LinkNode {

int data;

int code;

LinkNode *next; };

class LinkList { public:

LinkList();

void Creat(const int );

//~LinkList();

int Delete(LinkNode* );

int Joseph(int );

private:

LinkNode* head;

LinkNode* elem;

int len;

};

LinkList::LinkList()

{

head=elem=NULL;

len=0; }

void LinkList::Creat(const int number)

{

if(number==1) {

head=elem=new LinkNode;

head->data=1;

cout<<"请输入密码:"<

cin>>head->code;

head->next=head; }

else {

head=elem=new LinkNode;

head->data=1;

cout<<"请依次输入各个密码:"<

cin>>head->code;

LinkNode*q=head;

q=head;

for(int i=1;i

{

LinkNode*p=new LinkNode;

p->data=i+1;

cin>>p->code;

q->next=p;

q=p;

}

q->next=head; }

len=number; }

int LinkList::Delete(LinkNode *a)

{

if(len>1)

{

if(head==a)

{

int out=head->data;

LinkNode* q=head;

while(q->next!=head)

{

q=q->next;

}

q->next=head->next;

head=head->next;

delete a;

len--;

return out;

}

else

{

LinkNode* q=head;

int out=a->data;

while(q->next!=a)

{

q=q->next;

}

q->next=a->next;

delete a;

len--;

return out;

}

} }

int LinkList::Joseph(int m) {

if(len>1) {

LinkNode *q;

if(m==1)

{

q=elem;

int a=q->code;

elem=elem->next;

cout<

Joseph(a);

}

else

{

for(int i=1;i

elem=elem->next;

q=elem;

elem=elem->next;

int a=q->code;

cout<

Joseph(a);

} } else

cout

int main() {

int num,code;

cout<<"请输入人数: ";

cin>>num;

LinkList L;

L.Creat(num);

cout<<"请输入第一个上限数:

";

cin>>code;

cout<<"出列顺序:"<

L.Joseph(code);

return 0; }

4、小结

一、这次课程设计的心得体会通过实践我的收获如下:

一开始接触数据结构课程设计真的挺难的,好多都不会,不是逻辑方面的问题,而是不具备动手能力,脑子里总有一团火,比如对于这个题目,一开始有很多的想法,想到了从逻辑上怎么实现他,要编写哪些程序,但是一到需要编写了就开始为难了,可以说是几乎不知道从哪里入手,参考了书本里的程序,仿照他的结构一步一步做下来,现在对于单链表的各种操作已经算是比较熟练了,让我知道光有理论知识还远远不够,需要多动手,写的多了自然就能手到擒来。

二、根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:

1、认真上好专业实验课,多在实践中锻炼自己。

2、写程序的过程中要考虑周到,严密。

3、在做设计的时候要有信心,有耐心,切勿浮躁。

4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。

5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。

上一篇:空间寄语下一篇:可行性方案