当前位置:首页 > 《基于MATLAB的数字信号处理》实验报告
*
实验一 MATLAB基本编程实验 一、实验目的及要求 1.熟悉MATLAB运行环境; 2. 掌握MATLAB的基本语法和函数; 3. 掌握MATLAB的基本绘图功能 二、实验设备(环境)及要求 1. 计算机 2. Matlab软件编程实验平台 三、实验内容与步骤 1.求下列线性方程组的解 6x1?3x2?4x3?3?2x1?5x2?7x3??48x1?4x2?3x3??71062. 分别用for或while循环结构编写程序,求出 K??i?13。并考虑一种2i避免循环语句的程序设计算法实现同样的运算。 3. 在同一坐标系下绘制以下3条曲线,并作标记。 y1?sinx,y2?sinxsin(10x),y3??cosx, x?(0,?)四、设计思想 设计思想1.1: 对于AX=B类型的方程组求解,需要先对非奇异矩阵A求逆,若存在逆矩阵,然后与B相乘即为所求 设计思想1.2: 用for或while循环结构编写程序时,首先对K初始化为0,确定循环的起始条件、步长和终值条件;用非循环语句时,先确定首项、公比,然后带入到等比数列求和公式中 设计思想1.3: ···
*
首先确定绘制曲线的每两点之间的间隔,然后在一幅图上绘制出所有曲线,并进行标注 五、程序代码及注释 程序代码1: >> A=[6 3 4; -2 5 7; 8 -4 -3]; %矩阵A >> X=inv(A) X = 0.1300 -0.0700 0.0100 0.5000 -0.5000 -0.5000 -0.3200 0.4800 0.3600 >> B=[3 -4 -7]'; X=X*B 程序代码2: 方法1:for循环结构实现 %结果初始化0 K= 0.0; for i = 1: 106 %默认步长为1 K=K+sqrt(3)/(2^i); end; fprintf('K=%f\\n',K); 方法2:while循环结构实现 K = 0.0; i = 1; while i < 107 ···
*
K = K +sqrt(3)/(2^i); i = i + 1; end; fprintf('K=%f\\n',K); 方法3:不使用循环,利用等比数列的前106项和公式实现 K = sqrt(3)/2.0; %数列首项 K = K *(1-0.5^106)/(1-0.5);%公比为0.5 fprintf('K=%f\\n',K); 程序代码3: x=0:0.01:pi; %步长0.01 y1=sin(x); y2=sin(x).*sin(10*x); y3=-cos(x); grid on%显示网格 hold on %在一幅图中绘制多条曲线 plot(x, y1, 'r','LineWidth',2); plot(x, y2, 'g','LineWidth',2); %y1红线表示,线宽为2 %y2绿线表示,线宽为2 plot(x, y3, 'b','LineWidth',2); %y3蓝线表示,线宽为2 %x轴范围0~3.5,y轴范围-1.2~1.2 axis([0,3.5,-1.2,1.2]); %图例注释自动放在最佳位置 legend('sin(x)','sin(x)sin(10x)','-cos(x)'); xlabel('x坐标轴'); %标注横坐标 ylabel('y坐标轴'); %标注纵坐标 title('三曲线对比图'); %标注标题 六、实验结果 实验结果1: X = ···
*
0.6000 7.0000 -5.4000 所以,X=[错误!未找到引用源。]=[ 0.6000, 7.0000, -5.4000]’ 实验结果2: K=1.732051 实验结果3: 三曲线的对比图如下所示: 图1.1 三曲线的对比 实验二 基于MATLAB信号处理实验 ···
共分享92篇相关文档