Matlab实验报告

  • 格式:doc
  • 大小:198.00 KB
  • 文档页数:19

实验环境 MATLAB

实验名称 实验一:熟悉MATLAB环境及Matlab基本操作

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

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

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

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

在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')]); 实 验

析 实验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; 实验名称 实验二: Matlab在通信原理中的应用

目 的

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

实验原理

实验1程序:

dt = ; fm = 2; fc = 10; T = 5; t = 0:dt:T;

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

A = ;

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分别等于、1、,试画出:

(1)AM调制信号;

(2)调制信号的功率谱密度;

(3)相干解调后的信号波形(选做)

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

(选做)

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

0.11()211.90ttmttt其它

该信号用DSB方案调制50Hz的载波。

(1)绘出调制信号。

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

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

及 分 析 1、 A=

2、 A=1

实 验 结 果

析 A=

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

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

b=[1];

a=[1 1];

p=;

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仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。