当前位置:文档之家› 实验一 基于Matlab的数字信号处理基本操作

实验一 基于Matlab的数字信号处理基本操作

实验一   基于Matlab的数字信号处理基本操作
实验一   基于Matlab的数字信号处理基本操作

实验一 基于Matlab 的数字信号处理基本操作

一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离

散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容:

(一) 离散时间信号在MATLAB 中的表示

离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。

离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。

1. 单位取样序列

单位取样序列)(n δ,也称为单位冲激序列,定义为

)

0()

0(0

1)(≠=??

?=n n n δ

要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即

function y=impDT(n)

y=(n==0); %当参数为0时冲激为1,否则为0

调用该函数时n 必须为整数或整数向量。

【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为

>>n=-3:3; >>x=impDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])

程序运行结果如图1-1所示。

图1-1 单位冲激序列

2. 单位阶跃序列

单位阶跃序列)(n u 定义为

)

0()

0(0

1)(<≥??

?=n n n u

在MA TLAB 中,冲激序列可以通过编写uDT .m 文件来实现,即

function y=uDT(n)

y=n>=0; %当参数为非负时输出1

调用该函数时n 也同样必须为整数或整数向量。

【实例1-2】 利用MATLAB 的uDT 函数绘出单位阶跃序列的波形图。 解:MATLAB 源程序为

>>n=-3:5; >>x=uDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])

程序运行结果如图1-2所示。

3. 矩形序列

矩形序列)(n R N 定义为

)

,0()

10(0

1

)(N n n N n n R N ≥<-≤≤??

?= 1

矩形序列有一个重要的参数,就是序列宽度N 。)(n R N 与)(n u 之间的关系为

)()()(N n u n u n R N --=

因此,用MATLAB 表示矩形序列可利用上面所讲的uDT 函数。

图1-2 单位阶跃序列

【实例1-3】 利用MATLAB 命令绘出矩形序列)(5n R 的波形图。 解:MATLAB 源程序为

>>n=-3:8;

>>x=uDT(n)-uDT(n-5);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('矩形序列') >>axis([-3 8 -0.1 1.1])

程序运行结果如图1-3所示。

4. 单边指数序列

单边指数序列定义为

)()(n u a n x n =

【实例2-4】 试用MA TLAB 命令分别绘制单边指数序列

)(2.1)(1n u n x n =、

)()2.1()(2n u n x n -=、)()8.0()(3n u n x n =、)()8.0()(4n u n x n -=的波形图。

解:MATLAB 源程序为

>>n=0:10;

>>a1=1.2;a2=-1.2;a3=0.8;a4=-0.8; >>x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n; >>subplot(221)

>>stem(n,x1,'fill'),grid on >>xlabel('n'),title('x(n)=1.2^{n}') >>subplot(222)

>>stem(n,x2,'fill'),grid on

>>xlabel('n'),title('x(n)=(-1.2)^{n}') >>subplot(223)

>>stem(n,x3,'fill'),grid on >>xlabel('n'),title('x(n)=0.8^{n}') >>subplot(224)

>>stem(n,x4,'fill'),grid on

图1-3 矩形序列

>>xlabel('n'),title('x(n)=(-0.8)^{n}')

单边指数序列n 的取值范围为0≥n 。程序运行结果如图1-4所示。从图可知,当1||>a 时,

单边指数序列发散;当1||a 时,该序列均取正值;当0

5. 正弦序列

正弦序列定义为

)sin()(0?ω+=n n x

其中,0ω是正弦序列的数字域频率;?为初相。与连续的正弦信号不同,正弦序列的自变量n 必须为整数。可以证明,只有当

2ωπ

为有理数时,正弦序列具有周期性。

【实例1-5】 试用MATLAB 命令绘制正弦序列)6

