Matlab解数独游戏DOC.docx

上传人:b****6 文档编号:12344726 上传时间:2023-06-05 格式:DOCX 页数:21 大小:299.17KB
下载 相关 举报
Matlab解数独游戏DOC.docx_第1页
第1页 / 共21页
Matlab解数独游戏DOC.docx_第2页
第2页 / 共21页
Matlab解数独游戏DOC.docx_第3页
第3页 / 共21页
Matlab解数独游戏DOC.docx_第4页
第4页 / 共21页
Matlab解数独游戏DOC.docx_第5页
第5页 / 共21页
Matlab解数独游戏DOC.docx_第6页
第6页 / 共21页
Matlab解数独游戏DOC.docx_第7页
第7页 / 共21页
Matlab解数独游戏DOC.docx_第8页
第8页 / 共21页
Matlab解数独游戏DOC.docx_第9页
第9页 / 共21页
Matlab解数独游戏DOC.docx_第10页
第10页 / 共21页
Matlab解数独游戏DOC.docx_第11页
第11页 / 共21页
Matlab解数独游戏DOC.docx_第12页
第12页 / 共21页
Matlab解数独游戏DOC.docx_第13页
第13页 / 共21页
Matlab解数独游戏DOC.docx_第14页
第14页 / 共21页
Matlab解数独游戏DOC.docx_第15页
第15页 / 共21页
Matlab解数独游戏DOC.docx_第16页
第16页 / 共21页
Matlab解数独游戏DOC.docx_第17页
第17页 / 共21页
Matlab解数独游戏DOC.docx_第18页
第18页 / 共21页
Matlab解数独游戏DOC.docx_第19页
第19页 / 共21页
Matlab解数独游戏DOC.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Matlab解数独游戏DOC.docx

《Matlab解数独游戏DOC.docx》由会员分享,可在线阅读,更多相关《Matlab解数独游戏DOC.docx(21页珍藏版)》请在冰点文库上搜索。

Matlab解数独游戏DOC.docx

Matlab解数独游戏DOC

中北大学

课程设计说明书

 

学生姓名:

燕飞宇学号:

1405054217

学院:

信息与通信工程学院

专业:

信息对抗技术专业

题目:

Matlab专用周

(随数字信号处置课)

指导教师:

李凯、刘宾、杨志良、李沅

 

2016年11月30日

 

中北大学

课程设计任务书

2016/2017学年第一学期

学院:

信息与通信工程学院

专业:

信息对抗技术

学生姓名:

燕飞宇学号:

1405054217

学生姓名:

毕广宇学号:

1405054235

课程设计题目:

Matlab课程设计

起迄日期:

2016年12月5日~2016年12月9日

课程设计地址:

信息对抗技术专业综合实验室

指导教师:

李凯、刘宾、杨志良、李沅

学科部主任:

张丕状

 

下达任务书日期:

2016年11月30日

课程设计任务书

1.设计目的:

(1)通过本课程设计的学习,学生将复习所学的数字信号处理知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力;

(2)掌握Matlab语言的编程方法,能熟练运用;

(3)通过Matlab实践的课程设计,掌握设Matlab数字信号处理系统的思维方法和基本开发过程。

2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):

一、学习Matlab编程及仿真

1、熟悉Matlab的运行环境;

2、学会并掌握Matlab图形编程;

3、根据所设计系统的需要会合理设定需完成系统的各项参数;

4、根据所设计系统的需要,优化程序设计最优系统。

二、实践设计要求:

1、根据所选题目,设计实现系统的原理框图。

2、编写Matlab程序,给出系统不同节点输出波形。

3、每人写出设计报告。

三、参考题目

题目1:

语音信号分析

通过计算机录制一段语音信号,分析该语音信号。

1、分析该信号的频谱特性;

2、采用IIR进行降噪;

3、根据FIR进行降噪;

4、对信号进行断句分割。

5、求信号的均值、方差;

6、求信号的自相关系数;

7、求信号的窗(1秒、2秒)能量;

8、求信号的窗(1秒、2秒)自相关分析

9、采用平均幅度差函数(AMDF法)提取求信号的基音周期、谱估计;

10、根据数字特征对信号进行断句分割。

注:

