matlab实验报告

更新时间:2023-07-25 01:14:27 阅读: 评论:0

MATLAB程序设计软件
专业及班级 ____通信 中兴131_______
 
        ____魏增_______________
 
        _____6102213869________
 
        _____2015.6.15_________
 
南昌大学实验报告
学生姓名: 魏增ofc       号:  6102213869    班级:    中兴131   
实验类型: 验证 综合 设计 创新 实验日期:          实验成绩:     
实验一  MATLAB的基本使用
一、 实验目的
1.了解MATALB程序设计语言的基本特点,熟悉MATLAB软件的运行环境;
2.掌握变量、函数等有关概念,掌握M文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力;
3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。
二、 MATLAB的基础知识
通过本课程的学习,应基本掌握以下的基础知识:
一. MATLAB简介
二. MATLAB的启动和退出
三. MATLAB使用界面简介
帮助信息的获取
五.  MATLAB的数值计算功能
. 程序流程控制
.  M文件
八.  函数文件
.  MATLAB的可视化
三、上机练习
1. 仔细预习第二部分内容,关于MATLAB的基础知识。
2. 熟悉MATLAB环境,将第二部分所有的例子在计算机上练习一遍
3、已知矩阵。求A*B,A .* B,比较二者结果是否相同。并利用MATLAB的内部函数求矩阵A的大小、元素和、长度以及最大值。
>> A=[1 2 3;4 5 6;7 8 9];
>> B=[9 8 7;6 5 4;3 2 1];
>> A*B
ans =
  30    24    18
  84    69    54
  138  114    90
>> A.*B
ans =
9    16    21
24    25    24
21    16    9                          两者结果不同
>> [m,n]=size(A)
m =
3
n =
3
>> b=sum(A)
b =
12    15    18
>> a=length(A)
a =
3
>>max(A)
ans =
  7    8    9
4Fibonacci数组的元素满足Fibonacci规则:;且。现要求该数组中第一个大于10000的元素。
1) 在命令窗口中完成;
2) 利用M文件完成;
3) 自己定义一个函数文件,并在命令窗口中调用该函数完成。
>> a1=1;
巴斯大学>> a2=1;
阶梯英语学校>>  b=0;
>>  while b<10000
b=a1+a2;
a1=a2;
a2=b;
end
>>  b
b =
      10946
5.在同一个图形窗口的两个子窗口中分别画出(红色、虚线)和(蓝色、星号)的波形。要求有标题,xy轴有标注。
解:>> x=-10:0.1:10;
y1=cos((pi/4)*x);
subplot(2,2,1),plot(x,y1,'r:')
xlabel('x1')
ylabel('y1=cos((pi/4)*x)')
title('余弦函数')
>> x=-10:0.1:10;
y2=cos((pi/8)*x);
subplot(2,2,2),plot(x,y1,'b-.p')
xlabel('x2')
ylabel('y2=cos((pi/8)*x)')
title('余弦函数')
图形:
四、 思考题
1、 在语句末加分号“;”和不加分号有什么区别?
2、 M文件和函数文件有什么异同之处?
3、 矩阵乘(*)和数组乘(.*)有何不同?
五、 简述本次实验的体会和建议。
实验二  信号的表示及可视化
一、实验目的
1. 掌握连续信号的MATLAB表示方法(表达式及图形描述);
    2.  掌握离散序列的MATLAB表示方法(表达式及图形描述);