sin()(π

n n x =的波形图。 解:MATLAB 源程序为

>>n=0:39; >>x=sin(pi/6*n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('正弦序列') >>axis([0,40,-1.5,1.5]);

程序运行结果如图1-5所示。

图1-4 单边指数序列

6. 复指数序列

复指数序列定义为

n j a e n x )(0)(ω+=

当0=a 时,得到虚指数序列n

j e n x 0)(ω=,式中0ω是正弦序列的数字域频率。由欧拉公式

知,复指数序列可进一步表示为

)]sin()[cos()(00)(00ωωωωn j n e e e e n x an n j an n j a +===+

与连续复指数信号一样,我们将复指数序列实部和虚部的波形分开讨论,得出如下结论:

(1)当0>a 时,复指数序列)(n x 的实部和虚部分别是按指数规律增长的正弦振荡序列;

(2)当0

(3)当0=a 时,复指数序列)(n x 即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列。

【实例1-6】 用MA TLAB 命令画出复指数序列n

j e n x )6101(2)(π+-=的实部、虚部、模及

相角随时间变化的曲线,并观察其时域特性。

解:MATLAB 源程序为

>>n=0:30;

>>A=2;a=-1/10;b=pi/6; >>x=A*exp((a+i*b)*n); >>subplot(2,2,1)

>>stem(n,real(x),'fill'),grid on

>>title('实部'),axis([0,30,-2,2]),xlabel('n') >>subplot(2,2,2)

>>stem(n,imag(x),'fill'),grid on

图1-5 正弦序列

>>title('虚部'),axis([0,30,-2,2]) ,xlabel('n') >>subplot(2,2,3)

>>stem(n,abs(x),'fill'),grid on >>title('模'),axis([0,30,0,2]) ,xlabel('n') >>subplot(2,2,4)

>>stem(n,angle(x),'fill'),grid on

>>title('相角'),axis([0,30,-4,4]) ,xlabel('n')

程序运行后,产生如图1-6所示的波形。

(二) 离散时间信号的基本运算

对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MA TLAB 的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。

【实例1-7】 用MA TLAB 命令画出下列离散时间信号的波形图。

(1)()()()[]N n u n u a n x n --=1; (2)()()312+=n x n x

(3)()()213

-=n x n x ;

(4)()()n x n x -=14

解:设8.0=a ,8=N ,MATLAB 源程序为

>>a=0.8;N=8;n=-12:12; >>x=a.^n.*(uDT(n)-uDT(n-N)); >>n1=n;n2=n1-3;n3=n1+2;n4=-n1; >>subplot(411)

>>stem(n1,x,'fill'),grid on >>title('x1(n)'),axis([-15 15 0 1]) >>subplot(412)

>>stem(n2,x,'fill'),grid on

图1-6 复指数序列

图1-7 离散时间信号的基本运算及波形图

>>title('x2(n)'),axis([-15 15 0 1]) >>subplot(413)

>>stem(n3,x,'fill'),grid on >>title('x3(n)'),axis([-15 15 0 1]) >>subplot(414)

>>stem(n4,x,'fill'),grid on >>title('x4(n)'),axis([-15 15 0 1])

其波形如图1-7所示。

(三) 编程练习

1. 试用MATLAB 命令分别绘出下列各序列的波形图。

(1)()()n u n x n

??

? ??=21 (2)()()n u n x n

2=

(3)()()n u n x n

??? ??-=21 (4)()()()n u n x n

2-=

(5)()()121

-=-n u n x n (6)()()n u n x n 1

21-?

?

? ??=

2. 试用MATLAB 分别绘出下列各序列的波形图。

(1)()5

sin πn n x

= (2)())5

10

cos(ππ-=n n x

(3)()5sin 65πn n x n

??? ??= (4)()5sin 23πn n x n

??

?

??=

实验一 MATLAB基本操作及运算(含实验报告).

实验一 MATLAB 基本操作及运算 一、 实验目的 1、 理解Matlab 数据对象的特点; 2、 掌握基本Matlab 运算规则; 3、 掌握Matlab 帮助的使用方法; 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 三、 实验内容 要求建立一个名为experiment01.m 的,把与实验内容1-7相关的实验命令都放入该文件中,题与题之间用相应注释分割。注意对实验中出现的相关函数或变量,请使用help 或doc 查询相关帮助文档,学习函数的用法。 1、 建立以下标量: 1) a=10 2) b=2.5×1023 3) c=2+3i ,(i 为虚数单位) 4) d=3/2πj e ,(j 为虚数单位,这里要用到exp ,pi ) 2、 建立以下向量: 1) aVec=[3.14 15 9 26] 2) bVec=????? ???????18228871.2 3) cVec=[5 4.8 … -4.8 -5 ] (向量中的数值从5到-5,步长为-0.2) 4) dVec=[100 100.01 … 100.99 101] (产生1到10之间的等对数间隔向量,参考logspace ,注意向量的长度) 3、 建立以下矩阵: 1)???? ??????=2222 aMat aMat 一个9×9的矩阵,其元素全为2;(参考ones 或zeros )

