文档库 最新最全的文档下载
当前位置:文档库 › 西电 数字电路与系统设计 EDA大作业

西电 数字电路与系统设计 EDA大作业

西电 数字电路与系统设计 EDA大作业
西电 数字电路与系统设计 EDA大作业

《数字电路与系统设计》

EDA实验报告

班级:

学号:

姓名:

西安电子科技大学电子工程学院

基于FPGA的交通灯控制器

一、实验功能简介:

本实验基于XILINX的BASYS2 FPGA开发板,配合编写verilog HDL硬件描写语言,实现交通灯控制器的设计。应用板上的资源有四位数码管、一个拨键开关。四位数码管前两位显示A路绿灯、黄灯和红灯亮灯的时间数值,后两位显示B路绿灯、黄灯、红灯亮灯的时间数值。拨键开关SWO控制交通灯的工作状态。当SW0置为“1”时,交通灯控制器开始工作。当SW0置为“0”时,交通灯控制器进行复位操作。交通灯控制器的A方向的绿灯、黄灯和红灯亮灯时间分别为25s、5s和30s,B方向的绿灯、黄灯和红灯亮灯时间也分别为25s、5s和30s。本实验在50MHZ的主时钟的条件下控制6个LED灯的亮熄以及用四位数码管显示亮熄的时间。这样便可以实现本实验的功能。

二、实验条件:

本实验所用到的开发板为Basys2开发板。它是构建在Xilinx Spartan3E 现场可编程门阵列和一个Atmel AT90USB2 USB控制器。其核心部件为Xilinx Spartan3E-100 CP132,它采用100000-gate Xilinx Spartan3E FPGA;通过Atmel AT90USB2 全速USB2端口提供开发板所需的电源盒编程及数据输出接口。开发板上的闪存来存储FPGA的声明。其外围部件有8路LED灯;4个7段的数码管;4个按键;8个滑行开关;PS/2端口;8位的VGAD端口;用户可选择开发板配置的时钟(25/50/100MHZ),也可以外接时钟;4组6针的扩展接口;所有输入输出信号都有ESD和短路保护电路。

实验所用的综合软件为Xilinx ISE Design Suite 13.1,实验所用到的开发语言为Verilog,用Modelsim SE 6.5e编程和仿真。用DigilentAdept_v2-3-0来下载Bit文件。

三、实验过程:

1、系统组成框图:

2、模块划分及各个模块的详细功能:

本系统共包括个6个模块,分别为交通灯顶层模块(top_traffic)、1s计时时钟产生模块(clock_1s)、数码管扫描时钟产生模块(display_DIV)、数码管扫描驱动模块(display)、交通灯控制模块(traffic)、十进制数字与数码管显示解码模块(dectohex)。

交通灯顶层模块(top_traffic):此模块为顶层连接模块,负责将各个模块连接起来,包括总系统的输入与输出信号的定义与连接。

1s计时时钟产生模块(clock_1s):此模块用来对主频进行分频,使其产生跑表计时所需要的1s的方波信号。

数码管扫描时钟产生模块(display_DIV):此模块用来对主频进行分频,使其产生数码管扫描所需的2.5ms时钟信号,此时钟信号为数码管扫描驱动模块(display)使用。

数码管扫描驱动模块(display):此模块用来驱动数码管进行扫描显示,要显示的数据经由此模块显示到四位数码管上。

十进制数字与数码管显示解码模块(dectohex):此模块是对要显示的数字进行解码,转换为数码管显示所需要的编码,此模块包含于数码管扫描驱动模块(display)。

交通灯控制模块(traffic):此模块为整个系统的核心模块,用来控制输入的交通灯时钟信号,产生交通灯的效果,对交通灯进行开关与复位。

3、流程图及流程图详细介绍:

系统流程图为:

描述过程:当交通灯控制模块(traffic)启动时,首先判断使能端EN是否为1。若为1则程序继续进行。接下来分别判断中间变量tempa与tempb是否为0.若为tempa为0,判断counta的数值。若counta为0,则此时A路绿灯亮,并且数码管开始倒数计时。当计时结束时,再返回判断counta的数值对应相应的交通灯亮熄。tempb的判断与tempa类似。

说明:在流程图的任意一点,只要RESET复位被按下,直接从“开始”重新开始。

按键说明:开关复位键(SW0)。

4、详细的程序清单及程序注释:

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

交通灯顶层模块(top_traffic)

将各个模块进行连接,并设置总系统的输入输出

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

module top_traffic(mainclk, reset, display_led,

led_control_1,led_control_2,led_control_3,led_control_4,

traffic_control, LAMPA,LAMPB);

//端口定义

input mainclk,reset,traffic_control;//输入主时钟、复位信号与交通灯控制信号output [6:0] display_led;//输出数码管段选控制端

output led_control_1,led_control_2,led_control_3,led_control_4;//数码管位选控制端output [2:0] LAMPA,LAMPB;

wire [6:0] display_led;

wire led_control_1,led_control_2,led_control_3,led_control_4,drop;

wire clock_1s,display_div;//分频时钟接线:交通灯计数时钟与数码管扫描时钟接线

wire [7:0] number1,number2;//待显示数字接线

//1s时钟

clock_1s u2(.clock_1s_clk(mainclk),.reset(reset),.clock_1s(clock_1s));

//显示分频

display_DIV u4(.display_DIV_clk(mainclk),.reset(reset),.display_div(display_div));

//数字显示

display u5(.display_clk(display_div),.reset(reset),

.led1(led_control_1),.led2(led_control_2),.led3(led_control_3),.led4(led_control_4),

.number1(number1),.number2(number2),.led_display_port(display_led));

//交通灯

traffic

u1(.traffic_clk(clock_1s),.en(traffic_control),.LAMPA(LAMPA),.LAMPB(LAMPB),.numa(numb er1),.numb(number2));

endmodule

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

1s计时时钟产生模块(clock_1s)

输入:50MHz的主时钟(clock_1s_clk)

输出:分频后信号5ms(clock_1s)

转换公式:1/mainclk*clock_1s_value*2

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

module clock_1s

(

clock_1s_clk,reset,clock_1s

);

parameter clock_1s_value=25000*1000;//更改此处的值改变分频时间

//端口定义

input clock_1s_clk,reset;//输入此模块的时钟,与复位信号

output clock_1s;//输出此模块的时钟

reg [25:0] clock_1s_counter;//分频计数器

reg clock_1s;

// 计数分频

//模50000*1000/2计数器,即0.5s分频

always @ (posedge clock_1s_clk or posedge reset)

begin

if(reset)

begin

clock_1s_counter<=26'b0;

end

else

begin

