Matlab实验报告

 精选文库 — 实验环境 MATLAB 7.0 实验名称 实验一:熟悉 MATLAB 环境及 Matlab 基本操作

 实 验 目 的 1、熟悉 MATLAB 环境及各种基本 Matlab 操作

 实验原理实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。

  利用 FILE 菜单可方便对文件或窗口进行管理。其中 FILE|NEW 的各子菜单,M-FILE(M 文件)、FIGURE(图形窗口)、或 MODEL(SIMULINK 编辑界面)分别可创建对应文件或模块。EDIT 菜单允许用户和 WINDOWS 的剪切板交互信息。

 MATLAB 语言最基本的赋值语句结构为:变量名列表=表达。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“=”省略,则 ANS 变量将自动建立,例如键入:1900/81,得到输出结果:ans =23.4568。

 在MATLAB中把数据绘成图形可有多种命令一供选择。下面列出了这些命令:

  绘图命令

  Plot

 线性 X-Y 坐标图

  Loglog

 双对数坐标图

  Semilogx

 X 轴对数半对数坐标图

  Semilogy

 Y 轴对数半对数坐标图

  Polar

  极坐标图

  Mesh

  三维消隐图

  Contour

  等高线图

  Bar

  条形图

  Stairs

  阶梯图

 实

 验

 原

 理 除了可以在屏幕上显出图形外,还可以对屏幕上已有的图形加注释、题头或坐标网格。

  图形加注

  Title

  画题头

 Xlabel

  x 轴标注

 Ylabel

  y 轴标注

 Text

  任意定位的标注

 Gtext

 鼠标定位标注

 Dgrid

 网格

  关于坐标轴尺寸的选择和图形处理等控制命令:

  图形控制命令

  Axis

  人工选择坐标轴尺寸

 Clg

 清除图形窗口

 Ginput

 利用鼠标的十字准线输入

 Hold

  保持图形

 Shg

 显示图形窗口

 Subplot

  将图形窗口分成 N 块子窗

 实

 验

 内

 容 < 验证性实验> 1、将 Matlab 当前目录变更到 D:\自己姓名拼音文件夹下,并建立新文件画出 y=2 * x 的曲线,并将曲线图形保存在当前目录下。

 2、使用 for 语句及 while 语句求解 1 至 100 整数中奇数的和。

 < 设计性实验> 3、用 MATLAB 程序建立九九乘法表。

 4、求连续自然数的和,当和大于等于 1000 时,求最后一个自然数以及自然数的和。

 5、MATLAB 函数是可以递归调用的,即在函数的内部调用函数自身,试用递归方式编写n!函数。

 实

 验

 结

 果

 及

 分

 析 验 实验 1 :程序如下 x=1:10 y=2*x;

 plot(x,y) 仿真结果:

  实验结果分析:

 仿真结果是条很规则的直线,X 轴和 Y 轴一一对应,清楚明了,而序 又特别简单。用 所以用 Maltab 软件很方便地画出规则的直线,方便研究。

 实

 验

 结

 果

 及

 分

 析 实验 2:程序如下:

 clear all

 sum=0;

 for n=1:2:97

 sum=sum+n;

 end

 sum=sum+99

 disp("程序运行结束!")

  实验结果如下。

 实验 2 结果分析:

  这道题有多种方法,例如如下程序:

 clear all

 sum=0;

 for i=1:2:100

 sum=sum+i;

 end

 sum

  这道题需要注意的一点是语句sum=sum+i 后要加分号。这样就不会出现i每赋值一次窗口就显示一次sum 值。

 实验 3:程序如下:

 clear all

 for x=1:9

  a=[];

  for y=1:x

 term=([num2str(y),"*",num2str(x),"=",num2str(x*y,"%2d")]);

 if x*y<10

 term=[term,"

 "];

 else

  term=[term," "];

  end

 a=[a,term];

 end

 disp(a)

 end

 实

 验

 结

 果

 及

 分

 析 实验 3 仿真结果:

 实验 4 程序如下: clear all

 n=0;

 sum=0;

 while(sum<1000)

 n=n+1;

 sum=sum+n;

 end

 str1 = ["最后一个自然数为:",num2str(n)];

 str2 = ["计算结果为:",num2str(sum)];

 disp(str1)

 disp(str2) 实验4结果为:

 实验 5 程序:

 n=input("n");

 sum=1;

  if(n==0)

 break;

 else

  for

 m=1:n

  sum=sum*m;

 end

  end

 sum

 仿真结果:

 n5 sum = 120

 实验名称 实验二:

 Matlab 在通信原理中的应用

 实 验 目 的

 1、掌握通信原理课程中基本知识的 Matlab 编程、仿真方法

  实验原理实验原理

 实验 1 程序:

 dt = 0.001;

 fm = 2;

 fc = 10;

 T = 5;

  t = 0:dt:T;

 mt = sqrt(2) * cos(2 * pi * fm * t);

  A = 0.5;

 s_am = (A + mt).* sin(2 * pi * fc * t);

 B = 2 * fm;

 figure(1)

 subplot(311)

 plot(t,s_am);hold on;

  plot(t,A + mt,"r--");

 title("AM调制信号及其包络");

 xlabel("t");

 rt = s_am.*cos(2 * pi * fc * t);

 rt = rt - mean(rt);

 [f,rf] = T2F(t,rt);

 [t,rt] = lpf(f,rf,2 * fm);

 subplot(312)

 plot(t,rt);hold on;

 plot(t,mt/2,"r--");

 title("相干解调后的信号波形与输入信号的比较");

 xlabel("t")

 subplot(313)

 [f,sf]=T2F(t,s_am);

  psf = (abs(sf).^2)/T;

  plot(f,psf);

 axis([ -2*fc 2*fc 0 max(psf)]);

 title(AM信号功率谱");

 xlabel("f");

 实

 验

 内

 容 < 设计性 实验> 1、用 Matlab 产生一个频率为 2Hz、功率为 1 的正弦信源 m(t),设载波频率为 10Hz,A 分别等于 0.5、1、1.5,试画出:

 (1)AM 调制信号; (2)调制信号的功率谱密度; (3)相干解调后的信号波形 (选做)

 (4)研究调制深度与失真的关系。

 (选做)

 < 设计性实验> (选做)

 2、消息 ( ) m t 是周期为 2s 的周期信号,它在区间 [0,2] 的定义如下:

 0.1 1( ) 2 1 1.90t tm t t t      其它 该信号用 DSB 方案调制 50Hz 的载波。

 (1)绘出调制信号。

 (2)绘出调制信号的频谱。

 (3)比较调制信号和未调制信号的频谱。

 实

 验

 结

 果

 及

 分

 析 1、 A=0.5

 2、 A=1

 实

 验

 结

 果

 及

 分

 析 A=1.5

 实验名称 实验三 Matlab 在信号与系统中的应用

 实 验 目 的 1、掌握信号与系统课程中基本知识的 Matlab 编程、仿真方法

 实

 验

 原

 理 实验1程序 :

 b=[1];

 a=[1 1];

 p=0.5;

 t=0:p:5;

 x=exp(-3*t);

 subplot(1,2,1);

 impulse(b,a,0:p:5);

 title("冲激响应");

 subplot(1,2,2);

 step(b,a,0:p:5);

 title("阶跃响应");

 实

 验

 内

 容 < 设计性 实验> 1、用 MATLAB 在时域中编程求解 y′(t)+y(t)=f(t), f(t)= exp(-3t)ε(t)的冲激响应、阶跃响应。在 simulink 仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。

 < 设计性实验> (选做)

 2、用 MATLAB 在时域中编程求解 y′(t)+y(t)=f(t), f(t)=(1+exp(-3t))ε(t)的冲激响应、阶跃响应,要求用 conv 编程实现系统响应。在 simulink 仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。

 实

 验

 结

 果

 及

 分

 析 实验 1 仿真结果:

 simulink 仿真环境下 冲激响应

 阶跃响应

 实验名称实验名称

 实验四 Matlab 在数字信号处理中的应用 实 验 目 的 1、掌握数字信号处理课程中基本知识的 Matlab 编程、仿真方法 实

 验

 原

 理 验 实验 1 程序:

 t1=0:1/6000:0.004;

 x1=1+cos(2*pi*5000*t1);

 subplot(4,1,1);

 plot(t1,x1);

 title(" 采样频率为6 千赫兹 ");

 xlabel(" 时间");

 t2=0:1/12000:0.004;

 x2=1+cos(2*pi*5000*t2);

 subplot(4,1,2);

 plot(t2,x2);

 title(" 采样频率为12 千赫兹");

 xlabel(" 时间");

 F1=fft(x1,1024);

 n=0:1023;

 f=6000*n/1024;

 subplot(4,1,3);

 plot(f,abs(F1));title("6000Hz 频谱");

 F2=fft(x2,1024);

 n=0:1023;f=12000*n/1024;

 subplot(4,1,4);

 plot(f,abs(F2));title("12000Hz 频谱");

 实

 验

 内

 容 < 设计性 实验> 1、对于连续信号 x(t)=1+cos(2πft),其中 f=5kHz,分别以采样频率 fs=6 kHz 和 fs=12kHz 对其进行采样,

 (1)分别绘出对应的采样信号。

 (2)对信号进行傅里叶变换,绘出对应的曲线。

 (3)在 simulink 仿真环境下,设计系统框图,观察信号的频谱成分。

 < 设计性实验> (选做)

 2、对于连续信号 ) 2 cos( ) 2 cos( 5 ) 2 ( cos ) (3 2 1 at f t f t f t x       ,其中 kHz 5 . 61 f ,kHz 72 f ,对信号进行傅里叶变换。设计合适的采样频率对信号进行采样。对信号进行快速傅里叶变换 FFT,分析信号的频谱成分。在 simulink 仿真环境下,设计系统框图,分析信号的频谱成分。

 实

 验

 结

 果

 及

 分

 析 实验 1 仿真结果:

 6khz

 12kHZ

 实

 验

 总

 结 学习了 MATLAB 这门课程,我了解该软件的基本功能,也知道了该软件在我们生活中的重要地位。随着社会的不断发展,科技的不断进步,计算机的普及,它也被应用在越来越多的方面。

 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完成相同的事情简捷得多,MATLAB 的最突出的特点就是简洁。

 MATLAB 的功能是非常强大的,MATLAB 不仅有强大的运算功能,它还有强大的绘图功能,我对它的了解也仅仅就是一点点,或许说还没有入门。比如说它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等,以及逻辑/选择函数如 if-else 等,还有用来模拟随机发生事件的随机函数。这些我都不了解。

 虽学习 MATLAB 的时间虽然很短,但却让我了解到了它的强大和它的功能。我想就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索。老师只是个指路的明灯,最终的学习还是要靠自己。而且在摸索过程中,我们能够发现和体会学习的快乐!