2)??????? ?????????=1000005000001 bMat bMat 是一个9×9的矩阵,除主对角上的元素为[1 2 3 4 5 4 3 2 1]外,其余元素均为0。(参考diag )。 3)100 20109212291111 =cMat cMat 为一个10×10的矩阵,可有1:100的向量来产生(参考reshape ) 4)???? ??????=NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN dMat dMat 为3×4的NaN 矩阵,(参考nan ) 5)?? ????---=8710225113eMat 6)产生一个5×3随机整数矩阵fMat ,其值的范围在-3到3之间。(参考rand 和floor 或ceil ) 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ) 6/)15((11--+=a e x 2) g g h h b a y /121,)(=+=提示π,参考sqrt 。 3) c c a d c d c R z ))3/sin()]))([(log(π-+= ,其中R 表示取括号内复数的实数部分,c 表示c 的共轭复数,log 是自然对数。(参考real ,conj ,log ) 5、 使用题2中的向量求解一下等式: 1))25.2/(22 25.221 cVec e xVec -=π, 其中cVec 指的是题2 中定义的向量cVec ,一下雷同。 2)22)(bVec aVec yVec T +=,T aVec 表示aVec 的转置 3) )/1(log 10dVec zVec =,10log 表示已10为底的对数,参考log10 6、 使用题2和题3中所产生的向量和矩阵计算以下等式,注意本题的操作

matlab实验2MATLAB基础知识

实验2 MATLAB基础知识 一、实验目的 1.熟悉MATLAB的数据类型 2.熟悉MATLAB的基本矩阵操作 3.熟悉MATLAB的运算符 4.熟悉MATLAB的字符串处理 二、实验内容 1.创建结构体DataTypes,属性包含MATLAB支持的所有数据类型,并通过赋值构 造结构体二维数组。 DataTypes.char=char([65]); DataTypes.string='hello'; DataTypes.int=100; DataTypes.single=1.560 DataTypes = char: 'A' string: 'hello' int: 100 single: 1.5600 >> DataTypes(2).char=char([66]); DataTypes(2).string='kugou'; DataTypes(2).int=200; DataTypes(2).single=3.14 DataTypes = 1x2 struct array with fields: char string int single 2.用满矩阵和稀疏矩阵存储方式分别构造下述矩阵。 A=

答: A = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 B = A = 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A = 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 A = 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 A = 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1

实验1_基于MATLAB的图像基本操作

第1次实验基于MATLAB的图像基本操作 二、实验内容和要求: 1.实现图像Baboon.bmp(MATLAB自带)的读入(可使用imread)和显示(可使用imshow)操作,代码加上足够的注释,需要建立一个M文件实现。 I=imread('F:\标准图像\Baboon.bmp');//读入图像 imshow(I);//显示图像 2.编程实现将一幅RGB图像转换为二值图像,并在一个窗口同时显示处理过程中得到的每一个图像和原图像,同时需要给图像加上标题。(原始数据可以是任意的RGB图像)。需要新建一个M文件实现。 figure,subplot(1,3,1),imshow(I(:,:,1)),title('R'); subplot(1,3,2),imshow(I(:,:,2)),title('G'); subplot(1,3,3),imshow(I(:,:,3)),title('B'); 3.计算图象统计参数: 读取图像(文件名为‘cameraman.tif’); 最大值 最小值 均值 K=imread('cameraman.tif'); d_max=max(K(:)) d_min=min(K(:)) d_mean=mean(K(:)) 4.利用帮助系统了解im2double,imresize,image函数的作用和语法,并利用这些函数处理已知图像pout.tif(MATLAB自带)并显示处理前后效果。 J=imread('pout.tif'); J1=im2double(J); figure,subplot(1,2,1),imshow(J),title('Before') subplot(1,2,2),imshow(J1),title('After') J2=imresize(J,0.3); figure,subplot(1,2,1),imshow(J),title('Before') subplot(1,2,2),imshow(J2),title('After') figure,subplot(1,2,1),imshow(J),title('Before') subplot(1,2,2),image(J);title('After') 1

matlab基础实验

实验一 MATLAB基础知识 一、实验目的 1.熟练掌握Matlab的启动与退出; 2. 熟悉Matalb的命令窗口,常用命令和帮助系统; 3. 熟悉Matalb的数据类型; 4. 熟悉Matlab的基本矩阵操作,运算符和字符串处理 二、实验设备 1.方正电脑 2.MATLAB软件 三、实验内容 1. 已知矩阵 A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] 写出完成下列操作的命令: (1) 将矩阵A的第2-5行中第1,3,5列元素赋给矩阵B; (2) 删除矩阵A的第7号元素; (3) 将矩阵A的每个元素加上30; (4) 求矩阵A的大小和维数; (5) 将矩阵A的右下角3*2矩阵构成矩阵C; (6) 输出[-5,5]范围内的所有元素; 程序: A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] %(1) B=A(2:5,[1 3 5]) %(2) A2=A; A2(7)=[] %(3) A3=A+30 %(4) length(A) size(A) %(5) C=A(end-2:end,end-1:end) %(6) A6=A.*(A>=-5 & A<=5) 结果: A =