if(clock_1s_counter==clock_1s_value-1'b1)

clock_1s_counter<=26'd0;

else

clock_1s_counter<=clock_1s_counter+1'b1;

end

end

//二分频,即1s分频

always @ (posedge clock_1s_clk or posedge reset)

begin

if(reset)

begin

clock_1s<=1'b0;

end

else

if(clock_1s_counter==clock_1s_value-1'b1)

clock_1s<=~clock_1s;

end

endmodule

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

数码管扫描时钟产生模块(display_DIV)

输入:50MHz的主时钟(display_DIV_clk)

输出:分频后LED扫描信号2.5ms(display_div)

转换公式:1/mainclk*display_div_value*2

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

module display_DIV

(

display_DIV_clk,reset,display_div

);

parameter display_div_value=1250*5;//更改此处的值改变分频时间

//端口定义

input display_DIV_clk,reset;//输入此模块的时钟,与复位信号output display_div;//输出此模块的时钟

reg [19:0] display_div_counter=20'b0;//分频计数器

reg display_div=1'b0;

//计数分频

//模1250*5/2计数器,即1.25ms分频

always @(posedge display_DIV_clk)

begin

if(display_div_counter==display_div_value-1'b1)

display_div_counter<=20'd0;

else

display_div_counter<=display_div_counter+1'b1;

end

//二分频,即2.5ms分频

always @(posedge display_DIV_clk)

begin

if(display_div_counter==display_div_value-1'b1)

display_div<=~display_div;

end

endmodule

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

数码管扫描驱动模块(display)

输入:LED扫描信号(display_DIV)

LED位选信号(led1,led2,led3,led4)

待显示数字(number1,number2)

输出:控制LED段选信号(led_display_port)

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

module display

(

display_clk,reset,led1,led2,led3,led4,number1,number2,led_display_port

);

//端口定义

input display_clk,reset;//显示输入时钟,与复位信号

output led1,led2,led3,led4;//数码管位选控制端

input number1,number2;//输入待显示的数字

output led_display_port;//输出数码管段选控制端

wire [7:0] number1,number2;

wire [6:0] led_display_port_temp;//连接此模块与dectohex模块的接线,将的dectohex模块的段选与此模块的段选输出连接

reg led1,led2,led3,led4;

reg [6:0] led_display_port;

reg [1:0] display_counter=2'b0;//显示循环计数寄存器,加入初始值主要是为仿真时用

reg [3:0] number_temp=4'b0;//待显示数字中间变量,加入初始值主要是为仿真时用

// 扫描显示

//进行扫描循环计数

always @ (posedge display_clk)

begin

display_counter<=display_counter+1'b1;

end

//进行扫描循环显示

always @ (display_counter)

begin

if(display_counter==2'b00)

begin

led1<=1'b0;

led2<=1'b1;

led3<=1'b1;

led4<=1'b1;

number_temp<=number1[7:4];

end

else if(display_counter==2'b01)

begin

led1<=1'b1;

led2<=1'b0;

led3<=1'b1;

led4<=1'b1;

number_temp<=number1[3:0];

end

else if(display_counter==2'b10)

begin

led1<=1'b1;

led2<=1'b1;

led3<=1'b0;

led4<=1'b1;

number_temp<=number2[7:4];

end

else if(display_counter==2'b11)

begin

led1<=1'b1;

led2<=1'b1;

led3<=1'b1;

led4<=1'b0;

number_temp<=number2[3:0];

end

end

//模块连接,进行十进制到数码管的转换解码

dectohex u3(.number(number_temp),.light(led_display_port_temp));

//数码管段选赋值接线

always @ (display_counter)

led_display_port<=led_display_port_temp;

endmodule

/****************************************** 十进制数字与数码管显示解码模块(dectohex)

输入:十进制数字(number),范围0~15

输出:二进制数字(light),要对应数码管

*******************************************/ module dectohex(number,light);

//端口定义

input [3:0] number;

output [6:0] light;

reg [6:0] light;

//进行数值转换

always@(*)

case(number)

4'd0: light=7'b0000001; //0

4'd1: light=7'b1001111; //1

4'd2: light=7'b0010010; //2

4'd3: light=7'b0000110; //3

4'd4: light=7'b1001100; //4

4'd5: light=7'b0100100; //5

4'd6: light=7'b0100000; //6

4'd7: light=7'b0001111; //7

4'd8: light=7'b0000000; //8

4'd9: light=7'b0000100; //9

4'd10: light=7'b0001000; //A

4'd11: light=7'b1100000; //B

4'd12: light=7'b0110001; //C

4'd13: light=7'b1000010; //D

4'd14: light=7'b0110000; //E

4'd15: light=7'b0111000; //F

endcase

endmodule

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

交通灯控制模块(traffic)

traffic_clk :为1s同步时钟;

en :使能信号,为1的话,则控制器开始工作;

LAMPA :控制A方向3盏灯的亮灭;其中,LAMPA0~LAMPA2,分别控制A方向的绿灯、黄灯和红灯;

LAMPB :控制B方向3盏灯的亮灭;其中,LAMPB0~LAMPB2,分别控制B方向的绿灯、黄灯和红灯;

numa :用于A方向灯的时间显示,8位;

numb :用于B方向灯的时间显示,8位。

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

module traffic(traffic_clk,en,LAMPA,LAMPB,numa,numb);

//端口定义

input traffic_clk,en;//输入此模块的时钟与交通灯控制信号控制信号

output [2:0] LAMPA,LAMPB;//输出交通灯红绿黄灯亮灯的控制端

output [7:0] numa,numb; //输出数码管显示数值

reg [7:0] numa=8'b0,numb=8'b0;

reg tempa=1'b0,tempb=1'b0;

reg [1:0] counta=2'b0,countb=2'b0;

reg [7:0] agreen,ayellow,ared;

reg [7:0] bgreen,byellow,bred;

reg [2:0] LAMPA=3'b0,LAMPB=3'b0;

//设置各交通灯的持续时间初始化值

always @ (en)

if(!en)//使能信号en无效时,对交通灯的计数值进行初始化

begin

ared <= 8'b00110000;//左红灯亮灯30s

ayellow <= 8'b00000101;//左黄灯亮灯5s

agreen <= 8'b00100101;//左绿灯亮灯25s

bred <= 8'b00110000;//右红灯亮灯30s

byellow <= 8'b00000101;//右黄灯亮灯5s

bgreen <= 8'b00100101;//左绿灯亮绿灯25s

end

//控制a方向3种灯的模块

always @ (posedge traffic_clk)

begin

if(en)//使能信号en有效时,交通灯开始工作

begin

if(!tempa)

begin

tempa<=1'b1;

case(counta)//使能信号en有效时,交通灯开始工作

0: begin//状态0

numa<=agreen;//直行绿灯亮

LAMPA<=3'b001; //输出001

counta<=3'd1; //进入下一个状态

end

1: begin //状态1

numa<=ayellow; //黄灯亮

LAMPA<=3'b010; //输出010

counta<=3'd2; //进入下一个状态

end

2: begin //状态2

numa<=ared; //红灯亮

LAMPA<=3'b100; //输出100

counta<=3'd0; //进入下一个状态(状态0)

end

default://默认状态

LAMPA<=3'b100;//红灯亮,输出100

endcase

end

else

begin//每一个状态的倒计时

if(numa>1)//判断倒计时未归零时分别对高低位进行递减

if(numa[3:0]==4'd0) begin

numa[3:0]<=4'd9;

numa[7:4]<=numa[7:4]-1'b1;

end

else numa[3:0]<=numa[3:0]-1'b1;

if(numa==2) tempa<=1'b0;//倒计时结束,返回灯状态变化判断,将进入下一个状态end

end

else

begin

LAMPA <=3'b100;//使能端无效时,红灯亮

counta<=2'd0;//返回方向A的状态0(绿灯状态)

tempa <=1'b0;//进入状态变化判断

numa<=0;//数码管进行清零

end

end

always @ (posedge traffic_clk)

begin

if(en)

begin

if(!tempb)

begin

tempb<=1;

case(countb)

0: begin

numb<=bred;

LAMPB<=3'b100;

countb<=3'd1;

end

1: begin

numb<=bgreen;

LAMPB<=3'b001;

countb<=3'd2;

end

2: begin

numb<=byellow;

LAMPB<=3'b010;

countb<=3'b0;

end

default : LAMPB<=4'd8;

endcase

end

else

begin//倒计时

if(numb>1)

if(numb[3:0]==4'b0)

begin

numb[3:0]<=4'd9;

numb[7:4]<=numb[7:4]-1'b1;

end

else numb[3:0]<=numb[3:0]-1'b1;

if(numb==4'd2)

tempb<=1'b0;

end

end

else

begin

LAMPB <=3'b100;

tempb <=1'b0;

countb<=3'b0;

numb<=0;

end

end

endmodule

四、实验结果:

各模块仿真结果:

说明:为了使仿真较为方便,已经将两个分频时钟模块的分频计数值改小,其中1s计时时钟产生模块(clock_1s)分频值改为10,为20分频输出;数码管扫描时钟产生模块(display_DIV)分频值改为10,为20分频输出。

1:1s计时时钟产生模块(clock_1s)

由上图可以数出,clock_1s频率信号一个周期中包含20个主时钟信号,实现20分频。

2:数码管扫描时钟产生模块(display_DIV)

由上图可以数出,display_DIV频率信号一个周期中包含20个主时钟信号,实现20分频。

3:数码管扫描驱动模块(display)

由上图可知,当数码管扫描信号时,数码管其中一个被点亮,且一次循环点亮,从而使数码管同时显示不同数字。

4:交通灯控制模块(traffic)

由上图可以清楚的看出当在A路红灯亮灯30s内,B路绿灯先亮灯25s然后黄灯亮灯5s。由此我们可以看出交通灯的功能实现了。

五、实验结论与自己的心得:

实验结论:本实验完成了预期的全部功能。在BASYS2 FPGA开发板上的操作过程中,发现A路和B路红绿黄灯的亮熄都是预期的,并未出现意外结果,成功地模拟出了公路上交通灯的工作情况。这说明实验编写的各个模块比如分频、计数、控制模块等都达到了实验的要求,而且能够很好的结合并且完成规定的任务。实验心得:通过一个月的EDA学习,对verilog HDL硬件描述语言有了一定的了解,并且学习了Xilinx的FPGA的开发板,将理论运用到了实践当中,从而进一步的了解verilog HDL。记得刚开始学习的时候,感觉很吃力,只会照着书本打程序。后来老师在课堂上给我们具体演示与操作,我受益匪浅.我也基本掌握了ISE以及modelsim软件的应用,可以顺利进行时序仿真以及综合后的仿真,并且学会了看时序仿真图,能在仿真图上找出自己所需要的信号并且判断它是否满足预期要求。

总之,这个学期对EDA的学习,不仅使我的理论得到了扩展,而且还增强了我的实践动手能力。我了解到了FPGA的作用以及学会了怎么操作它。EDA这个领域的发展趋势特别好,我相信未来这个领域会有更广阔的应用前景.我想我对EDA的学习只能算一个入门,在以后得日子里,我会继续努力学习EDA。

西电随机信号大课后复习

随机信号大作业 班级:02xxxx 姓名:xx

学号:02xxxxx 第一章 1.23上机题:设有随机初相信号X(t)=5cos(t+φ),其中相位φ是在区间(0,2π)上均匀分布的随机变量。试用Matlab编程产生其三个样本函数。 解:程序: clc clear m=unifrnd(0,2*pi,1,10); for k=1:3 t=1:0.1:10; X=5*cos(t+m(k)); plot(t,X); hold on

end title('其三个样本函数'); xlabel('t');ylabel('X(t)'); grid on ;axis tight ; 由 Matlab 产生的三个样本函数如下图所示: 第二章 2.22 上机题:利用Matlab 程序设计一正弦型信号加高斯白噪声的复合信号。 (3)分析复合信号通过理想低通系统后的功率谱密度和相应的幅度分布特性。 1 2 3 4 5 6 7 8 9 10 -4-3-2-101 23 4其三个样本函数 t X (t )

解:取数据如下: 正弦信号的频率为:fc=10HZ,抽样频率为:fs=100HZ; 信号:x=sin(2*pi*fc*t); 高斯白噪声产生复合信号y: y=awgn(x,10); 复合信号y通过理想滤波器电路后得到信号y3 ,通过卷积计算可以得到y3 即:y3=conv2(y,sin(10*t)/(pi*t)); y3的幅度分布特性可以通过傅里叶变换得到Y3(jw)=fft(y3),y3的功率谱密度:G3(w)=Y3(jw).*conj(Y3(jw)/length(Y3(jw)))。 程序: clear all; fs=100; fc=10; n=201; t=0:1/fs:2; x=sin(2*pi*fc*t); y=awgn(x,10); m=50; i=-0.49:1/fs:0.49; for j=1:m R(j)=sum(y(1:n-j-1).*y(j:199),2)/(n-j); Ry(49+j)=R(j);

西电人工智能大作业

人工智能大作业 学生:021151** 021151** 时间:2013年12月4号

一.启发式搜索解决八数码问题 1.实验目的 问题描述:现有一个3*3的棋盘,其中有0-8一共9个数字,0表示空格,其他的数字可以和0交换位置(只能上下左右移动)。给定一个初始状态和一个目标状态,找出从初始状态到目标状态的最短路径的问题就称为八数码问题。 例如:实验问题为

到目标状态: 从初始状态: 要求编程解决这个问题,给出解决这个问题的搜索树以及从初始节点到目标节点的最短路径。 2.实验设备及软件环境 利用计算机编程软件Visual C++ 6.0,用C语言编程解决该问题。 3.实验方法 (1).算法描述: ①.把初始节点S放到OPEN表中,计算() f S,并把其值与节点S联系 起来。 ②.如果OPEN表是个空表,则失败退出,无解。 ③.从OPEN表中选择一个f值最小的节点。结果有几个节点合格,当其 中有一个为目标节点时,则选择此目标节点,否则就选择其中任一节点作为节点i。 ④.把节点i从OPEN表中移出,并把它放入CLOSED的扩展节点表中。 ⑤.如果i是目标节点,则成功退出,求得一个解。 ⑥.扩展节点i,生成其全部后继节点。对于i的每一个后继节点j: a.计算() f j。 b.如果j既不在OPEN表中,也不在CLOSED表中,则用估价函数f

把它添加入OPEN表。从j加一指向其父辈节点i的指针,以便一旦 找到目标节点时记住一个解答路径。 c.如果j已在OPEN表或CLOSED表上,则比较刚刚对j计算过的f 值和前面计算过的该节点在表中的f值。如果新的f值较小,则 I.以此新值取代旧值。 II.从j指向i,而不是指向它的父辈节点。 III.如果节点j在CLOSED表中,则把它移回OPEN表。 ⑦转向②,即GO TO ②。 (2).流程图描述: (3).程序源代码: #include #include

西电数据挖掘大作业k-means和k-medoids

题 目: 数据挖掘 学 院: 电子工程学院 专 业: 智能科学和技术 学生姓名: ** 学 号: 02115*** k -means 实验报告 一、 waveform 数据 1、 算法描述 1. 从数据集{X n }n?1N 中任意选取k 个赋给初始的聚类中心c 1, c 2, …,

c k; 2.对数据集中的每个样本点x i,计算其和各个聚类中心c j的欧氏 距离并获取其类别标号: label(i)=arg min ||x i?c j||2,i=1,…,N,j=1,…,k 3.按下式重新计算k个聚类中心; c j=∑x j s:label(s)=j j ,j=1,2,…k 重复步骤2和步骤3,直到达到最大迭代次数为止2、实验结果 二、图像处理 1、算法描述 同上; 2、实验结果

代码: k_means: %%%%%%%%%K_means%%%%%%%% %%%%%%%%%函数说明%%%%%%%% %输入: % sample——样本集; % k ——聚类数目; %输出: % y ——类标(从0开始) % cnew ——聚类中心 % n ——迭代次数 function [y cnew n]=k_means(sample,k) [N V]=size(sample); %N为样本的个数 K为样本的维数 y=zeros(N,1); %记录样本类标 dist=zeros(1,k); rand_num=randperm(N); cnew=(sample(rand_num(1,1:k),:));%随机初始化聚类中心cold=zeros(k,V); n=0;

西电射频大作业(精心整理)

射频大作业 基于PSpice仿真的振幅调制电路设计数字调制与解调的集成器件学习

目录 题目一:基于PSpice仿真的振幅调制电路设计与性能分析 一、实验设计要求 (3) 二、理论分析 1、问题的分析 (3) 2、差动放大器调幅的设计理论 (4) 2.1、单端输出差动放大器电路 2.2、双端输出差动放大器电路 2.3、单二极管振幅调制电路 2.4、平衡对消二极管调幅电路 三、PSpice仿真的振幅调制电路性能分析 (10) 1、单端输出差动放大器调幅电路设计图及仿真波形 2、双端输出差动放大器调幅电路设计图及仿真波形 3、单二极管振幅调制电路设计图及仿真波形 4、平衡对消二极管调幅电路设计图及仿真波形 四、实验总结 (16) 五、参考文献 题目二数字调制与解调的集成器件学习 一、实验设计要求 (17) 二、概述 (17) 三、引脚功能及组成原理 (18) 四、基本连接电路 (20) 五、参考文献 (21) 六、英文附录 (21)

题目一基于PSpice仿真的振幅调制电路设计 摘要 随着大规模集成电路的广泛发展,电子电路CAD及电子设计自动化(EDA)已成为电路分析和设计中不可缺少的工具。此次振幅调制电路仿真设计基于PSpice,利用其丰富的仿真元器件库和强大的行为建模工具,分别设计了差分对放大器和二极管振幅调制电路,由此对线性时变电路调幅有了更进一步的认识;同时,通过平衡对消技术分别衍生出双端输出的差分对放大器和双回路二极管振幅调制电路,消除了没用的频率分量,从而得到了更好的调幅效果。本文对比研究了单端输出和双端输出的差分对放大器调幅电路及单二极管和双回路二极管调幅电路,通过对比观察时域和频域波形图,可知平衡对消技术可以很好地减小失真。 关键词:PSpice 振幅调制差分对放大器二极管振幅调制电路平衡对消技术 一、实验设计要求 1.1 基本要求 参考教材《射频电路基础》第五章振幅调制与解调中有关差分对放大器调幅和二极管调幅的原理,选择元器件、调制信号和载波参数,完成PSpice电路设计、建模和仿真,实现振幅调制信号的输出和分析。 1.2 实践任务 (1) 选择合适的调制信号和载波的振幅、频率,通过理论计算分析,正确选择晶体管和其它元件;搭建单端输出的差分对放大器,实现载波作为差模输入电压,调制信号控制电流源情况下的振幅调制;调整二者振幅,实现基本无失真的线性时变电路调幅;观察记录电路参数、调制信号、载波和已调波的波形和频谱。 (2) 参考例5.3.1,修改电路为双端输出,对比研究平衡对消技术在该电路中的应用效果。 (3) 选择合适的调制信号和载波的振幅、频率,通过理论计算分析,正确选择二极管和其它元件;搭建单二极管振幅调制电路,实现载波作为大信号,调制信号为小信号情况下的振幅调制;调整二者振幅,实现基本无失真的线性时变电路调幅;观察记录电路参数、调制信号、载波和已调波的波形和频谱。 (4) 参考例5.3.2,修改电路为双回路,对比研究平衡对消技术在该电路中的应用效果。 1.3 写作报告 (1) 按论文形式撰写,包括摘要、正文和参考文献,等等。 (2) 正文包括振幅调制电路的设计原理、理论分析结果、实践任务中各阶段设计的电路、参数、波形和频谱,对观察记录的数据配以图像和表格,同时要有充分的文字做分析和对比,有规律性认识。 (3) 论文结构系统、完备、条理清晰、理论正确、数据翔实、分析完整。 1.4 相关提示 (1) 所有电路和信号参数需要各人自行决定,各人有不同的研究结果,锻炼学生的独立研究和实验分析能力。 (2) 为了提高仿真精度和减小调试难度,可以将调制信号和载波的频率设置得较低。 二、理论分析 1、问题的分析 根据题目的要求,差分对放大器和二极管振幅调制电路目的都是实现基本无

西电随机信号分析大作业

随机信号分析大作业 学院:电子工程学院 班级:021151 学号:02115037 姓名:隋伟哲

第一题:设有随机信号X(t)=5cos(t+a),其中相位a是在区间(0,2π)上均匀分布的随机变量,使用Matlab编程产生其三个样本函数。 解: 源程序如下: clc;clear; C=2*pi*rand(1,3);%在[0,2π]产生均匀分布的相位角 t=1:.1:80; y1=5*cos(t+C(1)); %将产生的随机相位角逐一代入随机过程中 y2=5*cos(t+C(2)); %将产生的随机相位角逐一代入随机过程中 y3=5*cos(t+C(3)); %将产生的随机相位角逐一代入随机过程中 plot(t,y1,'r-'); hold on; plot(t,y2,'g--'); hold on; plot(t,y3,'k-'); xlabel('t');ylabel('X(t)'); grid on;axis([0 30 -8 8]); title('随机相位的三条样本曲线'); 产生的三条样本曲线:

第二题:利用Matlab程序设计一正弦型信号加高斯白噪声的复合信号。(1)分析复合信号的功率谱密度、幅度分布特性; (2)分析复合信号通过RC积分电路后的功率谱密度和相应的幅度分布特性; (3)分析复合信号通过理想低通系统后的功率谱密度和相应的幅度分布特性。 解:设定正选信号的频率为10HZ,抽样频率为100HZ x=sin(2*pi*fc*t)

(1)正弦函数加上高斯白噪声: y=awgn(x,10) y 的幅度分布特性可以通过傅里叶变换得到: Y(jw)=fft(y) y 的功率谱密度: G(w)=Y(jw).*conj(Y(jw)/length(Y(jw))) 随机序列自相关函数的无偏估计公式为: 1 01()()()N m xx n R m x n x n m N m --==+-∑ 01m N ≤≤- (2)复合信号 y 通过RC 积分电路后得到信号y2 通过卷积计算可以得到y2 即:y2= conv2(y,b*pi^-b*t) y2的幅度分布特性可以通过傅里叶变换得到: Y2(jw)=fft(y2) y2的功率谱密度: G2(w)=Y2(jw).*conj(Y2(jw)/length(Y2(jw))) (3)复合信号 y 通过理想滤波器电路后得到信号y3 通过卷积计算可以得到y3 即:y3=conv2(y,sin(10*t)/(pi*t)) y3的幅度分布特性可以通过傅里叶变换得到: Y3(jw)=fft(y3) y3的功率谱密度: G3(w)=Y3(jw).*conj(Y3(jw)/length(Y3(jw)))

人工智能大作业

第一章 1、3 什么就是人工智能?它的研究目标就是什么? 人工智能(Artificial Intelligence),英文缩写为AI。它就是研究、开发用于模拟、延伸与扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 研究目标:人工智能就是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理与专家系统等。 1、7 人工智能有哪几个主要学派?各自的特点就是什么? 主要学派:符号主义,联结主义与行为主义。 1.符号主义:认为人类智能的基本单元就是符号,认识过程就就是符号表示下的符号计算, 从而思维就就是符号计算; 2.联结主义:认为人类智能的基本单元就是神经元,认识过程就是由神经元构成的网络的信 息传递,这种传递就是并行分布进行的。 3.行为主义:认为,人工智能起源于控制论,提出智能取决于感知与行动,取决于对外界复 杂环境的适应,它不需要只就是,不需要表示,不需要推理。 1、8 人工智能有哪些主要研究与应用领域?其中有哪些就是新的研究热点? 1、研究领域:问题求解,逻辑推理与定理证明,自然语言理解,自动程序设计,专家系统,机器 学习,神经网络,机器人学,数据挖掘与知识发现,人工生命,系统与语言工具。 2、研究热点:专家系统,机器学习,神经网络,分布式人工智能与Agent,数据挖掘与知识发 现。 第二章 2、8 用谓词逻辑知识表示方法表示如下知识: (1)有人喜欢梅花,有人喜欢菊花,有人既喜欢梅花又喜欢菊花。 三步走:定义谓词,定义个体域,谓词表示 定义谓词 P(x):x就是人

西电《软件技术基础》上机大作业答案解析

说明 每个实验题目含有一个main函数和一些函数,与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出,供上机实验参考使用。对于每个题目,只需要根据题目要求设计算法,补充函数定义,然后对程序进行编译、调试。

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验内容 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n , e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。(文件夹:顺序表逆置、单链表逆置) 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。(文件夹:分解单链表) 实验二栈和队列 一、实验目的 1.熟悉栈和队列的顺序和链式存储结构 2.掌握栈和队列的基本运算 3.能够利用栈和队列的基本运算完成栈和队列应用的运算 二、实验内容 1.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。)(文件夹:判字符串中心对称) 2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。 提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。(文件夹:循环队列)实验三串 一、实验目的 1.熟悉串的顺序存储结构 2.掌握串的基本运算及应用 二、实验内容 1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。(文件夹:模式匹配) 2.若S是一个采用顺序结构存储的串,利用C的库函数strlen和strcpy(或strncpy)编写

西电数字信号处理大作业

第二章 2.25 已知线性时不变系统的差分方程为 若系统的输入序列x(x)={1,2,3,4,2,1}编写利用递推法计算系统零状态响应的MATLAB程序,并计算出结果。 代码及运行结果: >> A=[1,-0.5]; >> B=[1,0,2]; >> n=0:5; >> xn=[1,2,3,4,2,1]; >> zx=[0,0,0];zy=0; >> zi=filtic(B,A,zy,zx); >> yn=filter(B,A,xn,zi); >> figure(1) >> stem(n,yn,'.'); >> grid on;

2.28图所示系统是由四个子系统T1、T2、T3和T4组成的,分别用单位脉冲响应或差分方程描述为 T1: 其他 T2: 其他 T3: T4: 编写计算整个系统的单位脉冲响应h(n),0≤n≤99的MATLAB程序,并计算结果。 代码及结果如下: >> a=0.25;b=0.5;c=0.25; >> ys=0; >> xn=[1,zeros(1,99)]; >> B=[a,b,c]; >> A=1; >> xi=filtic(B,A,ys); >> yn1=filter(B,A,xn,xi); >> h1=[1,1/2,1/4,1/8,1/16,1/32]; >> h2=[1,1,1,1,1,1]; >> h3=conv(h1,h2); >> h31=[h3,zeros(1,89)]; >> yn2=yn1+h31; >> D=[1,1];C=[1,-0.9,0.81]; >> xi2=filtic(D,C,yn2,xi); >> xi2=filtic(D,C,ys); >> yn=filter(D,C,yn2,xi); >> n=0:99; >> figure(1) >> stem(n,yn,'.'); >> title('单位脉冲响应'); >> xlabel('n');ylabel('yn');

随机信号分析大作业

随机信号分析实验报告 信息25班 2120502123 赵梦然

作业题三: 利用Matlab 产生一个具有零均值、单位方差的的高斯白噪声随机序列X(n),并通过一脉冲响应为 (0.8)(0)0 n n h n else =≥??? 的线性滤波器。 (1) 产生一个具有零均值、单位方差的的高斯白噪声随机序列X(n),检验其一维概率密度函 数是否与理论相符。 (2) 绘出输入输出信号的均值、方差、自相关函数及功率谱密度的图形,讨论输出信号服从 何种分布。 (3) 试产生在[-1,+1]区间均匀分布的白噪声序列,并将其替换高斯白噪声通过上述系统。 画出此时的输出图形,并观察讨论输出信号服从何种分布。 作业要求 (1) 用MATLAB 编写程序。最终报告中附代码及实验结果截图。 (2) 实验报告中必须有对实验结果的分析讨论。 提示: (1) 可直接使用matlab 中已有函数产生高斯白噪声随机序列。可使用hist 函数画出序列的 直方图,并与标准高斯分布的概率密度函数做对比。 (2) 为便于卷积操作,当N 很大时,可近似认为h(N)=0。卷积使用matlab 自带的conv 函 数。 (3) 分析均值、方差等时,均可使用matlab 现有函数。功率谱密度和自相关函数可通过傅 里叶变换相互获得。傅里叶变换使用matlab 自带的fft 函数。 (4) 作图使用plot 函数。

一、作业分析: 本题主要考察的是加性高斯白噪声相关问题,因此构造一个高斯白噪声十分重要,故在本题中使用randn函数随机生成一个个符合高斯分布的数据,并由此构成高斯白噪声;而且由于白噪声是无法完全表示的,故此根据噪声长度远大于信号长度时可视为高斯白噪声,构造了一个长度为2000的高斯白噪声来进行试验。 二、作业解答: (1)matlab程序为: x-1000:1:1000; k=1*randn(1,length(x));% 生成零均值单位方差的高斯白噪声。 [f,xi]=ksdensity(x);%利用ksdensity函数估计样本的概率密度。 subplot(1,2,1); plot(x,k); subplot(1,2,2); plot(xi,f); 实验结果为:

西安电子科技大学人工智能试题

1.(该题目硕士统招生做)请用框架法和语义网络法表示下列事件。(10分) 2015年2月20日上午11点40分,广东省深圳市光明新区柳溪工业园附近发生山体滑坡,经初步核查,此次滑坡事故共造成22栋厂房被掩埋,涉及公司15家,截至目前已安全撤离900人,仍有22人失联。 答:框架表示法(5分):(给分要点:确定框架名和框架槽,根据报道给出的相关数据填充,主要内容正确即可给分,不必与参考答案完全一致) <山体滑坡> 时间:2015年2月20日上午11点40分 地点:广东省深圳市光明新区柳溪工业园附近 掩埋厂房:22栋 涉及公司数目:15家 安全撤离人数:900人 失联人数:22人 语义网络表示法(5分):(给分要点:确定语义网络的节点及其连接关系,根据报道内容进行填充,主要内容正确即可给分,不必与参考答案完全一致) 1. (该题目全日制专业学位硕士做)请用一种合适的知识表示方法来表示下面知识。(10分) How Old Are YOU是微软推出的一款测年龄应用,该应用架设在微软服务平台Azure上,该平台具有机器学习的开发接口,第三方开发者可以利用相关的接口和技术,分析人脸照片。

(给分要点:采用合适的知识表示方法,正确即可给分,不必与参考答案完全一致) 答: 类属(继承):<应用程序> 用途:测年龄 开发者:微软 服务平台: 开发接口:机器学习 用途:分析人脸照片 2.(该题目硕士统招生做)请用归结反演的方法求解下述问题。(15分) 已知:张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。 问:现在李在哪个教室上课? 解:第一步:定义谓词;(谓词不一定与参考答案完全相同,只要正确表示即可给分)(3分)C(x, y) x和y是同班同学; At(x, u) x在u教室上课。 第二步:根据定义的谓词写出上述知识的谓词表示,并化成子句集;(6分) 把已知前提用谓词公式表示如下: C(zhang, li) (?x) (?y) (?u) (C(x, y)∧At(x, u)→At(y,u)) At(zhang, 302) 把目标的谓词公式表示如下: (?v)At(li, v) 把上述公式化为子句集: (1) C(zhang, li) (2) ﹁C(x, y)∨﹁At(x, u)∨At(y, u) (3) At(zhang, 302) 把目标的否定化成子句式: (4) ﹁At(li,v) ∨Answer(v) 第三步:使用归结原理对子句集进行归结;(6分)(注意:具体的归结顺序不一定和参考答案完全一致,只要归结过程正确,最后得到的答案正确即可给分)

SQL数据库期末大作业

学校:北京联合大学 系别:信息管理系 姓名:孙超 学号:2013110444006 《餐饮业信息管理系统的开发》 1、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息:

编号、密码、类型、姓名、电话、收款金额 2.客户信息: 用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店内收入、外卖收入、盈利额度 各对象之间的联系图: 用户E-R图 主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

西电电院人工智能课程大作业

西电人工智能大作业

八数码难题 一.实验目的 八数码难题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。例如: (a) 初始状态 (b) 目标状态 图1 八数码问题示意图 请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或 A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。 本实验选择宽度优先搜索:选择一个起点,以接近起始点的程度依次扩展节点,逐层搜索,再对下一层节点搜索之前,必先搜索完本层节点。 二.实验设备及软件环境 Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI 等编程语言。 三.实验方法 算法描述: (1)将起始点放到OPEN表; (2)若OPEN空,无解,失败;否则继续; (3)把第一个点从OPEN移出,放到CLOSE表; (4)拓展节点,若无后继结点,转(2); (5)把n的所有后继结点放到OPEN末端,提供从后继结点回到n的指针; (6)若n任意后继结点是目标节点,成功,输出;否则转(2)。

流程图:

代码: #include #include typedef struct Node { int num[9]; //棋盘状态 int deepth; //派生的深度 g(n) int diffnum; //不在位的数目 h(n) int value; //耗散值 f(n)=g(n)+h(n) struct Node * pre; struct Node * next; struct Node * parent; }numNode; /* ---------- end of struct numNode ---------- */ int origin[9]; //棋盘初始状态 int target[9]; //棋盘目标状态 int numNode_num,total_step; numNode *open,*close; //Open表和Close表 numNode *create_numNode() { return (numNode *)malloc(sizeof(numNode)); } numNode *open_getfirst(numNode *head); //返回第一项,并从Open表中删除

西电数据结构大作业

题目:数据结构上机报告学院:电子工程学院 专业:信息对抗技术 学生姓名:甘佳霖 学号:14020310092

西安电子科技大学 数据结构课程实验报告实验名称线性表 电子工程学院 1402031 班Array姓名甘佳霖学号 14020310092 同作者 实验日期 2017 年 3 月 18 日

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验要求 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n, e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。 三、设计思路 1.顺序表做逆置操作时将对应的首尾元素位置交换,单链表的指针end指向链表的末尾,指针start指向链表头结点,指针s用来找到指向end节点的节点,将指向链表末尾和头结点的存储内容交换,然后头结点指针指向下一节点,s指针从start节点开始遍历寻找指向end 指针的节点,并将end指针赋值为s指针,就完成了单链表的逆置,可以看出单链表和顺序表都可以完成线性表的逆置。 2.分解单链表的实现思路是首先新建3个循环链表,然后顺序遍历单链表,ASCII码判断链表中的元素属于哪一类元素,然后将这个元素添加到对应的循环链表中,从而实现分解单链表的功能。 四、运行结果 1.单链表逆置:

人工智能大作业翻译

Adaptive Evolutionary Artificial Neural Networks for Pattern Classification 自适应进化人工神经网络模式分类 Abstract—This paper presents a new evolutionary approach called the hybrid evolutionary artificial neural network (HEANN) for simultaneously evolving an artificial neural networks (ANNs) topology and weights. Evolutionary algorithms (EAs) with strong global search capabilities are likely to provide the most promising region. However, they are less efficient in fine-tuning the search space locally. HEANN emphasizes the balancing of the global search and local search for the evolutionary process by adapting the mutation probability and the step size of the weight perturbation. This is distinguishable from most previous studies that incorporate EA to search for network topology and gradient learning for weight updating. Four benchmark functions were used to test the evolutionary framework of HEANN. In addition, HEANN was tested on seven classification benchmark problems from the UCI machine learning repository. Experimental results show the superior performance of HEANN in fine-tuning the network complexity within a small number of generations while preserving the generalization capability compared with other algorithms. 摘要——这片文章提出了一种新的进化方法称为混合进化人工神经网络(HEANN),同时提出进化人工神经网络(ANNs)拓扑结构和权重。进化算法(EAs)具有较强的全局搜索能力且很可能指向最有前途的领域。然而,在搜索空间局部微调时,他们效率较低。HEANN强调全局搜索的平衡和局部搜索的进化过程,通过调整变异概率和步长扰动的权值。这是区别于大多数以前的研究,那些研究整合EA来搜索网络拓扑和梯度学习来进行权值更新。四个基准函数被用来测试的HEANN进化框架。此外,HEANN测试了七个分类基准问题的UCI机器学习库。实验结果表明在少数几代算法中,HEANN在微调网络复杂性的性能是优越的。同时,他还保留了相对于其他算法的泛化性能。 I. INTRODUCTION Artificial neural networks (ANNs) have emerged as a powerful tool for pattern classification [1], [2]. The optimization of ANN topology and connection weights training are often treated separately. Such a divide-and-conquer approach gives rise to an imprecise evaluation of the selected topology of ANNs. In fact, these two tasks are interdependent and should be addressed simultaneously to achieve optimum results. 人工神经网络(ANNs)已经成为一种强大的工具被用于模式分类[1],[2]。ANN 拓扑优化和连接权重训练经常被单独处理。这样一个分治算法产生一个不精确的评价选择的神经网络拓扑结构。事实上,这两个任务都是相互依存的且应当同时解决以达到最佳结果。

西电排队论大作业完整版

西电排队论大作业 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

西安电子科技大学 (2016年度) 随机过程与排队论 班级: XXXXXXX 姓名: XXX XXX 学号: XXXXXXXXXX XXXXXXXXXXX 一步转移概率矩阵收敛快慢的影响因素 作者姓名:XXX XXX 指导老师姓名:XXX (西安电子科技大学计算机学院,陕西西安) 摘要:根据课程教材《排队现象的建模、解析与模拟【西安电子科技大学出版 社曾勇版】》,第[马尔可夫过程]中,马尔可夫过程链n时刻的k步转移概率结 果,当k=1时,得到一步转移概率。进而得到一步转移概率矩阵P(1)。为研究 此一步转移概率矩阵(下称一步矩阵)的收敛特性以及影响其收敛快慢的因素,使 用MATLAB实验工具进行仿真,先从特殊矩阵开始做起,发现规律,然后向普通矩 阵进行拓展猜想,并根据算术理论分析进行论证,最终得出一步矩阵收敛快慢的影 响因素。 关键词:一步转移概率矩阵 MATLAB 仿真猜想 一、问题概述 我们讨论时一步矩阵的特性应从以下两方面来分析: (1)矩阵P(n)在满足什么条件时具有收敛特性; 对于矩阵P(n),当P(n)=P(n+1)时,我们说此矩阵 具有收敛特性,简称矩阵 P(n)收敛。 (2)若一个一步矩阵具有收敛特性,那么其收敛速度与什么有关

首先,我们需要明确什么是一步矩阵收敛: 对于一般的一步矩阵P 、矩阵An+1、矩阵An,若有: An+1=AnP=An 那么称该一步转移矩阵可收敛。 二、仿真实验 1、仿真环境 本次采用的是MATLAB仿真实验软件进行仿真实验 2、结果与分析 【1】、特殊矩阵:单位矩阵与类单位矩阵 从图(1)和图(2)可以看出,单位矩阵不具有收敛特性,类单位矩阵并非单位矩阵但是经过n次后也变为单位矩阵,所以此矩阵也不具有收敛特性。此类矩阵也易证明其不具有收敛性。 图(1)单位矩阵图(2):类单位 矩阵 【2】、一般单位矩阵 图(3):一般一步矩阵Ⅰ 图(4):一般一步矩阵 从图(3)和()可以看出他们分别在18次和4次后收敛到一个稳定的值 3、根据实验的猜想 根据在单位矩阵和一般单位矩阵和一般一步矩阵中得到的结果,可以对得出如下结论:类单位矩阵、单位矩阵是不具有收敛性的,而一般的一步矩阵是有收敛性的,而且收敛速率有快有慢。 对于上面结论中的状况,我们首先观察如上四个矩阵,不难发现,在矩阵收敛的最终结果矩阵中,其每行和均为1,而且每列上的值均为相同值。最终概率分布结果也是矩阵收敛后的一行。 所以根据上述的结果及分析做出如下猜想: 每一列比较均匀的矩阵收敛速度较快;与类单位矩阵类似的矩阵收敛速度较慢。 在极限情况下,有如下情况:

人工智能大作业

人工智能基础 大作业 —---八数码难题 学院:数学与计算机科学学院 班级:计科14—1 姓名:王佳乐 学号:12 2016、12、20 一、实验名称 八数码难题得启发式搜索 二、实验目得 八数码问题:在3×3得方格棋盘上,摆放着1到8这八个数码,有1个方格就是空得,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移与空格下移这四个操作使得棋盘从初始状态到目标状态. 要求:1、熟悉人工智能系统中得问题求解过程; 2、熟悉状态空间得启发式搜索算法得应用; 3、熟悉对八数码问题得建模、求解及编程语言得应用。 三、实验设备及软件环境 1.实验编程工具:VC++ 6、0 2.实验环境:Windows7 64位 四、实验方法:启发式搜索 1、算法描述 1.将S放入open表,计算估价函数f(s)

2.判断open表就是否为空,若为空则搜索失败,否则,将open表中得第 一个元素加入close表并对其进行扩展(每次扩展后加入open表中 得元素按照代价得大小从小到大排序,找到代价最小得节点进行扩展) 注:代价得计算公式f(n)=d(n)+w(n)、其中f(n)为总代价,d(n)为节点得度,w(n)用来计算节点中错放棋子得个数. 判断i就是否为目标节点,就是则成功,否则拓展i,计算后续节点f(j),利用f(j)对open表重新排序 2、算法流程图: 3、程序源代码: #include<stdio、h> # include<string、h> # include # include〈stdlib、h> typedef struct node{ ?int i,cost,degree,exp,father; ?int a[3][3]; ?struct node *bef,*late;

云南大学数据库期末大作业:数据库设计

云南大学软件学院实验报告 课程:数据库原理与实用技术实验学期:任课教师: 专业:学号:姓名:成绩: 期末大作业:Electronic Ventor 数据库设计 一、实验目的 (1)掌握数据库设计的基本方法 (2)掌握各种数据库对象的设计方法 (3)熟练掌握DBA必须具备的技能 二、实验内容 1、根据项目的应用和项目的需求说明文档,进行详细的需求分析,给出需求分析的结果。 (1)客户可以在网站上注册,注册的客户要提供客户的姓名、电话、地址,以方便售后和联系,姓名即作为用户名,和密码一起用于注册和登录,客户编号可唯一识别用户,卡号可网上支付。其中地址、电话以方便联系和寄货; (2)网站管理员可以登记各种商品,供客户查询,订购。登记商品时要提供商品的名称、价格,商店中现有商品量,商品编号可唯一识别商品; (3)类别表示商品所属类别,类别编号可唯一识别类别,其中包含了,商品类别名称和制造厂商,可以对商品进行分类售卖; (4)客户可以在网上下订单,也可以到实体店购物,其在订单上所选择的支付方式不同(信用卡、借记卡、现金,现金代表实体店购物),网站管理员可以查看订单,并及时将订单的处理情况更新(比如货物已寄出的信息,订单状态:0:未处理,1:已处理,2:已发货);订单编号可唯一识别订单,订单中包含订单产生时间,订单状态,支付方式和支付总额; (5)实体商店有自己的店名,卖多种商品,每个商店都有固定的地址,顾客可以到店中买商品,(注:在实体店中购买商品的顾客一律将顾客名默认为佚名),当商店中的库存量小于10时会有提醒到仓库中拿货; (6)配送单中包含查询号可唯一识别配送单,配送人,联系方式; (7)仓库中仓库编号可唯一识别仓库,其中每个仓库都有区号,代表其地址。 (8)各实体间关系 1)一个客户可以购买多种商品,一种商品可以被多个客户购买; 2)一个商品属于且仅属于一种类别,一种类别的商品可以包含多个商品或没有; 3)一种商品放在多个商店中销售,一个商店至少销售一种或销售多种商品; 4)一个订单对应一个客户,一个客户对应多个订单; 5)一个订单对应至少有一件商品或多件,一个商品对应多个订单; 6)一个订单可以有一个商品配送单 7)一个仓库可以存放多种商品,一种商品可以存放在一个仓库;

算法设计与分析课程大作业

题目作业调度问题及算法分析 学院名称:计算机与信息工程学院 专业名称:计算机科学与技术

目录 《算法设计与分析》课程大作业.................................................................... 错误!未定义书签。一.动态规划算法解决流水作业调度. (4) 1、问题描述 (4) 2、算法分析 (4) 3. 算法的描述 (5) 4、部分算法实现 (6) 5. 运行结果 (8) 6、时空效率分析 (8) 二.贪心算法解多机调度问题 (8) 1、问题描述 (8) 2、算法分析 (9) 3.部分算法实现 (9) 4.计算复杂性分析 (11) 5. 运行结果 (12) 三.回溯法解决批作业调度问题 (12) 1.问题描述 (12) 2.算法思想 (13) 3. 部分算法实现 (14) 4.运行结果 (15) 5.时间复杂性分析 (15) 四.作业调度算法比较 (16) 五.课程学习总结 (16)

摘要: 在现代企业中,作业调度已成为提高资源利用率、从而提高企业运行效益的关键环节之一。把各个作业分配到车间现有的设备上,并确定它们的先后次序,这是一项复杂的工作本文就作业调度排序问题进行了研究,通过对几个经典作业调度算法的分析讨论,总结了各个算法对作业调度的求解过程,并给出了每个算法的复杂度及性能分析。 关键词:作业调度;动态规划;贪心算法;回溯法;

一.动态规划算法解决流水作业调度 1、问题描述 给定n 个作业,每个作业有两道工序,分别在两台机器上处理。一台机器一次只能处理一道工序,并且一道工序一旦开始就必须进行下去直到完成。一个作业只有在机器1上的处理完成以后才能由机器2处理。假设已知作业i 在机器j 上需要的处理时间为t[i,j]。流水作业调度问题就是要求确定一个作业的处理顺序使得尽快完成这n 个作业。 2、算法分析 直观上,一个最优调度应使机器M1没有空闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。 在一般情况下,机器M1开始加工S 中作业时,机器M2还在加工其他作业,要等时间t 后才可利用。将这种情况下完成S 中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0)。 由流水作业调度问题的最优子结构性质可知, )}},{({min )0,(1i i n i b i N T a N T -+=≤≤(1)

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