2、实验原理
在MATLAB中通常用两种方法来表示信号,一种是向量表示信号,另一种则是用符号运算的方法来表示信号。用适当的MATLAB语句表示出信号后,我们就可以利用MATLAB的绘图命令绘出直观的信号波形。
(一. 连续时间信号的表示及可视化
1. 向量表示法:对于连续时间信号f(t),我们可以用两个行向量f和t来表示,其中t向量是形如t=t1:p:tjetion2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为终止时间,p为时间间隔。向量f为连续信号f(t)在向量t所定义的时间点上的样值。
2. 符号运算表示法:如果信号可以用一个符号表达式来表示它,则我们可用ezplot命令绘
制出信号的波形。
3.常用连续信号的表示
1)单位阶跃信号
单位阶跃信号的定义为:
一种得到单位阶跃信号的方法是在MATLAB的Symbolic Math Toolbox中调用单位阶跃函数Heaviside,这样可方便地表示出单位阶跃信号。但是,在用函数 ezplot实现其可视化时,就出现一个问题:函数ezplot只能画出既存在于Symbolic Math工具箱中,又存在于总MATLAB工具箱中的函数,而Heaviside函数仅存在Symbolic Math Toolbox中,因此,就需要在自己的工作目录work下创建Heaviside的M文件,该文件如下:
function f=Heaviside(t)
f=(t>0);    %t>0时f为1,否则为0回赠
正确定义出该函数并保存运行后,就可调用该函数了。
(二. 离散时间信号的表示及可视化
1.一般离散信号的表示:一般说来,离散时间信号用f(k)表示,其中变量k为整数,代表离散的采样时间点。在MATLAB中,用一个向量f即可表示一个有限长度的序列。但是,这样的向量并没有包含其对应的时间序号信息。所以,要完整地表示离散信号需要用两个向量。
2.典型离散序列的表示
1)单位序列δ(k)
单位序列的定义为
function dwxulie(k1,k2,k0)
k=k1:k2;
n=length(k)
f=zeros(1,n)
f(1,-k0-k1+1)=1        %在k0时刻,信号赋值为1
quoted printable
stem(k,f,'filled')
axis([k1,k2,0,1.5])
title('单位序列δ(k)')
2)单位阶跃序列
单位阶跃序列
与单位序列类似,下面给出绘制单位阶跃序列ε(k+k0)MATLAB子程序:
function jyxulie(k1,k2,k0)
k=k1:-k0-1;
kk=-k0:k2;
n=length(k);
nn=length(kk);
u=zeros(1,n);            %k0前信号赋值为零
uu=ones(1,nn);            %k0后信号赋值为一
stem(kk,uu,'filled')
hold on
stem(k,u,'filled')
hold off
axis([k1,k2,0,1.5])
title('单位阶跃序列')
三.上机练习
1.认真预习实验原理的内容,将所有例题在计算机上练习一遍。
2. MATLAB命令绘制单边指数信号e -1.5 tε(t)在时间0<t<3区间的波形。要求有标题,在(3.1,0.05)处标注’t’,利用axis调整坐标轴在一个合适的范围,便于观察波形。
    头文件:function f=Heaviside(t)
    f=(t>0);
调用:
>> y=sym('exp(-1.5*t)*Heaviside(t)');ezplot(y)
>> text(3.1,exp(-1.5*3.1)*Heaviside(3.1),'\leftarrowexp(-1.5*t)*Heaviside(t)=0.05')
>> axis([0 5 -1 1])
3. 绘制δ(t-2)-1<t<5的波形。
头文件:
function chongji(t1,t2,t0)
crucial
dt=0.01;
t=t1:dt:t2;
n=length(t);decisionmaking
x=zeros(1,n);
x(1,(-t0-t1)/dt+1)=1/dt;
stairs(t,x);
axis([t1,t2,0,1.2/dt])
title('单位冲激信号')
调用:
chongji(-1,5,-2)
4. 绘制ε(k-3)-1k5及ε(k+1),-5k2
头文件
function jyxulie(k1,k2,k0)
k=k1:-k0-1;
kk=-k0:k2;
n=length(k);
nn=length(kk);
u=zeros(1,n);            %k0前信号赋值为零
uu=ones(1,nn);            %k0后信号赋值为一
stem(kk,uu,'filled')
hold on
stem(k,u,'filled')
hold off
axis([k1,k2,0,1.5])
title('单位阶跃序列')
调用
jyxulie(-1,5,-3)
jyxulie(-5,2,1)
5. 考虑下面3个信号:
  f1(n)=cos(2πn/N)+2cos(3πn/N)
  f2(n)=2cos(2n/N)+2cos(3n/N)
  f3(n)=cos(2πn/N)+3cos(5πn/N)
假设对每个信号N=6。试确定上述信号是否是周期的。如果是,则确定信号的周期,并画图表示出该信号的两个周期;如果不是周期的,在[04N]的范围内画出该信号,并说明原因。
答:f1(n)=cos(2πn/N)+2cos(3πn/N)在线广播是周期的。周期为fraud12
代码
>> n=0:24;
>> subplot(2,2,1)
>> stem(n,cos(n*2*pi/6)+2*cos(n*3*pi/6),'filled')
f2(n)=2cos(2n/N)+2cos(3n/N) 非周期序列
f3(n)=cos(2πn/N)+3cos(5πn/N)周期序列  周期为60
代码
>> n=0:24;
>> subplot(2,1,1)
>> stem(n,2*cos(n*2/6)+2*cos(n*3/6),'filled')
>> title('2*cos(n*2/6)+2*cos(n*3/6)')

本文发布于:2023-07-25 01:14:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/187836.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   表示   函数   时间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图