3 4 -1 1 -9 10 6 5 0 7 4 -16 1 -4 7 -1 6 -8 2 -4 5 -6 12 -8 -3 6 -7 8 -1 1 8 -4 9 1 3 0 B = 6 0 4 1 7 6 2 5 12 -3 -7 -1 A2 = Columns 1 through 7 3 6 1 2 -3 8 5 Columns 8 through 14 -4 -4 6 -4 -1 0 7 Columns 15 through 21 5 -7 9 1 7 -1 - 6 Columns 22 through 28 8 1 -9 4 6 12 -1 Columns 29 through 35 3 10 -16 -8 -8 1 0 A3 = 33 34 29 31 21 40 36 35 30 37 34 14

实验二 Matlab程序设计基本方法1

实验二Matlab程序设计基本方法 覃照乘自092 电气工程学院 一、实验目的: 1、熟悉MATLAB 程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: ◆for循环结构 语法:for i=初值:增量:终值 语句1 …… 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 ◆while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达 式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位 置加break语句、以便程序能正常执行。(执行循环体的次数不确定; 每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下:

while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end ◆if-else-end分支结构 if 表达式1 语句1 else if 表达式2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 ◆switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 …… otherwise 语句组n end

实验一 Matlab基本操作

实验一Matlab基本操作 题目: 1.利用基本矩阵产生 3x3 和15x8 的单位阵,全1 阵,全0 阵,均匀分布的随 机阵([-1,1]之间),正态分布随机阵(方差4,均值1) 2.利用diag()函数和rot90()产生下列矩阵: 然后求解a 阵的逆矩阵aa 及b 阵的特征值和对应特征向量,并利用reshape 将 aa 阵变换成行向量。 3.产生一均匀分布在(-5,5)随机阵(50x2),精确到小数点后一位。 4.编程实现当α∈[-π,π],间隔为1o 时,求解正弦和余弦的值,并利用plot() 函数绘制正弦,余弦曲线。 5.利用rand 函数产生(0,1)间均匀分布的10x10 随机矩阵a,然后统计a 中大于等于0.6 的元素个数。 6.利用randn 函数产生均值为0,方差为1 的10x10 正态分布随机阵,然后统计其中大于-0.5,小于0.5 的元素个数。 7.编程实现下表功能: 8.有一矩阵a,找出矩阵中其值大于1 的元素,并将他们重新排列成列向量b。 9.在一保定市区9 月份平均气温变化测量矩阵temp_Baoding_sep 中(48x30),存在有奇异值(大于42o C,小于0o C),编程实现删除奇异值所在的行。 10.在给定的100x100 矩阵中,删除整行内容全为0 的行,删除整列内容全为0 的列。 程序: 1. %3X3矩阵 a1=eye(3) a2=ones(3) a3=zeros(3) a4=1-2*rand(3) a5=2*randn(3)+1 %15X8矩阵 b1=eye(15,8) b2=ones(15,8) b3=zeros(15,8) b4=1-2*rand(15,8) b5=2*randn(15,8)+1 运行结果:

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

matlab实验二

实验2 MATLAB数值计算、符号运算功能 一、实验目的 1、掌握建立矩阵、矩阵分析与处理的方法。 2、掌握线性方程组的求解方法。 3、掌握数据统计和分析方法、多项式的常用运算。 4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。 5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。 二、预习要求 (1)复习4、5、6章所讲内容; (2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。 三、实验内容 1、已知 29618 20512 885 A -?? ?? =?? ?? - ?? ,求A的特征值及特征向量,并分析其数学意义。 >> A=[-29,6,18;20,5,12;-8,8,5]; >> [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。 >> A*V ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 >> V*D

ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 经过计算,A*V=V*D 。 2、 不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。 147102581136912A ????=??????,101112789456123B ??????=??????,321654987121110B ??????=?????? 提示:先将A 转置,再作上下翻转,则完成左旋90°;如将A 转置后作左右翻转,则完成右旋转90°,可用flipud 、fliplr 函数。 >> a=[1 4 7 10;2 5 8 11;3 6 9 12] a= 1 4 7 10 2 5 8 11 3 6 9 12 >> B=rot90(a) B = 10 11 12 7 8 9 4 5 6 1 2 3 >>C= rot90(s,3) C= 3 2 1 6 5 4 9 8 7 12 11 10

matlab操作实验报告

实验一matlab基本操作 一、实验目的 熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。 二、实验设备与工具 1.计算机 2.matlab软件 三、实验步骤 1. 了解matlab的硬件和软件必备环境; 2. 启动matlab; 3. 学习优化建模过程。 四、实验报告要求 1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部 分的功能; 2. 优化建模过程应用举例 五、实验内容 (一)、Matlab操作界面 1.命令窗口(command window) 2.命令历史窗口(command history) 3.工作空间管理窗口(workspace) 4.当前路径窗口(current directory) (二)、优化建模过程应用举例 1、简单矩阵 123 456 789 A ?? ?? =?? ?? ?? 的输入步骤。 (1)在键盘上输入下列内容 A = [1,1,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 7 8 9

2、矩阵的分行输入。 A=[1,2,3 4,5,6 7,8,9] A = 1 2 3 4 5 6 7 8 9 3、指令的续行输入 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 4、画出衰减振荡曲线t e y t 3sin 3-=及其它的包络线3 0t e y -=。t 的取值范围是]4,0[π。 t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') grid 5、画出2222) sin(y x y x z ++=所表示的三维曲面。y x ,的取值范围是]8,8[-。 clear;x=-8:0.5:8; y=x';

实验二 MATLAB基础知识(二)

Experiment 1. Fundamental Knowledge of Matlab (II) 【Experimental Purposes】 1、熟悉并掌握MATLAB的工作环境。 2、运行简单命令,实现数组及矩阵的输入输出,了解在MATLAB下如何绘图。【Experimental Principle】 1. Vectors Let's start off by creating something simple, like a vector. Enter each element of the vector (separated by a space) between brackets, and set it equal to a variable. For example, to create the vector a, enter into the MATLAB command window (you can "copy" and "paste" from your browser into MATLAB to make it easy): a = [1 2 3 4 5 6 9 8 7] MATLAB should return: a = 1 2 3 4 5 6 9 8 7 To generate a series that does not use the default of incrementing by 1, specify an additional value with the colon operator (first:step:last). In between the starting and ending value is a step value that tells MATLAB how much to increment (or decrement, if step is negative) between each number it generates. To generate a vector with elements between 0 and 20, incrementing by 2(this method is frequently used to create a time vector), use t = 0:2:20 t = 0 2 4 6 8 10 12 14 16 18 20 Manipulating vectors is almost as easy as creating them. First, suppose you would like to add 2 to each of the elements in vector 'a'. The equation for that looks like: b = a + 2 b = 3 4 5 6 7 8 11 10 9 Now suppose, you would like to add two vectors together. If the two vectors are the same length, it is easy. Simply add the two as shown below: c = a + b c = 4 6 8 10 12 14 20 18 16 Subtraction of vectors of the same length works exactly the same way. MATLAB sometimes stores such a list in a matrix with just one row, and other times in a matrix with just one column. In the first instance, such a 1-row matrix is called a row-vector; in the

MATLAB实验报告实验二

实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;

(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式

长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];

4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)

MATLAB基本操作实验报告

MATLAB基本操作 实验报告 课程名称: 院系: 专业班级: 学号: 学生姓名: 指导教师: 开课时间:至学年第学期

一、学生撰写要求 按照实验课程培养方案的要求,每门实验课程中的每一个实验项目完成后,每位参加实验的学生均须在实验教师规定的时间内独立完成一份实验报告,不得抄袭,不得缺交。 学生撰写实验报告时应严格按照本实验报告规定的内容和要求填写。字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。 二、教师评阅与装订要求 1.实验报告批改要深入细致,批改过程中要发现和纠正学生实验报告中的问题,给出评语和实验报告成绩,签名并注明批改日期。实验报告批改完成后,应采用适当的形式将学生实验报告中存在的问题及时反馈给学生。 2.实验报告成绩用百分制评定,并给出成绩评定的依据或评分标准(附于实验报告成绩登记表后)。对迟交实验报告的学生要酌情扣分,对缺交和抄袭实验报告的学生应及时批评教育,并对该次实验报告的分数以零分处理。对单独设课的实验课程,如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。 3.各实验项目的实验报告成绩登记在实验报告成绩登记表中。本学期实验项目全部完成后,给定实验报告综合成绩。 4.实验报告综合成绩应按课程教学大纲规定比例(一般为10-15%)计入实验课总评成绩;实验总评成绩原则上应包括考勤、实验报告、考核(操作、理论)等多方面成绩; 5.实验教师每学期负责对拟存档的学生实验报告按课程、学生收齐并装订,按如下顺序装订成册:实验报告封面、实验报告成绩登记表、实验报告成绩评定依据、实验报告(按教学进度表规定的实验项目顺序排序)。装订时统一靠左侧按“两钉三等分”原则装订。

MATLAB实验二(修改)

实验二 信号的表示及其基本运算 一、实验目的 1、掌握连续信号及其MATLAB 实现方法; 2、掌握离散信号及其MA TLAB 实现方法 3、掌握离散信号的基本运算方法,以及MA TLAB 实现 4 熟悉应用MATLAB 实现求解系统响应的方法 4、了解离散傅里叶变换的MA TLAB 实现 5、了解IIR 数字滤波器设计 6、了解FIR 数字滤波器设计1 二、实验设备 计算机,Matlab 软件 三、实验内容 (一)、 连续信号及其MATLAB 实现 1、 单位冲激信号 ()0,0()1,0 t t t dt ε ε δδε-?=≠??=?>??? 例1.1:单位冲击信号的MATLAB 实现程序如下: t1=-4; t2=4; t0=0; dt=0.01; t=t1:dt:t2; n=length(t); x=zeros(1,n); x(1,(-t0-t1)/dt+1)=1/dt; stairs(t,x); axis([t1,t2,0,1.2/dt]); 2、 任意函数 ()()()f t f t d τδττ+∞ -∞ =-? 例1.2:用MA TLAB 画出如下表达式的脉冲序列 ()0.4(2)0.8(1) 1.2() 1.5(1) 1.0(2)0.7(3)f n n n n n n n δδδδδδ=-+-+++++++ 3 单位阶跃函数 1,0()0, t u t t ?≥?=?

t=-0.5:0.001:1; t0=0; u=stepfun(t,t0); plot(t,u) axis([-0.5 1 -0.2 1.2]) 4 斜坡函数 0()()g t B t t =- 例1.4:用MA TLAB 实现g(t)=3(t-1) clear all; t=0:0.01:3; B=3; t0=1; u=stepfun(t,t0); n=length(t); for i=1:n u(i)=B*u(i)*(t(i)-t0); end plot(t,u) axis([-0.2 3.1 -0.2 6.2]) 5 抽样信号 抽样信号Sa(t)=sin(t)/t 在MATLAB 中用 sinc 函数表示。 定义为 )/(sin )(πt c t Sa = t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on; axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴 title('抽样信号') %定义图的标题名字 6 指数函数 ()at f t Ae = 例1.5:用MA TLAB 实现0.5()3t f t e = 7 正弦函数 2()cos( )t f t A T π?=+ 例1.6:用MA TLAB 实现正弦函数f(t)=3cos(10πt+1) 8 虚指数信号 例 虚指数信号 调用格式是f=exp((j*w)*t) t=0:0.01:15;

实验一 MATLAB基础训练

实验一 MATLAB基础训练 一、实验目的 本次上机实验主要练习使用Matlab的基本操作和基础知识,包括数组(复数、向量、矩阵、结构体数组等)的创建和数组元素的操作和运算、矩阵的运算、Matlab的运算符(尤其是点运算‘.’)、脚本M文件和函数M文件的编写、Matlab文件的编程(基本的流程控制结构)、基本的二维和三维绘图方法以及图形的标注等。希望通过本次实验使大家尽量在短时间内(4学时)掌握Matlab的基本操作和基础知识,为后面的实验项目奠定基础。 二、实验原理 参见PPT中有关内容。 三、实验内容 1. 上机练习课件中的例子。 2. 设两个复数a=1+2i, b=3-4i, 计算a+b, a-b, a*b, a/b, a和b的模。 3. 计算下式的结果,其中x=-3.5°, y=6.7° (提示:①应将角度单位由度转换为数学函数所能处理的弧度值;②求根函数sqrt,取绝对值函数abs,具体用法用help查询) 4. 对矩阵 123 456 789 A ?? ?? =?? ?? ?? , 实现下列操作: (1) 左右翻转(fliplr命令) (2) 上下翻转(flipud命令) (3) 利用cat命令分别将A扩展成3×6和6×3的矩阵 (3) 分别提取A的第2行,第2列,对角线元素 (4) 删除A的第2行2列的元素 (提示:将矩阵元素赋空阵[]可以删除元素,注意此时元素的访问只能使用单下标的方式。观察删除元素后,A中元素的排列方式的变化) 5. 创建[0,2π]区间上拥有100个等间隔元素的列向量 ...x.(Matlab默认是行向量),并绘制 y=sin(x1/3)的函数图像。 6. 创建如下图所示的单结构体数组。

Matlab实验

MATLAB实验报告 学校:湖北文理学院 学院:物理与电子工程学院 专业:电子信息工程 学号: 2013128182 姓名:张冲 指导教师:宋立新

实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验内容 1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye(其它不会用的指令,依照此方法类推) 2、学习使用clc、clear,观察command window、command history和workspace 等窗口的变化结果。 3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、 exerc2、exerc3……),学习使用MATLAB的基本运算符。 三、练习 1)help rand,然后随机生成一个2×6的数组,观察command window、 command history和workspace等窗口的变化结果。 2)学习使用clc、clear,了解其功能和作用。 3)用逻辑表达式求下列分段函数的值 4)求[100,999]之间能被21整除的数的个数。(提示:rem,sum的用法) 四、实验结果 1)

