资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MATLAB编程与系统仿真,重庆交通大学信息科学与工程学院 通信工程系主讲教师:谭晋 Mobile:13658363144 Email:tanjin1122foxmail.com 2009年10月,Content,Matlab编程基础 变量及其赋值 运算符与表达式 程序控制流程 自定义函数 基本绘图方法 M文件及其调试 Matlab在信号处理中的应用 信号及其表示、基本运算 系统的响应 傅里叶变换 数字滤波器设计,通信系统仿真 编译码 模拟调制与解调 数字调制与解调 性能仿真 Simulink应用基础,课程考核方式,考核方式 上机实验(实验报告) 30分 平时成绩(考勤+作业)10分 上机考试 60分上机考试两道题: 25分+35分 上机考试时间:上机课中最后一次上机时间,Matlab编程基础,变量及其赋值 标识符号与数据格式 标识符号是标志变量名、常量名、函数名和文件名的字符串的总称。 双精度数据格式,64位二进制。 矩阵及其元素的赋值 赋值语句:变量=表达式(数) Matlab中变量都代表矩阵,其阶数为MN 赋值要求: 整个矩阵的值应在中; 同一行中各元素之间以逗号“,”或空格分开; 不同行的元素以“;”隔开。 例P15-16,Matlab编程基础,矩阵元素的索引 访问向量的元素只要使用相应元素的索引即可 赋值技巧 利用冒号“:”给全行的元素赋值 例:a=eye(5);a(2,:)=ones(1,5)a 利用行、列标注构成新的矩阵 例:b=a(2,3,4,1,2,3) 零矩阵与空矩阵的区别?,Matlab编程基础,利用小矩阵组成大矩阵 例:a=ones(2,3)b=zeros(3,2)c=a;a;ad=b;be=c,d 常用生成矩阵的方法 利用生成矩阵的函数(P17-18) 利用“:”运算符 冒号运算符创建了具有10个元素的向量。利用冒号运算符创建向量的基本语法如下:X = J:INC:K,Matlab编程基础,Matlab内部的特殊变量和常数 例:ans、eps、realmax、realmin、pi、Inf 、i、j、NaN 复数的赋值方式 可将矩阵元素逐个赋予复数; 将矩阵的实部和虚部分别赋值。,Matlab编程基础,运算符与数学表达式 算术运算符(P20表2.2) 矩阵加减:“+”、“-” 功能:两矩阵对应元素相加/减。 A、B矩阵的阶数必须相等或其中之一为标量,标量可与任意大小的矩阵相加/减。 矩阵相乘:“*” 矩阵元素相乘:“.*” 功能:矩阵A、B对应元素相乘。A、B行列必相同或其中之一为标量。,Matlab编程基础,矩阵右除B/A与左除AC 如果A为一非奇异矩阵,则右除:B/A=B*inv(A) 如果A为一非奇异矩阵,则左除:AC=inv(A)*C 矩阵元素右除A./B与左除A.B A,B两矩阵必同行列,或其中之一为标量。 矩阵幂“”及矩阵元素幂“.” 矩阵转置“”及矩阵非共轭转置“.”,Matlab编程基础,关系运算符 、=、=、= Matlab关系运算符用来比较两个同样大小的数组,或用来比较一个数组和一个标量; 当数组和标量进行比较时,结果与数组大小一样; 关系比较的结果只有两种可能,即1或0。 例:比较下面两段语句的结果 x=(-3:3)/3 x=x+(x=0)*eps sin(x)./x sin(x)./x 例:统计数组A中值大于5.5元素的个数,Matlab编程基础,逻辑运算符 &(与) |(或) (非) 真值表(P24) 其他逻辑函数(P25表2.6,2.7) 数学表达式的MATLAB描述(P25) 不要忽略数乘 不能调用系统中不存在的函数,Matlab编程基础,流程控制 if 语句 格式: 格式1 If 表达式语句组A End 例1_1:随机生成一个(0,1)之间的数,如果该数大于等于0.5则输出该数.,Matlab编程基础,格式2 If 表达式语句组A Else语句组B End 例1_2: 随机生成一个(0,1)之间的数,如果该数大于等于0.5,则将该数变为1,否则将该数变成-1. 例1_3: 随机生成100个(0,1)之间的数,将大于等于0.5的变为1,小于0.5的变为0.,Matlab编程基础,格式3 If 表达式1语句组A Elseif 表达式2语句组B Else语句组C End 例1_4: 随机生成一个(0,1)之间的数,如果该数所处区间为(0,0.3)则将该数变成0,如果该数所处区间为(0.3,0.6),则将该数变成1,否则将该数变成2.,Matlab编程基础,Switch语句 Switch语句称为条件选择语句,其中关键字包括:switch, case, otherwise以及end.主要用于有选择性的程序设计,实现程序的多分支选择. 格式: Switch 选择表达式case 情况表达式1语句组1case情况表达式2语句组2otherwise语句组n end,例1_5:随机生成一个1到12之间的整数,按如下规则进行转换: 如果该数在14之间,转换成-1; 如果该数在58之间,转换成0; 如果该数在912之间,转换成1。,Matlab编程基础,While语句 While语句为条件循环语句,循环次数不确定,取决于逻辑表达式。 格式: While 表达式语句组A End,例1_6:生成一个具有100个元素的1,-1随机序列。 例1_7:生成一个具有100个元素的1,0随机序列。 例1_8:输入一个N值,求1+2+3+N的值。 例1_9:输入若干个同学的成绩,求大于等于平均成绩的同学人数。,Matlab编程基础,For语句 是一种循环次数确定的循环语句。 格式:for V=初值:增量:终值语句组Aend 功能:将语句组A循环执行N次,其中:N=1+(终值-初值)/增量,Matlab编程基础,For循环注意事项 不能通过在循环体内重新赋值给循环变量来终止FOR循环,只能使用Break语句; 例:,Matlab编程基础,循环被执行前,应预先分配数组; 当有一个等效的数组方法来解答给定的问题时,应避免使用循环; 循环可按需要进行嵌套; 例:(前面while循环的例子),Matlab编程基础,例: 随机生成01000之间的随机数100个,并按从小到大的顺序输出. 例: 随机生成51100之间的随机数50个,请输出序列中不存在的51100之间的数. 例: 请验证两个正交的复噪声信号之和的包络服从Rayleigh分布,Matlab编程基础,数据的输入/输出及文件的读写(P31) save, load命令 基本数学函数(P42) 基本绘图方法 图形窗口控制命令 figure(N) 功能:新创建一个图形窗口,并自动/N编号 图形窗口内容保持命令hold on (off) 功能:保持当前图形窗口的内容,或取消hold on功能,恢复系统默认状态. 图形窗口划分命令 格式: sumplot(m,n,p) 功能: 将图形窗口分成n*m个子图形窗口,并选择第p个子图形窗口作为当前图形窗口,供绘图函数作图使用.,Matlab编程基础,二维图形的绘制 二维图形绘制命令plot 格式一: plot(y) 功能:输入一个数据的情况. 如果y是一个数组,函数plot(y)给出笛卡儿坐标下的二维图.以y中元素的下标为X坐标,以y中元素值为Y坐标. 例:给出一个周期的sin(x)的图形 格式二: plot(x,y) 功能:以x数组中元素值为横坐标,以y元素值为纵坐标作图. 例1_10:给出一个从(-pi,pi)的cos(x)图形,Matlab编程基础,线型,标记符及颜色的设置(P50) 格式一:plot(y,字符串) 格式二:plot(x,y,字符串) 其中:字符串中是关于线形,颜色及标记符号的说明 图形的标注、网格及图例说明 (1)添加图形标题命令title 格式: title(string) 功能:在当前坐标系的顶部加一个文本串string,作为该图的标题. (2)添加坐标轴标志函数xlabel,ylabel,zlabel 格式:xlabel(string)ylabel(string)zlabel(string),Matlab编程基础,(3)设置网格线命令grid 格式: grid on(off) 功能: 对当前坐标图加上网格式或撤销网格线. (4)图形标注函数legend 格式:legend(string1,string2,string3,.) 功能:在当前图中添加图例. 坐标轴刻度设置 格式: axis(xmin,xmax,ymin,ymax,) 功能:对x,y,等坐标轴进行标定.,Matlab编程基础,多条曲线的绘制 格式:plot(x1,y1,x2,y2,x3,y3,) 功能:为每一对X-Y绘制一条图线.可以在每个xi,yi后加线形,标记和颜色控制. 例1_11:在一张图中画出sin(t),cos(t),sin(t)+cos(t)的图形,Matlab编程基础,M文件 命令语句构成的程序文件,可分为两种: 主程序文件 由用户为解决特定问题,而将命令语句序列放到m文件中而形成的文件 主程序文件结构 有关程序的功能,使用方法等内容的注释部分 以”%”开始直至行末的部分为注释部分 程序主体 由若干条命令语句组成,实现程序设计功能,通常用clear, close all开始 主程的运行方式 例1_12编写程序画出sin(6pix),cos(2pix)以及两函数之各的曲线.,Matlab编程基础,函数文件结构 函数定义行 function 变量列表=函数名(参数) H1行 注释行,主要说明该函数的功能,可以在help命令中显示. 函数帮助文本 注释行,用来比较详细地说明函数的相关信息,可在help命令中显示 函数体 用来完成函数功能的语句序列,并以end语句为结束标志. 例1_13生成四个长度为64的序列,分别为s1,s2,s3,s4,对每个序列乘上1,-1,j,-j中的任意一个因子后求和.求所有可能的和序列中峰均功率比最低的序列及相应的因子.,系统仿真基础,通信系统仿真,发射机,接收机,信道干扰,发射机,抽样,量化,编码,信源编码,信道编码,调制,信源,线性分组码,循环码,BCH,RS,卷积码,Turbo,ASK,FSK,PSK,MSK,GMSK,QAM,信源编码,抽样,量化,编码,信源编码,信源,function signal=informationSource(t),function sampleSignal=sampling(),function quantizeData=quantizing(sampleSingal),function bitstream=sourceCoding(quantizeData),信源,function signal=informationSource(t)signal=sin(2*pi*t)+cos(4*pi*t);end,抽样,function sampleSignal=sampling()t=0:0.01:1sampleSignal=informationSource(t)end,量化,function quantizeData=quantizing(sampleSingal)dv=2*a/(M-1);quantizeData=sign(sampleSignal).*fix(abs(sampleSignal+dv/2)/dv)*dv;end,编码,function bitstream=sourceCoding(quantizeData,dv,M)N=length(quantizeData);bitstream=;N1=fix(log2(M);for i=1:NNData=fix(abs(quantizeData(i)/dv);bindata=convert2bin(NData,N1);if (quantizeData(i)=0)bindata(1)=0;elsebindata(1)=1;endbitstream=bitstream,bindata;end end,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号