每个同学可以选择1和2、1和3、1和4、5和6、5和7、5和8、5和9、5和10的一组作为题目,8名同学完成该题目。

题目2:

傅里叶变换设计

自己设计傅里叶变换函数(不能使用Matlab函数);

题目3:

数独游戏设计

1、根据数独游戏规则,设计数独判断程序;

2、自动生成数独表;

3、根据输入给出输出;

注:

2个同学一组。

题目4:

Matlab绘图界面设计

1、设计GUI界面;

2、通过下拉菜单选择绘制正弦、正切信号;

3、通过编辑框输入命令,根据命令绘制信号;

4、通过按钮在图形中输出标注(标题、各轴名称);

注:

1个同学一组。

题目5:

Matlab信号分析界面设计

1、设计GUI界面;

2、通过按钮输入信号;

3、对信号进行频谱分析;

4、输出信号的频谱;

注:

1个同学一组。

题目6:

Matlab信号滤波分析界面设计

1、设计GUI界面;

2、通过按钮输入信号;

3、对信号进行低通、高通、带通分析(FIR、IIR、巴特沃斯、切比雪夫);

4、输出处理信号的结果、频谱;

注:

每个同学选择一个滤波器,4名同学完成该题目。

题目7:

Matlab智能信号发生器

1、输出方波、矩形波、三角波和正弦波信号;

2、输出随时间变化频率的信号;

3、输出随时间变化幅值的信号

4、输出随时间变化斜率的等幅值的信号;

5、输出处理信号的结果、频谱;

注:

每个同学选择一种信号,4名同学完成该题目。

题目8:

Matlab方程组求解数值计算设计

1、设计GUI界面;

2、通过按钮选择计算方法,表格录入数据;

3、对录入数据判断是否可算,实现算法如高斯-赛德尔、列主元消去法、高斯消元法等;

4、输出计算结果、误差;

注:

每个同学选择一种算法,4名同学完成该题目。

题目9:

Matlab插值求解数值计算设计

1、设计GUI界面;

2、通过按钮选择计算方法,表格录入数据;

3、对录入数据判断是否可算,实现算法如三次样条插值、拉格朗日插值、牛顿插值等;

4、输出计算结果、误差;

注:

每个同学选择一种算法,4名同学完成该题目。

题目10:

Matlab哈弗曼编码设计

1、设计GUI界面;

2、通过按钮选择计算方法,表格录入数据;

3、对录入数据实现算法哈弗曼信源编码;

4、输出计算结果、编码效率;

注:

1名同学完成该题目。

题目11:

Matlab费诺编码设计

1、设计GUI界面;

2、通过按钮选择计算方法,表格录入数据;

3、对录入数据实现费诺信源编码;

4、输出计算结果、编码效率;

注:

1名同学完成该题目。

题目12:

Matlab卷积码编码解码设计

1、设计GUI界面;

2、通过按钮选择计算方法,录入数据;

3、对录入数据实现算法卷积码信道编码;

4、输出计算结果、编码效率;

注:

一个同学设计算法、一个同学设计算法分析,2名同学完成该题目。

题目13:

Matlab文本内容加密解密算法设计

1、设计GUI界面输入文本文件内容;

2、对文本内容采用字符颠倒的顺序加密;

3、密码字典设计、解密算法设计;

4、输出结果。

注:

每个同学选择一种算法,2名同学完成该题目。

题目14:

Matlab加噪信号发生器

1、输出理想信号如方波、矩形波、三角波和正弦波信号(参数可调);

2、输出高斯噪声信号(参数可调);

3、输出理想信号与噪声信号叠加后信号

4、输出处理信号的结果、计算信噪比;

注:

每个同学选择一种信号,5名同学完成该题目。

题目15:

Matlab信号参数计算

1、编写一个长度为100的随机信号,信号在区间[-5,5]中均匀、泊松、正态分布;

2、测量该序列的均值,方差,最大值,最小值;

3、计算其相关函数。

注:

每个同学选择一种信号,2名同学完成该题目。

题目16:

基于蒙特卡罗模拟方法的信号分析

1、随机产生信号,信号在区间[-5,5]中泊松、正态、分布;

2、设计蒙特卡罗函数;

3、采用蒙特卡罗模拟方法对设计的信号进行分析;