2)clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。3) 4)

实验二 MATLAB数值运算 一、实验目的 1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 二、实验内容 1)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3, (10) 2)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗 口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 3)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2 行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有 元素。 4)两种运算指令形式和实质内涵的比较。设有3个二维数组A 2×4,B 2×4 ,C 2×2 , 写出所有由2个数组参与的合法的数组运算和矩阵指令。 5)学习使用表4列的常用函数(通过help方法) 6)学习使用表5数组操作函数。 7)生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。 8)已知a=[1 2 3],b=[4 5 6],求a.\b和a./ b 9)用reshape指令生成下列矩阵,并取出方框内的数组元素。 三、实验结果 1)C(i)表示C中的第i个的数值;

实验一MATLAB基本操作及运算.doc

实验一MATLAB基本操作及运算 一、实验目的 二、实验的设备及条件 三、实验内容 1、建立以下标量: 1) a=3 2) b=5+ 3 j,(j为虚数单位) 3) c=e j 2 / 3 2、建立以下向量: 2.71 38 1) Vb= 28 82 2) Vc=[4 3.8-3.8 -4 ] (向量中的数值从 4 到 -4,步长为 -0.2) 3、建立以下矩阵: 1) 3 L 3 Ma M O M 3 L 3 Ma 为一个 7×7的矩阵,其元素全为 3. 2) 1 11 L91 2 12 O92 Mb M M O M 10 20 L100

