《MATLAB编程与系统仿真》课程设计报告书.docx
《《MATLAB编程与系统仿真》课程设计报告书.docx》由会员分享,可在线阅读,更多相关《《MATLAB编程与系统仿真》课程设计报告书.docx(14页珍藏版)》请在冰豆网上搜索。
《MATLAB编程与系统仿真》课程设计报告书
《MATLAB编程与系统仿真》课程考核说明
1、考核方式及考核时间
综合性仿真及报告书(60%)+实验成绩(30%)+平时成绩(10%),其中实验成绩包括实验和报告。
《MATLAB编程与系统仿真》课程是一门实践性比较强的课程,采用传统的试卷考核方式无法体现学生对MATLAB的掌握和应用程度、程序调试能力等。
鉴于此情况,本课程考核以“综合性仿真及报告书+实验成绩+平时成绩“形式进行,综合性仿真考核学生对MATLAB编程语言的掌握程度和运用MATLAB解决实际问题的能力,并通过报告书的撰写锻炼学生科技文档写作能力。
考核内容及要求见附件1。
考核时间:
程序电子档及纸质报告书提交截止时间为第12周星期三12:
00。
2、评分标准:
报告各项目认真填写,仿真结果正确,具有清晰的设计思路及仿真结果分析。
(90-100)
报告各项目认真填写,仿真结果基本正确,具有较为清晰的设计思路并对仿真结果进行了较为清晰的分析。
(80-89)
报告各项目认真填写,设计思路正确,能得到仿真结果。
(70-79)
报告进行为较为认真的填写,有设计思路。
(60-69)
报告有未完成项或各项填写不属实或他人代做或抄袭。
(<60)
注:
所提交的材料包括报告书和完成的程序源代码,若报告书或程序源代码出现雷同,以0分计。
(报告格式见附件2)
课程主讲教师:
教研室:
信息科学与工程学院:
附件1
考核内容及要求
1、每个学生以自己的学号建立子文件夹,所有程序、数据均放入该子文件夹中;
2、共三个题目分别为题目A,题目B,题目C,i=1:
11
学号后两位为(i-1)*3+1的同学完成题目A
学号后两位为(i-1)*3+2的同学完成题目B
学号后两位为(i-1)*3+3的同学完成题目C
3、编写一个脚本主程序命名为:
Amain.m(题目B用Bmain.m,以此类推)调用其它的函数完成全部要求功能;其余函数或数据文件的命名以A字母开始后接自己学号的后10位再加上一个一位的序号,如学号为631206040101的同学,除主程序之外另有两个文件(函数或数据文件),则分别命名为A12060401011和A12060401012;
题目A
随机生成n个(0,1)之间的数,学号为单数的同学将大于等于0.5的变为1,小于0.5的变为0得到一个n位的01序列(n取你学号的后三位所组成的整数)并对对生成的序列加奇校验码;学号为偶数的同学将大于0.4小于0.6的数的变为1,其余的变为0得到一个n位的01序列(n取你学号的后三位所组成的整数)并对生成的序列加偶校验码;假设1个符号的持续时间Tb=0.001s,载波1频率为5KHz,载波2频率为10KHz,试对生成的随机01序列进行2FSK调制,并在同一图形界面上画出调制信号,已调波形(前10个二进制位)及调制之后功率谱图;设计两个带通滤波器将上述生成的2FSK信号分解成两个2ASK信号,并分别画出信号波形(前10个二进制位)。
要求:
(1)将生成随机01序列的过程设计成函数,该函数的输入为01随机序列的位数,输出为01随机序列;
(2)将加奇偶校验码的过程设计成函数,该函数的输入为生成的01序列,输出为编码后的序列;
(3)将2FSK调制过程设计成函数,该函数的输入为01序列,载波频率及信息速率,输出为调制之后的信号数据;
(4)滤波器设计利用FDATool工具进行,如果利用FDATool进行设计则将滤波器参数用save命令保存到数据文件中。
(滤波器的阶数在能完成功能的前提下尽可能的低)。
(5)在主程序需要滤波器的地方用注释标明滤波器种类(低通、高通、带通)及滤波器参数(低通参数包括Apass,Astop,Fpass,Fstop,Fs、高通参数包括Apass,Astop,Fpass,Fstop,Fs、带通参数包括Apass,Astop,Fstop1,Fpass1,Fpass2,Fstop2,Fs)
(6)编写主程序调用前面的函数,完成题目中所要求的功能。
题目B
生成随机01序列n位(注意:
n是一个确定的值,为你学号的后三位所组成的整数),对生成的序列用(7,4)线性分组码进行编码,生成矩阵G如下:
假设信息速率为1Kbps,载波频率为10KHz,试对生成的随机01序列进行2ASK调制,并在同一图形界面上画出未调信号,已调波形(前10个比特)及调制之后功率谱图。
学号为单数的同学对上述生成的2ASK信号加叠加平均功率为(sig=学号个位数*0.3)的噪声,并进行带通滤波,请设计滤波器,并在同一图形界面上画出滤波前、后的波形;学号为双数的同学对上述生成的2ASK信号分别进行带通和低通滤波,请设计滤波器,并在同一图形界面上画出带通和低通滤波后的波形。
要求:
(1)将生成随机01序列的过程设计成函数,该函数的输入为01随机序列的位数,输出为01随机序列。
(2)将加线性分组码的过程设计成函数,输入为生成的01序列,输出为编码后的序列;
(3)将2ASK调制过程设计成函数,该函数的输入为01序列,载波频率及信息速率,输出为调制之后的信号数据。
(4)将加噪声的过程设计成函数,输入为调制之后的信号数据,输出为加噪声后的数据。
(5)滤波器设计利用FDATool工具进行,将滤波器参数用save命令保存到数据文件中。
在需要滤波器的地方用注释标明滤波器种类(低通、高通、带通)及滤波器参数(低通参数包括Apass,Astop,Fpass,Fstop,Fs,带通参数包括Apass,Astop,Fstop1,Fpass1,Fpass2,Fstop2,Fs)
(6)编写主程序调用前面的函数,完成题目中所要求的功能
题目C
假设信源信号为sin(2*pi*t)+cos(4*pi*t),对信源信号进行n点采样(n=1xx,xx为学号后两位),并完成量化和信源编码,在同一图形界面上画出量化前后的图形;假设1个比特的持续时间Tb=0.5ms,载波频率为10KHz,试对信源编码后的数据进行2ASK调制,并在同一图形界面上画出未调信号,已调波形(前10个比特)及调制之后功率谱图。
对上述生成的2ASK信号加叠加平均功率为(sig=学号个位数*0.3)的噪声,并进行带通滤波和整流,并在同一图形界面上画出滤波前、后以及整流后的波形。
要求:
(1)将采样的过程设计成函数,该函数的输入为采样时间t,输出为采样点。
(2)将量化编码的过程设计成函数,输入为采样后的数据,输出为01序列;
(3)将2ASK调制过程设计成函数,该函数的输入为01序列,载波频率及信息速率,输出为调制之后的信号数据。
(4)将加噪声的过程设计成函数,输入为调制之后的信号数据,输出为加噪声后的数据。
(5)滤波器设计利用FDATool工具进行,将滤波器参数用save命令保存到数据文件中。
在需要滤波器的地方用注释标明滤波器种类(低通、高通、带通)及滤波器参数(低通参数包括Apass,Astop,Fpass,Fstop,Fs,带通参数包括Apass,Astop,Fstop1,Fpass1,Fpass2,Fstop2,Fs)
(6)编写主程序调用前面的函数,完成题目中所要求的功能
附件2
重庆交通大学
学生综合设计报告
课程名称《MATLAB编程与系统仿真》
学院信息学院年级2012级专业班通信2班
学生姓名学号631206040218
成绩
《MATLAB编程与系统仿真》评分标准
序号
项目
标准
得分
1
仿真结果及报告
报告各项目认真填写,仿真结果正确,具有清晰的设计思路及仿真结果分析。
(90-95)
报告各项目认真填写,仿真结果基本正确,具有较为清晰的设计思路并对仿真结果进行了较为清晰的分析。
(80-89)
报告各项目认真填写,设计思路正确,能得到仿真结果。
(70-79)
报告进行为较为认真的填写,有设计思路。
(60-69)
报告有未完成项或各项填写不属实或他人代做或抄袭。
(<60)
题目
一、【程序仿真流程图】要求:
将各个函数文件的设计思路用流程图体现
二、【主要步骤】要求:
将整个实现过程写成伪码
三、【结果及分析】要求:
结果图及相应的问题分析
四、【总结】
题目C实验报告
一、【程序仿真流程图】
二、【主要步骤】
1、设计题目
题目C实验报告
2、实验内容及要求
内容:
假设信源信号为sin(2*pi*t)+cos(4*pi*t),对信源信号进行n点采样(n=1xx,xx为学号后两位),并完成量化和信源编码,在同一图形界面上画出量化前后的图形;假设1个比特的持续时间Tb=0.5ms,载波频率为10KHz,试对信源编码后的数据进行2ASK调制,并在同一图形界面上画出未调信号,已调波形(前10个比特)及调制之后功率谱图。
对上述生成的2ASK信号加叠加平均功率为(sig=学号个位数*0.3)的噪声,并进行带通滤波和整流,并在同一图形界面上画出滤波前、后以及整流后的波形。
要求:
(1)将采样的过程设计成函数,该函数的输入为采样时间t,输出为采样点;
(2)将量化编码的过程设计成函数,输入为采样后的数据,输出为01序列;
(3)将2ASK调制过程设计成函数,该函数的输入为01序列,载波频率及信息速率,输出为调制之后的信号数据;
(4)将加噪声的过程设计成函数,输入为调制之后的信号数据,输出为加噪声后的数据;
(5)滤波器设计利用FDATool工具进行,将滤波器参数用save命令保存到数据文件中。
在需要滤波器的地方用注释标明滤波器种类(低通、高通、带通)及滤波器参数(低通参数包括Apass,Astop,Fpass,Fstop,Fs,带通参数包括Apass,Astop,Fstop1,Fpass1,Fpass2,Fstop2,Fs);
(6)编写主程序调用前面的函数,完成题目中所要求的功能。
3、实验过程
实验伪码如下:
1、在(0,1)之间,以抽样频率为118对y进行取点并输出抽样信号
2、以量化电平为256对抽样信号进行均匀量化fix(abs(sampleSignal+dv/2)/dv)*dv
3、输出量化前后的信号
4、fori=1:
length(quantizeData)将量化电平编号转换成二进制,加上符号位编码
5、ASK调制t=1/100000:
1/100000:
1/10000,carrier=cos(20000πt)比特值为1时复制5个carrier,比特值为0时,复制50个0
6、Plot未调和已调信号波形图,plot(fftshift(fft(y1)))调制后的功率谱
7、直接叠加平均功率为2.4高斯噪声noise=sqrt(sig)*1/sqrt
(2)*randn(1,N)
8、调用fdatool设计滤波参数为Fstop1=1800Hz,Fpass1=2000Hz,Fpass2=18000Hz,Fstop2=18200,Fs=100000,Astop1=60dB,Astop2=80dB,Apass=1dB带通滤波器
9、带通滤波,输出滤波前后的信号和频谱
10、plot(abs(y3))输出整流后的信号
三、【结果及分析】
1、运行结果:
Fs=118抽样时的抽样信号波形图如下:
量化前后信号的波形图如下:
未调信号,已调波形(前10个比特)及调制之后功率谱图如下:
滤波前、后的波形图如下:
滤波前后的频谱图如下:
整流前后的波形如下:
2、实验分析
让随机产生的二进制比特流在已知载波频率的情况下进行调制,获得的调制信号能很好的反应出在真实的通信系统中对数字信号进行的调制效果。
但真实的通信系统中存在信源编码,本实验未进行信源编码,与实际仿真效果有一定差距。
本实验的噪声为加性高斯白噪声,而真实的通信系统中,因为调制的环境里存在很多电磁干扰,因为仪器的精密程度原因,导致调制信道达不到理想的状态,还会产生乘性噪声,产生一些失真。
本实验因为利用fdatool设计带通滤波器时考虑了过渡带,使得加入噪声后的信号通过带通滤波器后产生的信号和理论上的波形有一定差距,但这更加接近真实的通信系统。
实验可以通过调节载波的幅值来使得仿真加入噪声后的信号通过带通滤波器后产生的信号与滤波前的信号的波形图相比更加明显。
四、【实验心得】
本次实验涉及到的BPAK调制,为《通信原理》学科内容,虽然还未学习,但通过查阅课本和上网搜索资料,再结合MATLAB课程的学习,最终实现了过程的仿真,画出各点的波形。
该实验不仅仅涉及原理方框图的简单实现,还有滤波器如何实现,所以不得不查阅相关资料,最终找到通过FDATOOL可以设计低通滤波器,并可以导出滤波系数。
因为这是第一次用MATLAB软件对通信系统有一个较系统的仿真,中间过程遇到很多困难,如自己刚开始没考虑到载波频率和基带信号码元速率的关系,因此在绘图时发现与理论有一定的出入。
而且在该过程还遇到很多报错的情况,例如对抽样信号进行量化时未考虑到量化区间是从-2.5到2.5,在调试时输入的量化值太大,总是出现仿真错误,经过认真思考和上网查阅相关资料等途径终于解决了这一问题。
通过本次实验让我收获了以下几点:
第一,在写程序之前要先把要写程序的基本思路弄清,把整个程序分成几个小模块,再逐个模块去解决;第二,有不会的问题要及时和同学讨论,查找资料,请教老师;第三,通过本次实验,通信理论和MATLAB软件有了更深的了解,对其中很多函数的使用有了更深一步的掌握,加强了自己动手能力和学习技能的提升。