4、并输出结果;

注:

每个同学选择一种分布信号,3名同学完成该题目。

题目17:

Matlab信号分解

1、编写一个由3不同特征组成信号(相位、频率、幅度);

2、对信号叠加白噪声;

3、分析信号的频谱、功率谱;

4、测量该序列的均值,方差,最大值,最小值;

5、设计滤波器,分解3个信号。

注:

1名同学完成该题目。

题目18:

Matlab信号参数分析

1、设计指数、瑞利、韦泊分布的信号;

2、设计3个频率组合的信号;

3、叠加上述信号;

4、分析上述信号的频谱。

注:

1名同学完成该题目。

题目19:

Matlab动态移动小球绘图

1、设计三块磁铁构成的磁力线图;

2、设计一个红色小球沿磁力线移动;

3、通过键盘控制小球移动的速度;

4、通过鼠标滚轮控制小球在不同的磁力线移动。

注:

每名同学选择上述题目中的1个,4名同学完成该题目。

题目20:

Matlab动态绘图

1、设计不同频率组成的信号;

2、分析信号的频谱;

3、动态绘制信号;

4、输出信号的分析结果。

注:

1名同学完成该题目。

 

3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:

(1)要求设计组的每个成员都要了解设计的要求和整体思路;

(2)每个题目小组的同学各完成一份设计说明书,突出各自的工作内容;

(3)要求有正确的运行结果及结果分析。

 

课程设计任务书

4.主要参考文献:

●谭浩强.《C程序设计(第二版)》.清华大学出版社.1999年12月

●袁志祥.《数据结构(c语言版)例题详解与课程设计指导》第二版.中国科学技术大学出版社出版

●谭浩强.《C语言程序设计题解与上机指导》.清华大学出版社.2000年11月

●陈朔鹰,陈英主.《C语言程序设计习题集(第二版)》.人民邮电出版社.2003年2月

●田淑清.《C语言程序设计辅导与习题集》.中国铁道出版社.2000年1月

●王明泉.《信号与系统》.科学出版社.2010年6月

5.设计成果形式及要求:

每个子题目小组提供详细的设计说明书一份

设计说明书中包含:

1、关键词解释,设计方案基本原理;

2、软件框图;

3、调试过程、设计结果、设计分析;

4、附录软件源代码

6.工作计划及进度:

2016年12月5日~2016年12月5日:

学习Matlab有关编程方法;

2016年12月6日~2016年12月8日:

在指导教师指导下实现程序设计;

2016年12月8日~2016年12月9日:

撰写课程设计说明书;

2016年12月9日:

答辩。

学科部主任审查意见:

签字:

年月日

 

1.设计目的简介................................................1

2.设计要紧方案及理论介绍......................................1

3.设计要紧步骤................................................3

4.程序源代码..................................................5

5.运行结果....................................................7

6.实例验证....................................................8

7.设计评述....................................................13

8.参考文献....................................................13

 

 

1.设计目的简介

数独游戏设计

1.依照数独游戏规那么,设计数独判定程序;

2.自动生成数独表;

3.依照输入给出输出;

 

2.设计要紧方案及理论介绍

算法:

递归算法

特点

递归算法是一种直接或间接地挪用自身算法的进程。

在运算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简练而且易于明白得。

递归算法解决问题的特点:

(1)递归确实是在进程或函数里挪用自身。

(2)在利用递归策略时,必需有一个明确的递归终止条件,称为递归出口。

(3)递归算法解题通常显得很简练,但递归算法解题的运行效率较低。

因此一样不提倡用递归算法设计程序。

(4)在的进程当中系统为每一层的返回点、局部量等开辟了栈来存储。

递归次数过量容易造成等。

要求

递归算法所表现的“重复”一样有三个要求:

一是每次挪用在规模上都有所缩小(一般是减半);

二是相邻两次重复之间有紧密的联系,前一次要为后一次做预备(通常前一次的输出就作为后一次的输入);

三是在问题的规模极小时必需用直接给出解答而再也不进行,因此每次递归挪用都是有条件的(以规模未达到直接解答的大小为条件),无条件递归挪用将会成为死循环而不能正常终止。

3.设计要紧步骤

S=zeros([size(M),0]);