Mb 为一个 10× 10的矩阵 . 3) 1 14 5 Mc 2 5 17 3 23 8 4、使用题 1 中的变量计算下列等式的x,y,z的值: 1) x1 1 1 e( (a 15)/6) 2)x2 ( a 15 x1) 3)x3 ln( R [( b c)(b c)]sin( a / 3)) ,其中R表示复数实部。 5、求解函数值 y e ct2/(2.252),其中 c 取值见题 1, t 的取值范围为题 2 中行 向量 Vc。 6、使用题 1 和题 3 中所产生的标量和矩阵计算等式 Mx a Mc (Mc) 1 (Mc )T 其中 * 为矩阵所对应行列式的值,参考det 。 7、函数的使用和矩阵的访问。 1)计算矩阵 Mb 每一列的和,结果应为行向量形式。 2)计算整个矩阵 Mb 的平均值。 3)用向量 [1 1 1] 替换 Mb 的最上一行的值 4)将矩阵 Mb 的第 2~5 行,第 3 到 9 列的元素所构成的矩阵赋值给矩阵SubMb。 5)删除矩阵 Mb 的第一行; 6)使用函数 rand 产生一个 1× 10的向量 r ,并将 r 中值小于 0.5 的元素设置为 0。 8、已知 CellA(1, 1)=‘中国’, CellA( 1, 2)=‘北京’, CellA( 2, 1)是一个 3 乘 3 的单位阵, CellA( 2, 2)=[1 2 3],试用 MATLAB创建一个 2 ×2 的细胞数组 CellA。 9、已知结构数组student 中信息包含有姓名,学号,性别,年龄和班级,试用 MATLAB创建相应的结构数组 student。该数组包含有从自己学号开始连续 5 个同学的信息(如果学号在你后面的同学不足 5 个则往前排序),创建完成后查看自己的信息。

