重 庆 交 通 大 学《MATLAB编程与系统仿真》Word格式文档下载.docx
《重 庆 交 通 大 学《MATLAB编程与系统仿真》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《重 庆 交 通 大 学《MATLAB编程与系统仿真》Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
1
仿真结果及报告
报告各项目认真填写,仿真结果正确,具有清晰的设计思路及仿真结果分析。
(90-95)
报告各项目认真填写,仿真结果基本正确,具有较为清晰的设计思路并对仿真结果进行了较为清晰的分析。
(80-89)
报告各项目认真填写,设计思路正确,能得到仿真结果。
(70-79)
报告进行为较为认真的填写,有设计思路。
(60-69)
报告有未完成项或各项填写不属实或他人代做或抄袭。
(<
60)
题目C
生成随机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工具进行,将滤波器系数保存到数据文件中。
在需要滤波器的地方用注释标明滤波器种类(低通、高通、带通)及滤波器参数(低通参数包括Apass,Astop,Fpass,Fstop,Fs,带通参数包括Apass,Astop,Fstop1,Fpass1,Fpass2,Fstop2,Fs)
(6)编写主程序调用前面的函数,完成题目中所要求的功能
一、【程序仿真流程图】要求:
将各个函数文件的设计思路用流程图体现
(1)生成0,1序列
(2)线性分组码编码
(3)2ASK调制
(4)叠加噪声
(5)滤波器的调试
(6)主函数
二、【主要步骤】要求:
将整个实现过程写成伪码
(1)%生成0,1序列
%用rand函数生成0—1的序列,用round函数进行四舍五入
functionsignal=C13060401301(stu_num)
signal=round(rand(1,stu_num));
end
(2)%用线性分组码编码
%求出序列长度,补全成4的倍数,用reshape函数进行重组转置,然后乘以G,进行除二取余,得到线性分组码的编码后的信号
functiona=C13060401302(stu_num)
a1=length(stu_num);
a2=rem(a1,4);
a3=zeros(1,4-a2);
a4=[stu_num,a3];
a5=reshape(a4,4,[]);
a6=a5'
;
G=[1000101
0100111
0010110
0001011];
a=rem(a6*G,2);
(3)进行2ASK调制
%Bit速率为1000bps;
载波频率为10000Hz;
由每一位bit占用时间:
1/1000=1ms;
载波的一个周期所占用时间:
1/10000=0.1ms因此,一个bit位有10个完整的载波周期.载波的一个周期以16点抽样.即t=2*pi/16:
2*pi/16:
2*pi;
carrier=cos(t);
调制时:
1)如果某位为1,则复制10次carrier;
2)如果某位为0,则复制10*16个0.
functionb=C13060401303(stu_num,bitRate,carrierFrequency,N1)
M=carrierFrequency/bitRate;
t=(2*pi/N1):
(2*pi/N1):
2*pi*10;
carrier=[];
forj=1:
M
carrier=[carrier,cos(t)];
end
transmittedSignal=[];
fori=1:
length(signal)
if(signal(i)==1)
transmittedSignal=[transmittedSignal,carrier];
else
transmittedSignal=[transmittedSignal,zeros(1,length(carrier))];
(4)加入噪声
%在调制信号上叠加平均功率为sig=10*0.3的噪声,在调制信号每一个点上加上0到1之间的随机数产生噪声影响%
functionchannel_signal=C13060401304(a,p)
noise=sqrt(p)/sqrt
(2)*randn(1,length(b));
channel_signal=b+noise;
(5)使用滤波器
%设置滤波器参数,将滤波器参数用save命令保存到数据文件中,
%导出滤波系数,将叠加了噪声的信号进行滤波,在同一界面画出波形
%输入相应参数,进行函数调用并画出图形
三、【结果及分析】要求:
结果图及相应的问题分析
分析:
输入信号为0、1序列,调制信号为连续信号,由傅里叶公式知道功率谱为离散信号。
低通滤波器和带通滤波器参数不同,即使通带频率相同,滤波后波形明显不同,不同的调制信号为了滤除噪声应采用不同的滤波器。
四、【总结】
在图书馆写了三天程序,但效果并不好,后来结合老师的课件以及以前做过的题目写出了部分程序。
由于长时间对这电脑,整个人都是懵的,最后写的报告及程序有部分都没有带走,后来重新改的。
对于MATLAB的学习,其间糅合了很多通信原理的知识。
要做好一次实验,只学习好一门知识是远远不够的。
本次实验结合了通信相关知识和MATLAB,两门课程学的都不好,分析及编写程序过程中大量求助了同学,但还是存在很多问题。
通过这次实验,我进一步掌握了BPSK的原理。
在做实验前,我把老师上课讲的PPT认真复习及进一步深入地进一步学习。
实验过程中,出现过很多问题,有些解决了,但还有很大一部分都还有问题。
与此同时,我深刻体会到练习的重要性,只有平时掌握好了,用时才不会那么困难。
对于MATLAB的学习,今后还需要抓紧。
通过两次实验,我对以下几点深有体会:
1、拿到题目的第一件事不是盲目开始,而是要理清思路。
画出流程图,写好伪码。
2、在编写程序时,要静下心来,不然细节地方错了都不知道。
3、对于不会的地方,先自己思考,也不要一味自己思考,因为时间有限。
4、每一个学科都要运用到实践中才能发挥它的作用,所以多动手。
5、写程序及报告时,写一点就保存,不要最后才保存,以免丢失数据。