end

%-------查找第一个0元素-------------

firstId=find(M(:

)==0,1);

%-------矩阵中无0元素-----------

ifisempty(firstId)

S(:

:

size(S,3)+1)=M;

%-------矩阵中有0元素-----------

else

%--------查找该元素在矩阵中的位置------------

[i,j]=ind2sub([9,9],firstId);

%--------填充第一个0元素--------------------

fork=1:

9%loopthroughall9possibilities

 

%--------寻觅该0元素所在的3*3矩阵----------

ii=(ceil(i/3)-1)*3+1;

jj=(ceil(j/3)-1)*3+1;

mm=M(ii:

ii+2,jj:

jj+2);

%--------判定该行,该列,该3*3矩阵中是不是存在元素k--------

ifsum(M(i,:

)==k)==0&&sum(M(:

j)==k)==0&&sum(mm(:

)==k)==0

%--------将k填入第一个0元素-------

M(i,j)=k;

%--------%填完那个数后就在此基础上填写第二个0元素--------

S=sodoku(M,S);

end

end

End

 

流程图

 

 

4.程序源代码

functionS=sodoku(M,S)

%M=[0,0,1,9,0,0,0,0,8;6,0,0,0,8,5,0,3,0;0,0,7,0,6,0,1,0,0;...

%0,3,4,0,9,0,0,0,0;0,0,0,5,0,4,0,0,0;0,0,0,0,1,0,4,2,0;...

%0,0,5,0,7,0,9,0,0;0,1,0,8,4,0,0,0,7;7,0,0,0,0,9,2,0,0];

%

%S=sodoku(M)

if~exist('S','var')

S=zeros([size(M),0]);

end

firstId=find(M(:

)==0,1);

ifisempty(firstId)

S(:

:

size(S,3)+1)=M;

else

[i,j]=ind2sub([9,9],firstId);

fork=1:

9

ii=(ceil(i/3)-1)*3+1;

jj=(ceil(j/3)-1)*3+1;

mm=M(ii:

ii+2,jj:

jj+2);

ifsum(M(i,:

)==k)==0&&sum(M(:

j)==k)==0&&sum(mm(:

)==k)==0

M(i,j)=k;

S=sodoku(M,S);

end

end

end

 

 

5.运行结果

 

 

5.1实例验证

 

 

 

6.设计的评述及通过设计的收成体会

通过实验,是我对MATLAB有了一个基础的了解,在学习MATLAB编程中需要很多的参考书,要尽可能多的熟悉matlab自带的函数及其作用,因为matlab的自带函数专门多,大体上能够知足一样的数据和矩阵的计算,因此大体上不用你自己编函数。

这一点对程序超级有帮忙,能够使程序简单,运行效率高,能够节省很多时刻。

本次课设顶用了很多MATLAB自带的函数,使程序变得很简单而有效。

 

在编程的进程中学习,程序需要什么知识再去补充,编程是一点一点积存的,因此需要做一些顺手笔记什么的。

课题需要什么函数,需要什么模块就应该去着重看那个知识点,就应该一步一步学,若是太急于把所有东西都学到,也是不行的,更是实现不了的。

 

总之,通过这次学习,我了解了一下那个软件整体的功能,和通过自己编写一些代码也学到了一些用法和知识。

我相信通过不时的积存,我会慢慢的学会利用MATLAB。

 

7.参考文献

1.《MATLABR2016a完全自学一本通》MATLABR2016a完全自学一本通

作者:

刘浩 编著出版社:

出版时刻:

2016年12月

2.《MATLAB程序设计与应用基础教程(第2版)》MATLAB程序设计与应用基础教程(第2版)作者:

[中国]出版社:

出版时刻:

2016年08月 

 

3.《编程算法新手自学手册》作者:

 等编著出版社:

出版时刻:

2021年01月 

编程算法新手自学手册

4.李海涛,邓樱﹒Matlab程序设计教程﹒北京:

高等教育出版社,2002﹒259

5.吴鹏.Matlab高效编程技术与应用.北京:

北京航天航空大学出版社,2020.259

6.算法竞赛入门经典第2版刘汝佳清华大学出版书籍程序设计入门与提高算法艺术与信息学竞赛教程教材辅导

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2