福州大学MATLAB基础实验指导书

实验一 MATLAB 基础知识 一、实验目的 1. 熟练掌握Matlab 的启动与退出; 2. 熟悉Matalb 的命令窗口,常用命令和帮助系统; 3. 熟悉Matalb 的数据类型; 4. 熟悉Matlab 的基本矩阵操作,运算符和字符串处理 、实验设备 1. 方正电脑 2. MATLAB^件 三、实验内容 1. 已知矩阵 A=[3 4 -1 1-9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] 写出完成下列操作的命令: (1) 将矩阵A 的第2-5行中第1 , 3, 5列元素赋给矩阵 B ; (2) 删除矩阵A 的第7号元素; (3) 将矩阵A 的每个元素加上30 ; (4) 求矩阵A 的大小和维数; (5) 将矩阵A 的右下角3*2矩阵构成矩阵C ; (6) 输出[-5,5]范围内的所有元素; 4. 已知 3 5 4 2 1 2 67 A 34 45 7 ,B 2 8 74 求下列表达式的值: (1) A*B 和 A.*B (2) A A 3 和 A.A 3 (3) A/B 和 B\A (4) [A,B]和[A([1,3]);BA2] 87 90 15 9 3 0 i ab 5. 设 a=1+2i,b=-3+4i, c e 6 ,求 c 的值。 2. 设 x=-74 o ,y=27 o ,求 sin (x 2 y 2) ta n x y 的 值。 3.当a 取,,, ?,,,时,求 e 0.3a sin(a 0.3)在各点的函数 值。

a b 实验二MATLAB程序设计 、实验目的 1 ?学会编写简单函数m文件,调用及调试函数m文件; 2 .学会MATLA啲简单程序编写。 二、实验设备 1. 方正电脑 2. MATLAB^件 三、实验内容 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7 然后用和除以10的余数取代该数字;然后将第1位数与第3位数交换,第2位数与第4位数交换。 2. 硅谷公司员工的工资计算方法如下: (1) 工作时数超过120h者,超过部分加发15% (2) 工作时数低于60h者,扣发700元; (3) 其余按每小时84元计发。 试编程按输入的工号和该员工的工时数,计算应发工资。 1 1 1 1 3. 根据 2 2 2 L 2,求的近似值。当n分别取100, 1000, 10000时, 6 122232n2 结果是多少? (要求:分别用循环结构和向量运算(使用sum函数)来实现) 1 1 1 4 .根据y 1 L ,求 3 5 2n 1 (1) y<3 时的最大n值; (2) 与(1)的n值对应的y值。考虑 a 5.考虑一下迭代公式x n 1,其中,a,b为常数。 b X n (1)编写程序求迭代结果,迭代的终止条件为X n 1 X n 10 5,迭代初值X0 1.0,迭 代次数不超过500次。 (2)如果迭代过程收敛于r,那么r的准确值是 b b 4a,当⑻卩的值取⑴“、 2 (8,3)、(10,时,分别对迭代结果和准确值进行比较。

Matlab实验二

实验二DFS和DFT 实验任务 1、阅读并输入实验原理中介绍的例题程序,观察输出的图形曲线,理解每一条语句的含义。 2、已知一个信号序列的主值为x(n)=[0,1,2,3,2,1,0],显示两个周期的信号序列波形,要求: (1)用DFS求信号的幅度频谱和相位频谱,用图形表示; (2)求IDFS的图形,并与原信号进行比较。 N = 7; xn = [0,1,2,3,2,1,0]; xn = [xn xn]; n = 0:2*N-1; k = 0:2*N-1; Xk = xn*exp(-j*2*pi/N).^(n'*k); x = (Xk*exp(j*2*pi/N).^(n'*k))/(2*2*N); subplot(2,2,1),stem(n,xn); title('x(n)');axis([-2,2*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2),stem(n,abs(x)); title('IDFS|X(k)|');axis([-2,2*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,3),stem(k,abs(Xk)); title('|X(k)|');axis([-2,2*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk)); title('arg|X(k)|');axis([-2,2*N,1.1*min(angle(Xk)),1.1*max(angle(Xk)) ]);

3、已知有限长序列x(n)=[7,6,5,4,3,2],求x(n)的DFT 和IDFT ,要求: (1) 画出DFT 对应的()X k 和()arg X k ????的图形。 (2)画出原信号与傅里叶逆变换IDFT[X(k)]图形进行比较 xn = [7 6 5 4 3 2]; N = length(xn); n = 0:N-1; k = 0:N-1; Xk = xn*exp(-j*2*pi/N).^(n'*k); x = (Xk*exp(j*2*pi/N).^(n'*k))/N; figure,subplot(2,2,1),stem(n,xn); title('x(n)'); subplot(2,2,2),stem(n,abs(x)); title('IDFT|X(k)|'); subplot(2,2,3),stem(k,abs(Xk)); title('|X(k)|'); subplot(2,2,4),stem(k,angle(Xk)); title('arg|X(k)|'); axis([0,N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]) 4、一周期序列的主值x(n)=[7,6,5,4,3,2],求x(n)周期周期重复次数为3次时的DFS 。要求: (1)画出原主值和信号周期序列信号; (2)画出序列傅里叶变换对应的()X k %和()arg X k ????%的图形。 xn = [7 6 5 4 3 2];

相关主题
文本预览
相关文档 最新文档